Commit Graph
34340 Commits
Author SHA1 Message Date
zeertzjqandChristian Brabandt d847548a1c vim-patch:9.1.1893: ICCF charity will dissolve (#36427)
Problem:  ICCF charity will dissolve
Solution: Update references to Kuwasha

Since the ICCF[1] will be dissolved and handing over to the Kuwasha charity
to continue supporting the Kibaale Children Center in Uganda, update the
uganda.txt help file.

[1]: https://groups.google.com/g/vim_announce/c/pUNbNXBLbKw/m/-zFUd4JjAQAJ

fixes: vim/vim#18584
closes: vim/vim#18667

https://github.com/vim/vim/commit/0405665638052ca1180bdb2855237cd1868526a3

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-11-02 08:29:00 +08:00
zeertzjqandChristian Brabandt a4988bb3cd vim-patch:213109a: runtime(doc): clarify W11 warning and possible options (#36426)
fixes: vim/vim#18589

https://github.com/vim/vim/commit/213109a999c8c854c1af3bf57540e56afa23c20c

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-11-01 23:11:20 +00:00
zeertzjqandMohammad Reza Karimi f0571a1855 vim-patch:fe71c56: runtime(netrw): NetrwChgPerm for files not in cwd
Problem:  Changing permissions fail when using `gp` if the file under
          the cursor is not in the current working directory.
Solution: Use the already available `a:curdir` argument and prepend it
          to the `<cfile>`, so that the path of the file is correct.

This commit also refactors some leftover `netrw#ErrorMsg` to
`netrw#msg#Notify` (the main refactoring was done in
f5e3b5c04f85b0f69cd2aae81e4938cfb191a790).

closes: vim/vim#18674

https://github.com/vim/vim/commit/fe71c56d8fb6b5a51d1f7f6d54d658ef17a98713

Co-authored-by: Mohammad Reza Karimi <m.r.karimi.j@gmail.com>
2025-11-02 07:03:44 +08:00
zeertzjqandMao-Yining c38365fd8e vim-patch:28f7582: runtime(log): syntax file update
closes: vim/vim#18675

https://github.com/vim/vim/commit/28f7582c16e7692cc56dbb7f240649086b5066d8

Co-authored-by: Mao-Yining <mao.yining@outlook.com>
2025-11-02 07:03:44 +08:00
varsidry b92b95e2c2 vim-patch:9.1.1891: g<End> does not move to last non-blank in visual mode (#36354)
Problem:  In visual mode, g<End> does not move to the last non-blank
          character when the end of a line is on the same line as the
          cursor (after v9.0.1753)
Solution: Move the cursor back by one position if it lands after the
          line (varsidry)

fixes: vim/vim#18657
closes: vim/vim#18658

https://github.com/vim/vim/commit/adc85151f3c6a6cea4bb8c8da3465429fc120445
2025-11-01 01:37:12 +00:00
zeertzjq d077a24f5c fix(socket): avoid stack-use-after-return after timeout (#36405)
Problem:
In socket_connect(), if connecting to the given TCP address times out,
libuv is still trying to connect to the address, and connect_cb may be
called when running the libuv event loop after the `status` variable
referenced by `req.data` goes out of scope.

Solution:
Close the uv_tcp_t handle and wait for connect_cb to be called before
retrying or failing in socket_connect(). This also avoid leaking libuv
handles.

The tests added here only check that the non-timeout case still works,
as checking the timeout case is very hard without modifications to the
code. Removing the first LOOP_PROCESS_EVENT_UNTIL() in socket_connect()
(the one with the timeout) is a way to check that manually.

Also add a comment about the cause of the ASAN error in #34586.
2025-11-01 08:20:46 +08:00
zeertzjqandSamuel Huang 1fddd74da7 vim-patch:9.1.1889: filetype: not all AppleScript files are recognized (#36411)
Problem:  filetype: not all AppleScript files are recognized
Solution: Detect *.applescript files as applescript filetype
          (Samuel Huang)

Reference:
https://en.wikipedia.org/wiki/AppleScript

closes: vim/vim#18672

https://github.com/vim/vim/commit/69dd5906fd9723774715ec37ad3b44652938f655

Co-authored-by: Samuel Huang <hi@sgh.ng>
2025-11-01 06:27:11 +08:00
11soda11 b258382176 fix(completion): complete drive-letter filepath on Windows #36353
Problem:
On MSWIN, file completion (CTRL-X CTRL-F) only works for the current
drive (so not for actual absolute paths), since drive letters are never
included in the completion pattern.

e.g. when completing "F:\Hello" Nvim currently completes "\Hello"
which is relative to the current drive/volume.

vim solves this by adding ':' to the default 'isfname' value on mswin,
but that causes issues as ':' is not a valid windows path char anywhere
_except_ after the drive letter.

Solution:
detect drive letters in front of the path when creating the completion
pattern.
2025-10-31 12:33:01 -07:00
zeertzjq 2b83237b0f test(api/server_requests_spec): fix flaky test (#36410)
Wait for the notification to be processed.
2025-10-31 14:06:11 +00:00
zeertzjq ceeae3a210 Merge pull request #36408 from zeertzjq/vim-9.1.1479
vim-patch:9.1.{1479,1890}
2025-10-31 19:12:14 +08:00
zeertzjqandChrist van Willegen d4106bade7 vim-patch:9.1.1890: %P in 'statusline' doesn't behave as documented
Problem:  %P in 'statusline' doesn't behave as documented
          (after 9.1.1479).
Solution: Make the percentage 3-chars wide when not translated.
          (zeertzjq)

fixes: vim/vim#18669
closes: vim/vim#18671

https://github.com/vim/vim/commit/73a0de4a04b48ccaa0291f91fb69606c66d7cf8c

Co-authored-by: Christ van Willegen <cvwillegen@gmail.com>
2025-10-31 18:46:01 +08:00
zeertzjqandEmir SARI a0f3fdba58 vim-patch:9.1.1479: regression when displaying localized percentage position
Problem:  regression when displaying localized percentage position
          (after v9.1.1291)
Solution: calculate percentage first (Emir SARI)

Cleanups made in ec032de broke the Turkish percent display, failing to
prepend it properly in cases between 0 and 10. In Turkish, the percent
sign is prepended to the number, so it was displaying it as `% 5`
(should have been `%5`), while displaying numbers bigger than 9 properly.

related: vim/vim#17597

https://github.com/vim/vim/commit/8fe9e55a7d92870f5bbaa592e1f3617e9cda33c6

The test was unskipped in Vim in patch 9.1.1479 which added Turkish
translation for "%d%%". However, Nvim has had Turkish translation for
"%d%%" since 2023, so don't skip the test.

Co-authored-by: Emir SARI <emir_sari@icloud.com>
2025-10-31 18:46:01 +08:00
bfredl d825e51169 Merge pull request #36381 from bfredl/nobilium
feat(build): HAVE_UNIBILIUM
2025-10-31 10:17:02 +01:00
bfredl e1ffa8d33b feat(build): HAVE_UNIBILIUM
compile time features are hot again.

Note: this changes the &term value for builtin definition from
'builtin_xterm' to just 'xterm'. It's an xterm regardless of we use an
external definition or an internal. Prior to this commit the vast
majority of POSIX users will have used external terminfo, so plugins and
scripts are only going to have checked for &term == 'xterm' or 'tmux' or
whatever.
The status of external loading is still available in "nvim -V3" output.
2025-10-31 08:39:32 +01:00
bfredl 2621066104 Merge pull request #36270 from bfredl/zig0.15.2
build(deps): bump zig to v0.15.2
2025-10-31 08:36:29 +01:00
zeertzjq accd392f4d Merge pull request #36393 from zeertzjq/rstream-close-cb
fix(channel): closing socket with pending writes leaks memory
2025-10-31 09:14:19 +08:00
bfredl 1df2171f2c build(deps): bump zig to v0.15.2 2025-10-30 21:29:52 +01:00
zeertzjq 5ddabbeba4 Merge pull request #36396 from zeertzjq/vim-9.1.1291
vim-patch:9.1.{1291,1292,partial:1887}
2025-10-30 22:23:57 +08:00
zeertzjqandJohn Marriott c70e8ef9b7 vim-patch:partial:9.1.1887: string handling in strings.c can be improved
Problem:  string handling in strings.c can be improved
Solution: Refactor strings.c and remove calls to STRLEN()
          (John Marriott)

This change does:
- In vim_strsave_shellescape() a small cosmetic change.
- In string_count() move the call to STRLEN() outside the while loop.
- In blob_from_string() refactor to remove call to STRLEN().
- In string_from_blob() call vim_strnsave() instead of vim_strsave().
- In vim_snprintf_safelen() call vim_vsnprintf_typval() directly instead
  of vim_vsnprintf() which then calls vim_vsnprintf_typval().
- In copy_first_char_to_tv() change to return -1 on failure or the length
  of resulting v_string. Change string_filter_map() and string_reduce() to
  use the return value of copy_first_char_to_tv().

closes: vim/vim#18617

https://github.com/vim/vim/commit/110656ba607d22bbd6b1b25f0c05a1f7bad205c0

Co-authored-by: John Marriott <basilisk@internode.on.net>
2025-10-30 22:01:58 +08:00
zeertzjqandHirohito Higashi f3b38b46eb vim-patch:9.1.1292: statusline not correctly evaluated
Problem:  statusline not correctly evaluated
          (Peter Kenny, after v9.1.1291)
Solution: revert part of patch v9.1.1291
          (Hirohito Higashi)

fixes: vim/vim#17095
closes: vim/vim#17094

https://github.com/vim/vim/commit/c8ce81b0dcaddefc65e3d445c92c9e0253bd9173

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2025-10-30 22:01:58 +08:00
zeertzjqandJohn Marriott aba33c72f0 vim-patch:9.1.1291: too many strlen() calls in buffer.c
Problem:  too many strlen() calls in buffer.c
Solution: refactor buffer.c and remove strlen() calls
          (John Marriott)

closes: vim/vim#17063

https://github.com/vim/vim/commit/ec032de6465f159bd57c22d464e0f4815f3aefc7

Co-authored-by: John Marriott <basilisk@internode.on.net>
2025-10-30 22:01:58 +08:00
zeertzjq ce9a73625a test(tui_spec): check logfile for --listen error (#36390) 2025-10-30 09:06:30 +00:00
zeertzjq e87f2d1cf9 test(tui_spec): separate remote client :restart tests (#36388)
:restart changes the terminal under which the server process is run,
which can be confusing when combined with other testing.

Also, use COLORTERM=xterm-256color for tests with 'notermguicolors' to
avoid delay on server exit. Not all these delays are blocking, but they
increase the number of simultaneously existing Nvim processes.
2025-10-30 16:23:22 +08:00
zeertzjq 50a38d9698 fix(tui): heap-use-after-free when resuming (#36387)
Discovered when writing more tests for suspend/resume.
It seems that this isn't always reproducible with ASAN due to the arena.
2025-10-30 05:26:49 +00:00
zeertzjq 69bddc089f fix(tui): don't call tinput_init() twice (#36386) 2025-10-30 03:06:30 +00:00
zeertzjq c75f547839 vim-patch:9.1.1888: Wrong display with cpo+=$, matchparen and wrapped line (#36385)
Problem:  Wrong display with cpo+=$, matchparen and wrapped line.
Solution: Use old cursor line height when scrolling with cpo+=$. Also
          fix wrong redraw in non-current window. (zeertzjq)

fixes: vim/vim#18647
closes: vim/vim#18662

https://github.com/vim/vim/commit/5c3e76263100c2c036f1febcb9e8716b719d57e3
2025-10-30 07:29:21 +08:00
zeertzjqandChristian Brabandt 89030f3ac4 vim-patch:8f551a7: runtime: regenerate helptags, update last-change header in tombi compiler
https://github.com/vim/vim/commit/8f551a70ad8f5cc2e3844f2418ef97330d3333bd

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-10-30 06:47:52 +08:00
zeertzjqandKonfekt 34ddb8b1b8 vim-patch:14e7203: runtime(compiler): Fix escaping in Windows shell command for tombi
As observed by Doug Kearns

related: vim/vim#18590
closes: vim/vim#18661

https://github.com/vim/vim/commit/14e7203713567761c37be3bf182e5669e11041e1

Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
2025-10-30 06:47:52 +08:00
Christian Clason f5762e3e17 build(deps): bump luajit to 8518c0b40 2025-10-29 23:44:45 +01:00
bfredl b75a68ff06 Merge pull request #36367 from bfredl/metadata_iii
refactor(build): split out metadata step
2025-10-29 11:37:14 +01:00
bfredl a4c9247a1a Merge pull request #36233 from bfredl/neotermkeyi
refactor(termkey): make termkey use builtin info
2025-10-29 10:28:50 +01:00
bfredl 829a5dc83e refactor(build): split out metadata step
This was part of an attempt to add "git describe" to zig build
without re-building too much. This doesn't yet work as zig upstream
changes are are also needed, but I think this was a sensible refactor
even in isolation, so breaking it out.

"API dispatch" doesn't depend on any ui event stuff nor on
version, that was just an accident of the metadata collection
being crammed into the same file.

Remove "manual invocation" instruction. this is going to bitrot anyway.
Both cmake and build.zig allows you to extract the command line of a
step, so you can debug it separately.
2025-10-29 10:23:55 +01:00
bfredl 4b678a499c refactor(termkey): make termkey use internal terminfo properly
problem: termkey/driver-ti.c had its internal dependency upon unibilium
which would completely skip builtin terminfo defs.
solution: add termkey info to TerminfoEntry struct

NOTE: this disables a lot of named function keys which are present as
terminfo "keys" both are mostly unset in terminfo entries for modern
terminals, and also  not recognized by nvim as mappable keys
anyway, except a few ones like `<undo>` which this still will keep.

We probably don't want to encode up to F63 keys forever. While only 12
physical keys are available on modern keybords, instead Chords using
F-keys are usually encoded as high key numbers, like <C-S-F3>
becoming <F39> . But reconsideirg that has implications for configuration
that is best done as a separate (breaking) change.
2025-10-29 09:43:36 +01:00
Justin M. Keyes 6dd6c5b523 docs: rename l10n help files #36377 2025-10-28 20:15:16 -07:00
zeertzjq c06f2f6b38 Merge pull request #36364 from zeertzjq/term-last-cursor
fix(terminal): keep last cursor if it's on the last row
2025-10-29 10:51:09 +08:00
zeertzjq 4ef7aa83c4 fix(terminal): keep last cursor if it's on the last row 2025-10-29 10:18:01 +08:00
zeertzjq 3fb56ff8af vim-patch:9.1.1885: Wrong restored cursor pos when re-entering buffer after changes
Problem:  Wrong restored cursor position when re-entering a buffer
          previously viewed in a window after making changes to the same
          buffer in another window.
Solution: Adjust per-window "last cursor" positions on buffer changes.
          (zeertzjq)

closes: vim/vim#18655

https://github.com/vim/vim/commit/b2e6b328dafe1cdfff10f1e811355e514da8071d
2025-10-29 10:18:01 +08:00
zeertzjq ae82636276 docs: regenerate lua.txt (#36376) 2025-10-29 10:17:30 +08:00
Jonny Kong e2cb675705 fix(filetype): move fallback logic to vim.filetype.match() #30141
Problem:
Previously, the fallback logic to ".conf" was located outside of
`vim.filetype.match()` and directly within the AutoCmd definition. As a
result, `vim.filetype.match()` would return nil instead of ".conf" for
fallback cases (#30100).

Solution:
Added a boolean return value to `vim.filetype.match()` that indicates
whether the match was the result of fallback. If true, the filetype will
be set using `setf FALLBACK <ft>` instead of `setf <ft>`.
2025-10-28 18:45:50 -07:00
zeertzjq c1b1c8c2e0 Merge pull request #36375 from zeertzjq/vim-d659faf
vim-patch: add tombi compiler to lint TOML files
2025-10-29 08:41:56 +08:00
zeertzjqandChristian Brabandt 30d1d26c14 vim-patch:469f870: runtime(compiler): Fix invalid expression in tombi compiler after d659fafcc
related: vim/vim#18590

https://github.com/vim/vim/commit/469f870c5e06cb4c1f4b78aa1a7cc354059631d0

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-10-29 08:18:07 +08:00
zeertzjqandKonfekt ea57dea91f vim-patch:d659faf: runtime(compiler): add tombi compiler to lint TOML files
closes: vim/vim#18590

https://github.com/vim/vim/commit/d659fafccd945e2ab9596be5060b65dbd0b419a8

Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
2025-10-29 08:17:50 +08:00
zeertzjqandBruno Belanyi 3c14646896 vim-patch:9.1.1886: filetype: Android aconfig files are not recognized (#36374)
Problem:  filetype: Android aconfig files are not recognized
Solution: Detect *.aconfig files as pbtxt filetype (Bruno Belanyi)

Reference:
https://source.android.com/docs/setup/build/feature-flagging/declare-flag

closes: vim/vim#18656

https://github.com/vim/vim/commit/7adeb09bb24a9d29179926dd391c3d67cea26057

Co-authored-by: Bruno Belanyi <bruno@belanyi.fr>
2025-10-29 00:16:15 +00:00
zeertzjqandDoug Kearns fdcc4c6b66 vim-patch:9ad7067: runtime(doc): Highlight [expr] arg in :help :return description
closes: vim/vim#18654

https://github.com/vim/vim/commit/9ad706735d35c23ecbfa8a306190882631a7e2b4

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-10-29 08:05:28 +08:00
zeertzjqandChristian Brabandt ee60bf6112 vim-patch:6be154f: runtime(doc): revert wrong 'incsearch' description
This reverts commit 3fc00c05fb464d3e806df53bdc1743faa337ddca.

related: vim/vim#18639

https://github.com/vim/vim/commit/6be154f5e63d47b9e0e5b709577a8c71aa4e4456

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-10-29 08:05:28 +08:00
zeertzjq c2781d3db3 vim-patch:9.1.1883: Wrong display with 'smoothscroll' with -diff (#36372)
Problem:  Wrong display with 'smoothscroll' when FEAT_DIFF is disabled.
Solution: Use plines_correct_topline() (zeertzjq).

closes: vim/vim#18649

https://github.com/vim/vim/commit/e06e70f7b129e983b307be405c44449348ac470f
2025-10-28 23:49:53 +00:00
Gregory Anders bb6f5c3b31 fix(tui): reset cursor style on exit (#36261)
Fix the cursor style terminfo capability (should be Se, not se). Also
include foot in the list of terminals that supports setting and
resetting cursor style (see
https://codeberg.org/dnkl/foot/issues/797#issuecomment-280305)
2025-10-28 13:11:00 -05:00
Justin M. Keyes 3fb53abe2a fix(health): attempt to concatenate table value #36369 2025-10-28 07:52:22 -07:00
Christian Clason 9875a9b691 build(deps): bump luajit to 864e78d66 2025-10-28 09:45:46 +01:00
zeertzjq 7088441de4 vim-patch:58ab343: runtime(netrw): fix misaligned comment after vim/vim#18611 (#36362)
related" vim/vim#18611
closes: vim/vim#18644

https://github.com/vim/vim/commit/58ab3438b7b4e1828efa2f86a5f37af5a7dbf259
2025-10-28 00:12:21 +00:00