Commit graph

38 commits

Author SHA1 Message Date
Ben Jackson
8664c0ad78 Don't create a new buffer when opening the vimspector tab 2020-03-26 21:13:04 +00:00
Ben Jackson
c4bedcee89 Set the code window to the current buffer 2020-02-16 22:49:15 +00:00
Ben Jackson
b8d2b548d8 Add customisation of signs 2020-01-26 23:02:26 +00:00
Ben Jackson
9b5960f81e Fix go language server returning 0 column causing errors in neovim 2020-01-22 21:35:06 +00:00
Ben Jackson
18627b9244 Add a way to have multiple vim API layers 2020-01-15 23:17:15 +00:00
Ben Jackson
ee1bb009ea Wrap the terminal API in vimscript layer 2020-01-15 23:17:15 +00:00
Ben Jackson
ed6beff03b Enable syntax highlighting for watches and locals 2019-12-15 10:48:21 +00:00
Ben Jackson
63f8543d8f The chrome debugger doesn't return 'line' in some stack frames. Fix a bug for expensive scopes 2019-10-06 22:19:19 +01:00
Ben Jackson
799aacdcda RunInTermal: Re-use a completed terminal 2019-10-01 21:47:06 +01:00
Ben Jackson
9fc0a16912 Tidy up clearing breakpoints 2019-07-27 10:57:50 +01:00
Ben Jackson
cee10c8187 fix tabpage errors 2019-07-04 00:40:10 +01:00
Ben Jackson
d458d06bc5 Use the same version as the current macvim 2019-06-08 10:49:26 +01:00
Ben Jackson
b3d05f4672 Fix typo in UI 2019-04-28 14:16:20 +01:00
Ben Jackson
4f31c95aa4 Fix flake8 errors 2019-04-27 14:21:26 +01:00
Ben Jackson
01c0dca3ad Fix signs 2019-02-24 19:41:49 +00:00
Ben Jackson
2cfd5afacb Add first-pass testing framework based on vim's runtest.vim 2019-02-17 19:36:21 +00:00
Ben Jackson
3092c06cd7 Rudimentary support for listing breakpoints using the quickfix window 2019-02-12 22:41:10 +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
c44e0970a4 Clear PC when resetting 2019-02-01 10:05:58 +00:00
Ben Jackson
87db1e3478 Properly responsd to server reverse-request 2018-12-19 00:44:33 +00:00
Ben Jackson
62e9335a10 Support runInTerminal (sort of) 2018-12-16 19:13:10 +00: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
Ben Jackson
b6a9cba52e Support the bash debugger
This required working around some sort of bug where the server returns
an invalid content length. Either that or we are somehow processing the
same message twice with additional escaping? It's really strange.
2018-05-29 00:39:37 +01:00
Ben Jackson
9baea25c46 Start to refactor breakpoints into different types
This basically stores line breakpoints as a map by file name. Soon to
come: function breakpoints and others.
2018-05-28 19:11:29 +01:00
Ben Jackson
979e796bf4 SOrt out the breakpoints TODO. There's still a lot to do in that space 2018-05-28 16:32:41 +01:00
Ben Jackson
b02d35e78d Very hacky: Support for attach
This introduced more hacks than it should. In particular, the sequence
about stack trace requesting became very messy. When we attach, we don't
instantly get a stopped event. This required making the Pause command
actually work (sort of). In this case we often won't have a proper
current thread.

Instead we sort of request all threads whenever we get a thread event,
thought his is horribly hacky and we should really just use the thread
event as-is. We then attempt to pause ALL threads on pause and continue
requests when we don't know the current thread.

Another issue is that when pausing it's likely we don't have the source
location info for the pause location (something like select() or
whatever), so we only set the current frame to the lowest one we have
source for. This sort of roughly matches what you want.

This whole thing makes it clear that threads and stack trace in separate
panes makes no sense. We need to replicate the hierarchy in the
variables view for threads and stack traces.
2018-05-27 23:40:37 +01:00
Ben Jackson
7600e1e652 Add a reset command to undo all the UI and reset everything 2018-05-27 21:40:31 +01:00
Ben Jackson
dbef05b9a5 support restarting via calling Launch again (todo: restart button doesn't work) 2018-05-27 00:04:56 +01:00
Ben Jackson
eeabd00b4a Handle debug and terminated events
Somewhat at least.
2018-05-26 22:03:39 +01:00
Ben Jackson
45a8176de3 remove pointless bothering message 2018-05-26 20:41:57 +01:00
Ben Jackson
7d3af848cf Separate out the display of 'requested' and 'applied' breakpoints
This is a mess, with a load of duplication, but it's a step. When you
request a breakpoint, we add one (in state ENABLED). You can then toggle
it again to change to DISABLED. And once more to delete it.

Once we start the debug server, that all changes and we just start
sending the breakpoints directly to the server and updating based on the
responses. This is far from ideal and somewhat jarring, but this
approach allows me to play around with ideas about what the user
experience should look like.
2018-05-26 19:54:45 +01:00
Ben Jackson
9d9c2214f3 Breakpoints returned from servers rarely have source set
For line-breakpoints we already know it, so just use what we said
originally. For method breakpoints, we have no clue. While some servers
return a line, it could be in any file, so we just ignore them.
2018-05-26 19:08:59 +01:00
Ben Jackson
76f26551fb Probably not working: allow unverified breakpoints 2018-05-26 18:52:09 +01:00
Ben Jackson
c4aefc110c The reason this doesn't work is the servers don't realy populate the breakpoints list in the response. Also, the file:line breakpoints just simply down't work in c++ 2018-05-23 00:34:08 +01:00
Ben Jackson
c9a45b3bdc First attempt to make breakpoints work. Doesn't. Python at least responds with the breakpoints. MS CPP does not, and native debug just throws an error 2018-05-22 23:59:15 +01:00
Ben Jackson
269d09b73e Very basic support for launch configuration
This change refactors the way we launch the job and puts it all in an
internal namespace. Having done that, we are able to launch the job from
the python side. This allows us to neatly load a json file, simlar in
format to .vscode's launch.json, but sufficiently different that users
won't just expect the launch.json to work.

This change allows selecting between 2 different adapters to debug the
same c program.
2018-05-21 23:44:06 +01:00
Ben Jackson
fa84bf7ffc Refactor: Put the code window stuff in its own file 2018-05-21 00:17:26 +01:00