Commit graph

71 commits

Author SHA1 Message Date
Ben Jackson
ba9cb2f6d3 WIP: First sort-of untested attempt at readmemory request 2021-06-09 11:25:38 +01:00
Ben Jackson
d43904eb57 Add basic VimspectorDebugInfo command 2021-05-15 17:55:01 +01:00
Ben Jackson
13a5a1b947 Fix traceback when +python3 is not availble 2021-04-09 16:54:49 +01:00
Ben Jackson
85bb8594ab Allow forcing selection from the menu with <leader>F5 2021-03-19 17:51:59 +00:00
Ben Jackson
a53d68f043 Add up and down frame mappings 2021-03-12 21:27:56 +00:00
Ben Jackson
d2b92b7ce5 Fix crash using STop function 2021-03-02 11:12:01 +00:00
Ben Jackson
804b499286 Allow setting the value via the api 2021-02-25 22:15:09 +00:00
Ben Jackson
f2d407256e Use expression completion for watch and set 2021-02-25 22:15:09 +00:00
Ben Jackson
d8d6eb2286 Add ability to set a variable value
This works only for things which have known variablesReference, so
particularly currently only for scopes and theoretically for members.

I think this can work for watches too. will need to check.
2021-02-25 22:15:09 +00:00
Ben Jackson
f40ac5db23 Delay launching the python interpreter until needed 2021-02-25 21:24:40 +00:00
Ben Jackson
d8eb6a0463 Only prompt in 'interactive' contexts to avoid annoying questions 2021-02-24 18:00:08 +00:00
Ben Jackson
cc84e15932 Tidy up, refactor and fix some bugs 2021-02-21 17:01:41 +00:00
dsych
51d551fe52 replacing function calls with plug command 2021-02-21 17:01:41 +00:00
dsych
639e89f5db fixing linting 2021-02-21 17:01:41 +00:00
dsych
0ff9dc5f9e making sure that select marks were set before attempting to extract text 2021-02-21 17:01:41 +00:00
dsych
4466fce20b fixing styling inside vim files 2021-02-21 17:01:41 +00:00
dsych
0d703779dc evaluating select range 2021-02-21 17:01:41 +00:00
dsych
d2990d7bae making sure to open popup relative to cursor 2021-02-21 17:01:41 +00:00
dsych
819d6366ac fully implemented the hover function for vim 2021-02-21 17:01:38 +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
53b1d12447 Allow setting the current thread, use a sign to highlight the line with the current thread 2020-11-22 14:13:14 +00:00
Ben Jackson
f0785c11f2 Allow pausing individual threads (in theory) 2020-11-22 14:13:14 +00:00
Emmanuel Thompson
d5b9411256 Add a GetConfigurations function 2020-11-06 12:05:14 -05: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
0d112d70a0 Add SetLineBreakpoint and ClaerLineBreakpoint APIs
These are useful for running tests (i.e. ensure there's a breakpiont at
the start of the test) and/or other programmatic usages.

They will also be needed for setting temporary breakpionts.
2020-10-17 22:40:08 +01:00
Ben Jackson
1b9763a4fc Minor improvements to console usage
Display failures and stop adding random text which makes the (very
useful) CodeLLDB interface look messy
2020-10-10 16:20:55 +01:00
Ben Jackson
4e5011fe1b Make command line completion work too 2020-09-04 01:18:59 +01:00
Ben Jackson
45f0b68d87 Remove slow debugging code 2020-09-04 00:52:36 +01:00
Ben Jackson
1ace7b648e FixUp: vint 2020-09-04 00:49:37 +01:00
Ben Jackson
0867edd81c FixUp: Correct return values from omnifunc 2020-09-04 00:37:39 +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
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
51cc6c4d3a Add VimspectorToggleLog 2020-08-28 14:32:17 +01:00
Ben Jackson
d86b42bf5b Allow VimspectorShowOutput with no argument 2020-07-31 22:19:10 +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
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
05bbafd60c Close the intaller output when complete 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
99b582378a Allow ctrl-c to cancel when asked for a variable 2020-07-18 14:39:54 +01:00
Ben Jackson
4586aa36ff Improve UI for watch window
Add a WinBar as the whole prompt buffer thing is not that well
undersood. Also allow you to delete a watch from any part of the
expression result too.
2020-04-26 21:31:22 +01:00
Ben Jackson
b20f61bcff Sigh, neovim doesn't support default method arguments 2020-04-25 20:07:03 +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
355f0f0e0c Implement command line completion for watch/eval 2020-01-17 00:02:24 +00:00
Ben Jackson
c898eb47b2 Fix filtering VimspectorShowOutput 2020-01-15 23:17:15 +00:00
Ben Jackson
7456c26c2a Add some :commands for basic usages 2020-01-15 23:17:15 +00:00
Ben Jackson
fc802b61bd Run flake8 and vint in azure 2019-05-09 00:24:06 +01:00