Commit graph

117 commits

Author SHA1 Message Date
Ben Jackson
bb3909c16f Improve output view; use jobs to display logs and remote commands 2019-02-12 09:04:52 +00:00
Ben Jackson
e006b15100 More improvements to startup and closedown stability. Remove some hack code 2019-02-12 09:01:09 +00:00
Ben Jackson
765a9e4a98 Don't bother with the disconnect on VimLeave. It causes more problems than it solves. Just let vim kill the job 2019-02-04 15:15:53 +00:00
Ben Jackson
df04256cee FixUp: Merge error with launch variables 2019-02-04 15:05:16 +00:00
Ben Jackson
85d2f10f32 Only load threads after _both_ init and launch. Maybe this is the magic that works for all servers 2019-02-04 15:05:00 +00:00
Ben Jackson
463f7a8220 Mark unread output with *; Show vimspector log in output view 2019-02-04 15:04:21 +00:00
Ben Jackson
1ca88ad332 WIP: Support remote startup commands, e.g. gdbserver 2019-02-02 15:49:41 +00:00
Ben Jackson
aed3f459a6 Support variables set in the vimspector.json 2019-02-02 15:49:40 +00:00
Ben Jackson
32e16d9daf WIP: Try and remember that the server quit 2019-02-02 15:49:22 +00:00
Ben Jackson
7a91518542 Improve error reporting 2019-02-02 14:54:49 +00:00
Ben Jackson
728cd2b9c3 Go back to launching after initialize as this is required by some servers. The spec is a little unclear on what the correct behaviour is, but this seems to work with microsoft's own debug adapters 2019-02-02 10:49:00 +00:00
Ben Jackson
1905556edd Allow mappings to specify variables 2019-02-02 10:49:00 +00:00
Ben Jackson
f210d5d150 Print failures to the UI 2019-02-02 10:44:18 +00:00
Ben Jackson
e9d9a8ac42 Don't print raw output anymore 2019-02-02 10:43:12 +00:00
Ben Jackson
ed382a9f90 There is no reason for terminated event 2019-02-01 10:05:59 +00:00
Ben Jackson
82605c80cc Allow Continue to restart if the process isn't running 2019-02-01 10:05:59 +00:00
Ben Jackson
f1859639d7 Alow env and cwd to be specified for the _adapter_ 2019-02-01 10:05:59 +00:00
Ben Jackson
c44e0970a4 Clear PC when resetting 2019-02-01 10:05:58 +00:00
Ben Jackson
dff7f6ad73 Remove annoying debug output 2019-02-01 10:05:58 +00:00
Ben Jackson
b30a9fc870 Per the updated protocol descritpion, delay sending Launch/Attach until we have ConfigurationDone 2019-01-12 15:14:06 +00:00
Ben Jackson
4539ad327f Remove pointless assignment 2019-01-12 15:14:06 +00:00
Ben Jackson
e573c2fd9f Print server stderr to the GUI 2019-01-12 15:14:06 +00:00
Ben Jackson
66d525d298 Add ability to inject arbitrary variables 2019-01-05 10:38:44 +00:00
Ben Jackson
cbff48c959 Work around vim bugs in appending to buffers 2018-12-20 16:55:28 +00:00
Ben Jackson
0cfe1ec99b Work around cppdbg spamming mono errors to stdout 2018-12-20 16:55:14 +00:00
Ben Jackson
ea1962e11b Use a short timeout for closedown 2018-12-20 16:54:55 +00:00
Ben Jackson
af338669f3 Add timeout for requests. 2018-12-20 15:10:24 +00:00
Ben Jackson
361458534c Fix re-use of name result 2018-12-20 15:10:03 +00:00
Ben Jackson
673de95283 Updates for latest Python debug adapter
They moved the location of the main application.

But also:

- ignore multiple responses for the same request
- ignore protocol violations for variablesReference (assume 0)
- ignore protocol violations for missing 'name' (assume basename of
path)
2018-12-20 13:42:58 +00:00
Ben Jackson
14603ae72f Support java debugging
The java architecture is a little different:

- the debugger is a jdt.ls extension bundle.
- to start the server, you send a startDebugSession command to jdt.ls
- this returns a tcl port to connect to for DAP

Loading of jdt.ls and the extension are out of scope for vimspector
currently and instead you can tell it to ask you for a port to connect
to.

After connexting to that port, vimspector works as normal.

To support TCP/IP was pretty simple: we provide the same API from
vimscript as the job-based (stdin/out) comms layer, but instead just
directly use a channel.

The only wrinkle was that the java debug adapter broke the protocol on
runInTerminal and didn't return a 'cwd', so we make one up.
2018-12-20 00:29:45 +00:00
Ben Jackson
256579c4d8 Imrpove console evaluation somewhat. Fix restart bug not resetting connection in the console view 2018-12-19 01:33:21 +00:00
Ben Jackson
3a898edd34 Untested: properly expand lists of dictionaries 2018-12-19 00:44:50 +00:00
Ben Jackson
87db1e3478 Properly responsd to server reverse-request 2018-12-19 00:44:33 +00:00
Ben Jackson
73fe403a19 Per the spec, write the data as json the consoles 2018-12-16 19:15:13 +00:00
Ben Jackson
912cd047b1 Fix flake8 errors 2018-12-16 19:14:44 +00:00
Ben Jackson
83ecbe1aed Improve cleanup by forcefully closing the tab. This could leave unsaved buffers hidden, but it's not easy to know what better to do. Mainly issues happen due to our own buffers being marked as modified for some rason. TODO: fix that instead 2018-12-16 19:14:26 +00:00
Ben Jackson
62e9335a10 Support runInTerminal (sort of) 2018-12-16 19:13:10 +00:00
Ben Jackson
3416070b95 Remove debug 2018-06-10 23:56:05 +01:00
Ben Jackson
08eed4ff15 Update the test/example config file with vars 2018-06-10 23:35:33 +01:00
Ben Jackson
79b25c0860 Allow for variable expansion in configuration
We expand environment variables, ~ and workspaceRoot. The latter is to
match vscode and typical launch configs. As we don't know what the
workspeace root might be, we use the location of the .vimspector.json.
2018-06-10 23:31:20 +01:00
Ben Jackson
3f9bc6f921 Re-add user-requested-breakpoints when resetting
This adds the markers back to any buffers that were open beforehand and
used to request line breakpoints.
2018-06-10 18:34:37 +01:00
Ben Jackson
b72bc7dfbf Use prompt buffer for Console
Like VSCode does, compbine console and stdout, and allow you to enter
commands in the console. It's all a bit janky right now and the
insertion point isn't ideal (as not all output is interactive) and some
output is asynchronous via a somewhat different channel.
2018-06-10 18:32:16 +01:00
Ben Jackson
6d709d551c Use a prompt that matches the buffer output, so that it is more obvious 2018-06-10 00:06:18 +01:00
Ben Jackson
920db068c6 Use a prompt buffer for adding watches
This very new feature makes it kind of nice to add new watches in the
place where they will appear, keeping the eye in the same screen
location.
2018-06-09 22:33:22 +01:00
Ben Jackson
b9ceb5e8ec Fix the restart button. You can't choose another configuration, but that appears impossible 2018-06-05 23:13:39 +01:00
Ben Jackson
1f4f1a1fcc Preserve expand/collapse state of variables and watches
This is starting to get horribly hacky and needs refactoring into
proper classes. Expandable variables now have the following additional
magic properties:

- '_expanded': True (expanded), False (collapsed), none = no preference
- '_variables': Current of child variables
- '_old_variables': The previous state of the '_variables' list when
                    refreshing

Remember that '_result' (the magic property of a watch expression) is
also treated like an expandable variable, so also has these magic
parameters.
2018-06-05 21:49:29 +01:00
Ben Jackson
22ffc43129 The +/- just makes it confusing 2018-06-03 22:02:09 +01:00
Ben Jackson
88ac7f6d55 Marginally improve the hover text
Don't use the default padded display.
When the request fails, say why.
Include the type if known.
2018-06-03 21:43:45 +01:00
Ben Jackson
df10cd84cf Tidy up the buffer append logic
Vim seems to insist that a buffer has at least one line. This means that
the first line set in the buffer object has to be a special case. Sigh.
Create a method to wrap that up.
2018-06-03 17:16:20 +01:00
Ben Jackson
553ad95404 Simplify vim options changes 2018-06-03 14:29:51 +01:00