Commit Graph

34746 Commits

Author SHA1 Message Date
Sean Dewar
eac2f0443e feat(tag): respect jumpoptions=view when popping tagstack (#37021)
Problem: jumpoptions=view has no effect when popping from the tagstack.
Solution: make it work.
2025-12-19 23:32:09 +00:00
zeertzjq
5f22cf5af3 Merge pull request #37024 from zeertzjq/vim-1e3e1ba
vim-patch: tutor updates
2025-12-19 08:32:12 +08:00
zeertzjq
ca0eb8b1d1 vim-patch:757b42a: runtime(tutor): Chapter 2: consistently use upper case letter, fix typo after 1e3e1ba067c79a
Chapter 2: Fix missing "R" after 1e3e1ba067c79a when using register from insert
mode. While at it, consistently use upper case letter for CTRL-R in the
new-tutor.

related: vim/vim#18950

757b42ab07

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-19 08:12:55 +08:00
zeertzjq
b2b9b78209 vim-patch:1e3e1ba: runtime(tutor): Update Chapter 2, remove mentioning surround plugin
fixes: vim/vim#18950

1e3e1ba067

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-19 08:12:54 +08:00
zeertzjq
2860d1e018 vim-patch:9.1.1998: tests: not enough tests for :setlocal omnifunc (#37023)
Problem:  Not enough tests for :setlocal omnifunc (after 9.1.1991).
Solution: Move the last :new after :setlocal. Also test with 'complete'
          (zeertzjq).

closes: vim/vim#18958

cedb1a3171
2025-12-19 08:08:26 +08:00
yilisharcs
04357f2eff vim-patch:fe0bafc: runtime(compiler): improve rust errorformat (#37022)
This commit adds match patterns for:
- warnings with error codes (warning[E0123]: foobar)
- valid nightly unicode entries

closes: vim/vim#18957

fe0bafc728
2025-12-19 07:53:58 +08:00
zeertzjq
c08139d790 fix(lua): don't remove first char of non-file stacktrace source (#37008) 2025-12-18 08:09:16 +08:00
zeertzjq
c172fd9f46 vim-patch:9.1.1991: :setlocal changes effective global 'omnifunc' (#37013)
Problem:  :setlocal changes effective global 'omnifunc' (Maxim Kim)
Solution: Don't change global callback when using :setlocal (zeertzjq).

fixes:  vim/vim#18948
closes: vim/vim#18951

3e82b0ebfe
2025-12-17 23:26:42 +00:00
yilisharcs
43db13bfa8 vim-patch:bd5e882: runtime(compiler): Match gcc.vim make error format (#37012)
Problem:  gcc.vim interprets "make: *** [Makefile" in the error message
          "make: *** [Makefile:2: all] Error 1" as a valid filename.
Solution: Add pattern to extract the filename correctly. Note that this
	  doesn't remove the dangling "]" from the output ("all]").

closes: vim/vim#18956

bd5e882a91
2025-12-18 07:08:57 +08:00
yilisharcs
0c27c1175b refactor(editor): extract backup name generation logic #37001
Problem: The logic for generating backup file names is duplicated in
`buf_write_make_backup` and difficult to reuse.

Solution: Extract name generation logic into `buf_get_backup_name`.
2025-12-17 11:05:16 -05:00
glepnir
856391bc7f fix(health): "q" keymap not set when health.style=float #37007
Problem:
The q keymap is already set in open_floating_preview, so maparg('q') is not empty.

Solution:
Add a health.style check before setting the q keymap.
2025-12-17 10:53:08 -05:00
zeertzjq
99e8b61376 Merge pull request #37006 from janlazo/vim-8.2.1939
vim-patch:8.2.{1939,1941}
2025-12-17 14:38:57 +08:00
Jan Edmund Lazo
1b1a8895bd vim-patch:8.2.1941: Ex mode test fails on MS-Windows with GUI
Problem:    Ex mode test fails on MS-Windows with GUI.
Solution:   Skip the test when using gvim.

399db046ed

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2025-12-17 00:47:13 -05:00
Jan Edmund Lazo
d6607dae41 vim-patch:8.2.1939: invalid memory access in Ex mode with global command
Problem:    Invalid memory access in Ex mode with global command.
Solution:   Make sure the cursor is on a valid line. (closes vim/vim#7238)

3b6d57f2ce

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2025-12-17 00:46:41 -05:00
glepnir
0197f13ed4 fix(lsp): sort items when completeopt include fuzzy #36974
Problem: When fuzzy is enabled and the prefix is not empty,
items are not sorted by fuzzy score before calling fn.complete.

Solution: Use matchfuzzypos to get the scores and sort the items
by fuzzy score before calling fn.complete.
2025-12-16 22:39:47 -05:00
jdrouhard
8a94daf80e fix(lsp): simplify semantic tokens range request logic #36950
By simplifying the way range is supported, we can fix a couple issues as
well as making it less complex and more efficient:

* For non-range LSP servers, don't send requests on WinScrolled. The
  semantic tokens module has been reworked to only send one active
  request at a time, as it was before range support was added. If range
  is not supported, then send_request() only fires if there's been a
  change to the buffer's document version.
* Cache the server's support of range and delta requests when attaching
  to a buffer to save the lookup on each request.
* Range requests always use the visible window, so just use that for the
  `range` param when sending requests when range is supported by the
  server. This reduces the API surface area of send_request().
* Debounce the WinScrolled autocmd requests in the same the way requests
  are debounced when the buffer contents are changing. Should allow
  scrolling via mouse wheel or holding down "j" or "k" work a bit
  smoother.

The previous iteration of range support allowed multiple active requests
to be in progress simultaneously. However, a bug was preventing any but
the most recent request to actually apply to the client's highlighting
state so that complexity was unused. It was effectively only using one
active request at a time but was just using range requests on
WinScrolled events instead of a full (or delta) request when the
document version changed.
2025-12-16 22:06:55 -05:00
zeertzjq
5c22feac06 Merge pull request #36989 from zeertzjq/vim-9.0.1758
vim-patch:9.{0.1758,1.1983,1.1987}
2025-12-17 07:12:08 +08:00
zeertzjq
544bde3acc vim-patch:9.1.1987: assert_equal() prepends unnecessary ':' when typed
Problem:  assert_equal() prepends unnecessary ':' when typed
          (after 9.0.1758).
Solution: Don't change a NULL stacktrace to an empty string (zeertzjq).

closes: vim/vim#18936

c4b3aefd0d
2025-12-17 06:47:34 +08:00
zeertzjq
6061169183 vim-patch:9.1.1983: Vim9: class_name definition can be improved
Problem:  Vim9: class_name definition can be improved
Solution: Use string_T to store class_name, avoid using STRLEN() calls,
          simplify code, remove unused definition of struct
          oc_newmember_S (John Marriott)

Use struct string_T to store the field class_name in struct class_T,
which means we can just use the .length field in struct string_T
instead of measuring it.

In addition:
1. In eval.c use string_T to store class_name and s in function
   class_tv2string().
2. In vim9type.c change some calls from ga_concat() to ga_concat_len()
   where the length is known.
3. In vim9class.c remove unused struct definition oc_newmember_S.
   Change some calls from ga_concat() to ga_concat_len() where the
   length is known.
4. In scriptfile.c use string_T to store type_name, class_name and
   es_name in function estack_sfile().
5. In function estack_sfile() simplify construction of the grow array ga
   and change some calls from ga_concat() to ga_concat_len() when the
   length is known.

closes: vim/vim#18925

2019321e0b

Co-authored-by: John Marriott <basilisk@internode.on.net>
2025-12-17 06:47:34 +08:00
zeertzjq
53fd3657cc vim-patch:9.0.1758: vim9 no class identifiers in stack dumps
Problem:  vim9 no class identifiers in stack dumps
Solution: Prefix class members in stack traces with the class name
          followed by a dot.

closes: vim/vim#12866
closes: vim/vim#12078

0ffc17aa47

Co-authored-by: LemonBoy <thatlemon@gmail.com>
2025-12-17 06:47:33 +08:00
Justin M. Keyes
02def1a32e Merge #36925 :lsp command 2025-12-16 13:48:43 -05:00
Olivia Kinnear
bd225422a5 fix(lsp): tests for :lsp, rename start/stop
- Rename :lsp start/stop to enable/disable
- Move lua section of `:lsp` to `vim/_core`
- Add tests
2025-12-16 13:46:08 -05:00
brianhuster
63abb1a88f feat(lsp): builtin :lsp command
Problem:
- Despite [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
  claims to be a "data-only" plugin, in fact it still provides some
  user-facing commands because they haven't been upstreamed to Nvim.

Solution:
- Upstream `:LspRestart`, `:LspStart` and `:LspStop` commands as `:lsp
  restart`, `:lsp start` and `:lsp stop` respectively.

Co-authored-by: glepnir <glephunter@gmail.com>
2025-12-16 13:46:04 -05:00
Ian Beckett
89d26d61d2 fix(vim.pack): increase default timeout #36992 2025-12-16 13:22:05 -05:00
glepnir
6af8958055 fix(highlight): respect 'winhighlight' in CursorLine Normal check #36927
Problem:
CursorLine background check used global `normal_bg`, ignoring 'winhighlight'.

Solution:
Use `bg_attr` to get window-local Normal background instead.
2025-12-16 00:51:54 -05:00
zeertzjq
1d22b05f8d docs: update support.txt (#36903) 2025-12-16 12:55:32 +08:00
Yochem van Rosmalen
0e04f88081 ci(lintdocurls): ignore websites that block GHA #36982
Problem:
These URLs seem to be unreachable from GHA CI but are available locally.

Solution:
Ignore them for now.
2025-12-15 23:46:15 -05:00
Justin M. Keyes
9b768d6b3d Merge #36860 from justinmk/doc2 2025-12-15 23:10:33 -05:00
zeertzjq
7a866e6b20 vim-patch:9.1.1981: tests: test suite may stop on error in gen_opt_test.vim (#36988)
Problem:  tests: test suite may stop on error in gen_opt_test.vim
Solution: Use a different output file for log files (Muraoka Taro)

When running newtests, it may unexpectedly stop just before
test_options_all.

Cause: When generating the opt_test.vim file for test_options_all, the
failure is detected by the existence of test.log. Therefore, if a test
performed before test_options_all fails and test.log is created, it is
mistakenly thought that the generation of opt_tet.vim has failed, and
the test suite stops there.

So let's change the filename created when utils/gen_opt_test.vim fails
from test.log to gen_opt_test.log, so that it can be detected
independently from other test failures.

closes: vim/vim#18928

35de719c0c

Co-authored-by: MURAOKA Taro <koron.kaoriya@gmail.com>
2025-12-16 07:50:02 +08:00
Ayaan
53aad276b6 fix(messages): exclude "search hit BOTTOM" msg from history #36961
Problem:
:messages history include the "search hit BOTTOM, continuing at TOP" message,
which is noise.

Solution:
Set msg_hist_off before giving the warning and reset it after warning.
2025-12-15 14:01:27 -05:00
Justin M. Keyes
d5cfca5b76 feat(docs): numbered listitems 2025-12-15 13:55:15 -05:00
Justin M. Keyes
dc1310d591 build(deps): bump tree-sitter-vimdoc to v4.1.0 2025-12-15 13:55:15 -05:00
Justin M. Keyes
a49bf5e1d3 fix(gen_help_html): parser override
Call `vim.treesitter.language.add()` before `get_helptags` (which
triggers filetype=help). And do this in the main routine, instead of
each gen/validate task.
2025-12-15 13:55:15 -05:00
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
Alejandro Exojo
46220afef8 fix(man.lua): show_toc condition may cause infinite loop #36979
`lnum` gets set with `vim.fn.nextnonblank`, which returns 0 on failure,
and which is truthy on Lua.
2025-12-15 11:02:10 -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
Yochem van Rosmalen
31cb37687a fix(health): check shell performance using vim.fn.system() #36980
Problem:
`vim.system()` doesn't invoke a shell, while the Vimscript function
`system()` does.

Solution:
Revert the change from 35af766de6 and use `vim.fn.system()` again to
actually invoke a shell.
2025-12-15 10:53:53 -05:00
dependabot[bot]
9c6ce77aa4 ci: bump korthout/backport-action from 3 to 4
Bumps [korthout/backport-action](https://github.com/korthout/backport-action) from 3 to 4.
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](https://github.com/korthout/backport-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 14:03:09 +01:00
dependabot[bot]
58d78efa1a ci: bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 13:44:53 +01:00
dependabot[bot]
13c927bd07 ci: bump actions/download-artifact from 6 to 7
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 13:26:57 +01: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
Justin M. Keyes
981ea41abb feat(tui): ghostty builtin terminfo #36963
Problem:
The builtin terminfo defs don't include xterm-ghostty, so features like
`kTerm_set_underline_style` are missing when building without unibilium.

Solution:
- Add ghostty to `gen_terminfo.lua`.
  - Note: The ncurses defs are somewhat different than what ghostty ships.
- Special-case ghostty in `terminfo_from_builtin`.
2025-12-15 02:07:51 -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
02e10d5101 vim-patch:64eeff5: runtime(fvwm): Update fvwm keywords (#36968)
fixes: vim/vim#18924

64eeff5784

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-15 01:09:14 +00:00
zeertzjq
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

5193375b10

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2025-12-15 01:06:13 +00:00
zeertzjq
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

6c027b25f1

Co-authored-by: Gordian Dziwis <gordian@dziw.is>
2025-12-15 00:55:41 +00:00
zeertzjq
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

4c141bae3b

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-12-15 08:38:42 +08:00