]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
3 weeks agopatch 9.1.1460: MS-Windows: too many strlen() calls in os_win32.c 17542/head v9.1.1460
John Marriott [Sun, 15 Jun 2025 14:50:38 +0000 (16:50 +0200)] 
patch 9.1.1460: MS-Windows: too many strlen() calls in os_win32.c

Problem:  MS-Windows: too many strlen() calls in os_win32.c
Solution: refactor code and remove calls to strlen() and wcscat()
          (John Marriott)

This commit does the following changes:
- in mch_get_exe_name():
  - refactor to remove call to wcsrchr().
  - refactor to replace calls to wcscat() with wcscpy().
  - move variables closer to where they are used.
  - change test to make sure that concatenating path and exe_pathw
    will fit inside the environment string (taking into account that
    path may be NULL).
- in executable_exists():
  - add namelen argument.
  - use string_T to store some strings.
  - refactor to remove calls to STRLEN() (via STRCAT()).
- in mch_getperm():
  - move call to mch_stat() into return statement and drop unneeded
    variable.
- in mch_wrename():
  - refactor to use wide character comparisons.
- some cosmetic code styling changes (removing extraneous spaces, etc).

closes: 17542

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(keymaps): Add Azerbaijani keymap
Rasul Samadzade [Sun, 15 Jun 2025 14:33:35 +0000 (16:33 +0200)] 
runtime(keymaps): Add Azerbaijani keymap

closes: #17541

Signed-off-by: Rasul Samadzade <rasul.samadzade@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1459: xxd: coloring output is inefficient v9.1.1459
Emanuel Krollmann [Sun, 15 Jun 2025 14:24:09 +0000 (16:24 +0200)] 
patch 9.1.1459: xxd: coloring output is inefficient

Problem:  xxd prints color escape sequences for every octet
          even if the color doesn't change
Solution: use separate arrays for colors and text and only
          print escape sequences when the color changes
          (Emanuel Krollmann)

fixes: #15122
closes: #17535

Signed-off-by: Emanuel Krollmann <E.Krollmann@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1458: tabpanel: tabs not properly updated with 'stpl' v9.1.1458
Hirohito Higashi [Sun, 15 Jun 2025 14:09:22 +0000 (16:09 +0200)] 
patch 9.1.1458: tabpanel: tabs not properly updated with 'stpl'

Problem:  tabpanel: tabs not properly updated with 'stpl'
Solution: remember the Column offset per tabpage
          (Hirohito Higashi)

fixes: #17519
closes: #17544

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): mention cannot ignored events in eventignorewin
glepnir [Sun, 15 Jun 2025 14:05:10 +0000 (16:05 +0200)] 
runtime(doc): mention cannot ignored events in eventignorewin

closes: #17545

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(netrw): remove g:netrw_quiet and reindent to 4 spaces
Luca Saccarola [Sun, 15 Jun 2025 13:26:26 +0000 (15:26 +0200)] 
runtime(netrw): remove g:netrw_quiet and reindent to 4 spaces

closes: #17539

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(comment): handle special chars ^$[ robustly
Maxim Kim [Fri, 13 Jun 2025 18:18:50 +0000 (20:18 +0200)] 
runtime(comment): handle special chars ^$[ robustly

Make sure comment toggling works when 'commentstring' contains
any of the following regex special characters by escaping them:

^ $ [

closes: #17537

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(debcontrol): add hurd-amd64 architecture to syntax script
Christian Brabandt [Fri, 13 Jun 2025 18:11:42 +0000 (20:11 +0200)] 
runtime(debcontrol): add hurd-amd64 architecture to syntax script

closes: #17525

Signed-off-by: Yuqian Yang <crupest@crupest.life>
Signed-off-by: James McCoy <jamessan@debian.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(masm): set 'com' and 'cms' options in ftplugin
Riley Bruins [Thu, 12 Jun 2025 20:07:40 +0000 (22:07 +0200)] 
runtime(masm): set 'com' and 'cms' options in ftplugin

closes: #17484

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(zimbu): set 'commentstring' option in ftplugin
Riley Bruins [Thu, 12 Jun 2025 20:05:31 +0000 (22:05 +0200)] 
runtime(zimbu): set 'commentstring' option in ftplugin

closes: #17478

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): improve the wording of 'sts', 'varts' and 'varsts' values
Damien Lejay [Thu, 12 Jun 2025 19:56:19 +0000 (21:56 +0200)] 
runtime(doc): improve the wording of 'sts', 'varts' and 'varsts' values

closes: #17522

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): refactor netrw#ErrorMsg -> netrw#msg#Notify
Luca Saccarola [Thu, 12 Jun 2025 19:51:42 +0000 (21:51 +0200)] 
runtime(netrw): refactor netrw#ErrorMsg -> netrw#msg#Notify

closes: #17526

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(defaults): Update the "Last Changes" header in defaults.vim
Damien Lejay [Thu, 12 Jun 2025 19:40:45 +0000 (21:40 +0200)] 
runtime(defaults): Update the "Last Changes" header in defaults.vim

This change was forgotten from commit 6f6c0dba9f578787

closes: #17536

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1457: compile warning with tabpanelopt v9.1.1457
John Marriott [Thu, 12 Jun 2025 19:37:18 +0000 (21:37 +0200)] 
patch 9.1.1457: compile warning with tabpanelopt

Problem:  compile warning with tabpanelopt
Solution: declare arg as UNUSED (John Marriott)

closes: #17528

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1456: comment plugin fails toggling if 'cms' contains \ v9.1.1456
Maxim Kim [Thu, 12 Jun 2025 19:31:00 +0000 (21:31 +0200)] 
patch 9.1.1456: comment plugin fails toggling if 'cms' contains \

Problem:  comment plugin fails toggling if 'cms' contains \
Solution: escape backslash (Maxim Kim)

groff could be commented using \" or \# and comment plugin fails to
uncomment such things.

NOTE: if newstyle comment would be introduced, e.g. .\#
for groff test would need to be adjusted.

closes: #17530

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): remove an obsolete item from todo.txt
Gary Johnson [Thu, 12 Jun 2025 19:15:07 +0000 (21:15 +0200)] 
runtime(doc): remove an obsolete item from todo.txt

I cannot reproduce this defect.  The replication instructions refer to
Mercurial version numbers and I no longer use Mercurial for my Vim
source.  I tried comparing various Git versions of the example file,
src/if_cscope.c, and still couldn't reproduce the defect.  Also, I use
Vim's diff mode a lot and haven't seen such a problem in a long time.
I am confident that it has been fixed.

Therefore, the item should be removed from todo.txt.

closes: #17534

Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1455: Haiku: dailog objects created with no reference v9.1.1455
jinyaoguo [Wed, 11 Jun 2025 19:30:01 +0000 (21:30 +0200)] 
patch 9.1.1455: Haiku: dailog objects created with no reference

Problem:  Haiku: dailog objects created with no reference
Solution: delete the objects before returning (jinyaoguo)

In the functions gui_mch_dialog() and gui_mch_font_dialog(), Dialog
objects are created but never escape the function scope. The call to
dialog->Go() only returns a boolean value and does not retain any
reference to the Dialog object itself, which may lead to potential
memory leak.

Fix this by deleting the object after using it.

closes: #17501

Signed-off-by: jinyaoguo <guo846@purdue.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(vim): Update base-syntax, improve function definition matching
Doug Kearns [Wed, 11 Jun 2025 19:16:14 +0000 (21:16 +0200)] 
runtime(vim): Update base-syntax, improve function definition matching

- Fix highlighting of function names including /fu\%[nction]/ (E.g.,
  s:func(), foo.fu(), fu.func())
- Match :delfunction argument.

Reported by Aliaksei Budavei.

closes: #17428

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1454: tests: no test for pum at line break position v9.1.1454
glepnir [Wed, 11 Jun 2025 19:14:02 +0000 (21:14 +0200)] 
patch 9.1.1454: tests: no test for pum at line break position

Problem:  Missing test case for pum display on a wrapped line.
Solution: Add a test case to cover pum behavior at line break positions.
          (glepnir)

closes: #17520

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(openPlugin): Open should open file names with spaces in Windows
Maxim Kim [Wed, 11 Jun 2025 19:10:59 +0000 (21:10 +0200)] 
runtime(openPlugin): Open should open file names with spaces in Windows

Use <f-args> instead of <q-args> in commands:

- :Open
- :Launch
- :URLOpen

fixes #17468
closes: #17517

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): add more pointers to 'completeopt'
Ilya Grigoriev [Wed, 11 Jun 2025 19:07:35 +0000 (21:07 +0200)] 
runtime(doc): add more pointers to 'completeopt'

Before this commit, I had trouble finding information about configuring
the insert mode completion. In particular, it was not clear that the
'wildopt' config that I already had in my vimrc does not apply here.

Also, `insert.txt` barely mentioned 'completeopt' except when
describing popups (I was more interested in bash-like behavior
where the unique prefix of all completions is completed first).

I'm hoping these edits will make the relevant docs easier to find.

closes: #17515

Signed-off-by: Ilya Grigoriev <ilyagr@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): remove comment separators
Luca Saccarola [Wed, 11 Jun 2025 18:42:41 +0000 (20:42 +0200)] 
runtime(netrw): remove comment separators

closes: #17514

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1453: tests: Test_geometry() may fail v9.1.1453
Christian Brabandt [Tue, 10 Jun 2025 19:29:43 +0000 (21:29 +0200)] 
patch 9.1.1453: tests: Test_geometry() may fail

Problem:  tests: Test_geometry() may fail
          (Gary Johnson)
Solution: allow a slightly smaller value when checking the number of
          lines.

fixes: #17491

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(filetype): Use s:StarSetf for all patterns ending in *
Doug Kearns [Tue, 10 Jun 2025 19:15:22 +0000 (21:15 +0200)] 
runtime(filetype): Use s:StarSetf for all patterns ending in *

Problem:  Some filetype autocmds with patterns ending in * do not skip
          filenames matching g:ignored_patterns.
Solution: Move these autocmds to the appropriate section and call
          s:StarSetf() to set the filetype.

- Affected filetypes: dosini, execline, foam, messages, nginx, tmux.
- Convert foam filetype patterns to use wildcard matching.

closes: #17422

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): update documentation on tabstop settings
Damien Lejay [Tue, 10 Jun 2025 19:12:31 +0000 (21:12 +0200)] 
runtime(doc): update documentation on tabstop settings

Unify the treatment of tabstop, correct errors and deprecate smarttab
usage.

closes: #17444

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(vim): Update base-syntax, contain let-heredocs
Doug Kearns [Tue, 10 Jun 2025 19:02:43 +0000 (21:02 +0200)] 
runtime(vim): Update base-syntax, contain let-heredocs

Limit heredoc matches to assignment statements.  Matching these at the
top level is very slow.

closes: #17473

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(reva): set 'cms' option in ftplugin, update URL
Riley Bruins [Tue, 10 Jun 2025 19:00:07 +0000 (21:00 +0200)] 
runtime(reva): set 'cms' option in ftplugin, update URL

closes: #17488

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(abap): set 'comments' and 'commentstring' option in ftplugin
Riley Bruins [Tue, 10 Jun 2025 18:57:14 +0000 (20:57 +0200)] 
runtime(abap): set 'comments' and 'commentstring' option in ftplugin

Reference:
https://en.wikipedia.org/wiki/ABAP#Comments

closes: #17489

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1452: completion: redundant check for completion flags v9.1.1452
glepnir [Tue, 10 Jun 2025 18:52:41 +0000 (20:52 +0200)] 
patch 9.1.1452: completion: redundant check for completion flags

Problem:  completion: redundant check for completion flags
Solution: refactor code slightly (glepnir)

refactor: nest fuzzy completion logic to avoid duplicate flag checks

- Combine COT_FUZZY checks into single nested condition
- Reduce redundant bitwise operations in ins_compl_new_leader()

closes: #17494

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1451: tabpanel rendering artifacts when scrolling v9.1.1451
Hirohito Higashi [Tue, 10 Jun 2025 18:42:06 +0000 (20:42 +0200)] 
patch 9.1.1451: tabpanel rendering artifacts when scrolling

Problem:  tabpanel rendering artifacts when scrolling
Solution: update scrolling logic (Hirohito Higashi)

fixes: #17495
closes: #17496

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): get rid of s:Strlen() and use strdisplaywidth()
Luca Saccarola [Tue, 10 Jun 2025 18:39:50 +0000 (20:39 +0200)] 
runtime(netrw): get rid of s:Strlen() and use strdisplaywidth()

closes: #17498

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(java): Match raw-, non-generic-, and generic-type names of "java.lang"
Aliaksei Budavei [Tue, 10 Jun 2025 18:37:39 +0000 (20:37 +0200)] 
runtime(java): Match raw-, non-generic-, and generic-type names of "java.lang"

And only match innermost element types of parameterised
array types.

References:
https://docs.oracle.com/javase/specs/jls/se21/html/jls-4.html#jls-4.8
https://docs.oracle.com/javase/specs/jls/se21/html/jls-6.html#jls-6.1
https://docs.oracle.com/javase/specs/jls/se21/html/jls-10.html

closes: #17499

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(gdshader): add comments and commentstring to ftplugin
Maxim Kim [Tue, 10 Jun 2025 18:35:03 +0000 (20:35 +0200)] 
runtime(gdshader): add comments and commentstring to ftplugin

closes: #17500

Co-authored-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1450: Session has wrong arglist with :tcd and :arglocal v9.1.1450
zeertzjq [Tue, 10 Jun 2025 18:31:44 +0000 (20:31 +0200)] 
patch 9.1.1450: Session has wrong arglist with :tcd and :arglocal

Problem:  Session has wrong arglist with :tcd and :arglocal.
Solution: Also use absolute path for :argadd when there is tabpage-local
          directory (zeertzjq).

related: neovim/neovim#34405
closes: #17503

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(8th): updated 8th syntax script
Ron Aaron [Tue, 10 Jun 2025 18:27:57 +0000 (20:27 +0200)] 
runtime(8th): updated 8th syntax script

closes: #17505

Signed-off-by: Ron Aaron <ron@aaron-tech.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1449: typo in pum_display() v9.1.1449
glepnir [Tue, 10 Jun 2025 18:23:42 +0000 (20:23 +0200)] 
patch 9.1.1449: typo in pum_display()

Problem:  typo in pum_display()
Solution: update the comment, remove empty new lines
          (glepnir)

closes: #17506

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoCI: update Cirrus runner to FreeBSD 14.3
Philip H. [Tue, 10 Jun 2025 18:21:29 +0000 (20:21 +0200)] 
CI: update Cirrus runner to FreeBSD 14.3

closes: #17508

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1448: tabpanel is not displayed correctly when msg_scrolled v9.1.1448
Hirohito Higashi [Tue, 10 Jun 2025 18:19:04 +0000 (20:19 +0200)] 
patch 9.1.1448: tabpanel is not displayed correctly when msg_scrolled

Problem:  tabpanel is not displayed correctly when msg_scrolled
Solution: remove the msg_scrolled condition (Hirohito Higashi)

fixes: #17502
closes: #17510

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1447: completion: crash when backspacing with fuzzy completion v9.1.1447
zeertzjq [Tue, 10 Jun 2025 18:06:53 +0000 (20:06 +0200)] 
patch 9.1.1447: completion: crash when backspacing with fuzzy completion

Problem:  completion: crash when backspacing with fuzzy completion
Solution: Don't dereference compl_first_match when it's NULL
          (zeertzjq).

related: neovim/neovim#34419
closes: #17511

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(rpl): set commentstring option in ftplugin
Riley Bruins [Mon, 9 Jun 2025 19:10:11 +0000 (21:10 +0200)] 
runtime(rpl): set commentstring option in ftplugin

closes: #17487

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(postscr): set commentstring option in ftplugin
Riley Bruins [Mon, 9 Jun 2025 19:08:33 +0000 (21:08 +0200)] 
runtime(postscr): set commentstring option in ftplugin

closes: #17486

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(occam): set commentstring option in ftplugin
Riley Bruins [Mon, 9 Jun 2025 19:06:23 +0000 (21:06 +0200)] 
runtime(occam): set commentstring option in ftplugin

closes: #17485

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(lprolog): set com, cms options for lambda prolog
Riley Bruins [Mon, 9 Jun 2025 19:03:04 +0000 (21:03 +0200)] 
runtime(lprolog): set com, cms options for lambda prolog

closes: #17481

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(vue): set 'com' and 'cms' options in ftplugin
Riley Bruins [Mon, 9 Jun 2025 18:55:31 +0000 (20:55 +0200)] 
runtime(vue): set 'com' and 'cms' options in ftplugin

closes: #17479

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1446: filetype: cuda-gdb config files are not recognized v9.1.1446
Wu, Zhenyu [Mon, 9 Jun 2025 18:48:24 +0000 (20:48 +0200)] 
patch 9.1.1446: filetype: cuda-gdb config files are not recognized

Problem:  filetype: cuda-gdb config files are not recognized
Solution: detect .cuda-gdbinit and cuda-gdbinit files as gdb filetype
          (Wu Zhenyu)

closes: #17471

Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1445: negative matchfuzzy scores although there is a match v9.1.1445
Girish Palya [Mon, 9 Jun 2025 18:43:03 +0000 (20:43 +0200)] 
patch 9.1.1445: negative matchfuzzy scores although there is a match

Problem:  negative matchfuzzy scores although there is a match
          (Maxim Kim)
Solution: reset the score if a match has been found but the score is
          negative (Girish Palya)

The fuzzy algorithm may miss some matches in long strings due to recursion
limits. As a result, the score can end up negative even when matches exist.
In such cases, reset the score to ensure it is non-negative.

fixes: ##17449
closes: #17469

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1444: Unused assignment in set_fuzzy_score() v9.1.1444
zeertzjq [Mon, 9 Jun 2025 18:34:57 +0000 (20:34 +0200)] 
patch 9.1.1444: Unused assignment in set_fuzzy_score()

Problem:  Unused assignment in set_fuzzy_score() (after 9.1.1441).
Solution: Remove it (zeertzjq).

closes: #17472

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1443: potential buffer underflow in insertchar() v9.1.1443
jinyaoguo [Mon, 9 Jun 2025 18:31:17 +0000 (20:31 +0200)] 
patch 9.1.1443: potential buffer underflow in insertchar()

Problem:  potential buffer underflow in insertchar()
Solution: verify that end_len is larger than zero
          (jinyaoguo)

When parsing the end-comment leader, end_len can be zero if
copy_option_part() writes no characters. The existing check
unconditionally accessed lead_end[end_len-1], causing potential
underflow when end_len == 0.

This change adds an end_len > 0 guard to ensure we only index lead_end
if there is at least one character.

closes: #17476

Signed-off-by: jinyaoguo <guo846@purdue.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1442: tests: Test_diff_fold_redraw() is insufficient v9.1.1442
Gary Johnson [Mon, 9 Jun 2025 18:19:35 +0000 (20:19 +0200)] 
patch 9.1.1442: tests: Test_diff_fold_redraw() is insufficient

Problem:  tests: Test_diff_fold_redraw() is insufficient
          (after v9.1.1439, Christ van Willegen)
Solution: improve the test (Gary Johnson)

The original Test_diff_fold_redraw() function, added 2025-06-08 at patch
9.1.1439, had a bug and didn't do a very good job of testing the fold
behavior.  This new version is simpler and more thorough.

The bug was that it checked the fold state of one window twice instead
of checking both windows.

closes: #17492

Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): cleanup Decho related comments
Luca Saccarola [Mon, 9 Jun 2025 14:04:05 +0000 (16:04 +0200)] 
runtime(netrw): cleanup Decho related comments

closes: #17465

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1441: completion: code can be improved v9.1.1441
Girish Palya [Sun, 8 Jun 2025 14:20:06 +0000 (16:20 +0200)] 
patch 9.1.1441: completion: code can be improved

Problem:  completion: code can be improved
Solution: remove reposition_match() and use mergesort_list(),
          for fuzzy completion, sort by fuzzy score immediately after
          setting a new leader (Girish Palya)

closes: #17460

Co-authored-by: glepnir <glephunter@gmail.com>
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(nginx): Add NGINX directive for background cache updates
S0AndS0 [Sun, 8 Jun 2025 14:15:00 +0000 (16:15 +0200)] 
runtime(nginx): Add NGINX directive for background cache updates

Docs: https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_background_update

closes: #17458

Signed-off-by: S0AndS0 <strangerthanbland@gmail.com>
Signed-off-by: Chris Aumann <me@chr4.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1440: too many strlen() calls in os_win32.c v9.1.1440
John Marriott [Sun, 8 Jun 2025 14:05:53 +0000 (16:05 +0200)] 
patch 9.1.1440: too many strlen() calls in os_win32.c

Problem:  too many strlen() calls in os_win32.c
Solution: refactor code and remove calls to strlen()
          (John Marriott)

The following changes have been made:
- In mch_init_g():
  - refactor to remove calls to STRLEN().
  - use vim_strnsave() instead of vim_strsave().
  - set a flag if vimrun_path is stored in allocated memory so it can be
     freed at exit.
- In mch_exit() free vimrun_path if it was stored in allocated memory.
- In fname_case() make a small optimisation by measuring the length of
  name only if needed.
- In copy_extattr() make a small optimisation by replacing call to
  STRCAT() with STRCPY().

closes: #17462

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1439: Last diff folds not merged v9.1.1439
Gary Johnson [Sun, 8 Jun 2025 14:00:06 +0000 (16:00 +0200)] 
patch 9.1.1439: Last diff folds not merged

Problem:  Last diff folds not merged (after v8.1.1922)
Solution: loop over all windows in the current tabpage and update all
          folds (Gary Johnson)

This commit fixes a bug where the last two folds of a diff are not
merged when the last difference between the two diff'd buffers is
resolved.

Normally, when two buffers are diff'd, folding is used to show only the
text that differs and to hide the text that is the same between the two
buffers.  When a difference is resolved by making a block of text the
same in both buffers, the folds are updated to merge that block with the
folds above and below it into one closed fold.

That updating of the folds did not occur when the block of text was the
last diff block in the buffers.

The bug was introduced by this patch on August 24, 2019:

    patch 8.1.1922: in diff mode global operations can be very slow

    Problem:    In diff mode global operations can be very slow.
    Solution:   Do not call diff_redraw() many times, call it once when
redrawing.  And also don't update folds multiple times.

Unfortunately, folds were then not updated often enough.

The problem was fixed by adding a short loop to the ex_diffgetput()
function in diff.c to update all the folds in the current tab when the
last difference is removed.

A test for this was added to test_diffmode.vim.  Two of the reference
screen dumps for another test in that file,
Test_diffget_diffput_linematch(), had to be changed to have all the
folds closed rather than to have the last diff block remain open.

closes: #17457

Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1438: tests: Test_breakindent_list_split() fails v9.1.1438
Aliaksei Budavei [Sun, 8 Jun 2025 13:52:42 +0000 (15:52 +0200)] 
patch 9.1.1438: tests: Test_breakindent_list_split() fails

Problem:  tests: Test_breakindent_list_split() fails
          (Phạm Bình An)
Solution: Always reset "&columns" and "&lines" for GUI builds
          (Aliaksei Budavei)

Ensure that "&columns" and "&lines" are always set to their
default values before calling "SetUp()", if any, for EACH
test run by a GUI build to avoid yet-to-be-run tests from
inheriting possibly changed values (after window resizing)
and leading to broken assumptions about available estate and
occasional test failures.

fixes: #17453
closes: #17447

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1437: MS-Windows: internal compile error in uc_list() v9.1.1437
Mike Williams [Sun, 8 Jun 2025 13:41:52 +0000 (15:41 +0200)] 
patch 9.1.1437: MS-Windows: internal compile error in uc_list()

Problem:  MS-Windows: internal compile error in uc_list() with VS 17.14
          (ibear)
Solution: refactor code slightly (Mike Williams)

fixes: #17402
closes: #17464

Signed-off-by: Mike Williams <mrmrdubya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): fix some style issues and remove obsolete docs
Hirohito Higashi [Sat, 7 Jun 2025 16:31:42 +0000 (18:31 +0200)] 
runtime(doc): fix some style issues and remove obsolete docs

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(vim): vimHLGroup is not highlighted correctly
Eisuke Kawashima [Sat, 7 Jun 2025 15:59:11 +0000 (17:59 +0200)] 
runtime(vim): vimHLGroup is not highlighted correctly

Problem: vimHLGroup is not highlighted in "hi def link"
          and "hi clear" commands
Solution: highlight vimHLGroup similarly to vimGroup
          (Eisuke Kawashima)

closes: #17450

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(vim): remove trailing whitespace in Vim syntax generator
Eisuke Kawashima [Sat, 7 Jun 2025 15:55:58 +0000 (17:55 +0200)] 
runtime(vim): remove trailing whitespace in Vim syntax generator

related: #17450

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1436: GUI control code is displayed on the console on startup v9.1.1436
Hirohito Higashi [Sat, 7 Jun 2025 15:49:35 +0000 (17:49 +0200)] 
patch 9.1.1436: GUI control code is displayed on the console on startup

Problem:  GUI control code is displayed on the console on startup
Solution: check if Vim is starting up (Hirohito Higashi)

closes: #17456

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoCI: bump xcode to 16.4
Philip H. [Sat, 7 Jun 2025 15:45:21 +0000 (17:45 +0200)] 
CI: bump xcode to 16.4

closes: #17446

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(netrw): upstream snapshot of v181
Luca Saccarola [Sat, 7 Jun 2025 15:35:18 +0000 (17:35 +0200)] 
runtime(netrw): upstream snapshot of v181

closes: #17461

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(typescript): remove Fixedgq() function from indent script
Phạm Bình An [Thu, 5 Jun 2025 19:21:35 +0000 (21:21 +0200)] 
runtime(typescript): remove Fixedgq() function from indent script

Problem:
1. The `Fixedgq()` function is broken (see #17412)
2. The `'formatexpr'` for Typescript is not documented, which causes
   confusion to users when they try to set `'formatprg'`, since
   `'formatexpr'` always takes precedence over `'formatprg'`. See also
   https://github.com/HerringtonDarkholme/yats.vim/issues/209
3. Typescript already has a very good and popular formatter called
   `prettier`, that can be easily integrated to Vim via `'formatprg'`
   (see #16989). I don't think there are any good reasons to reinvent a
   half-baked version in Vim.

Solution:  Remove the Fixedgq() 'formatexpr' function.

fixes: #17412
closes: #17452

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): Add missing 'wfb' (winfixbuf) tag
Doug Kearns [Thu, 5 Jun 2025 19:18:09 +0000 (21:18 +0200)] 
runtime(doc): Add missing 'wfb' (winfixbuf) tag

closes: #17455

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1435: completion: various flaws in fuzzy completion v9.1.1435
Girish Palya [Thu, 5 Jun 2025 19:04:29 +0000 (21:04 +0200)] 
patch 9.1.1435: completion: various flaws in fuzzy completion

Problem:  completion: various flaws in fuzzy completion
Solution: fix the issues (Girish Palya)

- Remove the brittle `qsort()` on `compl_match_array`.
- Add a stable, non-recursive `mergesort` for the internal doubly
  linked list of matches.
- The sort now happens directly on the internal representation (`compl_T`),
  preserving sync with external structures and making sorting stable.
- Update fuzzy match logic to enforce `max_matches` limits after
  sorting.
- Remove `trim_compl_match_array()`, which is no longer necessary.
- Fixe test failures by correctly setting `selected` index and
  maintaining match consistency.
- Introduce `mergesort_list()` in `misc2.c`, which operates generically
  over doubly linked lists.
- Remove `pum_score` and `pum_idx` variables

fixes: #17387
closes: #17430

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1434: MS-Windows: missing out-of-memory checks in os_win32.c v9.1.1434
John Marriott [Thu, 5 Jun 2025 18:49:39 +0000 (20:49 +0200)] 
patch 9.1.1434: MS-Windows: missing out-of-memory checks in os_win32.c

Problem:  MS-Windows: missing out-of-memory checks in os_win32.c
Solution: Add out-of-memory checks to os_win32.c (John Marriott)

closes: #17441

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1433: Unnecessary :if when writing session v9.1.1433
zeertzjq [Thu, 5 Jun 2025 18:25:51 +0000 (20:25 +0200)] 
patch 9.1.1433: Unnecessary :if when writing session

Problem:  Unnecessary :if in session where both branches have the same
          effect (after 9.1.1431).
Solution: Remove the superfluous :if (zeertzjq).

closes: #17448

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(vim): Update base-syntax, improve Vim9 block start pattern
Doug Kearns [Thu, 5 Jun 2025 18:23:07 +0000 (20:23 +0200)] 
runtime(vim): Update base-syntax, improve Vim9 block start pattern

The opening curly brace must be followed by whitespace, comment or
trailing bar.

closes: #17454

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(openPlugin): Add URLOpen to not expand special chars
Christian Brabandt [Wed, 4 Jun 2025 19:59:01 +0000 (21:59 +0200)] 
runtime(openPlugin): Add URLOpen to not expand special chars

closes: #17424

Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): fix small errors from rev 2090405de5bb66facc29c74
Christian Brabandt [Wed, 4 Jun 2025 19:40:21 +0000 (21:40 +0200)] 
runtime(doc): fix small errors from rev 2090405de5bb66facc29c74

- update the netrw window to current version (and trim it slightly to 80
  chars)
- remove a trailing double quote

Co-authored-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1432: GTK GUI: Buffer menu does not handle unicode correctly v9.1.1432
SUN Haitao [Wed, 4 Jun 2025 19:25:31 +0000 (21:25 +0200)] 
patch 9.1.1432: GTK GUI: Buffer menu does not handle unicode correctly

Problem:  GTK GUI: Buffer menu does not handle unicode correctly
Solution: Get rid of the BMHash() function (SUN Haitao)

fixes: #17403
closes: #17405

Signed-off-by: SUN Haitao <sunhaitao@devtaste.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): clarify the effect of 'smarttab'
Damien Lejay [Wed, 4 Jun 2025 19:19:18 +0000 (21:19 +0200)] 
runtime(doc): clarify the effect of 'smarttab'

closes: #17426

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1431: Hit-Enter Prompt when loading session files v9.1.1431
Miguel Barro [Wed, 4 Jun 2025 19:03:27 +0000 (21:03 +0200)] 
patch 9.1.1431: Hit-Enter Prompt when loading session files

Problem:  Hit-Enter Prompt when loading session files
Solution: use set+= for 'shortmess' to keep the existing flags
          (Miguel Barro)

closes: #17445

Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(mbsync): Add support for TLSType in syntax script
Filippo Bonazzi [Wed, 4 Jun 2025 18:13:03 +0000 (20:13 +0200)] 
runtime(mbsync): Add support for TLSType in syntax script

closes: #17438

Signed-off-by: Filippo Bonazzi <filippo.bonazzi@suse.com>
Signed-off-by: Pierrick Guillaume <pguillaume@fymyte.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1430: tabpanel may flicker in the GUI v9.1.1430
Hirohito Higashi [Wed, 4 Jun 2025 18:05:59 +0000 (20:05 +0200)] 
patch 9.1.1430: tabpanel may flicker in the GUI

Problem:  tabpanel may flicker in the GUI
Solution: call scroll_start() and scroll_region_reset()
          (Hirohito Higashi)

fixes: #17440
closes: #17442

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(new-tutor): update the "correct" text in tutor.tutor.json
Phạm Bình An [Tue, 3 Jun 2025 19:20:00 +0000 (21:20 +0200)] 
runtime(new-tutor): update the "correct" text in tutor.tutor.json

Change from "Document '&variable'" to the expected correct result
"TODO: Document '&variable'"

closes: #17417

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1429: dragging outside the tabpanel changes tabpagenr v9.1.1429
Hirohito Higashi [Tue, 3 Jun 2025 19:07:25 +0000 (21:07 +0200)] 
patch 9.1.1429: dragging outside the tabpanel changes tabpagenr

Problem:  dragging outside the tabpanel changes tabpagenr (char101)
Solution: set in_tab_line and in_tabpanel variables (Hirohito Higashi)

fixes: #17385
closes: #17431

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1428: completion: register completion needs cleanup v9.1.1428
glepnir [Tue, 3 Jun 2025 19:04:44 +0000 (21:04 +0200)] 
patch 9.1.1428: completion: register completion needs cleanup

Problem:  completion: register completion needs cleanup
Solution: slightly refactor get_register_completion()
          (glepnir)

closes: #17432

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1427: rendering artifacts with the tabpanel v9.1.1427
Hirohito Higashi [Tue, 3 Jun 2025 18:57:57 +0000 (20:57 +0200)] 
patch 9.1.1427: rendering artifacts with the tabpanel

Problem:  rendering artifacts with the tabpanel
          (char101)
Solution: prevent double redraw, use Columns instead of frame width
          (Hirohito Higashi)

fixes: #17429
closes: #17435

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): make examples verbatim to prevent conceal/tag parsing
Yochem van Rosmalen [Tue, 3 Jun 2025 18:54:33 +0000 (20:54 +0200)] 
runtime(doc): make examples verbatim to prevent conceal/tag parsing

closes: #17437

Signed-off-by: Yochem van Rosmalen <git@yochem.nl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): clarify the effect of exclusive single char selections
Christian Brabandt [Mon, 2 Jun 2025 17:56:57 +0000 (19:56 +0200)] 
runtime(doc): clarify the effect of exclusive single char selections

closes: #17410

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1426: completion: register contents not completed v9.1.1426
glepnir [Mon, 2 Jun 2025 17:45:41 +0000 (19:45 +0200)] 
patch 9.1.1426: completion: register contents not completed

Problem:  CTRL-X CTRL-R only completes individual words from registers,
          making it difficult to insert complete register content.
Solution: Add consecutive CTRL-X CTRL-R support - first press completes
          words, second press completes full register lines, similar to
          CTRL-X CTRL-L and CTRL-X CTRL-P behavior (glepnir).

closes: #17395

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(vim): Update base-syntax, bug fixes
Doug Kearns [Mon, 2 Jun 2025 17:31:10 +0000 (19:31 +0200)] 
runtime(vim): Update base-syntax, bug fixes

- Contain :profdel arguments.
- Fix string highlighting immediately after lambda -> operators.

Reported by Aliaksei Budavei.

closes: #17427

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1425: tabpanel: there are still some problems with the tabpanel v9.1.1425
Hirohito Higashi [Sun, 1 Jun 2025 18:22:55 +0000 (20:22 +0200)] 
patch 9.1.1425: tabpanel: there are still some problems with the tabpanel

Problem:  tabpanel: there are still some problems with the tabpanel with
          column handling
Solution: fix the problems and refactor Tabpanel feature (Hirohito
          Higashi).

fixes: #17423
fixes: #17332
closes: #17336

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1424: PMenu selection broken with multi-line selection and limits v9.1.1424
Girish Palya [Sun, 1 Jun 2025 18:11:59 +0000 (20:11 +0200)] 
patch 9.1.1424: PMenu selection broken with multi-line selection and limits

Problem:  PMenu selection broken with multi-line selection and limits
          (Maxim Kim)
Solution: update completion match index when limiting the completion
          sources (Girish Palya)

fixes: #17394
closes: #17401

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1423: :tag command not working correctly using Vim9 Script v9.1.1423
Christian Brabandt [Sun, 1 Jun 2025 17:47:03 +0000 (19:47 +0200)] 
patch 9.1.1423: :tag command not working correctly using Vim9 Script

Problem:  :tag command not working correctly using Vim9 Script
Solution: inject a ':' before the numeric address, to make the command
          valid in Vim9 context

fixes: #17415
closes: #17418

Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1422: scheduling of complete function can be improved v9.1.1422
Girish Palya [Sun, 1 Jun 2025 17:40:00 +0000 (19:40 +0200)] 
patch 9.1.1422: scheduling of complete function can be improved

Problem:  scheduling of complete function can be improved
Solution: call user completion functions earlier when just determining
          the insertion column (Girish Palya)

This change improves the scheduling behavior of async user-defined
completion functions (such as `F{func}`, `F`, or `'o'` values in the
`'complete'` option), particularly benefiting LSP clients.

Currently, these user functions are invoked twice:

1. First with `findstart = 1` to determine the completion start
   position.
2. Then with `findstart = 0` to retrieve the actual matches.

Previously, both calls were executed back-to-back. With this change, the
first call (`findstart = 1`) is performed earlier—before any matches are
gathered from other sources.

This adjustment gives event-driven completion sources (e.g., LSP
clients) more time to send their requests while Vim concurrently
collects matches from other sources like the current buffer.

Not sure about the real-world performance gains, but this approach
should, in theory, improve responsiveness and reduce latency for
asynchronous completions.

To test, try using yegappan LSP client:

```vim
set cpt+=o^10
autocmd VimEnter * g:LspOptionsSet({ autoComplete: false, omniComplete: true })
```

If you prefer to use 'native' auto-completion (without plugins), try the
following configuration:

```vim
set cot=menuone,popup,noselect,nearest
autocmd TextChangedI * InsComplete()
def InsComplete()
  if getcharstr(1) == '' && getline('.')->strpart(0, col('.') - 1) =~ '\k$'
    SkipTextChangedI()
    feedkeys("\<c-n>", "n")
  endif
enddef
inoremap <silent> <c-e> <c-r>=<SID>SkipTextChangedI()<cr><c-e>
inoremap <silent> <c-y> <c-r>=<SID>SkipTextChangedI()<cr><c-y>
def SkipTextChangedI(): string
  set eventignore+=TextChangedI
  timer_start(1, (_) => {
    set eventignore-=TextChangedI
  })
  return ''
enddef
inoremap <silent><expr> <tab> pumvisible() ? "\<c-n>" : "\<tab>"
inoremap <silent><expr> <s-tab> pumvisible() ? "\<c-p>" : "\<s-tab>"
```

closes: #17396

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(doc): make 'shiftwidth' setting more precise
Damien Lejay [Sun, 1 Jun 2025 17:10:36 +0000 (19:10 +0200)] 
runtime(doc): make 'shiftwidth' setting more precise

closes: #17414

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agopatch 9.1.1421: tests: need a test for the new-style tutor.tutor v9.1.1421
Phạm Bình An [Sun, 1 Jun 2025 16:58:09 +0000 (18:58 +0200)] 
patch 9.1.1421: tests: need a test for the new-style tutor.tutor

Problem:  tests: need a test for the new-style tutor.tutor, patch
          9.1.1384 broke the expected positions for the signs
Solution: Update all number keys in tutor.tutor.json to match the
          correct line numbers in tutor.tutor, replace tabs by spaces,
          add a screen-dump test to verify it does not regress
          (Pham Bình An)

closes: #17416

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(java): Match annotation- and interface-type names of "java.lang"
Aliaksei Budavei [Sun, 1 Jun 2025 16:29:37 +0000 (18:29 +0200)] 
runtime(java): Match annotation- and interface-type names of "java.lang"

Complement the documented support for the recognition of all
public types of the "java.lang" package (":help java.vim").
(The original syntax item generator may have, inadvertently,
contributed via suppressing "NullPointerException"s to not
having annotation and interface types qualify in general.)

Also, re-link usage instructions for the alternative syntax
item generator to a rolling "master"'s version.

closes: #17419

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 weeks agoruntime(vim): Update base-syntax, improve :profile highlighting
Doug Kearns [Sun, 1 Jun 2025 16:26:39 +0000 (18:26 +0200)] 
runtime(vim): Update base-syntax, improve :profile highlighting

Match full :profile and :profdel commands.

closes: #17420

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agoruntime(vim): Update base-syntax, improve :mark and :substitute highlighting
Doug Kearns [Sat, 31 May 2025 15:52:48 +0000 (17:52 +0200)] 
runtime(vim): Update base-syntax, improve :mark and :substitute highlighting

- Match full :mark and :k commands.
- Match 2 and 3 letter :s repeat commands.
- Match :s [count] argument.

closes: #17408

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agopatch 9.1.1420: tests: could need some more tests for shebang lines v9.1.1420
Eisuke Kawashima [Sat, 31 May 2025 10:30:59 +0000 (12:30 +0200)] 
patch 9.1.1420: tests: could need some more tests for shebang lines

Problem:  tests: could need some more tests for shebang lines
Solution: add more shebang patterns to test_filetype.vim
          (Eisuke Kawashima)

closes: #17409

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agoruntime(java): Reference a modern syntax item generator for type names
Aliaksei Budavei [Sat, 31 May 2025 10:25:15 +0000 (12:25 +0200)] 
runtime(java): Reference a modern syntax item generator for type names

And generalise the sourcing of "javaid.vim" for Java
buffers.

Resolves zzzyxwvut/java-vim#10.
closes: #17411

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agopatch 9.1.1419: It is difficult to ignore all but some events v9.1.1419
Luuk van Baal [Sat, 31 May 2025 10:10:31 +0000 (12:10 +0200)] 
patch 9.1.1419: It is difficult to ignore all but some events

Problem:  It is difficult to ignore all but some events.
Solution: Add support for a "-" prefix syntax in '(win)eventignore' that
          subtracts an event from the ignored set if present
          (Luuk van Baal).

closes: #17392

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agoruntime(doc): fix typo in tag for helptoc package
Christian Brabandt [Sat, 31 May 2025 10:06:49 +0000 (12:06 +0200)] 
runtime(doc): fix typo in tag for helptoc package

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agoruntime(doc): CI fails with trailing whitespace error in usr_30.txt
Christian Brabandt [Fri, 30 May 2025 18:14:16 +0000 (20:14 +0200)] 
runtime(doc): CI fails with trailing whitespace error in usr_30.txt

Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agoruntime(doc): clarify behaviour of set maxcombine=0
Christian Brabandt [Fri, 30 May 2025 15:43:42 +0000 (17:43 +0200)] 
runtime(doc): clarify behaviour of set maxcombine=0

related: #17400

Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agoruntime(doc): update todo list
Christian Brabandt [Fri, 30 May 2025 15:38:30 +0000 (17:38 +0200)] 
runtime(doc): update todo list

It is now possible to use omni-completion by adding the "o" flag to
'complete'

fixes: #17393

Co-authored-by: Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 weeks agoruntime(doc): clarify tabstop settings and guidance
Damien Lejay [Fri, 30 May 2025 15:36:37 +0000 (17:36 +0200)] 
runtime(doc): clarify tabstop settings and guidance

closes: #17381

Signed-off-by: Damien Lejay <damien@lejay.be>
Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
Co-authored-by: Christian Brabandt <cb@256bit.org>