diff options
author | D. Ben Knoble <ben.knoble+github@gmail.com> | 2021-07-23 08:59:31 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-23 21:59:31 +0900 |
commit | 530b38de342a21cce330a32af0c1b66671d335c2 (patch) | |
tree | 4d6869f524b17e81ffea7defb7f42a4c33e7da97 /test/test-files/smlnj | |
parent | 5ad4fdd583116ec253aaf43e2d457cd3e3aa5587 (diff) | |
download | ale-530b38de342a21cce330a32af0c1b66671d335c2.zip |
Vim popup (#3817)
* implement vim popups for preview
Details on implementation
-------------------------
- we make use of the |popupwin| api
- we split implementations (Nvim* vs. Vim* prefix) and call the right
one based on has('nvim')
- we follow a similar structure in each function, using the relevant API
- popup_list, win_execute, popup_settext in VimShow
- popup_create in VimCreate
- popup_close in VimClose
Some differences
----------------
- we DON'T have VimPrepareWindowContent because we use arguments to
popup_create for borders, padding, etc., and it also takes care of
buffer creation.
- we follow the protocol of setting and using w:preview for information,
but we only need the ID
- InsertEnter is the only autocommand required, because of
popup_create's moved argument. Any cursor movement with 'any' will
close the popup. This in turns means VimClose is only called from
InsertMode, so no mode-restoration necessary
- we don't tweak too much in the buffer because vim's popup buffers
already have most relevant settings and aren't editable without
calling popup functions.
- I enabled scrollbars, close buttons, dragging, and resizing
- vim popups get as big as they need to by default, so no worrying about
truncating/hiding/size
Note: we might want to consider changing w:preview to w:ale_preview to
avoid clashes if someone else tries to use the same variable
* floating window: document that vim supports it
* lint: fix indent/cont. lines
Diffstat (limited to 'test/test-files/smlnj')
0 files changed, 0 insertions, 0 deletions