Justin M. Keyes
31dfecb458
docs: misc, editorconfig
...
fix https://github.com/neovim/neovim/issues/36858
2025-12-15 13:55:15 -05:00
Tristan Knight
8165427b4d
fix(lsp): correct capability checks for dynamic registration ( #36932 )
...
Refactor capability checks in Client:_supports_registration and
Client:supports_method to properly handle dynamicRegistration and unknown
methods. Now, dynamic capabilities are checked before assuming support for
unknown methods, ensuring more accurate LSP feature detection.
2025-12-15 13:23:57 -05:00
glepnir
e265cc28f9
refactor(test): deprecates functions in some tests #36972
...
Problem: feed_command, nvim_buf_set_option, nvim_buf_get_number, and exc_exec
are marked as deprecated.
Solution: Remove them from the test units in api/buffer_spec, autocmd/focus_spec,
ui/input_spec, and editor/put_spec.
Some test units only used a few deprecated functions, so creating a separate PR
for each would be excessive. Therefore, several were combined into a single PR.
2025-12-15 10:58:24 -05:00
glepnir
df849f6541
refactor(test): use command, pcall_err in num_options_spec #36933
...
Problem: feed_command is marked as deprecated, and validating error messages
is a bit verbose.
Solution: use command and pcall_err with matches
2025-12-15 02:13:58 -05:00
glepnir
86a4588d4a
test: remove feed_command in undo_spec #36953
...
Problem: feed_command is marked as deprecated.
Solution: replace it with command and pcall_err.
2025-12-15 02:11:23 -05:00
Riley Bruins
976a47e81b
Revert "refactor(treesitter): use scratch buffer for string parser" #36964
...
This reverts commit 2a7cb32959 .
2025-12-15 02:09:36 -05:00
zeertzjq
2700f6642a
fix(buffer): switching buffer should respect jumpoptions+=view ( #36969 )
...
Also add missing change to buflist_findfmark() from #19224 .
2025-12-15 14:45:11 +08:00
zeertzjq and Hirohito Higashi
f494ce77f1
vim-patch:9.1.1978: tests: Test_smoothscroll_number() may fail ( #36965 )
...
Problem: tests: Test_smoothscroll_number() may fail because of
'showcmd'
Solution: Send redraw command (Hirohito Higashi)
closes : vim/vim#18921
https://github.com/vim/vim/commit/5193375b10bee038aa197c44602e1a5cf2dba6bf
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com >
2025-12-15 01:06:13 +00:00
zeertzjq and Gordian Dziwis
f5e39560ff
vim-patch:9.1.1980: filetype: N-Quads files are not recognized ( #36967 )
...
Problem: filetype: N-Quads files are not recognized
Solution: Detect *.nq files as nq filetype
Reference:
- https://www.w3.org/TR/n-quads/
closes : vim/vim#18923
https://github.com/vim/vim/commit/6c027b25f114595a21fcb5031abe366349ad5a9c
Co-authored-by: Gordian Dziwis <gordian@dziw.is >
2025-12-15 00:55:41 +00:00
zeertzjq and Doug Kearns
3985257496
vim-patch:9.1.1979: :helpclose allows range and counts ( #36966 )
...
Problem: :helpclose incorrectly accepts a range and a count.
Solution: Remove EX_COUNT and EX_RANGE from the command definition.
(Doug Kearns)
closes : vim/vim#18917
https://github.com/vim/vim/commit/4c141bae3bd7afd7eb63c72c835d356fbdff61e2
Co-authored-by: Doug Kearns <dougkearns@gmail.com >
2025-12-15 08:38:42 +08:00
Jaehwang Jung
63737e6e73
fix(treesitter): no injection highlighting on last line #36951
...
Problem:
If the last visible line in a window is not fully displayed, this line
may not get injection highlighting. This happens because line('w$')
actually means the last *completely displayed* line.
Solution:
Use line('w$') + 1 for the botline.
This reverts 4244a96774
"test: fix failing lsp/utils_spec #36609 ",
which changed the test based on the wrong behavior.
2025-12-14 19:01:49 -05:00
zeertzjq
592582ba48
fix(input): don't exit on EOF when peeking for input with -es ( #36948 )
...
Only exit on EOF when doing a blocking wait for input.
2025-12-15 08:00:40 +08:00
Jan Edmund Lazo and Bram Moolenaar
7ce17cd2a2
vim-patch:8.2.4529: Vim9: comparing partial with function fails
...
Problem: Vim9: comparing partial with function fails.
Solution: Support this comparison. Avoid a crash. (closes vim/vim#9909 )
Add more test cases.
https://github.com/vim/vim/commit/ed0c62e7b16b62655824df28cdd6bd75aadbb8fc
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-14 10:58:53 -05:00
Jan Edmund Lazo and Bram Moolenaar
2c560d8544
vim-patch:9.0.0025: accessing beyond allocated memory with the cmdline window
...
Problem: Accessing beyond allocated memory when using the cmdline window in
Ex mode.
Solution: Use "*" instead of "'<,'>" for Visual mode.
https://github.com/vim/vim/commit/c6fdb15d423df22e1776844811d082322475e48a
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-13 21:08:10 -05:00
Jan Edmund Lazo and Bram Moolenaar
cd543d618d
vim-patch:8.2.4763: using invalid pointer with "V:" in Ex mode
...
Problem: Using invalid pointer with "V:" in Ex mode.
Solution: Correctly handle the command being changed to "+".
https://github.com/vim/vim/commit/f50808ed135ab973296bca515ae4029b321afe47
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-13 21:08:10 -05:00
Jan Edmund Lazo and Bram Moolenaar
0c70fbf0d6
vim-patch:8.2.4633: Visual range does not work before command modifiers
...
Problem: Visual range does not work before command modifiers.
Solution: Move Visual range to after command modifiers.
https://github.com/vim/vim/commit/c75bca3ee955ff36ece99a42041733ddea5f45a7
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-13 21:02:17 -05:00
zeertzjq
384a039db7
vim-patch:9.1.1974: tests: missing cleanup in Test_bwipe_during_save()
...
Problem: tests: missing cleanup in Test_bwipe_during_save().
Solution: Reset &charconvert.
closes : vim/vim#18908
https://github.com/vim/vim/commit/353103e59afddbfae8432e715217b809e8e15998
2025-12-12 15:51:06 +08:00
zeertzjq and glepnir
e9da68effe
vim-patch:9.1.1971: Crash when buffer gets deleted inside charconvert during save
...
Problem: Crash when buffer gets deleted inside charconvert during save
Solution: Check for `b_saving` inside `can_unload_buffer()`, so we don’t try to
unload a buffer while it’s still being saved (glepnir).
closes : vim/vim#18901
https://github.com/vim/vim/commit/fe1c57cd2caa7de2ce23557646d6c62a9a1b4f92
Co-authored-by: glepnir <glephunter@gmail.com >
2025-12-12 15:50:44 +08:00
zeertzjq and phanium
2b02dfa020
vim-patch:9.1.1970: visual end column returns wrong value after block edit ( #36923 )
...
Problem: visual end column returns wrong value after block edit
Solution: update visual end column after block insert (phanium)
fixes: vim/vim#18900
closes : vim/vim#18903
https://github.com/vim/vim/commit/fa3bdc2501faeae7f3211fc8559ded43e27b864c
Co-authored-by: phanium <91544758+phanen@users.noreply.github.com >
2025-12-12 09:38:11 +08:00
zeertzjq and Christian Brabandt
5a83f23430
vim-patch:98a0cbf: patch 9.1.1971: crash with invalid positional argument 0 in printf() ( #36919 )
...
Problem: crash with invalid positional argument 0 in printf()
Solution: Reject positional arguments <= 0.
closes : vim/vim#18898
https://github.com/vim/vim/commit/98a0cbf05bd45fa6c4ede7b791fd21760bc587c8
Co-authored-by: Christian Brabandt <cb@256bit.org >
2025-12-12 08:14:58 +08:00
zeertzjq
18642a63be
vim-patch:9.1.1969: Wrong cursor position after formatting with long 'formatprg' ( #36918 )
...
Problem: Wrong cursor position after formatting with long 'formatprg'.
Solution: Don't show hit-enter prompt when there are stuffed characters.
Previously a stuffed character at the hit-enter prompt will dismiss the
prompt immediately and be put in the typeahead buffer, which leads to
incorrect behavior as the typeahead buffer is processed after the stuff
buffers. Using vungetc() when KeyStuffed is TRUE can fix this problem,
but since the hit-enter prompt isn't visible anyway (and is likely not
desired here), just skip the prompt instead, which also avoids a wait
when using "wait" instead of "hit-enter" in 'messagesopt'.
fixes: vim/vim#18905
closes : vim/vim#18906
https://github.com/vim/vim/commit/50325c3d591806c57b04512dc103214acd0f2f18
2025-12-12 08:07:55 +08:00
Jan Edmund Lazo and Yegappan Lakshmanan
08eb133c3f
vim-patch:8.2.4474: memory allocation failures not tested in quickfix code
...
Problem: Memory allocation failures not tested in quickfix code.
Solution: Add alloc IDs and tests. (Yegappan Lakshmanan, closes vim/vim#9848 )
https://github.com/vim/vim/commit/5a2d4a3ecb67942d47615507a163ffcd5863c073
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com >
2025-12-10 21:55:52 -05:00
Jan Edmund Lazo and Bram Moolenaar
e31cfc5eac
vim-patch:partial:8.2.2400: Vim9: compiled functions are not profiled
...
Problem: Vim9: compiled functions are not profiled.
Solution: Add initial changes to profile compiled functions. Fix that a
script-local function was hard to debug.
https://github.com/vim/vim/commit/b204990346ca857802b174afe8a7fbb05e4f318e
Port only test_profile.vim.
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-10 20:28:17 -05:00
Jan Edmund Lazo and Bram Moolenaar
1ae7c11392
vim-patch:8.2.2404: Vim9: profiling try/catch not correct
...
Problem: Vim9: profiling try/catch not correct.
Solution: Add profile instructions. Fix that "entry" did not rethrow an
excpetion.
https://github.com/vim/vim/commit/107e9cecf72928b4aaaf08b73bf2d191924ab695
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-10 20:28:17 -05:00
Jan Edmund Lazo and Bram Moolenaar
b3490536b9
vim-patch:8.2.2403: Vim9: profiling if/elseif/endif not correct
...
Problem: Vim9: profiling if/elseif/endif not correct.
Solution: Add profile instructions. Fix that "elseif" was wrong.
https://github.com/vim/vim/commit/ced68a0070dac059fc978a1a99e2893edf158116
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-10 20:28:17 -05:00
Jan Edmund Lazo and Bram Moolenaar
dccc35e6e9
vim-patch:8.2.2571: test may leave file behind
...
Problem: Test may leave file behind.
Solution: Delete the temporary file. Don't profile in the running Vim
instance.
https://github.com/vim/vim/commit/8c801b374b7d32419cd877353495b801c5e1382a
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-10 20:28:17 -05:00
Jan Edmund Lazo and Bram Moolenaar
8b79c32735
vim-patch:8.2.2411: profile test fails on MS-Windows
...
Problem: Profile test fails on MS-Windows.
Solution: Do the profiling in a separate Vim command.
https://github.com/vim/vim/commit/98989a00145cc4f5783bcc12a2968a2f716eabb9
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-10 20:28:17 -05:00
Jan Edmund Lazo and Bram Moolenaar
ffdee3a2e1
vim-patch:8.2.2409: Vim9: profiling only works for one function
...
Problem: Vim9: profiling only works for one function.
Solution: Select the right instructions when calling and returning.
(closes vim/vim#7743 )
https://github.com/vim/vim/commit/e5ea346a07a7750c02a89996b67716b43c767d06
Co-authored-by: Bram Moolenaar <Bram@vim.org >
2025-12-10 20:28:17 -05:00
skewb1k
b87bdef2a8
fix(lua): relax vim.wait() timeout validation #36900
...
Problem:
After bc0635a9fc `vim.wait()` rejects floats
and NaN values.
Solution:
Restore the prior behavior, while still supporting `math.huge`. Update
tests to cover float case.
2025-12-10 09:44:05 -05:00
CompileAndConquer
aeebc51851
fix(grid): assert crash during extreme resize layouts #36847
...
Problem:
When the terminal shrinks, Neovim tries to recompute the layout and
adjust every window so that the total width matches the new Columns. But
in the scenario of numerous windows split horizontally, there is
not enough space for all of them. The frame width (topframe->fr_width) never
reaches the new Columns value, the logic tries to redistribute this negative
space across child frames, but it triggers the assert.
Solution:
Skip this case in `win_update`.
2025-12-10 00:32:51 -05:00
glepnir
625c59fe5f
fix(highlight): Normal-linked groups shouldn't override CursorLine #35026
...
Problem: CursorLine doesn't consistently highlight text using groups
linked to Normal (e.g., in quickfix, passwd files), while it works
for direct Normal usage.
Solution: Don't let normal background from linked groups override
explicit non-normal backgrounds during attribute combination.
2025-12-09 23:01:27 -05:00
zeertzjq
df9e4a037a
fix(eval): 0 should mean current tabpage in gettabvar() ( #36891 )
...
This matches the gettabvar() behavior change in Vim 8.1.1218.
2025-12-10 00:53:57 +00:00
skewb1k
bc0635a9fc
fix(lua): vim.wait(math.huge) fails #36885
...
Problem:
`nlua_wait()` uses `luaL_checkinteger()` which doesn't support
`math.huge` since it's double type. On PUC Lua this fails with
'number has no integer representation' error and on LuaJIT this
overflows int.
Solution:
Use `luaL_checknumber()` and handle `math.huge`.
2025-12-09 13:59:06 -05:00
skewb1k
3b6e8e484e
fix(float): prevent truncation of title that fits exactly #36880
...
Problem:
The `over_flow` parameter in `grid_draw_bordertext` always added 1 for
the '<' character. As a result, titles that fit exactly were still
truncated with an unnecessary '<'.
Solution:
Adjust `over_flow` only when the actual overflow is greater than 0.
Fix #36872
2025-12-09 13:37:32 -05:00
zeertzjq and Bjoern Foersterling
747cf30c37
vim-patch:9.1.1965: q can accidentally start recording at more prompt ( #36879 )
...
Problem: When exiting at the end of the more prompt (at the hit enter
prompt) by hitting q the recording mode will be started.
(Jakub Łuczyński)
Solution: Don't add the q key to the typeahead buffer
in the function wait_return (Bjoern Foersterling)
fixes : vim/vim#2589
closes : vim/vim#18889
https://github.com/vim/vim/commit/ecce3497fa9e1a7452ccfa8ba9cbdadb92bfb7fb
Co-authored-by: Bjoern Foersterling <bjoern.foersterling@gmail.com >
2025-12-09 22:25:47 +08:00
zeertzjq
5235f3663f
vim-patch:9.1.1964: Wrong display when using setline() at hit-enter prompt ( #36878 )
...
Problem: Wrong display when using setline() at hit-enter prompt
(after 8.2.3204).
Solution: Only skip scrolling for changed lines in top area if it's
scrolled down due to w_topline change. Also add more testing
for what 8.2.3204 fixed (zeertzjq).
closes : vim/vim#18887
https://github.com/vim/vim/commit/e72eacceab2647e37e7d7a8a70e89dcd6ad01288
2025-12-09 22:25:34 +08:00
Mathias Fußenegger
c5d4050586
Revert "feat(lsp): support version in textDocument/publishDiagnostics #36754 " ( #36865 )
...
This reverts commit 03d6cf7aae .
See https://github.com/neovim/neovim/pull/36754#issuecomment-3626115697
The change was supposed to avoid showing stale diagnostics but had the
opposite effect.
2025-12-09 13:29:21 +01:00
zeertzjq and Doug Kearns
2f9f77cd72
vim-patch:9.1.1962: filetype: Erlang application resource files are not recognized ( #36868 )
...
Problem: filetype: Erlang application resource files are not recognized
Solution: Add content-based filetype detection for application resource
files matching extension '*.app' (Doug Kearns)
related: vim/vim#18835
closes: vim/vim#18842
https://github.com/vim/vim/commit/cf5c25526007a5cc39be317b023f55cb266d5ed2
Co-authored-by: Doug Kearns <dougkearns@gmail.com >
2025-12-09 09:08:09 +08:00
Justin M. Keyes
3afe0c6740
Merge #36859 refactor: clint.py => clint.lua
2025-12-08 01:58:58 -05:00
glepnir
cb171ee7cb
fix(float): tail truncate long title #28387
...
Problem:
We truncate the title from start, this is somewhat inconsistent
with the way vim works. Usually we use < to truncate and keep
more trailing characters.
Solution:
Keep more trailing characters.
2025-12-08 01:52:07 -05:00
Justin M. Keyes
0bb5bc5557
refactor: clint.py => clint.lua
...
Problem:
`clint.py` is the last python in our codebase, and beyond that it needs
some cleanup. And it lacks tests, so modifying it can be painful.
Also, we need a way to add ad-hoc lint rules for *Lua*, so it will help
to have our ad-hoc rules for C in the same language (the scripts may
share functions/techniques): https://github.com/neovim/neovim/issues/28372
Solution:
- convert to `clint.lua` (mostly AI-generated, but it now has test
coverage, unlike `clint.py`)
- drop rules that are no longer needed:
- "readability/multiline_string"
- technially still relevant, but very uncommon so doesn't really matter.
- "--line-length"
- Not used in the old clint.py, nor the new clint.lua.
- "comment whitespace" check
- It is enforced by uncrustify.
- "TODO" check
- The `-google-readability-function-size` clang-tidy rule enforces
"TODO(user)" format. (It was already enabled long ago.)
2025-12-08 01:43:02 -05:00
zeertzjq
647f11e6ae
vim-patch:9.1.1958: Wrong display with sign_unplace() and setline() in CursorMoved ( #36851 )
...
Problem: Wrong display when scrolling with 'scrolloff' and calling
sign_unplace() and setline() in CursorMoved (after 8.2.3204).
Solution: Still scroll for changed lines below the top area when the top
is scrolled down (zeertzjq)
closes : vim/vim#18878
https://github.com/vim/vim/commit/2da433cff7a7fff965a1e14dbee3dc4160d0ed74
2025-12-08 09:24:26 +08:00
zeertzjq
ff90032aa5
vim-patch:9.1.1961: :0tab behaves like :tab for :stag when 'swb' contains "newtab"
...
Problem: :0tab behaves like :tab for :stag when 'switchbuf' contains
"newtab" (after 9.1.1949).
Solution: Don't override cmod_tab if it's already non-zero (zeertzjq).
closes : vim/vim#18859
https://github.com/vim/vim/commit/2b3566d89eeb3f84dad7715fff153b84177e5fbb
2025-12-08 08:11:11 +08:00
zeertzjq and Yegappan Lakshmanan
69f4fd84aa
vim-patch:9.1.1949: :stag does not use 'swichtbuf' option
...
Problem: :stag does not use 'swichtbuf' option, though the
documentation states differently
(Christian Brabandt)
Solution: Respect 'switchbuf' option (Yegappan Lakshmanan).
related: vim/vim#18845
closes : vim/vim#18856
https://github.com/vim/vim/commit/efc7509be2ba38ca6d226cf59bad67e7888a537d
Cherry-pick some test_tagjump.vim changes from patches 9.0.{0363,0767}.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com >
2025-12-08 08:09:17 +08:00
Nathan Smith and Justin M. Keyes
551bb63d44
feat(events): MarkSet event, aucmd_defer() #35793
...
Problem:
- Can't subscribe to "mark" events.
- Executing events is risky because they can't be deferred.
Solution:
- Introduce `MarkSet` event.
- Introduce `aucmd_defer()`.
Helped-by: zeertzjq <zeertzjq@outlook.com >
Co-authored-by: Justin M. Keyes <justinkz@gmail.com >
2025-12-07 15:13:31 -05:00
Justin M. Keyes and Rob Pilling
ebb7c38ca2
docs: misc
...
fix https://github.com/neovim/neovim.github.io/issues/419
Co-authored-by: Rob Pilling <robpilling@gmail.com >
2025-12-06 20:33:02 -05:00
Tristan Knight
0f3e3c87b7
feat(lsp): support dynamic registration for diagnostics ( #36841 )
2025-12-06 15:55:07 -08:00
Olivia Kinnear
4e1644d4d3
feat(spell): opt-out of confirm when downloading spellfiles #36836
2025-12-06 17:20:02 -05:00
zeertzjq and Yegappan Lakshmanan
5370b7a2e0
vim-patch:partial:9.1.1955: sort() does not handle large numbers correctly ( #36840 )
...
Problem: sort() does not handle large numbers correctly
(Igbanam Ogbuluijah)
Solution: Don't truncate the return value of tv_get_number_chk()
(Yegappan Lakshmanan)
closes : vim/vim#18868
https://github.com/vim/vim/commit/04794efe12863eb96a489531c299879e6c8d15d4
Use a Lua test for now, as the Vimscript test uses tuples.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com >
2025-12-06 21:49:16 +08:00
zeertzjq and Stanislaw Gruszka
d6be2b3312
vim-patch:9.1.1957: filetype: bpftrace files are not recognized ( #36838 )
...
Problem: filetype: bpftrace files are not recognized
Solution: Detect *.bt files as btftrace filetype,
include a btftrace filetype plugin (Stanislaw Gruszka)
closes : vim/vim#18866
https://github.com/vim/vim/commit/b60b33a9dc91569f803e5a4856244bd8414f1802
Co-authored-by: Stanislaw Gruszka <stf_xl@wp.pl >
2025-12-06 20:02:16 +08:00