Commit graph

312 commits

Author SHA1 Message Date
Ben Jackson
3a160aa77a Fix: Crash when deleting a watch that never got a result 2020-07-31 22:19:10 +01:00
Ben Jackson
10e9a75fc7 Tidy UI - use some unicode symbols and organise winbar 2020-07-31 22:19:10 +01:00
Ben Jackson
6593f383cf Use any python for debugpy 2020-07-31 22:19:10 +01:00
Ben Jackson
aa26d4bc1a Add ability to specify defaults for variables 2020-07-31 22:19:10 +01:00
Ben Jackson
1e43cd4870 Use a junction, as symlinks require escalated priviledges on some windows 2020-07-24 21:27:47 +01:00
Ben Jackson
f9d20b9537 Upgrade gadgets when they change
This adds a --upgrade option to install_gadget.py and makes
VimspectorUpdate only update things which have changed.

To do this, we record the gadget spec in a manfiest file and compare it
with the current spec when in upgrade mode.

'Changed' in this case means that the gadget spec has changed from the
last time the installer was run. It does _not_ actually check the
presence of the gadget.
2020-07-24 17:12:07 +01:00
Ben Jackson
8f5b928e4b Allow a statically configured list of gadgets
Useful for storing config in source control
2020-07-23 16:37:03 +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
26d7e95adc Fix windows installer issues - use symlinks not junctions and fix dumb use of PIPE with check_call 2020-07-22 19:27:42 +01:00
Ben Jackson
c50c99ef34 Don't spam echo when jobs finish, revert sudo exit 2020-07-22 16:01:44 +01:00
Ben Jackson
000f7a9232 Prettify the output with some syntax and quiet option 2020-07-22 14:40:23 +01:00
Ben Jackson
4144631d03 Add :VimspectorUpdate 2020-07-22 12:50:44 +01:00
Ben Jackson
98bef3db03 Fix - don't switch windows/buffers to create a new hidden buffer 2020-07-22 10:54:06 +01:00
Ben Jackson
375ff4aa27 Suggest installing gadget if possible 2020-07-22 10:52:48 +01:00
Ben Jackson
05bbafd60c Close the intaller output when complete 2020-07-22 10:52:48 +01:00
Ben Jackson
ca4ab52f8d Fix regression: Don't render winbar if the window isn't valid 2020-07-22 10:52:48 +01:00
Ben Jackson
0140a607b1 Raise autocommand when installer completes. use this in testing 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
025d193493 Add VimspectorInstall command with sort-of completion 2020-07-22 10:48:12 +01:00
Ben Jackson
f945dbcfdd Move gadget config file writing too 2020-07-22 10:48:12 +01:00
Ben Jackson
6b89df173f Remove pointless calls to GetOS() everywhere 2020-07-22 10:48:12 +01:00
Ben Jackson
d3fd0a38f0 Refactor installer fully into installer module 2020-07-22 10:48:12 +01:00
Ben Jackson
e885c95daa Put the cursor at the end of the buffer after evaluations 2020-07-18 18:14:39 +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
80afb153b9 FixUp: Closing the output window causes errors on output 2020-07-18 13:21:17 +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
3beb25f949 Raise an autocommand for the terminal too 2020-07-16 08:33:49 +01:00
Ben Jackson
727214c599 Add a bunch of tests for the ui customisation 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
c6e8e8038f Remove hard-coded terminal width which doesn't work on smaller width screens 2020-07-16 08:14:54 +01:00
Ben Jackson
a4f3fd9c5e Disable relativenumber in utility windows; disable textwidth in neovim too 2020-07-16 08:13:27 +01:00
Ben Jackson
2440a987b2 Tidy unknwon types and values 2020-07-16 08:10:49 +01:00
Ben Jackson
434a6f41d4 Only expand one cheap scope by default - don't keep others expanded from previous frames 2020-07-16 08:10:23 +01:00
Ben Jackson
fc7725fefb Only expand one inexpensive scope; codeLLDB lies about how expensive things are 2020-07-16 08:10:04 +01:00
Ben Jackson
0938d72a8c Re-use a window if we can, as it's more efficient; don't wipe out the generated code buffers in case the code window gets used for temporary buffer switch 2020-07-16 08:09:53 +01:00
Ben Jackson
8d2ea44cb9 Make Restart and Stop work properly (and together) 2020-07-16 08:09:13 +01:00
Wayne Bowie
f81cc126c3 Format fix 2020-07-14 14:04:31 -05:00
Wayne Bowie
f9f0d5a83e No longer throws a KeyError when checking for non expensive scope 2020-07-14 12:23:09 -05:00
Ben Jackson
0de023e3c4 Re-raise errors that aren't expectd 2020-07-11 14:42:35 +01:00
Ben Jackson
7c943c2ed7 Fix the terminal window to 80 columns 2020-07-11 14:08:45 +01:00
Ben Jackson
036c9b9605 Fix neovim not having the same classes as vim 2020-07-11 14:08:29 +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
b0d41eb347 Scratch buffer still makes sense for the code window buffer where we ask for it from the sevrer 2020-07-11 11:53:39 +01:00
Ben Jackson
cb39e2b511 Allow closing of the UI windows; check valid flags and set buffers to be hidden. delete them on Reset 2020-07-11 11:44:15 +01:00
Ben Jackson
5ce4147361 Manipulate buffers for variables, watches and stack trace 2020-07-11 10:13:45 +01:00