Commit graph

75 commits

Author SHA1 Message Date
Ben Jackson
0e9497ce8f Add cpptools to cpp test proj 2021-05-15 15:55:17 +01:00
Ben Jackson
9113dbb698 stack_trace: Add cursorline highlight and sign for current frame 2021-05-11 19:44:42 +01:00
Ben Jackson
f389d65a24 Add a test for csharp, run in CI 2021-04-15 21:09:09 +01:00
Ben Jackson
b4195eee93 Upgrade to netcoredbg v1.2.0-782
Also upgrade the test project to LTS 3.1 dotnet framework, as MS is
making it very difficult to get framework 2.2 anymore.

Also remove some object files which apparently were included in the
repo.
2021-04-15 18:02:55 +01:00
Ben Jackson
a41db89523 Fix get_configurations test 2021-04-13 18:01:10 +01:00
Ben Jackson
fa92c2a8d5 Add a mode for debugging the extremely flaky netcoredbg 2021-04-11 19:23:47 +01:00
Ben Jackson
054ea35428 Add a way to test with dlv directly. Currrently not ready for the big time 2021-03-22 15:13:58 +00:00
Ben Jackson
b92a89f0d4 Add a way to have adapter specific message handlers 2021-03-19 17:51:59 +00:00
Ben Jackson
82db32780b Add example of ssh to remote host 2021-03-04 13:28:04 +00:00
Ben Jackson
b72aa18dec Add a list to tcl tets 2021-01-08 11:06:33 +00:00
Allan Guigou
ce8dd9113c Remove gradle wrapper
The gradle wrapper is too large of a dependency to include for every
download of vimspector. Users can use a local installation of gradle to
run the sample kotlin application if necessary.
2020-12-31 10:39:01 -05:00
Allan Guigou
ec68811c8a Add support test for kotlin 2020-12-24 15:10:56 -05:00
Ben Jackson
0942aa4523 Fix docker example for python
The example was was using 'launchCommand' which is not valid according
to the schema; it should be 'runCommand'.

But also, it never really worked. Vimspector would start the "adapter"
(in this case, try and connect to the TCP port) before running the
"prepare" commands, wich in this case would actually start debugpy
listening. So to solve that we run the prepare commands earlier.
Hopefully this won't cause a regression for Java and C++ remote attach,
which we don't really have tests for.

Finally, due to the way docker works, when you forward a port and
nothing is listening on it, docker _accepts_ the connection then
immediately drops it. This is _super_ annoying meaning that it looks to
vimspector liek the server instantly dies if it takes nonzero time for
the remote commands to open the port. So to solve this we add loaunch
and attach delays which can be configured in the adapter config. This
actually solves a prolem where the java debugger just takes agest to
attach on remote launch too.

(Finally, finally...) updated the vimspector schema to represent
the real launch/attach remote configuration, which was incorrectly
spec'd at the adapter level, but it's actually per launch/attach block.
2020-12-22 15:45:26 +00:00
Ben Jackson
8261cde3c9 Don't copy the environment to update it
This causes problems on windows, and is wasteful anyway. The subprocess
will pick up the environment from its parent.
2020-12-05 16:42:07 +00:00
Ben Jackson
8e2d352eb8 Fix local adapter specs
Somehow we lost the ability to define adapters in the local
.vimspector.json, I think when GetConfigurations was added.

Put that feature back.
2020-11-30 10:19:02 +00:00
Ben Jackson
e15c50a4f4 Don't request strack trace if the thread isn't stopped 2020-11-28 00:17:42 +00:00
Eduardo Mezêncio
4f03e4f65a Improve lua configuration and test files
Change lua test files to call `require 'lldebugger'` only when using
love, because it's not needed with lua or luajit. Also add `stopOnEntry`
key to test `.vimspector.json` because it works correctly with this
change.
2020-11-22 18:38:40 -03:00
Ben Jackson
a9d0ebde0b Add mapping for Focus, and make focusing a stack frame focus the thread 2020-11-22 14:13:15 +00:00
Ben Jackson
87ce1734ea Update vscode-go to latest version 2020-11-22 12:31:21 +00:00
Ben Jackson
cd3b5f5baa Update mono debug; even though it doesn't work 2020-11-16 21:17:22 +00:00
Eduardo Mezêncio
85865e0012 Add regression tests for lua support
Change Dockerfile to install lua, luajit and love and also to install
nodejs 12 needed to build the lua debug adapter. Create the
love-headless test in support/test/lua to test love without an x server.
2020-11-16 15:08:55 -03:00
Eduardo Mezêncio
2819e224e7 Add lua support through local-lua-debugger-vscode
Add the lua adapter to gadgets.py and installer.py, update the README.md
file and create basic tests using lua, luajit and love.
2020-11-14 19:34:15 -03:00
Ben Jackson
fb86ef924b Update netcoredbg 2020-11-09 21:57:47 +00:00
Ben Jackson
80985148e7 Add "run to cursor" support
We add a 'temporary' option to line breakpionts and try and clear any
temporary breakpionts on the line we end up stopping on. This might not
be art, but _probably_ works in almost all cases that matter.

it's a bit hacky the way we have to push the reason around, but we don't
know where we stopped until we actually get the stack trace response and
SetCurrentFrame

Move temporary breakpionts to match server response

Also delete any existing ones when adding a new one and add tests for
run-to-cursor.

Only continue after we successfully set the breakpoints. This makes it
work in go
2020-10-23 22:53:04 +01:00
Ben Jackson
bd09206caf While debugging, use the correct path for breakpoints 2020-09-27 22:47:22 +01:00
Ben Jackson
778745b5c2 Add a test for ruby 2020-09-11 15:43:53 +01:00
Ben Jackson
3a79ce9ab7 Add a bash test script 2020-09-04 00:31:34 +01:00
Ben Jackson
2710ee2bfa When the start parameter is missing, the behabiour is arbitary
It seems that the behaviour of the start parameter being missing is
server (or perhaps a specific client) dependent. The specification
clearely says that it should be inserted at the column of the original
request, but the servers clearly expect either for that column to be the
beginning of an identifier or for the client to ignore the spec and
request from that position anyway.

Reading the VSCode code, we see that the 'word' before the cursor is
guessed, and if only if BOTH 'start' AND 'length' are supplied, then
they are used to determine where insertion starts, otherwise the current
'word' is used. Unclear what 'word' means in the specific contexts, but
we're relying on iskeyword.
2020-09-04 00:29:39 +01:00
Ben Jackson
3aa949431e Upgrade chrome debugger to 4.12.10 2020-09-03 22:11:57 +01:00
Ben Jackson
ca63c08d6a Add a way to force a str in case #json is really required in a key 2020-08-05 22:24:35 +01:00
Ben Jackson
be44a22903 Allow coercing a type in vimspector config
Initially I considered using #i, #s, etc. to coerce to specific types,
but then it wasn't clear of the semantics (particularly for bool, where
JSON bool true/false, Python bool True/False).

But it turns out that we can just coerce any key from a JSON string.
Users can _probably_ type JSON strings for most things, or use variables
to run scripts to generate them, this allows essentially complete
flexibility to define the data types needed to populate the launch spec.

The purpose of this is to allow some level of automated setup by
requesting data from the user and then (subsequently) saving the
flattneed config to the vimspector config file.
2020-08-05 22:19:38 +01:00
Ben Jackson
aa26d4bc1a Add ability to specify defaults for variables 2020-07-31 22:19:10 +01:00
Ben Jackson
b3c86bc757 Use the original java test code 2020-07-16 08:04:03 +01:00
Ben Jackson
bdca96f663 Fix up java test 2020-07-11 14:06:32 +01:00
Ben Jackson
402071065f Update tclpro; add a test 2020-07-08 13:19:14 +01:00
Ben Jackson
0e56146726 Add installer support for CodeLLDB 2020-07-06 11:24:54 +01:00
Ben Jackson
7848629a1c Add simple rust program tested with CodeLLDB 2020-07-06 10:38:53 +01:00
Ben Jackson
6f3884253c Windows support for cpptools 2020-06-27 17:28:05 +01:00
Ben Jackson
7f625fee9f Upgrade debugpy 2020-06-08 19:58:52 +01:00
Ray Xu
d6a6184421 set GO111MODULE to off and the debug wont fail in go 1.11+ 2020-06-04 16:39:36 +10:00
Ben Jackson
c6d6c7f876 Support "multi-session" mode properly
Document remote debugging and add a test
2020-05-17 14:07:56 +01:00
Ben Jackson
dc3deadb26 Use java 11 2020-05-16 22:55:01 +01:00
Ben Jackson
0452329203 Update java debugger plugin 2020-05-13 17:18:57 +01:00
Ben Jackson
ccf427a7c8 Update java instructions now YCM has nice API for it 2020-05-07 22:28:31 +01:00
Ben Jackson
5cb9c62e7f Fix tab creation when current buffer contains no file 2020-03-28 13:07:00 +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
de04598bc6 Clear exception breakpoints when calling ClearBreakpoints 2020-03-09 21:31:14 +00:00
Ben Jackson
1b7402915c Catch adapter being None and print user-friendly message: 2020-03-08 18:18:29 +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
a56bee7b0a Switch to debugpy over vscode-python
This is just better in every way, and the vscode-python typescript
adapter is being phased out.
2020-02-08 21:15:27 +00:00