Commit graph

186 commits

Author SHA1 Message Date
Ben Jackson
6fd4724189 Launch remote commands in a termianl
This allows stdin and mans you don't need the output window visible to
see the useful process output when debugging a remote-Launch.
2020-09-25 16:36:19 +01:00
Ben Jackson
97bdb0d0cc Show launch failure reason in the splash 2020-09-03 22:09:22 +01:00
Ben Jackson
733843a6d4 Support completion for console and watches.
Add omnifunc for prompt buffers

This synchronous completion can be used with any completion system
including built-in CTRL-X CTRL-O.

The filetype of the prompt buffers is set to VimspectorPrompt so that it
can be identified by completion systems. For example, this works well
with YCM:

let g:ycm_semantic_triggers =  {
  \   'VimspectorPrompt': [ '.', '->', ':', '<' ]
  \ }
2020-09-03 17:48:46 +01:00
Ben Jackson
b2456b587f Centralise the default settings 2020-09-01 16:31:04 +01:00
Ben Jackson
51cc6c4d3a Add VimspectorToggleLog 2020-08-28 14:32:17 +01:00
Ben Jackson
29cb5c914b Add bang versions of install commands to leave the output open 2020-07-22 22:18:19 +01:00
Ben Jackson
375ff4aa27 Suggest installing gadget if possible 2020-07-22 10:52:48 +01:00
Ben Jackson
23e5f6bbf4 Switch to running the actual install_gadget.py
This re-uses the OutputView code to run the installer script. Refactor
to remove connection from the base OutputView (and other places, it
wasn't used - only used after ConnectionUp).

This also consolidates the stdout and stderr buffers for running jobs.
The distinction was always arbitrary and probably an error, based on the
fact that they were separate in the APIs not based on usability.
2020-07-22 10:52:48 +01:00
Ben Jackson
6b89df173f Remove pointless calls to GetOS() everywhere 2020-07-22 10:48:12 +01:00
Ben Jackson
99b582378a Allow ctrl-c to cancel when asked for a variable 2020-07-18 14:39:54 +01:00
Ben Jackson
47ace82364 FixUp: output window should set the global win id 2020-07-18 13:55:00 +01:00
Ben Jackson
3726766694 Documentation for the UI customisation 2020-07-18 13:41:22 +01:00
Ben Jackson
f8cbb7c5b6 Add options to control window sizes
This adds the following options, allowing the default sizes to be
overridden:

- g:vimspector_sidebar_width: Controls the width of the left utility
  windows (variables, watches, stack trace)
- g:vimspector_bottombar_height: Controls the height of the output
  window below the code window

The terminal is typically created as a vertical split of the code
window.  The following control the sizing of the terminal window used
for debuggee input/output when using Vim's built-in terminal.

- g:vimspector_code_minwidth: Minimum number of columns to try and
  maintain for the code window.
- g:vimspector_terminal_maxwidth: Maximum number of columns to use for
  th terminal, when vertically splitting the code window.
- g:vimspector_terminal_minwidth: Minimum number of columns to use when
  it is not possible to fit g:vimspector_terminal_maxwidth columns next
  to the code window with g:vimspector_code_minwidth columns.
2020-07-17 16:52:41 +01:00
Ben Jackson
7a9f75a06e Don't change the value of equalalways
We were trying to avoid equalalways from changing the UI layout by
unsetting it and resetting it after changes. However, re-setting
equalalways actually resizes all the windows, so this never worked.

Instead we judiciously use rightbelow, leftabove, etc. and specify the
exact window sizes we want.

As a side-effect we make the terminal sizing a little more pleasant by
default, ensuring that it is no wider than 80 chars, and tries to use
any remianing vertical space after reserving 80 chars for the code
window.
2020-07-16 16:05:04 +01:00
Ben Jackson
9df680089b Allow default configuraiton to be specified; document selection 2020-07-16 08:33:49 +01:00
Ben Jackson
2c5937c2c1 Support basic UI customisation via a User autocommand 2020-07-16 08:33:49 +01:00
Ben Jackson
de2a924c38 use simpler UI setup commands 2020-07-16 08:33:49 +01:00
Ben Jackson
8d2ea44cb9 Make Restart and Stop work properly (and together) 2020-07-16 08:09:13 +01:00
Ben Jackson
193196cc03 Allow users to close the code window and not crash 2020-07-11 14:08:12 +01:00
Ben Jackson
6cfc313234 Do a better job of tidying up on test failure; note: We can still receive data callbacks after _OnExit, so just ignore that data 2020-07-10 22:49:30 +01:00
Ben Jackson
9f6caadc40 Pre-calculate the gadgetDir, as this is likely used every time 2020-07-09 18:57:28 +01:00
Ben Jackson
044804ca20 Calculate variables on-demand; add an unused-local-port variable-function 2020-07-09 13:07:38 +01:00
Ben Jackson
99faf76dcc Fix traceback when a request is rejected 2020-07-06 10:38:53 +01:00
Aaron Walker
ae2ba01c5b lint 2020-05-21 23:43:37 -04:00
Aaron Walker
3d113eaec4 comments 2020-05-21 23:43:37 -04:00
Aaron Walker
cd1b304d30 relint 2020-05-21 23:43:37 -04:00
Aaron Walker
5e64b07e8d flake and update docker exec command 2020-05-21 23:43:37 -04:00
Aaron Walker
62b3070c50 lint 2020-05-21 23:43:37 -04:00
Aaron Walker
c9b1456759 add docker exec as an attach command 2020-05-21 23:43:37 -04:00
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