Commit Graph

34324 Commits

Author SHA1 Message Date
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
zeertzjq
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

110656ba60

Co-authored-by: John Marriott <basilisk@internode.on.net>
2025-10-30 22:01:58 +08:00
zeertzjq
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

c8ce81b0dc

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2025-10-30 22:01:58 +08:00
zeertzjq
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

ec032de646

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

5c3e762631
2025-10-30 07:29:21 +08:00
zeertzjq
89030f3ac4 vim-patch:8f551a7: runtime: regenerate helptags, update last-change header in tombi compiler
8f551a70ad

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-10-30 06:47:52 +08:00
zeertzjq
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

14e7203713

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

b2e6b328da
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
zeertzjq
30d1d26c14 vim-patch:469f870: runtime(compiler): Fix invalid expression in tombi compiler after d659fafcc
related: vim/vim#18590

469f870c5e

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

d659fafccd

Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
2025-10-29 08:17:50 +08:00
zeertzjq
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

7adeb09bb2

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

9ad706735d

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

related: vim/vim#18639

6be154f5e6

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

e06e70f7b1
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

58ab3438b7
2025-10-28 00:12:21 +00:00
zeertzjq
59a44caac6 vim-patch:eba5133: runtime(rust): Do not use rustfmt as 'formatprg' by default (#36361)
This reverts commit 4ac995bf9366c6624a0724d19b2226f4c95694b3.

This was added in vim/vim#16807, with no explanation for why it was necessary beyond
"it's an example of an idea". It completely breaks `gq` for me—rustfmt doesn't
reflow comments so is not an appropriate tool here! Beyond that, formatting a
selection with rustfmt treats that selection as if it were an entire file,
throwing away any indentation.

For example, the commit causes `gq` to turn this:

```rust
pub fn foo() {
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
}
```

into this:

```rust
pub fn foo() {
// blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
}

```

which is totally wrong. In contrast, if I clear `formatprg` then `gq` does the
right thing again:

```rust
pub fn foo() {
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    // blah blah blah blah blah blah
}
```

related: vim/vim#16967
related: vim/vim#17055
closes: vim/vim#18640

eba51337d4

Co-authored-by: Aaron Jacobs <jacobsa@google.com>
2025-10-27 23:45:14 +00:00
Justin M. Keyes
c90f742ee2 docs: new layout 2025-10-27 19:32:16 -04:00
zeertzjq
21ea0537e0 vim-patch:9.1.1880: Allocation error with complete_info() (#36360)
Problem:  Allocation error with complete_info()
          (after v9.1.1876)
Solution: Make sure length is positive (kuuote)

closes: vim/vim#18640

7d3b647f88

Co-authored-by: kuuote <znmxodq1@gmail.com>
2025-10-28 07:13:58 +08:00
Justin M. Keyes
4a910a2a4e fix(docs): dev.txt is "new layout" 2025-10-27 19:03:39 -04:00
Justin M. Keyes
88b45614e9 fix(build): gen_help_html fails #36359
Problem:
fe4faaf81a added an invalid "redirect" item, which caused the
assert() to fail, which then caused the neovim/doc/ CI to fail:
https://github.com/neovim/doc/actions/runs/18830779387/job/53721736276 :

The previous commit e69beb9b1a tried to fix a different issue, which
has gone hidden because the "invalid tags" failure has been present on
the neovim/doc/ but was silently failing.

    invalid tags: {
      ["g:netrw_keepdir"] = "usr_22.txt",
      netrw = "vi_diff.txt",
      ...
      plugins = "editorconfig"
    }

Solution:
- Fix the invalid redirect.
- Improve the redirects assertion.
2025-10-27 15:36:59 -07:00
Justin M. Keyes
e69beb9b1a fix(build): invalid help tags cause reports to fail #36356
Problem:
The doc/ repo CI is failing
https://github.com/neovim/doc/actions/runs/18830779387/job/53721736276 :

    invalid tags: {
      ["g:netrw_keepdir"] = "usr_22.txt",
      netrw = "vi_diff.txt",
      ["netrw-P"] = "usr_22.txt",
      ...
      ["netrw-v"] = "usr_22.txt",
      plugins = "editorconfig"
    }

Solution:
Add the "generate netrw tags" hack to the `gen()` step. Previously it was only
in the `validate()` step. (idk why it only started failing 3 days ago...)
2025-10-27 14:07:25 -07:00
github-actions[bot]
99506c1755 docs: update version.c #36303
vim-patch:87fda407f8ecf947ba6ce72ac21f69ff04d909cd
vim-patch:8.2.2999
vim-patch:26e88ec8e23fa04e559044199ccb369aed29e570
vim-patch:b32aa8a6a10983836d5987f1e42035f88d47bf6e
vim-patch:728104da6cd561b8cb2c7142769f7526d725958e
vim-patch:8.2.3607
vim-patch:8.2.3632
vim-patch:8.2.3635
vim-patch:8.2.3647
vim-patch:8.2.3648
vim-patch:8.2.3654
vim-patch:8.2.3688
vim-patch:8.2.4143
vim-patch:8.2.4158
vim-patch:8.2.4169
vim-patch:8.2.4230
vim-patch:8.2.4290
vim-patch:8.2.4320
vim-patch:8.2.4461
vim-patch:8.2.4486
vim-patch:8.2.4599
vim-patch:8.2.4621
vim-patch:8.2.4730
vim-patch:8.2.4776
vim-patch:8.2.4807
vim-patch:8.2.4811
vim-patch:8.2.4817
vim-patch:8.2.4839
vim-patch:8.2.4843
vim-patch:8.2.4874
vim-patch:8.2.4920
vim-patch:8.2.4936
vim-patch:8.2.5157
vim-patch:8.2.5159

vim-patch:9.0.0033
vim-patch:9.0.0050
vim-patch:9.0.0062
vim-patch:9.0.0087
vim-patch:9.0.0120
vim-patch:9.0.0339
vim-patch:9.0.0408
vim-patch:9.0.0454
vim-patch:9.0.0597
vim-patch:9.0.0633
vim-patch:9.0.0686
vim-patch:9.0.0818
vim-patch:9.0.0888
vim-patch:9.0.0984
vim-patch:9.0.1303
vim-patch:9.0.1495
vim-patch:9.0.1563
vim-patch:9.0.1743
vim-patch:9.0.1815
vim-patch:9.0.1970
vim-patch:9.0.1987
vim-patch:ba75507c62b5aa84295968a9c15788667e95fa6a
vim-patch:9.0.2118
vim-patch:9.0.2190

vim-patch:9.1.0078
vim-patch:9.1.0081
vim-patch:9.1.0085
vim-patch:9.1.0086
vim-patch:9.1.0092
vim-patch:9.1.0348
vim-patch:9.1.0641
vim-patch:9.1.0881
vim-patch:9.1.0930
vim-patch:9.1.1235
vim-patch:9.1.1367
vim-patch:9.1.1377
vim-patch:9.1.1379
vim-patch:9.1.1455
vim-patch:9.1.1583
vim-patch:9.1.1631
vim-patch:9.1.1760
vim-patch:9.1.1789
vim-patch:9.1.1815
vim-patch:9.1.1838
vim-patch:8.1.2080: the terminal API is limited and can't be disabled
2025-10-27 10:28:17 -07:00
Eduardo Cruz Guedes
5e039c8e97 fix(tutor): remove hyperlinks, simplify non-interactive examples #36307
1. Every hyperlink-like element was replaced by `"$1"` (where $1 is the original string showed in the hyperlink);
2. Arrows `--->` were used in lines containing practice examples when no editing text is involved;
3. Context on interactivity was minimally adapted when strictly needed, not to disrupt the original tutor's intent;
4. Tests regarding the tutor file refactored to ensure the new syntax is not flagged as an error.
2025-10-27 10:24:00 -07:00
yilisharcs
b9451dfd4c fix(ui2): emit FileType event after setting default pager options #36315
Problem: Setting a filetype before configuring default options for ui2
buffers (pager, cmd, ...) prevents users from setting their own options.

Solution: Call nvim_set_option_value after defaults are set.

Closes #36314

Co-authored-by: Luuk van Baal <luukvbaal@gmail.com>
2025-10-27 10:19:16 -07:00
dependabot[bot]
a943ea82f5 ci: bump actions/upload-artifact from 4 to 5 (#36351)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 10:05:39 -07:00
dependabot[bot]
432bfcf95f ci: bump actions/download-artifact from 5 to 6 (#36352)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 10:05:30 -07:00
tao
a768d0a95b fix(lsp): stop repeatedly resuming dead coroutine #35743
Problem:
Error extracting content-length causes all future coroutine resumes to
fail.

Solution:
Replace coroutine.wrap with coroutine.create in create_read_loop
so that we can check its status and catch any errors, allowing us to
stop the lsp client and avoid repeatedly resuming the dead coroutine.
2025-10-27 10:03:45 -07:00
zeertzjq
29e093c8f2 Merge pull request #36350 from zeertzjq/vim-da5b600
vim-patch: Vim syntax updates
2025-10-27 17:22:21 +08:00
zeertzjq
87ede4ab4f vim-patch:842c778: runtime(vim): Update base syntax, improve :@ highlighting
- Highlight :@ as a normal Ex command rather than something special.
- Fix erroneous matching of the Ex command as a register variable.

closes: vim/vim#18624

842c7788a5

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-10-27 16:52:49 +08:00
zeertzjq
b21a9d5b22 vim-patch:7dba04f: runtime(doc,vim): Update base syntax, match full :syntime command
- Use the optional tail command-name spec at :help :syntime.
- Match full :syntime command and highlight args.

7dba04f15c

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-10-27 16:52:09 +08:00
zeertzjq
e61880957f vim-patch:da5b600: runtime(vim): Update base syntax, match :terminal command
Match the full :terminal command syntax.

closes: vim/vim#18367

da5b6007fb

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-10-27 16:51:19 +08:00