Commit graph

108 commits

Author SHA1 Message Date
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
Ben Jackson
a5ee534c98 Fix errors when values contain ' 2018-06-03 00:37:06 +01:00
Ben Jackson
040746409b Put the watches between the vars and the scopes 2018-06-03 00:36:46 +01:00
Ben Jackson
fa775f4499 Separate watches and scopes
They are related (and share code) but make more sense separately
2018-06-03 00:20:07 +01:00
Ben Jackson
fcf19a6d52 More workarounds for free-and-loose-with-the-spec servers 2018-06-01 19:55:51 +01:00
Ben Jackson
298ff8cd9c Allow remote attach to gdbserver without pid picking 2018-06-01 19:55:32 +01:00
Ben Jackson
faf0cefb82 Use the formatted message, unformatted, if there is no other message 2018-06-01 19:55:05 +01:00
Ben Jackson
bd4fa964b0 Only add the log handler once 2018-06-01 19:54:27 +01:00
Ben Jackson
65e2a50d28 Yet more hacking. This sort of makes it work for rust 2018-05-29 02:15:18 +01:00
Ben Jackson
20045b2941 Support the lldb debugger
The advantage of this one is that it has globals and statics in the
variables and runs directly in lldb. It can also show disassembly,
though we don't yet support that.

The disadvantage is that this is yet another plugin that plays fast and
loose with the protocol, so we have to add a bunch more gets.
2018-05-29 01:48:37 +01:00