Commit graph

157 commits

Author SHA1 Message Date
Ben Jackson
8c4112cd1f breakpoints list: fix listing while debugging
Also, open the quickfix list when listing breakpoints, and add a test
2020-05-17 21:40:51 +01:00
Ben Jackson
5837135fee Allow moving the gadget/configuration dirs to arbitrary location 2020-05-12 19:39:32 +01:00
Ben Jackson
7a70519b03 Add basic support for conditional breakpoints
This is the minimal required for a user to use conditional breakpoint -
we add an options dict to each breakpoint (line and function) and allow
the condition to be supplied. We add a plug mapping and a default
shortcut (<leader><F9>) to add one where we ask the user to enter the
condition and hit expression. This isn't great but it works.

We don't check the capabilities, so they would just be ignored if used
on a server that doesn't support them. We also ask for a hit expression
which most users won't understand so this isn't ideal either.

No tests yet.
2020-04-25 19:57:42 +01:00
Ben Jackson
93edbe468b Add autoselect to configs - set to false to prevent being used when no other configs are defined 2020-04-01 16:46:06 +01:00
Ben Jackson
1b7d0caf26 Ignore loadedSource event 2020-04-01 16:44:51 +01:00
Ben Jackson
0e4cad302d Don't terminal debuggee 2020-04-01 16:44:51 +01:00
Ben Jackson
5cb9c62e7f Fix tab creation when current buffer contains no file 2020-03-28 13:07:00 +00:00
Ben Jackson
59f23c7545
Merge branch 'master' into no-name 2020-03-27 15:09:02 +00:00
Ben Jackson
1003cdc0b2 Add a splash popup while starting up
Sometimes it can take quite a while to start up and initialise the debug
adapter. So we use popup/float to display the status as we start up and
shut down.

This increases minimum Vim version to 8.2, but that's been out for ages
now and I intend to agressively require latest/later vim/neovim
versions.
2020-03-26 23:25:50 +00:00
Ben Jackson
8664c0ad78 Don't create a new buffer when opening the vimspector tab 2020-03-26 21:13:04 +00:00
Ben Jackson
d42fd51f35 Support c-style comments in JSON
Debate rages about whether JSON should have comments. The specification
says it shouldn't but the author of JSON suggested that if you want to
use JSON for configuration, then pipe it through jsmin before parsing.

So that's what we do, using a tiny JSON minifier from
https://github.com/getify/JSON.minify/tree/python

Closes #135
2020-03-21 15:16:07 +00:00
Ben Jackson
1b7402915c Catch adapter being None and print user-friendly message: 2020-03-08 18:18:29 +00:00
Ben Jackson
c4bedcee89 Set the code window to the current buffer 2020-02-16 22:49:15 +00:00
Ben Jackson
37fefafe35 Fix tracebacks when the debug adapter dies very quickly 2020-02-16 20:15:41 +00:00
Ben Jackson
68a45b5771 Fix workspace root when no vimspector conf - use dir of current file 2020-02-16 20:01:00 +00:00
Ben Jackson
267f202dad Fix LGTM error: python default arguments are mutable\! 2020-02-16 19:45:58 +00:00
Ben Jackson
be32a0a1a8 Add --enable-custom to load custom gadget meta 2020-02-16 17:23:49 +00:00
Ben Jackson
583fb95ea0 Read configurations from a per-filetype directory or a default location as well as local config file 2020-02-16 17:22:53 +00:00
Ben Jackson
8052484cc7 Use YCM python style 2020-02-08 21:15:27 +00:00
Ben Jackson
19cc58f09e Set syntax in stack trace too 2020-02-04 13:04:09 +00:00
Ben Jackson
74eb94fe53 Allow PID to be set by variables, e.g. shell 2020-01-31 16:07:26 +00:00
Ben Jackson
8d4ec3f53a Supress errors in more appropriate places 2020-01-31 16:07:26 +00:00
Ben Jackson
309c292413 Store variables supplied _before_ parsing adapter/config varibales 2020-01-31 16:07:26 +00:00
Ben Jackson
355f0f0e0c Implement command line completion for watch/eval 2020-01-17 00:02:24 +00:00
Ben Jackson
7456c26c2a Add some :commands for basic usages 2020-01-15 23:17:15 +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
dcdab63516 Remove use of bindeval() as it is not suported in neovim 2020-01-15 23:17:15 +00:00
tinmarino
9be0f43a5f Feature: Silent Errors if not connected 2020-01-15 10:59:17 -03:00
Ben Jackson
9f0becab7b Flake8 fixes 2020-01-10 12:19:58 +00:00
Ben Jackson
bbaab0ebc1 Fix true/false in JSON when setting up adapter 2020-01-10 09:28:02 +00:00
Ben Jackson
8d7de7172a Allow arbitrary ssh args 2020-01-10 09:26:13 +00:00
tinmarino
1e153910fa Fix: Remove balloon '...' in windows != code_window
Problem: In non-code window, user see a '...' balloon even if python
knows it does not need to work
Solution: use pyeval in vim so that python's knowledge is getting back
from the stack as return value
2020-01-09 20:37:03 -03:00
Ben Jackson
ed6beff03b Enable syntax highlighting for watches and locals 2019-12-15 10:48:21 +00:00
Ben Jackson
25b22d2a9e Allow gadget config to set up default values for launch configuration 2019-11-05 19:02:17 +00:00
Ben Jackson
0057094179 Allow gadget config in .gadgets.d to override the installed config 2019-11-05 19:02:17 +00:00
Ben Jackson
5586d9e694 Allow setting exception breakpoints in debug config 2019-11-05 18:35:36 +00:00
Ben Jackson
f173a043be Find the vimspector config from the parent of the open file not the current working directory 2019-11-05 18:35:23 +00:00
Ben Jackson
2931f79d15 Don't crash when no file is open on start 2019-10-27 19:09:33 +00:00
Ben Jackson
12df3c53a2 Allow selecting a specific launch config on LaunchWithSettings 2019-10-26 13:10:44 +01:00
Ben Jackson
a04dfcb4db Update vscode-python and document the startup sequence, which is clearly broken in vscode-python 2019-10-13 18:40:31 +01:00
Ben Jackson
b64946e34c Remember user choices
There are 2 things we ask for input for:

- input variables
- exception breakpoints

It's irritating to have to repeat yourself when going through the
edit/debug loop.

Howver, cacheing has some quirks and disadvantages - they key one being
when to clear the cache. To resolve this we take two slightly different
approaches:

1. For input variables, we remember the choice of the user, but present
that only as the default, so they can just hit enter to accept it. We
already rememeber the choices for the length of the debug session (i.e.
across 'restart' calls).

2. For exception breakpoints, we remember the choices for as long as the
current session is running.

This allows users to hit the 'restart' button without being prompted at
all.

Meanwhile, we also remove the (broken) support for exception breakpoint
matchers and state the server default for exception breakpoint filters.
2019-10-05 22:20:33 +01:00
Ben Jackson
dcc2c6c365 Manual python test 2019-08-04 15:20:54 +01:00
Ben Jackson
b6a2e3df9e Delay configurationDone until we have received _responses_ to the breakpoint requests, as go server seems to require this 2019-07-31 19:02:09 +01:00
Ben Jackson
5076c62ed2 Ensure the handler runs by setting it before killing the job. The callback must be being called syncronously if the process terminates immediately 2019-07-27 11:23:54 +01:00
Ben Jackson
0b7915e0d9 More debugging; why is the shutdown handler sometimes not firing 2019-07-27 11:18:32 +01:00
Ben Jackson
3edd1589c3 Try and work out why the server exit handler isn't called 2019-07-27 10:57:50 +01:00
Ben Jackson
6f9fe0cd6f Increase timeout and yet more debug logging 2019-07-27 10:57:50 +01:00
Ben Jackson
325d39b64d Improve debugging of flaky tests 2019-07-27 10:57:50 +01:00
Ben Jackson
7813f06dd1 May make the tests less flaky 2019-07-27 10:57:50 +01:00