Commit Graph

34640 Commits

Author SHA1 Message Date
zeertzjq
dfbbc6dd6b vim-patch:f958d35: runtime(julia): Update Julia runtime files (#36876)
Port changes from JuliaEditorSupport/julia-vim made during 2022-2025.
Most notably:

- 88f178c Do not reset shiftwidth/expandtab at undo
- f17257a Allow else block in try/catch
- 7946ce3 Support public statements (added in Julia v1.11.0-DEV.469)

f958d35723

Co-authored-by: Sergio Alejandro Vargas <savargasqu+git@unal.edu.co>
2025-12-09 22:25:04 +08:00
zeertzjq
58d5d97719 vim-patch:98ef843: runtime(rust): use textwidth=100 for the Rust recommended style (#36875)
The help text here said 99 was the recommended style for the standard
library, but I can't find a citation for this anywhere. In contrast the
Rust Style Guide hosted on rust-lang.org
[says](https://doc.rust-lang.org/stable/style-guide/#indentation-and-line-width)
the maximum line width is 100, and rustfmt
[agrees](37aa2135b5/src/tools/rustfmt/src/config/options.rs (L570)).

Having the two disagree causes an annoying off-by-one error in vim: if
you configure vim to highlight too-long lines then it will occasionally
complain about a line that rustfmt refuses to fix.

closes: vim/vim#18892

98ef8433b6

Co-authored-by: Aaron Jacobs <jacobsa@google.com>
2025-12-09 20:42:12 +08:00
zeertzjq
c24cc4c352 vim-patch:b22c145: runtime(doc): document change in Windows behavior for patch 9.1.1947 (#36874)
closes: vim/vim#18886

b22c145c22

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-09 20:41:49 +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
Pig Fang
23f4fab0bd fix(lsp): fix incorrect params because of typo (#36871) 2025-12-08 22:39:31 -08:00
€šm̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰�Ř§Ů Â£╟©舐æØ¢£ðsÞ¥¿—
ed9abb1851 fix(exrc): ensure consistent 'exrc' loading sequence #35148
Problem:
The execution of startup scripts in parent directories are too late
compared to scripts in current direcctory.

Solution:
Execute all startup scripts with `lua/_core/exrc.lua`.

closes: #35147
2025-12-08 22:22:10 -05:00
zeertzjq
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

cf5c255260

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
Justin M. Keyes
845cb5a527 build: slience some unwanted clang-tidy warnings 2025-12-08 01:42:26 -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

2da433cff7
2025-12-08 09:24:26 +08:00
zeertzjq
8aafe4f26c Merge pull request #36850 from zeertzjq/vim-9.1.1949
vim-patch:9.1.{1949,1961}
2025-12-08 08:48:00 +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

2b3566d89e
2025-12-08 08:11:11 +08:00
zeertzjq
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

efc7509be2

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
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
64cf63a881 build(deps): bump tree-sitter-vimdoc to v4.0.2 #36844 2025-12-07 10:42:31 -05:00
Justin M. Keyes
62dd74d472 Merge #36741 from justinmk/doc2 2025-12-06 20:43:54 -05:00
Justin M. Keyes
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
Justin M. Keyes
45ca080bd1 build(deps): bump tree-sitter-vimdoc to v4.0.1 2025-12-06 20:08:13 -05:00
Tristan Knight
0f3e3c87b7 feat(lsp): support dynamic registration for diagnostics (#36841) 2025-12-06 15:55:07 -08:00
Tristan Knight
9e9cdcaa18 refactor(lsp): unify capability checks and registration #36781
Problem:
Our LSP type system didnt have a concept of RegistrationMethods, this is where the method to dynamically register for a capability is sent to a different method endpoint then is used to call it. Eg `textDocument/semanticTokens` rather than the specific full/range/delta methods

Solution:
Extended generator to create `vim.lsp.protocol.Methods.Registration` with these registration methods. Also extend `_request_name_to_client_capability` to cover these methods. Adjust typing to suit
2025-12-06 18:31:11 -05:00
Olivia Kinnear
4e1644d4d3 feat(spell): opt-out of confirm when downloading spellfiles #36836 2025-12-06 17:20:02 -05:00
zeertzjq
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

04794efe12

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
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

b60b33a9dc

Co-authored-by: Stanislaw Gruszka <stf_xl@wp.pl>
2025-12-06 20:02:16 +08:00
Justin M. Keyes
d6bee7e407 test: skip noisy "terminal mode unavailable" logs #36794
Problem:
Every CI log has a lot of noise at the end, which makes it harder to
find relevant test failures:

    Running tests from test/functional/terminal/tui_spec.lua
    ...
    T5831 TUI bg color queries the terminal for background color:
    T5832 TUI bg color triggers OptionSet from automatic background processing:
    T5833 TUI bg color sends theme update notifications when background changes #31652:
    ...
    Running tests from test/functional/ui/output_spec.lua
    ...
    WRN 2025-12-02T03:36:47.304 ui/c/T5831.28003.0 tui_handle_term_mode:223: TUI: terminal mode 2026 unavailable, state 0
    WRN 2025-12-02T03:36:47.359 ui/c/T5832.28006.0 tui_handle_term_mode:223: TUI: terminal mode 2048 unavailable, state 0
    WRN 2025-12-02T03:36:47.414 ui/c/T5833.28009.0 tui_handle_term_mode:223: TUI: terminal mode 2048 unavailable, state 0

Solution:
- Skip logging in test-mode.
    - This can be reverted later, when these logs are changed to "INFO"
      level, per this TODO comment:
      ```
      // TODO(bfredl): This is really ILOG but we want it in all builds.
      // add to show_verbose_terminfo() without being too racy ????
      WLOG("TUI: terminal mode %d unavailable, state %d", mode, state);
      ```
2025-12-05 16:04:24 -05:00
Pig Fang
6aa80b1ab2 refactor(lsp): fix lint 2025-12-05 15:51:46 +00:00
Pig Fang
b9eba5cde2 test(lsp): accept callback for diagnostic 2025-12-05 15:51:46 +00:00
Pig Fang
03f944b0fe refactor(lsp): fix lint 2025-12-05 15:51:46 +00:00
Pig Fang
016335a7d0 feat(lsp): support refreshing workspace diagnostics 2025-12-05 15:51:46 +00:00
Pig Fang
a7c21f4b17 test(lsp): polish tests of refreshing diagnostics 2025-12-05 15:51:46 +00:00
Pig Fang
7beb0eeb4b refactor(lsp): simplify handling diagnostic "on_refresh" 2025-12-05 15:51:46 +00:00
Pig Fang
bcb110482b test(lsp): update test name 2025-12-05 15:51:46 +00:00
Pig Fang
02067a9892 feat(lsp): support diagnostic refresh request 2025-12-05 15:51:46 +00:00
Rob Pilling
fa8e4e65ca fix: update lua types for commands 2025-12-05 11:25:05 +00:00
Olivia Kinnear
903335a6d5 feat(lsp): Client:stop() defaults to exit_timeout #36783
Problem:
If a `vim.lsp.config` explicitly sets `exit_timeout`, that indicates the
config wants that behavior for most usages of `:stop()`.

Solution:
Update `:stop()` to use `force=exit_timeout` if `force` was not
explicitly passed.
2025-12-04 22:50:00 -05:00
zeertzjq
a8a0bba2f8 fix(ui): close outdated cmdline pum on redraw (#36815) 2025-12-05 00:23:22 +00:00
zeertzjq
e8fdc7ef9a vim-patch:9.1.1944: getwininfo() does not return if statusline is visible (#36828)
Problem:  gewininfo() does not return if statusline is visible
Solution: Add status_height to the dict items returned by
          getwininfo() (Hirohito Higashi)

closes: vim/vim#18841

a04ab5f04c

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2025-12-05 07:38:05 +08:00
zeertzjq
22c3e5802a Merge pull request #36827 from zeertzjq/vim-9.1.1947
vim-patch:9.1.{1947,1948,1951}
2025-12-05 07:32:43 +08:00
zeertzjq
c758423cf2 vim-patch:9.1.1951: tests: Test_windows_external_cmd_in_cwd() only run in huge builds
Problem:  tests: Test_windows_external_cmd_in_cwd() is only run in huge
          builds (after 9.1.1947).
Solution: Move it to test_system.vim so that it is run in normal builds.

closes: vim/vim#18853

2c164f02c6
2025-12-04 11:54:27 +08:00
zeertzjq
bfe007a187 vim-patch:9.1.1948: Windows: Vim adds current directory to search path
Problem:  Windows: Vim always adds the current directory to search path.
          This should only happen when using cmd.exe as 'shell'. For
          example, powershell won't run binaries from the current
          directory.
Solution: Only add current directory to system path, when using cmd.exe
          as 'shell'.

related: vim/vim#10341
related: 083ec6d9a3b7

4d87c9742a

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-04 11:54:27 +08:00
zeertzjq
ac3e2ca675 vim-patch:9.1.1947: [security]: Windows: Vim may execute commands from current directory
Problem:  [security]: Windows: Vim may execute commands from current
          directory (Simon Zuckerbraun)
Solution: Set the $NoDefaultCurrentDirectoryInExePath before running
          external commands.

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-g77q-xrww-p834

083ec6d9a3

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-04 11:54:26 +08:00
zeertzjq
6383123326 Merge pull request #36826 from zeertzjq/vim-ffc7f8c
vim-patch: runtime file updates
2025-12-04 09:15:15 +08:00
zeertzjq
42449088c7 vim-patch:b46cbec: runtime(swayconfig): separate identifier groups + cleanup
- cleanup of PR for tearing and other output options
  - removed `allow_tearing` from global keywords (it's only an output option)
  - moved `...clockwise` directives from general to transform options
  - separated `icc` highlight to correctly detect and highlight paths
  - updated output bg to use the same approach as `icc` for file path
- separated all identifier-matchers into their own groups
- added support for bar identifiers

closes: vim/vim#18851

b46cbecb1d

Co-authored-by: Josef Litoš <54900518+litoj@users.noreply.github.com>
2025-12-04 08:53:36 +08:00
zeertzjq
5685a5b69c vim-patch:20d35f9: runtime(i3config): highlight identifiers separately
- mapped all identifier-highlighting groups to a new group `i3ConfigIdent`
- i3config bar is now split into keyword and block matches
- support `xft:` namespace in fonts
- Update maintainer information in i3config.vim

related: vim/vim#18851

20d35f9eb9

Co-authored-by: Josef Litoš <54900518+litoj@users.noreply.github.com>
2025-12-04 08:53:15 +08:00
zeertzjq
e7e3351954 vim-patch:89f422d: runtime(quarto): add missing loaded guard
closes: vim/vim#18630

89f422df41

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-12-04 08:52:42 +08:00
zeertzjq
a278eebcfb vim-patch:8d8c907: runtime(python): Highlight t-strings
- Highlight t-strings
- Update comments
- Add tests

closes: vim/vim#18679

8d8c9074c3

Co-authored-by: Rob B <github@0x7e.net>
2025-12-04 08:52:06 +08:00
zeertzjq
69758e2918 vim-patch:85fc83f: runtime(sml): Update syntax, improve special constant matching
- Match \dE\d real literal form
- Match all string escape sequences
- Add related tests

closes: vim/vim#18723

85fc83f849

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-12-04 08:51:43 +08:00
zeertzjq
c81ff490dc vim-patch:ffc7f8c: runtime(hog): set undo_ftplugin correctly, delete trailing whitespace
closes: vim/vim#18727

ffc7f8c9da

Co-authored-by: D. Ben Knoble <ben.knoble+github@gmail.com>
2025-12-04 08:51:25 +08:00
zeertzjq
d8f29f7e7d Merge pull request #36825 from zeertzjq/vim-9.1.1950
vim-patch:9.1.{1950,1952}
2025-12-04 08:49:29 +08:00