]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
8 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>
8 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>
8 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months 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>
2 months agoruntime(vim): Update base-syntax, improve :set highlighting
Doug Kearns [Fri, 30 May 2025 14:17:30 +0000 (16:17 +0200)] 
runtime(vim): Update base-syntax, improve :set highlighting

- Match comments and trailing bar after :set without args.
- Match the <...> form for key code options.
- Remove orphaned vim_ex_python[3x]* dump files (Aliaksei Budavei).

closes: #17397

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Fix typos and language in documentation for tabpanel.
Christ van Willegen [Fri, 30 May 2025 14:05:58 +0000 (16:05 +0200)] 
runtime(doc): Fix typos and language in documentation for tabpanel.

closes: #17407

Signed-off-by: Christ van Willegen <cvwillegen@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1418: configures GUI auto detection favors GTK2 v9.1.1418
Drew Vogel [Wed, 28 May 2025 19:13:52 +0000 (21:13 +0200)] 
patch 9.1.1418: configures GUI auto detection favors GTK2

Problem:  configures GUI auto detection favors GTK2
Solution: make configure favor GTK3 over GTK2 for the GUI
          when auto detecting the gui toolkit (Drew Vogel).

Prior to these changes if the dev packages for both GTK2 and GTK3 were
installed, the `--enable-gui=auto` would used GTK2. After these changes
it will use GTK3. Users can still use `--enable-gui=gtk2` to
specifically select GTK2.

In addition to the prioritization change, this also brings some cleanups
to the GTK autoconf code:

* The `AM_PATH_GTK` macro had an unused third argument that has been
  removed.
* The `AM_PATH_GTK` macro checked the `SKIP_GTK2` & `SKIP_GTK3`
  variables but the code that decided whether to call it also checked
  those. Now just the calling code does so.
* The `AM_PATH_GTK` macro set a default minimum version based on
  `SKIP_GTK2` and `SKIP_GTK3` but the calling code was also expected to
  pass a version. Now the calling code _must_ pass a version.
* The GTK test program previous used `gtk_(major|minor|micro)_version`
  as all of: a C variable name, a C macro provided only by GTK2, and an
  autoconf variable name. It also needlessly parsed a `x.y.z` version
  string when the same string was already parsed by autoconf + sed. Now
  the parsed values are used directly in the test program.
* The GTK test program previous created a test program `conf.gtktest`
  which was cleaned up by the autoconf script. This appeared to be a
  crude way to debug whether an erroring configure run had actually run
  the test program. Instead the autoconf script now outputs more messaging
  and the user can check `config.log` to determine the status of the
  configure script.

I'm not an autoconf expert and I don't have access to some of the older
systems we try to support with gvim. So I would very much appreciate if
anyone could run this on their systems to ensure it doesn't misbehave.

While my motivation here is mainly to further establish GTK3 as the
primary GUI mode, this should at least partially address the concern
described in #15437.

Here are a few test runs with both GTK 2 and GTK 3 installed:

```
    --with-features=huge \
    --enable-gui \
    --enable-gtk3-check=no \
    --enable-gtktest \
```

```
checking --enable-gui argument... yes/auto - automatic GUI support
checking whether or not to look for GTK+ 2... yes
checking whether or not to look for GNOME... no
checking whether or not to look for GTK+ 3... no
checking whether or not to look for Motif... yes
checking for pkg-config... /usr/bin/pkg-config
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config gtk+-2.0... found
checking for GTK - version >= 2.2.0... yes; found version 2.24.33
checking ability to compile GTK test program... yes
```

```
    --with-features=huge \
    --enable-gui \
    --enable-gtk2-check=no \
    --enable-gtktest \
```

```
checking --enable-gui argument... yes/auto - automatic GUI support
checking whether or not to look for GTK+ 2... no
checking whether or not to look for GTK+ 3... yes
checking whether or not to look for Motif... yes
checking for pkg-config... /usr/bin/pkg-config
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config gtk+-3.0... found
checking for GTK - version >= 3.0.0... yes; found version 3.24.49
checking ability to compile GTK test program... yes
```

```
    --with-features=huge \
```

```
checking --enable-gui argument... yes/auto - automatic GUI support
checking whether or not to look for GTK+ 2... yes
checking whether or not to look for GNOME... no
checking whether or not to look for GTK+ 3... yes
checking whether or not to look for Motif... yes
checking for pkg-config... /usr/bin/pkg-config
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config gtk+-3.0... found
checking for GTK - version >= 3.0.0... yes; found version 3.24.49
checking ability to compile GTK test program... yes
```

```
    --with-features=huge \
    --disable-gtktest \
```

```
checking --enable-gui argument... yes/auto - automatic GUI support
checking whether or not to look for GTK+ 2... yes
checking whether or not to look for GNOME... no
checking whether or not to look for GTK+ 3... yes
checking whether or not to look for Motif... yes
checking for pkg-config... /usr/bin/pkg-config
checking --disable-gtktest argument... gtk test disabled
checking for pkg-config gtk+-3.0... found
checking for GTK - version >= 3.0.0... yes; found version 3.24.49
```

```
    --with-features=huge \
    --enable-gui=gtk2 \
```

```
checking --enable-gui argument... GTK+ 2.x GUI support
checking for pkg-config... /usr/bin/pkg-config
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config gtk+-2.0... found
checking for GTK - version >= 2.2.0... yes; found version 2.24.33
checking ability to compile GTK test program... yes
```

```
    --with-features=huge \
    --enable-gui=gtk3 \
```

```
checking --enable-gui argument... GTK+ 3.x GUI support
checking for pkg-config... /usr/bin/pkg-config
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config gtk+-3.0... found
checking for GTK - version >= 3.0.0... yes; found version 3.24.49
checking ability to compile GTK test program... yes
```

And here is a similar run with the GTK 3 dev package removed:

```
    --with-features=huge \
    --enable-gui=gtk3 \
    --enable-fail-if-missing \
```

```
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config gtk+-3.0... no; consider installing your distro
GTK -dev package
configure: error: pkg-config could not find gtk+-3.0
```

closes: #17369

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1417: missing info about register completion in complete_info() v9.1.1417
glepnir [Wed, 28 May 2025 18:39:34 +0000 (20:39 +0200)] 
patch 9.1.1417: missing info about register completion in complete_info()

Problem:  missing info about register completion in complete_info()
          (after v9.1.1408)
Solution: update documentation and mention that register is used as
          source, add a test (glepnir)

closes: #17389

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1416: completion limits not respected for fuzzy completions v9.1.1416
Girish Palya [Wed, 28 May 2025 18:28:21 +0000 (20:28 +0200)] 
patch 9.1.1416: completion limits not respected for fuzzy completions

Problem:  completion limits not respected when using fuzzy completion
          (Maxim Kim)
Solution: trim completion array (Girish Palya)

fixes: #17379
closes: #17386

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Correct allowed flags after :substitute repeat
Christian Brabandt [Wed, 28 May 2025 18:23:29 +0000 (20:23 +0200)] 
runtime(doc): Correct allowed flags after :substitute repeat

closes: #17391

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1415: potential use-after free when there is an error in 'tabpanel' v9.1.1415
Christian Brabandt [Tue, 27 May 2025 18:49:34 +0000 (20:49 +0200)] 
patch 9.1.1415: potential use-after free when there is an error in 'tabpanel'

Problem:  potential use-after free when there is an error in 'tabpanel'
          option (@char101, after v9.1.1391)
Solution: check if p_tpl has been set to null before accessing it again.

While at it slightly change starts_with_percent_and_bang() and use the
existing opt_name and opt_scope variables.

fixes: #17364
closes: #17388

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): trailing whitespace in options.txt, delete it.
Christian Brabandt [Mon, 26 May 2025 19:18:19 +0000 (21:18 +0200)] 
runtime(doc): trailing whitespace in options.txt, delete it.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agotranslation(hy): renamed am.po -> hy.po for armenian lang translations
Gagik Hakobyan [Mon, 26 May 2025 19:11:51 +0000 (21:11 +0200)] 
translation(hy): renamed am.po -> hy.po for armenian lang translations

According to ISO-639, the correct 2 letter language code is HY not AM,
so let's rename am.po.

Also, add hy.po to the CHECKFILES Make target and convert the file to
Unix lineformat.

closes: #17380

Signed-off-by: Gagik Hakobyan <hakgagik@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Correct allowed characters at :help 'filetype'
Doug Kearns [Mon, 26 May 2025 18:32:35 +0000 (20:32 +0200)] 
runtime(doc): Correct allowed characters at :help 'filetype'

closes: #17366

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1414: MS-Windows: compile warnings in os_win32.c v9.1.1414
John Marriott [Mon, 26 May 2025 18:25:38 +0000 (20:25 +0200)] 
patch 9.1.1414: MS-Windows: compile warnings in os_win32.c

Problem:  MS-Windows: compile warnings in os_win32.c
Solution: update function declarations, correctly access param arg in
          set_flag() using (sig_atomic_t) cast (John Marriott)

closes: #17368

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1413: spurious CursorHold triggered in GUI on startup v9.1.1413
Gary Johnson [Mon, 26 May 2025 18:10:25 +0000 (20:10 +0200)] 
patch 9.1.1413: spurious CursorHold triggered in GUI on startup

Problem:  spurious CursorHold triggered in GUI on startup
Solution: init global did_cursorhold flag to true
          (Gary Johnson)

When Vim is started in GUI mode, the CursorHold autocommand event is
triggered 'updatetime' milliseconds later, even when the user has not
pressed a key.  This is different from the behavior of Vim in terminal
mode, which does not trigger a CursorHold autocommand event at startup,
and contradicts the description of the CursorHold event in ":help
CursorHold", which states that the event is "[n]ot triggered until the
user has pressed a key".

The fix is to change the initial value of did_cursorhold from FALSE to
TRUE.  While it is true that the CursorDone event has not been done yet
at startup, it should appear to have been done until the user presses
a key.

fixes #17350
closes: #17382

Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1412: tests: Test_tabpanel_tabonly() fails on larger screens v9.1.1412
Christian Brabandt [Mon, 26 May 2025 17:54:07 +0000 (19:54 +0200)] 
patch 9.1.1412: tests: Test_tabpanel_tabonly() fails on larger screens

Problem:  tests: Test_tabpanel_tabonly() fails on larger screens
Solution: re-generate screendump file for 78 column large terminal

closes: #17376

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1411: crash when calling non-existing function for tabpanel v9.1.1411
Christian Brabandt [Mon, 26 May 2025 17:51:03 +0000 (19:51 +0200)] 
patch 9.1.1411: crash when calling non-existing function for tabpanel

Problem:  crash when calling non-existing function for tabpanel (Yamagi,
          after v9.1.1391)
Solution: check if there was an error and if there was, set tabpanel
          option to empty to prevent showing errors on every redraw

fixes: #17364
closes: #17375
closes: #17371

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1410: out-of-bounds access with 'completefunc' v9.1.1410
Girish Palya [Mon, 26 May 2025 17:41:59 +0000 (19:41 +0200)] 
patch 9.1.1410: out-of-bounds access with 'completefunc'

Problem:  out-of-bounds access with 'completefunc' (csetc)
Solution: check if it is safe to advance cpt_sources_index
          (Girish Palya)

fixes: #17363
closes: #17374

Co-authored-by: @csetc
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1409: using f-flag in 'complete' conflicts with Neovim v9.1.1409
Girish Palya [Mon, 26 May 2025 17:04:25 +0000 (19:04 +0200)] 
patch 9.1.1409: using f-flag in 'complete' conflicts with Neovim

Problem:  using f-flag in 'complete' conflicts with Neovims filename
          completion (glepnir, after v9.1.1301).
Solution: use upper-case "F" flag for completion functions
          (Girish Palya).

fixes: #17347
closes: #17378

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1408: not easily possible to complete from register content v9.1.1408
glepnir [Mon, 26 May 2025 16:23:27 +0000 (18:23 +0200)] 
patch 9.1.1408: not easily possible to complete from register content

Problem:  not easily possible to complete from register content
Solution: add register-completion submode using i_CTRL-X_CTRL-R
          (glepnir)

closes: #17354

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): clarify license conditions for distributed runtime files
Christian Brabandt [Sun, 25 May 2025 15:07:51 +0000 (17:07 +0200)] 
runtime(doc):  clarify license conditions for distributed runtime files

related: #17372

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime: Add license information for HCL and Terraform runtime files
Gregory Anders [Sun, 25 May 2025 15:01:45 +0000 (17:01 +0200)] 
runtime: Add license information for HCL and Terraform runtime files

fixes: #17372
closes: #17377

Signed-off-by: Gregory Anders <greg@gpanders.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1407: Can't use getpos('v') in OptionSet when using setbufvar() v9.1.1407
zeertzjq [Sun, 25 May 2025 14:59:50 +0000 (16:59 +0200)] 
patch 9.1.1407: Can't use getpos('v') in OptionSet when using setbufvar()

Problem:  Can't use getpos('v') in OptionSet when using setbufvar().
Solution: Don't reset Visual selection when switching to the same
          buffer (zeertzjq).

closes: #17373

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1406: crash when importing invalid tuple v9.1.1406
Yegappan Lakshmanan [Fri, 23 May 2025 15:39:44 +0000 (17:39 +0200)] 
patch 9.1.1406: crash when importing invalid tuple

Problem:  crash when importing invalid tuple
          (Yang LUO, Yanju Chen)
Solution: set type to VAR_UNKNOWN, so that it isn't freed
          (Yegappan Lakshmanan)

closes: #17362

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1405: tests: no test for mapping with special keys in session file v9.1.1405
zeertzjq [Fri, 23 May 2025 15:16:17 +0000 (17:16 +0200)] 
patch 9.1.1405: tests: no test for mapping with special keys in session file

Problem:  tests: no test for mapping with special keys in session file.
Solution: Add a special keys to an existing test.  Also test with UTF-8
          characters containing 0x80 or 0x9b bytes (zeertzjq).

closes: #17360

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1404: wrong link to Chapter 2 in new-tutor v9.1.1404
Phạm Bình An [Thu, 22 May 2025 20:53:28 +0000 (22:53 +0200)] 
patch 9.1.1404: wrong link to Chapter 2 in new-tutor

Problem:  wrong link to Chapter 2 in vim-01-beginner.tutor
Solution: Fix the link to Chapter 2, add test for links in tutor files
          (Phạm Bình An)

In order to write the test, I expose the function `s:GlobTutorials` as
`tutor#GlobTutorials` and make it also accept a `locale` argument.

closes: #17356

Signed-off-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(vim): Update base-syntax, fix missing luaParenError error
Doug Kearns [Thu, 22 May 2025 20:48:11 +0000 (22:48 +0200)] 
runtime(vim): Update base-syntax, fix missing luaParenError error

We shouldn't assume that the luaParenError syntax group is present in
the, possibly custom, included file or that it hasn't already been
removed.  However, issue #11277 has been fixed so it no longer needs to
be cleared.

Fixes comment https://github.com/vim/vim/pull/15375#issuecomment-2899791944

related: #15375
closes: #17357

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1403: expansion of 'tabpanelopt' value adds wrong values v9.1.1403
Hirohito Higashi [Thu, 22 May 2025 20:41:05 +0000 (22:41 +0200)] 
patch 9.1.1403: expansion of 'tabpanelopt' value adds wrong values

Problem:  expansion of 'tabpanelopt' value adds wrong values
          (Shane-XB-Qian, after v9.1.1391)
Solution: update tabpanelopt expansion function and expand only valid
          values (Hirohito Higashi)

related: #17263
closes: #17359

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1402: multi-byte mappings not properly stored in session file v9.1.1402
GuyBrush [Thu, 22 May 2025 20:19:25 +0000 (22:19 +0200)] 
patch 9.1.1402: multi-byte mappings not properly stored in session file

Problem:  multi-byte mappings not properly stored in session file
Solution: unescape the mapping before writing out the mapping, prefer
          single-byte mapping name if possible (Miguel Barro)

closes: #17355

Signed-off-by: GuyBrush <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(syntax-tests): rename kornshell syntax tests and regenerate 00 dumps
Christian Brabandt [Thu, 22 May 2025 19:55:58 +0000 (21:55 +0200)] 
runtime(syntax-tests): rename kornshell syntax tests and regenerate 00 dumps

related: #17348

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(sh): Fix various syntax highlighting problems in ksh93 scripts
Johnothan King [Wed, 21 May 2025 19:21:14 +0000 (21:21 +0200)] 
runtime(sh): Fix various syntax highlighting problems in ksh93 scripts

- Fixed syntax highlighting for ksh93 namespace variables starting
  with '${.'
- Added support for the alarm, eloop, fds, mkservice, pids, poll and
  sha2sum builtins (which are indeed ksh93 builtins, albeit whether or
  not they are available depends on the ksh release and the compiled
  SHOPT options).
- Added support for the many Unix commands provided by ksh93's libcmd
  as builtin commands (since these are general commands, scripts for
  other shells like bash will also highlight these).
  - The dumps for the sh_0{2,5,6,8,9}.sh were recreated due to this
    change affecting commands those scripts call (e.g. 'wc').
- Enabled ${parameter/pattern/string} and friends for ksh syntax.
- Enabled case modification for ksh. See also:
  https://github.com/ksh93/ksh/commit/c1762e03
- Enabled ;;& support for ksh. See also:
  https://github.com/ksh93/ksh/commit/fc89d20a
- Added many special ksh variables using 93u+m's data/variables.c
  as a reference.

If vim can't figure out which ksh release is in play using e.g.
the hashbang path, in such a case a generic default that enables
everything and the kitchen sink will be used. Otherwise, features will
be disabled if it's absolutely known a certain feature will not be
present. Examples:
   - ERRNO is ksh88 specific, so that is locked to ksh88.
   - Only 93u+m (assumed for generic) has SRANDOM, and only 93u+m
     and 93v- have case modification support.
   - 93u+ and 93v- have VPATH and CSWIDTH variables (the latter
     is vestigal, but still present in the hardcoded variable table).
   - 93v- and ksh2020 have (buggy and near unusable) implementations
     of compgen and complete.
   - Only mksh provides function substitutions, i.e. ${|command;}.

This took the better part of my day to implement. It seems to work well
enough though. (Also had to regenerate the dumps again while testing
it, as now there are dup scripts with mere hashbang differences, used
solely for testing syntax highlighting differences.)

closes: #17348

Signed-off-by: Johnothan King <johnothanking@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1401: list not materialized in prop_list() v9.1.1401
Christian Brabandt [Wed, 21 May 2025 19:01:40 +0000 (21:01 +0200)] 
patch 9.1.1401: list not materialized in prop_list()

Problem:  list not materialized in prop_list()
          (Nickwiz)
Solution: materialize list before accessing it

fixes: #17298
closes: #17349

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1400: [security]: use-after-free when evaluating tuple fails v9.1.1400
Yegappan Lakshmanan [Wed, 21 May 2025 18:52:44 +0000 (20:52 +0200)] 
patch 9.1.1400: [security]: use-after-free when evaluating tuple fails

Problem:  [security]: use-after-free when evaluating tuple fails
Solution: return early in case of an error (Yegappan Lakshmanan)

closes: #17351

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1399: tests: test_codestyle fails for auto-generated files v9.1.1399
Christian Brabandt [Wed, 21 May 2025 18:50:11 +0000 (20:50 +0200)] 
patch 9.1.1399: tests: test_codestyle fails for auto-generated files

Problem:  tests: test_codestyle fails for auto-generated files.
          While those files are already ignored in Test_source_Files(),
          the newly added Test_indent_of_source_files() does not filter
          those out and causes test failures on appveyor.
Solution: factor out the generation of all c files into a common function
          and filter out auto-generated files if_ole.h, iid_ole.c and
          dlldata.c

closes: #17352

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(tar): preserve pwd when reading and writing tar files
Michele Sorcinelli [Mon, 19 May 2025 17:45:32 +0000 (19:45 +0200)] 
runtime(tar): preserve pwd when reading and writing tar files

While at it, use `:lcd` to temporarily set the window local directory
instead of `:cd` for the global working directory.

fixes: #17334
closes: #17339

Signed-off-by: Michele Sorcinelli <michelesr@autistici.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): remove outdated Contribution section in pi_tutor
Phạm Bình An [Mon, 19 May 2025 17:34:44 +0000 (19:34 +0200)] 
runtime(doc): remove outdated Contribution section in pi_tutor

Problem:  The Github repo link in the Contribution section has been
          archived for 5 years. So people who want to contribute to the
          tutor plugin should just send PR to Vim repo, similar to most
          other Vim features, so there is no need for a Contribution
          section in the plugin doc.

Solution: Replace it with an Original Author note at the beginning of
          the help document.

closes: #17341

Signed-off-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(muttrc): fix mangled keywords in syntax script
Markus Heidelberg [Mon, 19 May 2025 17:31:23 +0000 (19:31 +0200)] 
runtime(muttrc): fix mangled keywords in syntax script

Regression introduced in commit 10f23e10a9 ("Update syntax/muttrc.vim to
latest mutt (#12797)", 2023-08-15)

Affected keywords:
  invresume_draft_files
  invresume_edited_draft_files
  mailcap_path
  mark_macro_prefix

closes: #17344

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(vim): Update base-syntax, improve :import highlighting
Doug Kearns [Sun, 18 May 2025 18:37:34 +0000 (20:37 +0200)] 
runtime(vim): Update base-syntax, improve :import highlighting

- Match "autoload" as a keyword in :import commands.
- Match an expression argument for the filename.

closes: #15375

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1398: completion: trunc does not follow Pmenu highlighting attributes v9.1.1398
glepnir [Sun, 18 May 2025 18:14:53 +0000 (20:14 +0200)] 
patch 9.1.1398: completion: trunc does not follow Pmenu highlighting attributes

Problem:  When items are combined with user-defined highlight attributes
          (e.g., strikethrough), trunc inherits these attributes, making
          the text difficult to read.
Solution: trunc now uses the original Pmenu and PmenuSel highlight
          attributes (glepnir)

closes: #17340

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(vim): Update base-syntax, improve script-interface command highlighting
Doug Kearns [Sat, 17 May 2025 14:29:13 +0000 (16:29 +0200)] 
runtime(vim): Update base-syntax, improve script-interface command highlighting

- Normalise interface heredoc highlighting with that used for
  :let-heredocs.
- Remove interface feature testing.  The Lua and Python interface
  command scripts are now highlighted by default.  Loading all syntax
  files incurs an undesirable load-time burden so highlighting of the
  less popular MzScheme, Perl, Ruby and Tcl interfaces is disabled by
  default.  g:vimsyn_embed can still be used to customise the supported
  interfaces.
- Always highlight interface ex-commands as valid commands, even when
  the corresponding command-script highlighting is disabled.
- Highlight simple command-script statements as well as heredocs.
- Remove error highlighting of heredoc and statement command-script
  regions when an interface is disabled.  These are now highlighted as
  plain text.
- Allow indented heredoc end tokens when "trim" is specified.
- Match interface heredocs in :def functions.
- Fix runaway vimEmbedError regions.  These regions have been removed.
- Use python2 syntax for :python, and :pythonx when 'pyxversion' is
  appropriately set.

closes: #15522

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1397: tabpanel not correctly updated on :tabonly v9.1.1397
Naruhiko Nishino [Sat, 17 May 2025 14:19:24 +0000 (16:19 +0200)] 
patch 9.1.1397: tabpanel not correctly updated on :tabonly

Problem:  tabpanel not correctly updated on :tabonly
          (Maxim Kim)
Solution: force a redraw, take 'equalalways' into account
          (Naruhiko Nishino)

related: https://github.com/vim/vim/pull/17330#issuecomment-2888146370
closes: #17337

Signed-off-by: Naruhiko Nishino <naru123456789@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1396: 'errorformat' is a global option v9.1.1396
glepnir [Fri, 16 May 2025 17:49:23 +0000 (19:49 +0200)] 
patch 9.1.1396: 'errorformat' is a global option

Problem:  The 'grepformat' option is global option, but it would be
          useful to have it buffer-local, similar to 'errorformat' and
          other quickfix related options (Dani Dickstein)
Solution: Add the necessary code to support global-local 'grepformat',
          allowing different buffers to parse different grep output
          formats (glepnir)

fixes: #17316
closes: #17315

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1395: search_stat not reset when pattern differs in case v9.1.1395
Christian Brabandt [Fri, 16 May 2025 17:38:50 +0000 (19:38 +0200)] 
patch 9.1.1395: search_stat not reset when pattern differs in case

Problem:  search_stat not reset when pattern differs in case
          (tahzibijafar)
Solution: use STRNCMP instead of MB_STRNICMP macro

There was a long standing todo comment, that using MB_STRNICMP is wrong.
So let's change it to STRNCMP() instead. Even if it not handle
multi-byte characters correctly, then Vim will rather recompute the
search stat, instead of re-using the old (and possibly wrong) value.

fixes: #17312
closes: #17314

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1394: tabpanel not correctly redrawn on tabonly v9.1.1394
Hirohito Higashi [Fri, 16 May 2025 17:34:34 +0000 (19:34 +0200)] 
patch 9.1.1394: tabpanel not correctly redrawn on tabonly

Problem:  tabpanel not correctly redrawn on tabonly
          (Maxim Kim, after v9.1.1391)
Solution: force redraw of the tabpanel, tweak style
          (Hirohito Higashi)

fixes: #17322
closes: #17330

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): fix typo in description of :redrawtabpanel
Christian Brabandt [Thu, 15 May 2025 18:16:04 +0000 (20:16 +0200)] 
runtime(doc): fix typo in description of :redrawtabpanel

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(gleam): add @Spell clusters to syntax script
Kat [Thu, 15 May 2025 18:10:48 +0000 (20:10 +0200)] 
runtime(gleam): add @Spell clusters to syntax script

closes: #17324

Signed-off-by: Kat <65649991+00-kat@users.noreply.github.com>
Signed-off-by: Kirill Morozov <kirill@robotix.pro>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(pandoc): update YAML metadata block parsing in compiler runtime
Alexander Abrosimov [Thu, 15 May 2025 18:06:29 +0000 (20:06 +0200)] 
runtime(pandoc): update YAML metadata block parsing in compiler runtime

Previously the incorrect regexp forced title to be a single letter
because of using '+' instead of the '\+' regexp modifier.

closes: #17321

Signed-off-by: Alexander Abrosimov <alexander.n.abrosimov@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1393: missing test for switching buffers and reusing curbuf v9.1.1393
Sean Dewar [Thu, 15 May 2025 17:59:37 +0000 (19:59 +0200)] 
patch 9.1.1393: missing test for switching buffers and reusing curbuf

Problem:  The check in buf_freeall that restores curwin subtly prevents
          leaving an unloaded buffer in a window when reusing curbuf, if
          autocommands switch to a different buffer.
Solution: Add a test case that covers this. Also ensure splitting isn't
          possible, as that could do the same (Sean Dewar)

closes: #17325

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1392: missing patch number
Christian Brabandt [Wed, 14 May 2025 21:32:13 +0000 (23:32 +0200)] 
patch 9.1.1392: missing patch number

Problem:  missing patch number
          (Tony Mechelynck)
Solution: add missing patche number

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1391: Vim does not have a vertical tabpanel v9.1.1391
Naruhiko Nishino [Wed, 14 May 2025 19:20:28 +0000 (21:20 +0200)] 
patch 9.1.1391: Vim does not have a vertical tabpanel

Problem:  Vim does not have a tabpanel
Solution: include the tabpanel feature
          (Naruhiko Nishino, thinca)

closes: #17263

Co-authored-by: thinca <thinca@gmail.com>
Signed-off-by: Naruhiko Nishino <naru123456789@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agogit: git: ignore more style changes from v9.1.1390
Christian Brabandt [Wed, 14 May 2025 19:03:39 +0000 (21:03 +0200)] 
git: git: ignore more style changes from v9.1.1390

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1390: style: more wrong indentation v9.1.1390
Yegappan Lakshmanan [Wed, 14 May 2025 18:31:55 +0000 (20:31 +0200)] 
patch 9.1.1390: style: more wrong indentation

Problem:  style: more wrong indentation
Solution: reformat a few more places
          (Yegappan Lakshmanan)

closes: #17309

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1389: completion: still some issue when 'isexpand' contains a space v9.1.1389
glepnir [Wed, 14 May 2025 18:26:19 +0000 (20:26 +0200)] 
patch 9.1.1389: completion: still some issue when 'isexpand' contains a space

Problem:  Cannot get completion startcol when space is not the first
          trigger character (after v9.1.1383)
Solution: Detect the next comma followed by a space in the option string
          and use in next compare loop (glepnir)

closes: #17311

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1388: Scrolling one line too far with 'nosmoothscroll' page scrolling v9.1.1388
Luuk van Baal [Wed, 14 May 2025 18:21:55 +0000 (20:21 +0200)] 
patch 9.1.1388: Scrolling one line too far with 'nosmoothscroll' page scrolling

Problem:  One-off error in "count" to make "w_skipcol" zero with
          'nosmoothscroll' page scrolling when last virtual line
          in a buffer line is exactly the entire window width.
          (Hirohito Higashi)
Solution: Properly compute the smallest integer value necessary
          to make "w_skipcol" zero (Luuk van Baal)

fixes: #17317
closes: #17318

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1387: memory leak when buflist_new() fails to reuse curbuf v9.1.1387
Sean Dewar [Wed, 14 May 2025 18:16:52 +0000 (20:16 +0200)] 
patch 9.1.1387: memory leak when buflist_new() fails to reuse curbuf

Problem:  buflist_new() leaks ffname and fails to reuse curbuf when
          autocommands from buf_freeall change curbuf. Plus, a new
          buffer is not allocated in this case, despite what the comment
          above claims.
Solution: Remove the condition so ffname is not leaked and so a new
          buffer is allocated like before v8.2.4791. It should not be
          possible for undo_ftplugin or buf_freeall autocommands to
          delete the buffer as they set b_locked, but to stay consistent
          with other uses of buf_freeall, guard against that anyway
          (Sean Dewar).

Note that buf is set to NULL if it was deleted to guard against the (rare)
possibility of messing up the "buf != curbuf" condition below if a new buffer
happens to be allocated at the same address.

closes: #17319

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1386: MS-Windows: some minor problems building on AARCH64 v9.1.1386
Christian Brabandt [Wed, 14 May 2025 18:14:30 +0000 (20:14 +0200)] 
patch 9.1.1386: MS-Windows: some minor problems building on AARCH64

Problem:  MS-Windows: some minor problems building on AARCH64
Solution: Update Make_cyg_ming with aarch64 specific changes,
          document how to build on aarch64 using msys2 packages

closes: #17048

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1385: inefficient loop for 'nosmoothscroll' scrolling v9.1.1385
Luuk van Baal [Mon, 12 May 2025 18:45:41 +0000 (20:45 +0200)] 
patch 9.1.1385: inefficient loop for 'nosmoothscroll' scrolling

Problem:  Loop that ensures "w_skipcol" is zero with 'nosmoothscroll'
  for (half)-page scrolling is inefficient.
Solution: Calculate the required "count" instead of looping until
  "w_skipcol" is zero (Luuk van Baal).

fixes: #17301
closes: #17306

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1384: still some problem with the new tutors filetype plugin v9.1.1384
Phạm Bình An [Mon, 12 May 2025 18:39:24 +0000 (20:39 +0200)] 
patch 9.1.1384: still some problem with the new tutors filetype plugin

Problem:  still some problem with the new tutors filetype plugin
Solution: refactor code to enable/disable tutor mode into
          tutor#EnableInteractive() function, include a test
          (Phạm Bình An)

I find it annoying that Tutor's interactive mode is always on (or debug
mode is off) even when I open a tutor file with :edit command.
I think it makes more sense to make this "interactive mode":

- Always on when it is opened with :Tutor command
- Off otherwise

For more references, see `:help` feature, it is a much better than
:Tutor, since I don't have to run `:let g:help_debug = 1` just to be able
to edit and save a help file

Therefore, I remove `g:tutor_debug`

closes: #17299

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1383: completion: 'isexpand' option does not handle space char correct v9.1.1383
glepnir [Mon, 12 May 2025 18:28:28 +0000 (20:28 +0200)] 
patch 9.1.1383: completion: 'isexpand' option does not handle space char correct

Problem:  When a space character is used as a trigger in 'isexpand' option
          it doesn't get recognized because skip_to_option_part() skips
          spaces after a comma, treating them as option separators
          rather than option value (after v9.1.1341)
Solution: manually set the part to a space character (glepnir).

closes: #17305

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(getscript): CI: failure on powershell
Christian Brabandt [Sun, 11 May 2025 16:30:24 +0000 (18:30 +0200)] 
runtime(getscript): CI: failure on powershell

Problem:  The CheckVimScriptURL() function does not work properly on
          pwershell. Most likely this is because curl is aliased to
          Invoke-WebRequest on Powershell and redirection seems to work
          slightly different
Solution: Disable CheckVimScriptURL() on Powershell and then simplify
          the curl download logic

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1382: if_ruby: unused compiler warnings from ruby internals v9.1.1382
Philip H. [Sun, 11 May 2025 13:01:31 +0000 (15:01 +0200)] 
patch 9.1.1382: if_ruby: unused compiler warnings from ruby internals

Problem:  if_ruby: unused compiler warnings from ruby internals
Solution: disable -Wunused-parameter for if_ruby internal code
          (Philip H.)

closes: #17297

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(getscript): check for network errors
Christian Brabandt [Sun, 11 May 2025 12:43:11 +0000 (14:43 +0200)] 
runtime(getscript): check for network errors

related: #17249

Co-authored-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1381: completion: cannot return to original text v9.1.1381
glepnir [Sun, 11 May 2025 11:48:33 +0000 (13:48 +0200)] 
patch 9.1.1381: completion: cannot return to original text

Problem:  Cannot return to the original text after selecting the next
          item when the currently selected item is the last one.
Solution: When continuing to move down past the last item, locate the
          original completion at the head/tail nodes of the completed
          linked list (glepnir).

closes: #17300

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1380: 'eventignorewin' only checked for current buffer v9.1.1380
Sean Dewar [Sun, 11 May 2025 11:45:21 +0000 (13:45 +0200)] 
patch 9.1.1380: 'eventignorewin' only checked for current buffer

Problem:  When an autocommand executes for a non-current buffer,
          'eventignorewin' is only checked from the buffer's last
          wininfo (overwrites win_ignore in the loop), not from the
          value of 'eventignorewin' in all windows showing the buffer as
          described (after v9.1.1084)

Solution: Fix the check and don't use wininfo, as that may only contain
          windows that recently showed the buffer. Consider all the
          buffer's windows in all tabpages (Sean Dewar).

closes: #17294

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(java): Search type and method declarations with "&inc" and "&def"
Aliaksei Budavei [Sat, 10 May 2025 19:44:07 +0000 (21:44 +0200)] 
runtime(java): Search type and method declarations with "&inc" and "&def"

=============== LIMITATIONS AND OBSERVATIONS ===============

* Remember that external-type names can only be found when
  they match filenames resolvable in "&path" with "import"
  declarations; load the source file of an external type to
  look up its nested types and sibling top types, if any.

* Strive to narrow the search by assigning only relevant
  pathnames for directories *or* an archive to "&path", e.g.
  ":set path-=/usr/include".

* Use "{Visual}gf" on fully-qualified names.

* Accept the fact that "&define" cannot contain end-of-line
  characters (":help definition-search").  A declaration
  whose matchable header is not contained within a line can
  be found iff all of its non-optional components belong to
  the same line; for types, such components are a keyword,
  e.g. "class", followed by a run of blank characters and
  an identifier, e.g. "Test"; for methods: a return type,
  e.g. "String", or a keyword "void", followed by a run of
  blank characters and an identifier, e.g. "toString", that
  is followed by "(".

* The members of the "java.lang" package are usually not
  associated with "import" declarations; to look up their
  declarations, load a source file for a member of that
  package, and then use, on a simple name of interest for
  a member, either "[-Ctrl-d" etc. for local declarations
  or "gf" for external declarations, assuming that "." *or*
  the appropriate pathname for a JDK archive is assigned to
  "&path".

* Follow the above instruction made for the "java.lang"
  members for any type whose simple name is not associated
  with an "import" declaration, i.e. a member type of the
  same package that is declared in another compilation unit.

* Append the "$" character to "&iskeyword" when looking up
  declarations of generated code.

See zzzyxwvut/java-vim#4.

closes: #17281

Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(html): Optionally fold tags with the "expr" method
Aliaksei Budavei [Sat, 10 May 2025 19:40:41 +0000 (21:40 +0200)] 
runtime(html): Optionally fold tags with the "expr" method

Tag folding poses a few difficulties.  Many elements, e.g.
"blockquote", are always delimited by start and end tags;
end tags for some elements, e.g. "p", can be omitted in
certain contexts; void elements, e.g. "hr", have no end tag.
Although the rules for supporting omissible end tags are
ad-hoc and involved, they apply to elements in scope.
Assuming syntactical wellformedness, an end tag can be
associated with its nearest matching start tag discoverable
in scope and towards the beginning of a file, whereas all
unbalanced tags and inlined tags can be disregarded.

For example:
------------------------------------------------------------
<!DOCTYPE html>
<html lang="en"> <!-- >1 : 1 -->
  <body> <!-- >2 : 2 -->
    <p>Paragraph #1. <!--  = : 2 -->
    <p> <!-- >3 : 3 -->
      Paragraph #2. <!--  = : 3 -->
    </p> <!-- <3 : 3 -->
    <p>Paragraph #3.</p> <!--  = : 2 -->
  </body> <!-- <2 : 2 -->
</html> <!-- <1 : 1 -->
------------------------------------------------------------

(HTML comments here, "<!-- ... -->", record two values for
each folded line that are separated by ":", a value obtained
from "&foldexpr" and a value obtained from "foldlevel()".)

Innermost foldedable tags will be flattened.  For example:
------------------------------------------------------------
<!DOCTYPE html>
<html lang="en"> <!-- >1 : 1 -->
  <body> <!-- >2 : 2 -->
    <div class="block"> <!-- >3 : 3 -->
      <pre><code> <!-- >4 : 4 -->
[CODE SNIPPET] <!--  = : 4 -->
      </code></pre> <!-- <4 : 4 -->
    </div> <!-- <3 : 3 -->
  </body> <!-- <2 : 2 -->
</html> <!-- <1 : 1 -->
------------------------------------------------------------

No folding will be requested for the "<code>"-"</code>" tag
pair and reflected by "&foldexpr" because such a fold would
have claimed the same lines that the immediate fold of the
"<pre>"-"</pre>" tag already claims.

Run-on folded tags may confuse Vim.  When a file such as:
------------------------------------------------------------
<!DOCTYPE html>
<html lang="en"> <!-- >1 : 1 -->
  <body> <!-- >2 : 2 -->
    <div class="block"> <!-- >3 : 3 -->
      <pre> <!-- >4 : 4 -->
<code> <!-- >5 : 5 -->
[CODE SNIPPET #1] <!--  = : 5 -->
</code> <!-- <5 : 5 -->
      </pre> <!-- <4 : 4 -->
    </div> <!-- <3 : 3 -->
<!--  = : 3 -->
    <div class="block"> <!-- >3 : 3 -->
      <pre> <!-- >4 : 4 -->
<code> <!-- >5 : 5 -->
[CODE SNIPPET #2] <!--  = : 5 -->
</code> <!-- <5 : 5 -->
      </pre> <!-- <4 : 4 -->
    </div> <!-- <3 : 3 -->
  </body> <!-- <2 : 2 -->
</html> <!-- <1 : 1 -->
------------------------------------------------------------

is reformatted as follows:
------------------------------------------------------------
<!DOCTYPE html>
<html lang="en"> <!-- >1 : 1 -->
  <body> <!-- >2 : 2 -->
    <div class="block"> <!-- >3 : 3 -->
      <pre> <!-- >4 : 4 -->
<code> <!-- >5 : 5 -->
[CODE SNIPPET #1] <!--  = : 5 -->
</code> <!-- <5 : 5 -->
      </pre> <!-- <4 : 4 -->
    </div><div class="block"><pre><code> <!-- <3 : 3 -->
[CODE SNIPPET #2] <!--  = : 2 ? -->
</code> <!-- <5 : 2 ? -->
      </pre> <!-- <4 : 2 ? -->
    </div> <!-- <3 : 2 ? -->
  </body> <!-- <2 : 2 -->
</html> <!-- <1 : 1 -->
------------------------------------------------------------

"&foldexpr" values will not be used as is for the lines
between (and including) "[CODE SNIPPET #2]" and "</div>".
(Cf. v9.1.0002.)

Having syntax highlighting in effect, tag folding using the
"fold-expr" method can be enabled with:
------------------------------------------------------------
let g:html_expr_folding = 1
------------------------------------------------------------

By default, tag folding will be redone from scratch after
each occurrence of a TextChanged or an InsertLeave event.
Such frequency may not be desired, especially for large
files, and this recomputation can be disabled with:
------------------------------------------------------------
let g:html_expr_folding_without_recomputation = 1
        doautocmd FileType
------------------------------------------------------------

To force another recomputation, do:
------------------------------------------------------------
unlet! b:foldsmap
normal zx
------------------------------------------------------------

References:
https://web.archive.org/web/20250328105626/https://html.spec.whatwg.org/multipage/syntax.html#optional-tags
https://en.wikipedia.org/wiki/Dangling_else

closes: #17141

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(tutor): improve tutor.vim plugin and filetype plugin
Phạm Bình An [Sat, 10 May 2025 19:20:57 +0000 (21:20 +0200)] 
runtime(tutor): improve tutor.vim plugin and filetype plugin

- Set g:tutor_debug on startup if it doesn't exist so that users can get
  cmdline completion when interactively setting it.
- set b:undo_ftplugin in filetype plugin
- set default runtime file headers

closes: #17274

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(sh): Update syntax, improve wildcard character class matching
Doug Kearns [Sat, 10 May 2025 18:57:10 +0000 (20:57 +0200)] 
runtime(sh): Update syntax, improve wildcard character class matching

- Default to POSIX supported classes.
- Add a KornShell specific class list.
- Remove "or" from the Bash class list, presumably a typo.

closes: #17293

Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
2 months agopatch 9.1.1379: MS-Windows: error when running evim when space in path v9.1.1379
GuyBrush [Sat, 10 May 2025 18:44:33 +0000 (20:44 +0200)] 
patch 9.1.1379: MS-Windows: error when running evim when space in path

Problem:  MS-Windows: error when running evim when space in path of Vim
Solution: properly parse quoted strings (Miguel Barro)

When vim is installed in a path with whitespaces (like
`C:\Program Files (x86)\Vim\vim91\vim.exe`). Launching `evim` or
`vim -d` will try to open the file ` (x86)\Vim\vim91\vim.exe`.

Modern versions of vim simplify shell operation by parsing its own
command line. For example on Linux all vim flavours like `evim`, `rvim`,
etc are symlinks to vim. Then vim uses the `parse_command_name()`
function to identify which version of vim it should launch.
For `evim` if a GUI is available `gvim` is launched for better user
experience. In order to launch `gvim` the original command line is
parsed to be passed *verbatim* to the new instance.
This parsing did not properly handle quoted command lines with
whitespaces such as
```
"C:\Program Files (x86)\Vim\vim91\vim.exe" -y myfile.txt
```

closes: #17295

Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1378: sign without text overwrites number option v9.1.1378
glepnir [Sat, 10 May 2025 12:59:08 +0000 (14:59 +0200)] 
patch 9.1.1378: sign without text overwrites number option

Problem:  When 'signcolumn' is set to `number` but a line has a sign
          without text, the line number disappears (finite-state-machine)
Solution: Verify that a sign actually contains text before rendering the
          line number (glepnir)

fixes: #17169
closes: #17282

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): clarify single/multibyte support for 'fillchars'
Hirohito Higashi [Sat, 10 May 2025 12:56:17 +0000 (14:56 +0200)] 
runtime(doc): clarify single/multibyte support for 'fillchars'

closes: #17287

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1377: patch v9.1.1370 causes some GTK warning messages v9.1.1377
Drew Vogel [Sat, 10 May 2025 12:46:28 +0000 (14:46 +0200)] 
patch 9.1.1377: patch v9.1.1370 causes some GTK warning messages

Problem:  Some GTK3 users experienced unexpectedly small windows at
          startup (after v9.1.1368, @berggeist, Tony Mechelynck)
Solution: Update window manager hints in gui_mch_open, partly revert
          v9.1.1370 (Drew Vogel)

fixes: #17279
closes: #17288

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(lf): use syn iskeyword in syntax script
Andis Spriņķis [Sat, 10 May 2025 12:42:25 +0000 (14:42 +0200)] 
runtime(lf): use syn iskeyword in syntax script

Sets 'syn iskeyword' in syntax/lf.vim to fix the missing lf keyword
highlighting in lines like 'map e :open; open' (first 'open' not
highlighted).

applies PR andis-sprinkis/lf-vim#21 by @joelim-work
closes: andis-sprinkis/lf-vim#14

Co-authored-by: Joe Lim <50560759+joelim-work@users.noreply.github.com>
Signed-off-by: Andis Spriņķis <andis@sprinkis.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1376: quickfix dummy buffer may remain as dummy buffer v9.1.1376
Sean Dewar [Sat, 10 May 2025 12:33:28 +0000 (14:33 +0200)] 
patch 9.1.1376: quickfix dummy buffer may remain as dummy buffer

Problem:  when failing to wipeout a quickfix dummy buffer, it will
          remain as a dummy buffer, despite being kept.
Solution: clear its dummy BF_DUMMY flag in this case (Sean Dewar).

closes: #17283

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1375: [security]: possible heap UAF with quickfix dummy buffer v9.1.1375
Sean Dewar [Sat, 10 May 2025 12:30:36 +0000 (14:30 +0200)] 
patch 9.1.1375: [security]: possible heap UAF with quickfix dummy buffer

Problem:  heap use-after-free possible when autocommands switch away from the
          quickfix dummy buffer, but leave it open in a window.
Solution: close its windows first before attempting the wipe.
          (Sean Dewar)

related: #17283

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoCI: use deb822 style for llvm source
Philip H. [Sat, 10 May 2025 12:23:36 +0000 (14:23 +0200)] 
CI: use deb822 style for llvm source

closes: #17285

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): remove duplicate sentence in builtin.txt
Christian Brabandt [Fri, 9 May 2025 06:19:51 +0000 (08:19 +0200)] 
runtime(doc): remove duplicate sentence in builtin.txt

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agotypo in comment in gui.c
Christ van Willegen [Thu, 8 May 2025 22:08:01 +0000 (00:08 +0200)] 
typo in comment in gui.c

Problem:  typo in comment in gui.c (after v9.1.1367)
Solution: fix the typo  (Christ van Willegen)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): update return types for builtin functions
Christian Brabandt [Thu, 8 May 2025 22:03:20 +0000 (00:03 +0200)] 
runtime(doc): update return types for builtin functions

fixes: #17273

credit: Github user @msoyka2024
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1374: completion: 'smartcase' not respected when filtering matches v9.1.1374
Girish Palya [Thu, 8 May 2025 21:28:52 +0000 (23:28 +0200)] 
patch 9.1.1374: completion: 'smartcase' not respected when filtering matches

Problem:  Currently, 'smartcase' is respected when completing keywords
          using <C-N>, <C-P>, <C-X><C-N>, and <C-X><C-P>. However, when
          a user continues typing and the completion menu is filtered
          using cached matches, 'smartcase' is not applied. This leads
          to poor-quality or irrelevant completion suggestions, as shown
          in the example below.
Solution: When filtering cached completion items after typing additional
          characters, apply case-sensitive comparison if 'smartcase' is
          enabled and the typed pattern includes uppercase characters.
          This ensures consistent and expected completion behavior.
          (Girish Palya)

closes: #17271

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1373: 'completeopt' checking logic can be simplified v9.1.1373
glepnir [Thu, 8 May 2025 21:05:10 +0000 (23:05 +0200)] 
patch 9.1.1373: 'completeopt' checking logic can be simplified

Problem:  Flag checking logic uses a temporary variable and multiple
          bitwise operations in insexpand.c
Solution: Consolidate into a single equality check using bitwise OR and
          comparison (glepnir)

closes: #17276

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agogit: ignore more style changes from v9.1.1371 and v9.1.1372
Christian Brabandt [Thu, 8 May 2025 21:01:41 +0000 (23:01 +0200)] 
git: ignore more style changes from v9.1.1371 and v9.1.1372

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1372: style: braces issues in various files v9.1.1372
Hirohito Higashi [Thu, 8 May 2025 20:58:31 +0000 (22:58 +0200)] 
patch 9.1.1372: style: braces issues in various files

Problem:  style: braces issues in various files
Solution: fix style (Hirohito Higashi)

closes: #17277

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1371: style: indentation and brace issues in insexpand.c v9.1.1371
glepnir [Thu, 8 May 2025 20:50:38 +0000 (22:50 +0200)] 
patch 9.1.1371: style: indentation and brace issues in insexpand.c

Problem:  style: indentation issue in insexpand.c
Solution: update style (glepnir)

closes: #17278

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1370: CI Tests favor GTK2 over GTK3 v9.1.1370
Drew Vogel [Wed, 7 May 2025 20:05:17 +0000 (22:05 +0200)] 
patch 9.1.1370: CI Tests favor GTK2 over GTK3

Problem:  CI Tests favor GTK2 over GTK3
Solution: Install GTK3 dependencies and debug packages for CI workflows,
          update ASAN suppression list, update required dependency
          checks for the tests (Drew Vogel)

closes: #17253

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1369: configure still using autoconf 2.71 v9.1.1369
Christian Brabandt [Wed, 7 May 2025 19:44:33 +0000 (21:44 +0200)] 
patch 9.1.1369: configure still using autoconf 2.71

Problem:  configure still using autoconf 2.71
Solution: regenerate with autoconf 2.72

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1368: GTK3 and GTK4 will drop numeric cursor support. v9.1.1368
Drew Vogel [Wed, 7 May 2025 19:32:03 +0000 (21:32 +0200)] 
patch 9.1.1368: GTK3 and GTK4 will drop numeric cursor support.

Problem:  GTK3 and GTK4 will drop numeric cursor support.
Solution: Adopt GTK3 code and use CSS cursor convention (Drew Vogel).

closes: #14610

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1367: too many strlen() calls in gui.c v9.1.1367
John Marriott [Wed, 7 May 2025 17:59:42 +0000 (19:59 +0200)] 
patch 9.1.1367: too many strlen() calls in gui.c

Problem:  too many strlen() calls in gui.c
Solution: refactor gui.c slightly (John Marriott)

This does the following changes:
- use macro STRCMP() instead of strcmp().
- refactor gui_outstr_nowrap() to remove call to STRLEN().
- refactor get_tabline_label() in attempt to simply it. At the same time
  use standard looping construct for iterating over windows in a tab.
  Move variables closer to where they are used. Add check that we don't
  exceed size of NameBuff.
- small optimisation in get_find_dialog_text() to measure the string
  length once.

closes: #17269

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agopatch 9.1.1366: v9.1.1364 unintentionally changed sign.c and sound.c v9.1.1366
Hirohito Higashi [Tue, 6 May 2025 16:13:29 +0000 (18:13 +0200)] 
patch 9.1.1366: v9.1.1364 unintentionally changed sign.c and sound.c

Problem:  v9.1.1364 unintentionally changed sign.c and sound.c
Solution: revert those parts, adjust the test (Hirohito Higashi)

closes: #17264

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(lua): update 'path' option in filetype plugin
Phạm Bình An [Tue, 6 May 2025 16:08:38 +0000 (18:08 +0200)] 
runtime(lua): update 'path' option in filetype plugin

Problem:  Lua doesn't support importing module in path related to current
          file like JS does (https://www.reddit.com/r/lua/comments/wi0bau/whats_the_correct_way_to_run_a_lua_file_that_uses/)
Solution: Remove `.` from Lua buffer-local option `'path'`

closes: #17267

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(sh): Update syntax, match KornShell compound arrays
Doug Kearns [Tue, 6 May 2025 15:59:25 +0000 (17:59 +0200)] 
runtime(sh): Update syntax, match KornShell compound arrays

closes: #17268

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 months agoruntime(doc): Tweak documentation style in develop.txt
Hirohito Higashi [Mon, 5 May 2025 18:19:09 +0000 (20:19 +0200)] 
runtime(doc): Tweak documentation style in develop.txt

closes: #17252

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>