This passes the session id around everywhere and ensures that things
like buffer names are all unique.
We now have the _vimspector_session update to point to the active (or
last accessed tab). This feels fairly natural and mostly seems to work.
NOTE: in vscode there is no "multiple tabs" - they actually add the
subprocesses to the stack trace somehow and when you click on a frame in
that it switches to the session for that process. Each process PC is
visible in the editor. It's kind of confusing.
Things still broken:
- vimspector_session_windows
- breakpoints need to be project-wide
- PC display (how to show "all" PCs, or just show the current one for
the current tab ?)
- it would be nice for the tterminal buffers to be visible on all tabs.
not sure how to do that.
Use the following to recrate the doc:
* clone https://github.com/ycm-core/vim-tools
* create a venv and pip install the requierments
* cd to vimspector dir
* /path/to/vim-tools/html2vimdoc.py -f vimspector README.md > doc/vimspector.txt
Confirm now takes the list of options, list of keys to select them and
the default value. Returned values are always a 1-based index into the
list (like SelectFromList) or -1 to mean esc/ctrl-c.
This uses a nice popup dialog in vim and a crappy input on neovim.
This puts the 3 utility windows at the top, horizontally split, with the
code view below. The terminal window is drawn either vertically split
(if there's room) or horizontally split otherwise. The output window
remains at tht bottom.
We add equivalent sizing options too, setting some defauts that roughly
work on my macbook pro.
We try to guess the best layout to use. In particular we go into
'narrow' mode if there are not enough horizonal columns to fit the
sidebar, code and at least the minimum terminal size. We also try to
move the terminal to be horizontally spit (i.e. vertically stacked) if
we can fit the max number of lines, but only the min number of columns.
This is all a little heuristic, but when testing it myself, it feels
good and tends to pick a good option by default. Users can always
customise the ui mode (g:vimspector_ui_mode and all the various specific
width options)