]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
2 weeks agopatch 9.1.1572: expanding $var does not escape whitespace for 'path' v9.1.1572
Miguel Barro [Sun, 20 Jul 2025 08:47:14 +0000 (10:47 +0200)] 
patch 9.1.1572: expanding $var does not escape whitespace for 'path'

Problem:  expanding $var does not escape whitespace for 'path'
Solution: Escape whitespace when expanding 'path' option.
          (Miguel Barro)

closes: #17801

Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1571: CmdlineChanged triggered to often v9.1.1571
Girish Palya [Sun, 20 Jul 2025 08:41:02 +0000 (10:41 +0200)] 
patch 9.1.1571: CmdlineChanged triggered to often

Problem:  The CmdlineChanged event was firing unnecessarily, even when
          the command line's content hadn't actually changed.

Solution: I've added a check to compare the command-line buffer's state
          before and after key processing. The `CmdlineChanged` event
          now only triggers if the buffer's contents are genuinely
          different (Girish Palya).

closes: #17803

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(rust): improve loading time
Christian Brabandt [Sun, 20 Jul 2025 08:38:16 +0000 (10:38 +0200)] 
runtime(rust): improve loading time

fixes: #17745
closes: #17749

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Update help syntax, match :autocmd options
Doug Kearns [Sun, 20 Jul 2025 08:34:32 +0000 (10:34 +0200)] 
runtime(doc): Update help syntax, match :autocmd options

- Match :autocmd options and special buffer pattern.
- Normalise ellipsis (three dots) in Ex command argument lists.

closes: #17793

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1570: Copilot suggested some improvements in cmdexpand.c v9.1.1570
John Marriott [Sun, 20 Jul 2025 08:28:26 +0000 (10:28 +0200)] 
patch 9.1.1570: Copilot suggested some improvements in cmdexpand.c

Problem:  Copilot suggested some improvements in cmdexpand.c
          (after v9.1.1556)
Solution: Use better variable names and comments
          (John Marriott).

closes: #17795

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation(de): Update German translations
Christian Brabandt [Sun, 20 Jul 2025 08:26:02 +0000 (10:26 +0200)] 
translation(de): Update German translations

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation(it): Update Italian translations
Antonio Giovanni Colombo [Sun, 20 Jul 2025 08:00:55 +0000 (10:00 +0200)] 
translation(it): Update Italian translations

Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1569: tests: Vim9 tests can be improved v9.1.1569
Yegappan Lakshmanan [Sun, 20 Jul 2025 07:55:07 +0000 (09:55 +0200)] 
patch 9.1.1569: tests: Vim9 tests can be improved

Problem:  tests: Vim9 tests can be improved
Solution: In Test_has_func_shortcircuit(), move the test functions to a
          separate script (Yegappan Lakshmanan)

closes: #17796

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Tweak documentation about tab pages
Hirohito Higashi [Sun, 20 Jul 2025 07:52:28 +0000 (09:52 +0200)] 
runtime(doc): Tweak documentation about tab pages

closes: #17799

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(uc): include uc filetype plugin
Riley Bruins [Sun, 20 Jul 2025 07:49:57 +0000 (09:49 +0200)] 
runtime(uc): include uc filetype plugin

closes: #17802

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation: comment out deletion of *.pot file in Makefiles
RestorerZ [Sun, 20 Jul 2025 07:47:19 +0000 (09:47 +0200)] 
translation: comment out deletion of *.pot file in Makefiles

This is needed since commit 59bd74e included vim.pot in the repository.

closes: #17800

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1568: need a few more default highlight groups v9.1.1568
Maxim Kim [Sun, 20 Jul 2025 07:32:11 +0000 (09:32 +0200)] 
patch 9.1.1568: need a few more default highlight groups

Problem:  need a few more default highlight groups
Solution: Add Bold, Italic and BoldItalic default highlight groups
          (Maxim Kim).

related: https://github.com/vim/vim/pull/17598#issuecomment-3007320523
closes: #17804

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1567: crash when using inline diff mode v9.1.1567
Yee Cheng Chin [Sun, 20 Jul 2025 07:19:13 +0000 (09:19 +0200)] 
patch 9.1.1567: crash when using inline diff mode

Problem:  Crash when using inline diff mode
          (Ilya Grigoriev)
Solution: Set tp_diffbuf to NULL when skipping a diff block
          (Yee Cheng Chin).

Fix an array out of bounds crash when using diffopt+=inline:char when 4
or more buffers are being diff'ed. This happens when one of the blocks
is empty. The inline highlight logic skips using that buffer's block,
but when another buffer is used later and calls diff_read() to merge the
diff blocks together, it could erroneously consider the empty block's
diff info which has not been initialized, leaving to diff numbers that
are invalid. Later on the diff num is used without bounds checking which
leads to the crash.

Fix this by making sure to unset tp_diffbuf to NULL when we skip a
block, so diff_read() will not consider this buffer to be used within
inline diff. Also, add more bounds checking just to be safe.

closes: #17805

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1566: self-referenced enum may not get freed v9.1.1566
Yegappan Lakshmanan [Fri, 18 Jul 2025 19:50:20 +0000 (21:50 +0200)] 
patch 9.1.1566: self-referenced enum may not get freed

Problem:  self-referenced enum may not get freed
Solution: Test if it can be freed (Yegappan Lakshmanan)

closes: #17743

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1565: configure: does not consider tiny version for wayland v9.1.1565
Christoffer Aasted [Fri, 18 Jul 2025 18:37:41 +0000 (20:37 +0200)] 
patch 9.1.1565: configure: does not consider tiny version for wayland

Problem:  configure: does not consider tiny version for wayland
Solution: Do not try to enable wayland for a tiny vim version
          (Christoffer Aasted).

closes: #17783

Signed-off-by: Christoffer Aasted <chr.aasted@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(lf): update syntax to support lf version r36
Andis Spriņķis [Fri, 18 Jul 2025 18:34:27 +0000 (20:34 +0200)] 
runtime(lf): update syntax to support lf version r36

Adds the lf release 36 specific syntax highlighting changes.

related: andis-sprinkis/lf-vim#22 by @CatsDeservePets

closes: #17792

Co-authored-by: CatsDeservePets <145048791+CatsDeservePets@users.noreply.github.com>
Signed-off-by: Andis Spriņķis <andis@sprinkis.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(sh): properly delete shell commands in syntax file
Christoffer Aasted [Fri, 18 Jul 2025 18:25:59 +0000 (20:25 +0200)] 
runtime(sh): properly delete shell commands in syntax file

closes: #17785

Signed-off-by: Christoffer Aasted <chr.aasted@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoUpdate editorconfig and the documented C-style for sign.c/sound.c
Damien Lejay [Fri, 18 Jul 2025 18:18:11 +0000 (20:18 +0200)] 
Update editorconfig and the documented C-style for sign.c/sound.c

closes: #17786

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(vim): Update base syntax and generator, improve command/function distinction
Doug Kearns [Fri, 18 Jul 2025 18:12:29 +0000 (20:12 +0200)] 
runtime(vim): Update base syntax and generator, improve command/function distinction

- Match Ex command modifiers and functions with the same name correctly.
  E.g., :browse and browse().
- Match full :eval command.

closes: #17789

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1564: crash when opening popup to closing buffer v9.1.1564
Sean Dewar [Fri, 18 Jul 2025 18:09:47 +0000 (20:09 +0200)] 
patch 9.1.1564: crash when opening popup to closing buffer

Problem:  Can open a popup window to a closing buffer, leading to the
          buffer remaining open in the window after it's soon unloaded,
          causing crashes.
Solution: Check b_locked_split when opening a popup window to an
          existing buffer (Sean Dewar).

closes: #17790

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation: mark vim.pot as linguist-generated, ignore msg locations in vim.pot
Christian Brabandt [Fri, 18 Jul 2025 18:04:00 +0000 (20:04 +0200)] 
translation: mark vim.pot as linguist-generated, ignore msg locations in vim.pot

Update the textconv filter to filter out changes in the comments
pointing to the location of the message.

Also remove the comments in vim.pot that mention the message location.
Since those will be ignored using vims textconv filter, it does not make
sense to keep them, they would get out of sync anyhow.

closes: #17782

Co-authored-by: Illia Bobyr <illia.bobyr@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1563: completion: ruler may disappear v9.1.1563
Girish Palya [Thu, 17 Jul 2025 20:02:57 +0000 (22:02 +0200)] 
patch 9.1.1563: completion: ruler may disappear

Problem:  The ruler disappears after typing the second character during
          insert mode completion, even when completion messages are
          suppressed ('shortmess' includes "c"). This makes the UI
          appear inconsistent.
Solution: Ensure the ruler is restored during screen redraw when popup
          completion is active (Girish Palya).

Notes:
No new tests were added, as existing screen dump tests were updated to
reflect the corrected behavior.

closes: #17770

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1562: close button always visible in the 'tabline' v9.1.1562
Girish Palya [Thu, 17 Jul 2025 19:56:16 +0000 (21:56 +0200)] 
patch 9.1.1562: close button always visible in the 'tabline'

Problem:  close button "X" is visible in the non-GUI 'tabline', even
          when the mouse is disabled
Solution: only show the button when 'mouse' contains any of the flags
          "anvi" (Girish Palya)

The tabline always displays an "X" (close) button, and the info popup
shows both a close button and a resize handle—even when the mouse is
disabled. These UI elements are only actionable with the mouse and serve
no purpose for keyboard users who disable the mouse. Displaying
non-functional, clickable elements in a non-GUI environment is
misleading and adds unnecessary visual clutter.

So remove the close button and resize handle when the mouse is disabled.
They appear again when mouse is enabled.

closes: #17765

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(python): Highlight f-strings in Python
Rob B [Thu, 17 Jul 2025 19:22:40 +0000 (21:22 +0200)] 
runtime(python): Highlight f-strings in Python

fixes: #10734
fixes: #14033
closes: #17767

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Zvezdan Petkovic <zpetkovic@acm.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(vim): Update base syntax, match "any" type distinctly
Doug Kearns [Thu, 17 Jul 2025 19:19:55 +0000 (21:19 +0200)] 
runtime(vim): Update base syntax, match "any" type distinctly

Allow for special highlighting of the "any" Vim9 type.

Addresses comment
https://github.com/vim/vim/pull/17722#issuecomment-3075531052

closes: #17769

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1561: configure: wayland test can be improved v9.1.1561
Christoffer Aasted [Thu, 17 Jul 2025 19:11:06 +0000 (21:11 +0200)] 
patch 9.1.1561: configure: wayland test can be improved

Problem:  configure: wayland test can be improved
Solution: Define $WAYLAND_CFLAGS, simplify the wayland tests
          (Christoffer Aasted).

closes: #17772

Signed-off-by: Christoffer Aasted <chr.aasted@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1560: configure: uses $PKG_CONFIG before it is defined v9.1.1560
Christoffer Aasted [Thu, 17 Jul 2025 19:05:59 +0000 (21:05 +0200)] 
patch 9.1.1560: configure: uses $PKG_CONFIG before it is defined

Problem:  configure: uses $PKG_CONFIG before it is defined
Solution: Define $PKG_CONFIG earlier in the script (Christoffer Aasted).

closes: #17771

Signed-off-by: Christoffer Aasted <chr.aasted@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1559: tests: Test_popup_complete_info_01() fails when run alone v9.1.1559
zeertzjq [Thu, 17 Jul 2025 18:40:04 +0000 (20:40 +0200)] 
patch 9.1.1559: tests: Test_popup_complete_info_01() fails when run alone

Problem:  tests: Test_popup_complete_info_01() fails when run alone.
Solution: Set buffer-local competeopt+=noinsert and add missing cleanup
          in Test_popup_complete() (zeertzjq).

closes: #17773

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): fix claim that 'CTRL-W CTRL-C' and 'CTRL-W c' are the same
Emilien Breton [Thu, 17 Jul 2025 18:36:37 +0000 (20:36 +0200)] 
runtime(doc): fix claim that 'CTRL-W CTRL-C' and 'CTRL-W c' are the same

closes: #17776

Signed-off-by: Emilien Breton <bricktech2000@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): handle newlines in base64 string encode example
zeertzjq [Thu, 17 Jul 2025 18:30:55 +0000 (20:30 +0200)] 
runtime(doc): handle newlines in base64 string encode example

closes: #17777

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(vim): Update base syntax, fix incorrect function error
Doug Kearns [Thu, 17 Jul 2025 18:29:07 +0000 (20:29 +0200)] 
runtime(vim): Update base syntax, fix incorrect function error

Don't match lower-case function names as errors when the qualifier
includes a dict/list accessor.

This is a less than perfect fix until qualified function call matching
is reworked.

fixes: #17766
closes: #17780

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(compiler): Add PHPStan compiler
Dietrich Moerman [Thu, 17 Jul 2025 18:27:18 +0000 (20:27 +0200)] 
runtime(compiler): Add PHPStan compiler

closes: #17781

Signed-off-by: Dietrich Moerman <dietrich.moerman@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation: regenerate vim.pot, ignore version.c changes
Christian Brabandt [Thu, 17 Jul 2025 18:20:35 +0000 (20:20 +0200)] 
translation: regenerate vim.pot, ignore version.c changes

Regenerate vim.pot because of a wording update in optwin.vim for the
diffanchors feature.

While at it, update the textconv filter to ignore all lines
containing version.c because those change just by incrementing
the Vim patch number *grummel*

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1558: str2blob() treats NULL string and empty string differently v9.1.1558
zeertzjq [Thu, 17 Jul 2025 18:12:17 +0000 (20:12 +0200)] 
patch 9.1.1558: str2blob() treats NULL string and empty string differently

Problem:  str2blob() treats NULL string and empty string differently
Solution: Treats a NULL string the same as an empty string
          (zeertzjq).

closes: #17778

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1557: not possible to anchor specific lines in difff mode v9.1.1557
Yee Cheng Chin [Wed, 16 Jul 2025 18:36:54 +0000 (20:36 +0200)] 
patch 9.1.1557: not possible to anchor specific lines in difff mode

Problem:  not possible to anchor specific lines in difff mode
Solution: Add support for the anchoring lines in diff mode using the
          'diffanchor' option (Yee Cheng Chin).

Adds support for anchoring specific lines to each other while viewing a
diff. While lines are anchored, they are guaranteed to be aligned to
each other in a diff view, allowing the user to control and inform the
diff algorithm what the desired alignment is. Internally, this is done
by splitting up the buffer at each anchor and run the diff algorithm on
each split section separately, and then merge the results back for a
logically consistent diff result.

To do this, add a new "diffanchors" option that takes a list of
`{address}`, and a new "diffopt" option value "anchor". Each address
specified will be an anchor, and the user can choose to use any type of
address, including marks, line numbers, or pattern search. Anchors are
sorted by line number in each file, and it's possible to have multiple
anchors on the same line (this is useful when doing multi-buffer diff).
Update documentation to provide examples.

This is similar to Git diff's `--anchored` flag. Other diff tools like
Meld/Araxis Merge also have similar features (called "synchronization
points" or "synchronization links"). We are not using Git/Xdiff's
`--anchored` implementation here because it has a very limited API
(it requires usage of the Patience algorithm, and can only anchor
unique lines that are the same across both files).

Because the user could anchor anywhere, diff anchors could result in
adjacent diff blocks (one block is directly touching another without a
gap), if there is a change right above the anchor point. We don't want
to merge these diff blocks because we want to line up the change at the
anchor. Adjacent diff blocks were first allowed when linematch was
added, but the existing code had a lot of branched paths where
line-matched diff blocks were handled differently. As a part of this
change, refactor them to have a more unified code path that is
generalized enough to handle adjacent diff blocks correctly and without
needing to carve in exceptions all over the place.

closes: #17615

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1556: string handling in cmdexpand.c can be improved v9.1.1556
John Marriott [Wed, 16 Jul 2025 18:09:13 +0000 (20:09 +0200)] 
patch 9.1.1556: string handling in cmdexpand.c can be improved

Problem:  string handling in cmdexpand.c can be improved
Solution: Improve string manipulation in cmdexpand.c (John Marriott).

This PR does the following:

In cmdline_fuzzy_completion_supported():
- replace the series of if tests with a switch

In expand_shellcmd_onedir():
- move the code to concatenate path and pattern to expand_shellcmd().
  This allows us to slightly simplify the argument list to pass the fully
  pathed pattern and the length of the path in the pattern (0 if no path)
- factor out calls to STRMOVE()

In expand_shellcmd():
- factor out calls to STRMOVE() in the first for loop.
- reorganise the second for loop by:
  a) only calling vim_strchr() if s is not at the end of the string
  b) making sure that when the path and pattern are concatenated they fit
     inside buf
  c) concatenating path and pattern and pass to expand_shellcmd_onedir()

In globpath():
- slightly improve logic that determines if the complete path will fit
  inside the buffer

In f_getcompletion():
- replace the series of if tests with a switch
- factor out calls to STRLEN()

In copy_substring_from_pos():
- factor out the call to STRLEN()

closes: #17742

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1555: completion: repeated insertion of leader v9.1.1555
Girish Palya [Wed, 16 Jul 2025 17:53:56 +0000 (19:53 +0200)] 
patch 9.1.1555: completion: repeated insertion of leader

Problem:  completion: repeated insertion and deletion of complete
          functions
Solution: Remove unnecessary insertion and deletion of leader text
          ('compl_orig_text') during expansion of function present in
          'complete' option (Girish Palya).

closes: #17738

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1554: crash when omni-completion opens command-line window v9.1.1554
Girish Palya [Wed, 16 Jul 2025 16:54:54 +0000 (18:54 +0200)] 
patch 9.1.1554: crash when omni-completion opens command-line window

Problem:  Vim crashes during omnifunc completion inside the command-line
          window ("q:") if the completion item attempts to open an "info"
          preview window. This leads to a failed assert during execution.
Solution: Avoid opening preview windows while inside the command-line
          window to prevent the crash (Girish Palya).

closes: #17764

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1553: Vim9: crash when accessing a variable in if condition v9.1.1553
Yegappan Lakshmanan [Wed, 16 Jul 2025 16:34:59 +0000 (18:34 +0200)] 
patch 9.1.1553: Vim9: crash when accessing a variable in if condition

Problem:  Vim9: crash when accessing a variable in if condition
          (lxhillwind)
Solution: Skip indexing a list/tuple/dict/blob when short-circuiting an
          if condition check (Yegappan Lakshmanan)

fixes: #17756
closes: #17768

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(tar): update minimum Vim version required for tar.vim
Christian Brabandt [Wed, 16 Jul 2025 16:28:11 +0000 (18:28 +0200)] 
runtime(tar): update minimum Vim version required for tar.vim

related: #17733

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1552: [security]: path traversal issue in tar.vim v9.1.1552
Christian Brabandt [Tue, 15 Jul 2025 19:54:00 +0000 (21:54 +0200)] 
patch 9.1.1552: [security]: path traversal issue in tar.vim

Problem:  [security]: path traversal issue in tar.vim
          (@ax)
Solution: warn the user for such things, drop leading /, don't
          forcefully overwrite files when writing temporary files,
          refactor autoload/tar.vim

tar.vim: drop leading / in path names

A tar archive containing files with leading `/` may cause confusions as
to where the content is extracted.  Let's make sure we drop the leading
`/` and use a relative path instead.

Also while at it, had to refactor it quite a bit and increase the
minimum supported Vim version to v9. Also add a test for some basic tar
functionality

closes: #17733

2 weeks agopatch 9.1.1551: [security]: path traversal issue in zip.vim v9.1.1551
Christian Brabandt [Tue, 15 Jul 2025 19:43:01 +0000 (21:43 +0200)] 
patch 9.1.1551: [security]: path traversal issue in zip.vim

Problem:  [security]: path traversal issue in zip.vim (@ax)
Solution: drop leading ../ on write of zipfiles, don't forcefully
          overwrite existing files

A zip plugin which contains filenames with leading '../'  may cause
confusion as to where the content will be extracted.  Let's drop such
things and make sure we use a relative filename instead and don't
forcefully overwrite temporary files. Also, warn the user of such
things.

related: #17733

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1550: defaults: 'showcmd' is not enabled in non-compatible mode on Unix v9.1.1550
Christian Brabandt [Tue, 15 Jul 2025 19:26:25 +0000 (21:26 +0200)] 
patch 9.1.1550: defaults: 'showcmd' is not enabled in non-compatible mode on Unix

Problem:  defaults: 'showcmd' is not enabled in non-compatible mode on
          Unix
Solution: Always enable 'showcmd' in non-compatible mode, drop it from
          defaults.vim.

'showcmd' was already always enabled in Vim compatible mode except for
UNIX environments. So let's just enable it always, there is no good
reason why UNIX platforms should be handled differently than other
platforms, especially since `defaults.vim` did enable this option
anyhow.

closes: #17739

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1549: filetype: pkl files are not recognized v9.1.1549
Riley Bruins [Tue, 15 Jul 2025 19:21:29 +0000 (21:21 +0200)] 
patch 9.1.1549: filetype: pkl files are not recognized

Problem:  filetype: pkl files are not recognized
Solution: detect *.pkl files as pkl filetype, include
          a filetype plugin (Riley Bruins)

References:
https://pkl-lang.org/
https://github.com/apple/pkl

closes: #17751

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1548: filetype: OpenFGA files are not recognized v9.1.1548
Riley Bruins [Tue, 15 Jul 2025 19:17:02 +0000 (21:17 +0200)] 
patch 9.1.1548: filetype: OpenFGA files are not recognized

Problem:  filetype: OpenFGA files are not recognized
Solution: detect *.fga files as fga filetype, include an fga filetype
          plugin (Riley Bruins)

References:
https://github.com/openfga
https://marketplace.visualstudio.com/items?itemName=openfga.openfga-vscode

closes: #17752

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(swig): add 'comments', 'commentstring' in filetype plugin
Riley Bruins [Tue, 15 Jul 2025 19:13:02 +0000 (21:13 +0200)] 
runtime(swig): add 'comments', 'commentstring' in filetype plugin

Reference:
https://www.swig.org/Doc1.3/SWIG.html#SWIG_nn5

closes: #17753

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(twig): include twig filetype plugin
Riley Bruins [Tue, 15 Jul 2025 19:09:43 +0000 (21:09 +0200)] 
runtime(twig): include twig filetype plugin

closes: #17754

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1547: Wayland: missing ifdef v9.1.1547
Foxe Chen [Tue, 15 Jul 2025 19:06:37 +0000 (21:06 +0200)] 
patch 9.1.1547: Wayland: missing ifdef

Problem:  Wayland: missing ifdef
Solution: Add #ifdef around ch_log() call
          (Foxe Chen)

closes: #17763

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agotranslation: ignore vim.pot creation date, regenerate it, rm allfiles
Christian Brabandt [Tue, 15 Jul 2025 18:42:48 +0000 (20:42 +0200)] 
translation: ignore vim.pot creation date, regenerate it, rm allfiles

Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1546: Vim9: error with has() and short circuit evaluation v9.1.1546
Yegappan Lakshmanan [Tue, 15 Jul 2025 18:26:52 +0000 (20:26 +0200)] 
patch 9.1.1546: Vim9: error with has() and short circuit evaluation

Problem:  Vim9: error with has() and short circuit evaluation
Solution: Only eval, if ctx_skip is not SKIP_YES (Yegappan Lakshmanan).

fixes: #17750
closes: #17755

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(python2): Highlight b-strings in Python 2.7
Rob B [Tue, 15 Jul 2025 18:23:59 +0000 (20:23 +0200)] 
runtime(python2): Highlight b-strings in Python 2.7

related: #14033
related: #17726

closes: #17757

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agoruntime(doc): Tweak documentation
Hirohito Higashi [Tue, 15 Jul 2025 18:06:49 +0000 (20:06 +0200)] 
runtime(doc): Tweak documentation

closes: #17759

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 weeks agopatch 9.1.1545: typo in os_unix.c v9.1.1545
Foxe Chen [Tue, 15 Jul 2025 18:02:57 +0000 (20:02 +0200)] 
patch 9.1.1545: typo in os_unix.c

Problem:  Typo in os_unix.c
Solution: Correct the typo (Foxe Chen)

closes: #17761

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(python): highlight bytes in python
Rob B [Mon, 14 Jul 2025 20:30:59 +0000 (22:30 +0200)] 
runtime(python): highlight bytes in python

- Highlight bytes literals
- Do not highlight Unicode escape sequences in bytes literals

fixes: #14033
fixes: #17726
closes: #17728

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(python2): highlight unicode strings in python2
Rob B [Mon, 14 Jul 2025 20:21:44 +0000 (22:21 +0200)] 
runtime(python2): highlight unicode strings in python2

fixes: #14033
fixes: #17726
closes: #17729

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1544: :retab cannot be limited to indentation only v9.1.1544
Hirohito Higashi [Mon, 14 Jul 2025 20:11:34 +0000 (22:11 +0200)] 
patch 9.1.1544: :retab cannot be limited to indentation only

Problem:  :retab cannot be limited to indentation only
Solution: add the optional -indentonly parameter
          (Hirohito Higashi)

closes: #17730

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(erlang): Add support for triple-quoted strings and docstrings
Csaba Hoch [Mon, 14 Jul 2025 20:02:18 +0000 (22:02 +0200)] 
runtime(erlang): Add support for triple-quoted strings and docstrings

Erlang recently added the `-moduledoc` attribute as well as triple
quoted strings and the `~` prefix for binary strings, see [1].

Erlang also added nominal types. See EEP-69 [2].

This commit removes the documentation of "g:erlang_highlight_bifs" and
"g:erlang_highlight_special_atoms", which are not longer supported.
"g:erlang_old_style_highlight" is kept undocumented (as it should not be
used by new users).

This commit contains the modifications in the following PR and commits:

- vim-erlang/vim-erlang-runtime#58
- vim-erlang/vim-erlang-runtime@43d18d3
- vim-erlang/vim-erlang-runtime@ac88ebf
- vim-erlang/vim-erlang-runtime@19c1be9
- vim-erlang/vim-erlang-runtime@7f5cefc
- vim-erlang/vim-erlang-runtime@976b10b

[1]: https://www.erlang.org/doc/system/documentation.html
[2]: https://www.erlang.org/eeps/eep-0069

closes: #17687

Co-authored-by: Johannes Christ <jc@jchri.st>
Signed-off-by: Csaba Hoch <csaba@cursorinsight.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1543: Wayland: clipboard appears to not be working v9.1.1543
Foxe Chen [Mon, 14 Jul 2025 19:54:23 +0000 (21:54 +0200)] 
patch 9.1.1543: Wayland: clipboard appears to not be working

Problem:  Wayland: clipboard appears to not be working
          (Fuad Veliev)
Solution: Explicitly set selection each time (Foxe Chen)

fixes: #17732
closes: #17740

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1542: Coverity complains about uninitialized variable v9.1.1542
Christian Brabandt [Mon, 14 Jul 2025 19:46:46 +0000 (21:46 +0200)] 
patch 9.1.1542: Coverity complains about uninitialized variable

Problem:  Coverity complains about uninitialized variable
          (Tony Mechelynck)
Solution: Initialize variables

closes: #17717

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1541: Vim9: error when last enum value ends with a comma v9.1.1541
Yegappan Lakshmanan [Mon, 14 Jul 2025 19:27:34 +0000 (21:27 +0200)] 
patch 9.1.1541: Vim9: error when last enum value ends with a comma

Problem:  Vim9: error when last enum value ends with a comma
Solution: Allow trailing commas in enum values (Yegappan Lakshmanan).

closes: #17744

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(vim): Update help syntax file, improve highlighting of included Vim examples
Doug Kearns [Sun, 13 Jul 2025 15:53:26 +0000 (17:53 +0200)] 
runtime(vim): Update help syntax file, improve highlighting of included Vim examples

- Take over as file maintainer.
- Improve highlighting of legacy script examples by using :syn-iskeyword
  with the default 'iskeyword' value. Vim9 script examples are not
  supported yet.
- Match admonition labels in more contexts.
- Match URLs in more contexts.

fixes #17721
closes: #17731

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1540: completion: menu state wrong on interruption v9.1.1540
Girish Palya [Sun, 13 Jul 2025 15:01:57 +0000 (17:01 +0200)] 
patch 9.1.1540: completion: menu state wrong on interruption

Problem:  completion: menu state wrong on interruption
          (Maxim Kim)
Solution: Call show_pum() if completion was interrupted
          (Girish Palya).

Popup menu was not built after fuzzy sorting, so internal state wasn't
reflected on screen.

No test. Couldn't get the terminal test to trigger both interruption and
refresh together.

fixes: #17725
closes: #17736

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1539: completion: messages don't respect 'shm' setting v9.1.1539
Girish Palya [Sun, 13 Jul 2025 14:53:53 +0000 (16:53 +0200)] 
patch 9.1.1539: completion: messages don't respect 'shm' setting

Problem:  completion: messages don't respect 'shm' setting
Solution: Turn off completion messages when 'shortmess' includes "c"
          (Girish Palya).

`:set shortmess+=c` is intended to reduce noise during completion by
suppressing messages.
Previously, some completion messages still appeared regardless of this setting.

This change ensures that **all** completion-related messages are suppressed
when `'c'` is present in `'shortmess'`.

Not entirely sure if the original behavior was intentional. If there's a
reason certain messages were always shown, feel free to close this without
merging.

closes: #17737

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(vim): Update base syntax, improve :match highlighting
Doug Kearns [Sun, 13 Jul 2025 07:05:23 +0000 (09:05 +0200)] 
runtime(vim): Update base syntax, improve :match highlighting

- Match the range prefix separately as a count.
- Match an explicit count of 1, rarely used but seen in the wild.
- Allow whitespace between the count and command.

closes: #17717

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(it): update Italian message translations
Antonio Giovanni Colombo [Sun, 13 Jul 2025 06:31:33 +0000 (08:31 +0200)] 
translation(it): update Italian message translations

Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation: include vim.pot in the repository
Christian Brabandt [Sun, 13 Jul 2025 06:26:57 +0000 (08:26 +0200)] 
translation: include vim.pot in the repository

Translators would like to work with the vim.pot file directly, without
having to clone and potentially build vim.

So let's include it.

closes: #17734

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(python): update rendering of Unicode named literals in syntax script
Zvezdan Petkovic [Sun, 13 Jul 2025 06:23:24 +0000 (08:23 +0200)] 
runtime(python): update rendering of Unicode named literals in syntax script

This change:

* enforces that the alias starts with a letter
* allows the other words in an alias to be separated by either a space
  or a hyphen, but not both or double separators
* allows only a letter after space, possibly followed by letters or
  digits
* allows both letters and digits after a hyphen

Tested with:

    a = '\N{Cyrillic Small Letter Zhe} is pronounced as zh in pleasure'
    b = '\N{NO-BREAK SPACE} is needed here'
    # ... other tests here
    r = '\N{HENTAIGANA LETTER E-1} is a Japanese hiragana letter archaic ye'
    s = '\N{CUNEIFORM SIGN NU11 TENU} is a correction alias'
    t = '\N{RECYCLING SYMBOL FOR TYPE-1 PLASTICS} base shape is a triangle'
    print(a)
    print(b)
    print(r)
    print(s)
    print(t)

The tests confirm the behavior and are selected from real Unicode
tables/aliases to check these combinations based on the specification.

fixes: #17323
closes: #17735

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(ru): Update messages translation
RestorerZ [Fri, 11 Jul 2025 17:40:39 +0000 (19:40 +0200)] 
translation(ru): Update messages translation

closes: #17719

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotests: string options in gen_opt_test.vim not fully sorted v9.1.1538
zeertzjq [Fri, 11 Jul 2025 17:17:07 +0000 (19:17 +0200)] 
tests: string options in gen_opt_test.vim not fully sorted

Problem:  tests: string options in gen_opt_test.vim aren't fully sorted.
Solution: Sort the string options alphabetically.  Also make description
          of 'maxsearchcount' start with lower-case for consistency with
          other options, update documentation for searchcount().

closes: #17720

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agocheck.vim: detect trailing whitespace
Christian Brabandt [Thu, 10 Jul 2025 19:01:27 +0000 (21:01 +0200)] 
check.vim: detect trailing whitespace

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(help_ru): Update help_ru syntax script
RestorerZ [Thu, 10 Jul 2025 18:52:18 +0000 (20:52 +0200)] 
runtime(help_ru): Update help_ru syntax script

closes: #17718

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(vim): Update base syntax, improve function call highlighting
Doug Kearns [Thu, 10 Jul 2025 18:50:06 +0000 (20:50 +0200)] 
runtime(vim): Update base syntax, improve function call highlighting

- Match more function calls.
- Contain function call syntax groups.
- Improve differentiation between Ex commands and builtin functions with
  the same name.  Remove special cases.  Command modifiers are not
  currently well differentiated from functions.

closes: #17712

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1537: helptoc: still some issues when markdown code blocks v9.1.1537
Christian Brabandt [Thu, 10 Jul 2025 18:44:51 +0000 (20:44 +0200)] 
patch 9.1.1537: helptoc: still some issues when markdown code blocks

Problem:  helptoc: still some issues when parsing markdown code blocks
          (VimWei)
Solution: assign nextline to curline before starting the next loop
          iteration; when processing fenced code blocks, flip the
          skip_fence variable, update the test to be more comprehensive

related: https://github.com/vim/vim/issues/17699#issuecomment-3055603968
closes: #17716

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1536: tests: test_plugin_comment uses wrong :Check command v9.1.1536
Christian Brabandt [Thu, 10 Jul 2025 18:40:09 +0000 (20:40 +0200)] 
patch 9.1.1536: tests: test_plugin_comment uses wrong :Check command

Problem:  tests: test_plugin_comment.vim uses :CheckScreenDump check but
          doesn't actually use a screen dump.
Solution: Use :CheckRunVimInTerminal instead, remove a few empty lines.

test_plugin_comment.vim uses :CheckScreenDump to test for the screen
dump feature in each single test case.

However, since we are not actually using any screen dumps, it would be
more correct to use :CheckRunVimInTerminal, since this is the actual
command that we want to run.

And instead of verifying this for each single test, let's just do it
once when sourcing the file. While doing this, also remove some white
spaces.

closes: #17711

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1535: the maximum search count uses hard-coded value 99 v9.1.1535
Christian Brabandt [Thu, 10 Jul 2025 18:34:41 +0000 (20:34 +0200)] 
patch 9.1.1535: the maximum search count uses hard-coded value 99

Problem:  The maximum search count uses a hard-coded value of 99
          (Andres Monge, Joschua Kesper)
Solution: Make it configurable using the 'maxsearchcount' option.

related: #8855
fixes: #17527
closes: #17695

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1534: unnecessary code in tabpanel.c v9.1.1534
Hirohito Higashi [Thu, 10 Jul 2025 18:14:01 +0000 (20:14 +0200)] 
patch 9.1.1534: unnecessary code in tabpanel.c

Problem:  unnecessary code in tabpanel.c
Solution: remove it (Hirohito Higashi)

closes: #17713

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1533: helptoc: does not handle code sections in markdown well v9.1.1533
Christian Brabandt [Wed, 9 Jul 2025 18:26:07 +0000 (20:26 +0200)] 
patch 9.1.1533: helptoc: does not handle code sections in markdown well

Problem:  helptoc: does not handle code sections in markdown well
          (VimWei)
Solution: Skip over fenced code sections (lacygoill), add a test.

fixes: #17699
closes: #17710

Co-authored-by: lagygoill <lacygoill@lacygoill.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(doc): clarify how ex ranges are adjusted when acting on folds
Christian Brabandt [Wed, 9 Jul 2025 17:59:22 +0000 (19:59 +0200)] 
runtime(doc): clarify how ex ranges are adjusted when acting on folds

closes: #17696

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(ru): update vim-ru according to patch 9.1.1485
RestorerZ [Wed, 9 Jul 2025 17:45:43 +0000 (19:45 +0200)] 
translation(ru): update vim-ru according to patch 9.1.1485

closes: #17709

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(ru): update vimtutor-ru man according to commit 5bbdd0b
RestorerZ [Wed, 9 Jul 2025 17:43:51 +0000 (19:43 +0200)] 
translation(ru): update vimtutor-ru man according to commit 5bbdd0b

closes: #17708

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agotranslation(ru): Update main readme.ru.txt according to commit 2bfd1ee
RestorerZ [Wed, 9 Jul 2025 17:41:21 +0000 (19:41 +0200)] 
translation(ru): Update main readme.ru.txt according to commit 2bfd1ee

closes: #17707

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(filetype): fix incorrect pattern and break early
zeertzjq [Wed, 9 Jul 2025 16:23:14 +0000 (18:23 +0200)] 
runtime(filetype): fix incorrect pattern and break early

- Using `\n` is incorrect, as result of getline() does not contain line
  breaks and only uses `\n` for NUL bytes.
- Return when b:asmsyntax is set, like many other filetypes.

closes: #17706

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoRevert "runtime(haskell): Add single quote to `iskeyword` in ftplugin (#8191)"
Christian Brabandt [Wed, 9 Jul 2025 16:15:30 +0000 (18:15 +0200)] 
Revert "runtime(haskell): Add single quote to `iskeyword` in ftplugin (#8191)"

This reverts commit 5e6e4042b1c9685bce86493e3ee6fe916a7f221c.

related: #8191

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1532: termdebug: not enough ways to configure breakpoints v9.1.1532
Dimitry Ishenko [Tue, 8 Jul 2025 21:13:14 +0000 (23:13 +0200)] 
patch 9.1.1532: termdebug: not enough ways to configure breakpoints

Problem:  termdebug: not enough ways to configure breakpoints
Solution: add the termdebug_config['signs'] config setting, rework the
          termdebug test cases (Dimitry Ishenko)

Allow to configure custom breakpoint signs so one can do something like
this:

```vim
let g:termdebug_config['signs'] = ['>1', '>2', '>3', '>4', '>5', '>6', '>7', '>8', '>9']
let g:termdebug_config['sign'] = '>>'
```

where the first 9 breakpoints will have their own signs and the rest
will be the same (>>).

While at it, rework the test for the termdebug plugin:

- Added test for g:termdebug_config['signs'].
- Added test for g:termdebug_config['sign'].
- Moved test for g:termdebug_config['sign_decimal'] into
  Test_termdebug_basic()

closes: #17694

Signed-off-by: Dimitry Ishenko <dimitry.ishenko@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1531: confusing error with nested legacy function v9.1.1531
Hirohito Higashi [Tue, 8 Jul 2025 21:07:21 +0000 (23:07 +0200)] 
patch 9.1.1531: confusing error with nested legacy function

Problem:  confusing error with nested legacy function
          (lacygoill)
Solution: clarify error message E1117 with :def or :func (Hirohito Higashi)

fixes: #17697
closes: #17702

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1530: Missing version change in v9.1.1529 v9.1.1530
Christian Brabandt [Tue, 8 Jul 2025 21:04:36 +0000 (23:04 +0200)] 
patch 9.1.1530: Missing version change in v9.1.1529

Problem:  Missing version change from v9.1.1529
Solution: Update version.c with latest patch

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1529: Win32: the toolbar in the GUI is old and dated v9.1.1529
RestorerZ [Tue, 8 Jul 2025 21:00:13 +0000 (23:00 +0200)] 
patch 9.1.1529: Win32: the toolbar in the GUI is old and dated

Problem:  Win32: the toolbar in the GUI is old and dated
Solution: Include improved icons from Fatcow (CC by 3.0)
          (RestorerZ)

closes: vim/vim-win32-installer#372
closes: #17698

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1528: completion: crash with getcompletion() v9.1.1528
Christian Brabandt [Tue, 8 Jul 2025 20:04:10 +0000 (22:04 +0200)] 
patch 9.1.1528: completion: crash with getcompletion()

Problem:  completion: crash with getcompletion()
          (zeertzjq)
Solution: Don't set may_expand_pattern in f_getcompletion(),
          unset may_expand_pattern() once it is not longer needed
          (Girish Palya).

fixes: #17680
closes: #17686

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1527: Vim9: Crash with string compound assignment v9.1.1527
Hirohito Higashi [Tue, 8 Jul 2025 19:47:01 +0000 (21:47 +0200)] 
patch 9.1.1527: Vim9: Crash with string compound assignment

Problem:  Vim9: Crash when using string compound assignment with wrong
          data type (lacygoill)
Solution: verify expected member type (Hirohito Higashi)

fixes: #17675
closes: #17693

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agoruntime(filetype): improve asm heuristics and move into FTasmsyntax()
Wu Yongwei [Tue, 8 Jul 2025 19:42:37 +0000 (21:42 +0200)] 
runtime(filetype): improve asm heuristics and move into FTasmsyntax()

fixes: #17474
closes: #17683

Signed-off-by: Wu Yongwei <wuyongwei@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 weeks agopatch 9.1.1526: completion: search completion match may differ in case v9.1.1526
Girish Palya [Tue, 8 Jul 2025 19:29:02 +0000 (21:29 +0200)] 
patch 9.1.1526: completion: search completion match may differ in case

Problem:  completion: search completion match may differ in case
          (techntools)
Solution: add "exacttext" to 'wildoptions' value (Girish Palya)

This flag does the following:

exacttext
      When this flag is present, search pattern completion
      (e.g., in |/|, |?|, |:s|, |:g|, |:v|, and |:vim|)
      shows exact buffer text as menu items, without
      preserving regex artifacts like position
      anchors (e.g., |/\<|). This provides more intuitive
      menu items that match the actual buffer text. However,
      searches may be less accurate since the pattern is not
      preserved exactly.
      By default, Vim preserves the typed pattern (with
      anchors) and appends the matched word. This preserves
      search correctness, especially when using regular
      expressions or with 'smartcase' enabled. However, the
      case of the appended matched word may not exactly
      match the case of the word in the buffer.

fixes: #17654
closes: #17667

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(netrw): restore blank line cleanup after file listing
uma-chan [Mon, 7 Jul 2025 20:04:11 +0000 (22:04 +0200)] 
runtime(netrw): restore blank line cleanup after file listing

Problem:  v182 refactoring removed blank line cleanup (g/^$/d) from
          s:LocalListing(), causing empty lines between directories
          and files.
Solution: Add the missing cleanup after append() in s:PerformListing()
          (uma-chan).

closes: #17672

Co-authored-by: Luca Saccarola <96259932+saccarosium@users.noreply.github.com>
Signed-off-by: uma-chan <127664533+i9wa4@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1525: tests: testdir/ is a bit messy v9.1.1525
Christian Brabandt [Mon, 7 Jul 2025 18:53:55 +0000 (20:53 +0200)] 
patch 9.1.1525: tests: testdir/ is a bit messy

Problem:  tests: testdir is a bit messy
Solution: move test scripts into testdir/util/ directory

src/testdir/ has become a dumping ground mixing test cases with utility
functions. Let's fix this by moving all utility functions into the
testdir/util/ directory

Also a few related changes had to be done:
- Update Filelist
- update README.txt and mention the new directory layout
- fix shadowbuild by linking the util directory into the shadow dir

closes: #17677

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1524: tests: too many imports in the test suite v9.1.1524
Christian Brabandt [Mon, 7 Jul 2025 18:39:29 +0000 (20:39 +0200)] 
patch 9.1.1524: tests: too many imports in the test suite

Problem:  tests: too many imports in the test suite
Solution: Clean up the imported scripts

Most tests make use of check.vim, so let's just source it once in
runtest.vim instead of having each test manually source it.

runtest.vim already sources shared.vim, which again sources
view_util.vim, so we don't need to source those two common
dependencies in all the other tests

And then check.vim sources term_util.vim already, so we can in addition
drop sourcing it explicitly in each single test script.

Note: test_expand_func.vim had to be updated to account for the changed
number of sourced files.

And finally check.vim uses line-continuation so let's also explicitly
enable line continuation via the 'cpo' option value.

related: #17677

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1523: tests: test_clipmethod fails in non X11 environment v9.1.1523
Christian Brabandt [Mon, 7 Jul 2025 18:07:06 +0000 (20:07 +0200)] 
patch 9.1.1523: tests: test_clipmethod fails in non X11 environment

Problem:  tests: test_clipmethod fails in non X11 environment
Solution: test that $DISPLAY is available

related: #17677

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1522: tests: still some ANSI escape sequences in test output v9.1.1522
Christian Brabandt [Mon, 7 Jul 2025 18:03:03 +0000 (20:03 +0200)] 
patch 9.1.1522: tests: still some ANSI escape sequences in test output

Problem:  tests: still some ANSI escape sequences in test messages output
Solution: update the cleanup regexp to also handle those ANSI escape
          sequences: `<esc>|2h` and `<esc>|31H` like in this log output:

```
2025-07-05T20:02:47.6350409Z <esc>|2hExecuted 171 tests in   4.739708 seconds<esc>|31H
```

related: #17677

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1521: completion: pum does not reset scroll pos on reopen with 'noselect' v9.1.1521
Girish Palya [Mon, 7 Jul 2025 17:47:53 +0000 (19:47 +0200)] 
patch 9.1.1521: completion: pum does not reset scroll pos on reopen with 'noselect'

Problem:  When 'wildmode' is set to include "noselect", the popup menu (pum)
          incorrectly retained its scroll position when reopened. This
          meant that after scrolling down through the menu with `<C-n>`,
          reopening the menu (e.g., by retyping the command and
          triggering completion again) would show the menu starting from
          the previously scrolled position, rather than from the top.
          This could confuse users, as the first visible item would not
          be the first actual match in the list.

Solution: Ensure that the popup menu resets its scroll position to the
          top when reopened (Girish Palya).

closes: #17673

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1520: completion: search completion doesn't handle 'smartcase' well v9.1.1520
Girish Palya [Mon, 7 Jul 2025 17:42:10 +0000 (19:42 +0200)] 
patch 9.1.1520: completion: search completion doesn't handle 'smartcase' well

Problem:  When using `/` or `?` in command-line mode with 'ignorecase' and
          'smartcase' enabled, the completion menu could show items that
          don't actually match any text in the buffer due to case mismatches

Solution: Instead of validating menu items only against the user-typed
          pattern, the new logic also checks whether the completed item
          matches actual buffer content. If needed, it retries the match
          using a lowercased version of the candidate, respecting
          smartcase semantics.

closes: #17665

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agopatch 9.1.1519: tests: Test_termdebug_decimal_breakpoints() may fail v9.1.1519
Christian Brabandt [Mon, 7 Jul 2025 17:38:27 +0000 (19:38 +0200)] 
patch 9.1.1519: tests: Test_termdebug_decimal_breakpoints() may fail

Problem:  Test_termdebug_decimal_breakpoints() fails with List index out
          of range, because when adding the second breakpoint, the
          cursor is still on the very first line (a header include line)
          and therefore gdb refuses to set the breakpoint with:
          `msg="No compiled code for line 1 in file XTD_decimal.c"`
Solution: Run the program, so that it will break at the very first
          defined breakpoint and then once we are in the program,
          set further breakpoints

closes: #17689

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 weeks agoruntime(doc): Add documentation style
Damien Lejay [Mon, 7 Jul 2025 17:19:48 +0000 (19:19 +0200)] 
runtime(doc): Add documentation style

closes: #17627

Co-authored-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com>
Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>