| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: cannot loop through pum menu with multiline items with
fuzzy and noselect in 'completeopt' (Tomasz N)
Solution: remove unnecessary compl_no_select condition (glepnir)
fixes: vim/vim#16641
closes: vim/vim#16674
https://github.com/vim/vim/commit/3af0a8d8f5b090a6a4b085e7b6ee0f5f87eda399
Co-authored-by: glepnir <glephunter@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: patch 9.1.1121 used a wrong way to handle enter
Solution: compl_enter_selects also needs to consider the selected item
in ins_compl_new_leader() (glepnir)
closes: vim/vim#16673
https://github.com/vim/vim/commit/44180416981000ad0bc5db4686889892e7a05cdd
Co-authored-by: glepnir <glephunter@gmail.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Enter does not insert newline with "noselect" when the pum is
visible (lifepillar)
Solution: When Enter is pressed and no complete-item is selected,
ins_compl_prep returns false, and the edit function continues
processing Enter to insert a new line. (glepnir)
fixes: vim/vim#1653
closes: vim/vim#16653
https://github.com/vim/vim/commit/07f0dbe3aa326fdf4d0f1b1cf7d79df89e91fc6e
Co-authored-by: glepnir <glephunter@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
char (#32541)
Problem: No test for 'listchars' "precedes" with double-width char.
Solution: Add a test and fix a typo in code (zeertzjq).
closes: vim/vim#16675
https://github.com/vim/vim/commit/08a83a033a32c0f5bc42eaa63162c21c369cb4ae
Cherry-pick test_listchars.vim changes from patch 9.0.0625.
Fix a regression from #30014 by moving the mb_schar assignment after the
double-width check.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Messages preceding a `cmdline_show->prompt` event can not be
distinguished as such when receiving the event. (But since
`msg_show` handlers should be scheduled, one can already check
whether a prompt is active when displaying the message.)
Solution: Rather than add a new kind again, use the `confirm` kind.
Could be seen as slightly misleading where it is more of
a choice rather than a confirmation, but that already applies
to `confirm()` as well...
|
| |
| |
| |
| | |
Add a new field `virt_lines_overflow` that enables horizontal scrolling
for virtual lines when set to "scroll".
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PuTTY sets TERM=xterm, but sends ESC[1~ and ESC[4~ for Home/End keys,
which does not match what the 'xterm' terminfo has for khome/kend, so
libtermkeys instead reports them as the original DEC VT220 names.
The VT220 came with a DEC LK201 keyboard which had the following keys in
the area above arrow keys (where PCs now have Ins/Del/Home/End/etc):
┌────────┬────────┬────────┐
│ Find │ Insert │ Re- │
│ │ Here │ move │
├────────┼────────┼────────┤
│ Select │ Prev │ Next │
│ │ Screen │ Screen │
└────────┴────────┴────────┘
These would send ESC[x~ sequences in the expected order:
┌────────┬────────┬────────┐
│ ESC[1~ │ ESC[2~ │ ESC[3~ │
├────────┼────────┼────────┤
│ ESC[4~ │ ESC[5~ │ ESC[6~ │
└────────┴────────┴────────┘
Modern terminals continue to use the same sequences for Ins/Del as well
as PageUp/PageDn. But the VT220 keyboard apparently had no Home/End, and
PuTTY apparently chose to re-purpose the Find/Select key sequences for
Home/End (even though it claims to emulate Xterm and this doesn't match
what actual Xterm does).
So when Home/End are used in Neovim through PuTTY with TERM=xterm (the
default setting), libtermkey finds no match for the received sequences
in the terminfo database and defaults to reporting them as <Find> and
<Select> respectively.
PuTTY is not unique here -- tmux *also* sends ESC[1~ and ESC[4~ after
its internal translation -- but the difference is that 'tmux' terminfo
correctly maps them to Home/End so Neovim recognizes them as such, while
PuTTY defaults to using 'xterm' which uses a different mapping.
This initial patch only allows Neovim to recognize <Find> and <Select>
key codes as themselves, so that the user could manually map them e.g.
using ":imap <Find> <Home>".
Alternatives:
- Using TERM=putty(-256color) would of course be the most correct
solution, but in practice it leads to other minor issues, e.g. the
need to have different PuTTY config profiles for older or non-Linux
systems that lack that terminfo, or tmux's insistence on rendering
italics as reverse.
- Using Neovim through tmux avoids the problem (as tmux recognizes
ESC[1~ on input), but is something that needs to be manually run
every time.
The keycodes.h constants are slightly misnamed because K_SELECT was
already taken for a different purpose.
|
| |
| |
| |
| |
| |
| |
| |
| | |
from netrw (#32506)
closes: vim/vim#16494
fixes: #vim/vim#16486
https://github.com/vim/vim/commit/c729d6d154e097b439ff264b9736604824f4a5f4
|
| |
| |
| |
| |
| |
| |
| |
| | |
**Problem:** An erroneous query in the treesitter highlighter gives a
deluge of errors that makes the editor almost unusable.
**Solution:** Detach the highlighter after an error is detected, so that
it only gets displayed once (per highlighter instance).
|
| |
| |
| |
| |
| | |
Problem: `try_leave()` assertions moved in #31600 no longer hold.
Solution: Remove the assertions.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Computing fold levels for an empty buffer (somehow) breaks the
parser state, resulting in a broken highlighter and foldexpr.
Cached foldexpr parser is invalid after filetype has changed.
Solution: Avoid computing fold levels for empty buffer.
Clear cached foldinfos upon `FileType`.
|
| |
| |
| |
| |
| |
| |
| | |
Problem: `vim.treesitter._create_parser()` silently loads the buffer,
bypassing the swapfile prompt.
Solution: Error for an unloaded buffer, ensure buffer is loaded in
`vim.treesitter.start()` instead.
|
| |
| |
| |
| |
| |
| |
| | |
Problem:
lua-bit is built-in, but there is no doc
Solution:
Upstream doc from https://bitop.luajit.org/
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: after #32458, it may still be possible for `busy_start` UI events to be
emitted without matching `busy_stop`s in the terminal.
Solution: do `terminal_enter`'s cursor visibility check immediately after
setting/restoring State so it occurs before events. This ensures that if pending
escape sequences are processed while in `terminal_enter`, the cursor's initial
visibility is set before `is_focused` is checked by `term_settermprop`.
As a result, we can move the call to `showmode` back to where it was originally.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: too many strlen() calls in findfile.c
Solution: refactor findfile.c and remove calls to strlen()
(John Marriott)
closes: vim/vim#16595
https://github.com/vim/vim/commit/d6e3c9048dfb7e8f08f8fadc820c7e2208c3f030
Co-authored-by: John Marriott <basilisk@internode.on.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Edit test is flaky when run under valgrind.
Solution: Send some text to the terminal to trigger a redraw.
https://github.com/vim/vim/commit/14f91765c07e147e0c8554a50560ae24dbd5ecea
Cherry-pick Test_edit_shift_bs() from patch 8.2.4876.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(#32500)
related: vim/vim#16607
https://github.com/vim/vim/commit/5647c91355f1ff3a1030c737bf5133bb7da5bb76
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: This keyword is used by GCC and Clang to prevent -Wpedantic
(and other options) from emitting warnings for many GNU C extensions.
This is used heavily in Alpine Linux through musl libc and
foritfy-headers. Without filtering the __extension__ keyword some type
definitions are duplicated. For example, timeval is defined once as
struct timeval { time_t tv_sec; suseconds_t tv_usec; };
and once as:
__extension__ struct timeval { time_t tv_sec; suseconds_t tv_usec; };
Without this patch, the LuaJIT C parser doesn't recognize that these
definitions are equivalent, causing unit test to fail on Alpine Linux.
Solution: Filter out the keyword in filter_complex_blocks.
|
| |
| |
| |
| |
| |
| | |
We need to add a separate variable to keep track of this information,
since we cannot read the length of the valid regions table itself, since
it has holes.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
on_proc_exit() has a special-case that assumes that the UI client will
never spawn more than 1 child process.
Solution:
If the Nvim server exits, the stream EOF will trigger `rpc_close()` in
the UI client, so we don't need the special case in `on_proc_exit`.
Pass `Channel.exit_status` from `rpc_close()` so that the correct exit
code is reflected.
|
| |
| |
| |
| |
| | |
Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
Co-authored-by: Julian Visser <12615757+justmejulian@users.noreply.github.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#32487)
Contain the vimNotation syntax group, matching this at top level is
unnecessary and very slow.
The removed vimString and vimNumber definitions are broken and/or never
match. They have long been replaced by newer definitions.
closes: vim/vim#16645
https://github.com/vim/vim/commit/68ba6c2c6c165796225f321597341a464fd72b63
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
|
| |
|
|
|
|
| |
#32464
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: `showmode` in `terminal_enter` may cause `vpeekc` to process events,
which may handle pending escape sequences. If `CSI ? 25 l` is handled to hide
the cursor, it may remain hidden even after leaving terminal mode if both
`terminal_enter` and (indirectly) `showmode` call `ui_busy_start`, as there is
only one matching call to `ui_busy_stop` after leaving terminal mode.
Solution: let `terminal_enter` handle setting the initial visibility of the
cursor before calling `showmode`.
Closes #32456.
This simple solution assumes it isn't possible for e.g. `os_breakcheck` to be
called indirectly by something else before `terminal_enter` initially handles
cursor visibility and after it restores it, which I think is true.
|
|
|
|
|
| |
There are too many flakes and intermittent failures to reliably use it.
Disable it for the time being until things stabilize.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The "Ukrainian enhanced keymap" allows you to type Ukrainian in Vim
using jcuken Windows layout.
Original file is made by Ivan Korneliuk and can be found at
https://github.com/vansha/ukrainian-enhanced.vim. It is being added here
with the permission of the author.
There is another ukrainian layout already in Vim, namely the
keymap\ukrainian-jcuken.vim script by Anatoli Sakhnik. But this one
differs in way it maps numeric keys. It uses values usual for Windows
users.
closes: vim/vim#16628
https://github.com/vim/vim/commit/3f60114236cff60caf117fd708476fd4ff72252b
Co-authored-by: Vladyslav Rehan <rehanvladyslav@gmail.com>
|
|
|
|
|
|
|
|
|
| |
insert-completion (#32448)
closes: vim/vim#16636
https://github.com/vim/vim/commit/faf4112cdc60ca126986da15148f78337f126cf7
Co-authored-by: glepnir <glephunter@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Problem: Inconsistencies in get_next_or_prev_match() (after 9.1.1109).
Solution: Change "file" to "entry" or "match" in comments. Use the same
order of branches for PAGEUP and PAGEDOWN (zeertzjq).
closes: vim/vim#16633
https://github.com/vim/vim/commit/b6c900be9ce49f688d3a03c2767dedb48e4f23ae
|
|
|
|
|
|
|
|
| |
`command` was already resolved via a `completionItem/resolve` request
but only if `additionalTextEdits` were also present, and the
`resolveSupport` capability wasn't listed.
Closes https://github.com/neovim/neovim/issues/32406
|
|
|
|
| |
Ubuntu 20.04 is deprecated.
|
|
|
|
|
|
|
|
|
| |
Problem: set winbar on a floating window which only have one row will
cause crash.
Solution: when new floating window only have one room don't copy winbar
from target window"
Fix #19464
|
|\
| |
| | |
vim-patch: runtime file updates
|
| |
| |
| |
| |
| |
| |
| |
| | |
closes: vim/vim#16625
https://github.com/vim/vim/commit/d7deeffe11f4db3cce19236ddb80831652a87e83
Co-authored-by: Matt Perry <matt@mattperry.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
closes: vim/vim#16626
https://github.com/vim/vim/commit/407319fe89d5df2c732937474479803d67761879
Co-authored-by: Matt Perry <matt@mattperry.com>
|
|/
|
|
|
|
|
|
| |
The legitimacy of the binaries can't be guaranteed and poses a security
risk. A replacement version of these may be introduced in the future in
a more secure manner.
Closes https://github.com/neovim/neovim/issues/32431.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: cannot loop through completion menu with fuzzy and nosort in
'completeopt'
(Tomasz N)
Solution: Reset cur to zero and update compl_shown_match when
'completeopt' contains "nosort" but not "noselect"
(glepnir)
fixes: vim/vim#16624
closes: vim/vim#16629
https://github.com/vim/vim/commit/c0b7ca406ba18640c56e2746d6f6d03549d53072
Co-authored-by: glepnir <glephunter@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Problem: cmdexpand.c hard to read
Solution: refactor the file slightly (glepnir)
closes: vim/vim#16621
https://github.com/vim/vim/commit/977561a7198b5d31a17b852e332704025c2dbdc8
Co-authored-by: glepnir <glephunter@gmail.com>
|
|
|
|
|
|
|
|
|
| |
continuation comments to EOL (#32435)
closes: vim/vim#16630
https://github.com/vim/vim/commit/4f010c90bdcb56a9c72cfee4d6fe3130b88616f8
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Problem: 'smoothscroll' gets stuck with 'listchars' "eol".
Solution: Count size of 'listchars' "eol" in line size when scrolling.
(zeertzjq)
related: neovim/neovim#32405
closes: vim/vim#16627
https://github.com/vim/vim/commit/2c47ab8fcd7188fa87053c757ea86b0d846c06c1
|
|
|
|
| |
Co-authored-by: Gregory Anders <greg@gpanders.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| |
|