]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
16 hours agopatch 9.2.0901: textprop: wrong cursor line with truncated virtual text master v9.2.0901
Hirohito Higashi [Sun, 2 Aug 2026 19:25:12 +0000 (19:25 +0000)] 
patch 9.2.0901: textprop: wrong cursor line with truncated virtual text

Problem:  The cursor is displayed in the wrong line when virtual text below
          an empty line is truncated.
Solution: Do not count an extra column for an empty line that has virtual
          text below it, its width already includes filling up the line.
          (Hirohito Higashi).

fixes:  #12493
closes: #20917

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agopatch 9.2.0900: FocusGained still triggered when closing dialog v9.2.0900
Christoffer Aasted [Sun, 2 Aug 2026 19:00:41 +0000 (19:00 +0000)] 
patch 9.2.0900: FocusGained still triggered when closing dialog

Problem:  FocusGained still triggered when closing dialog
          (after v9.2.0851)
Solution: Track that dialog is active and suppress the FocusGained
          autocommand (Christoffer Aasted)

related: #20780
closes:  #20894

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agopatch 9.2.0899: command output temporary files may collide v9.2.0899
Sam Roeca [Sun, 2 Aug 2026 18:41:16 +0000 (18:41 +0000)] 
patch 9.2.0899: command output temporary files may collide

Problem:  On MS-Windows, get_cmd_output() removes its reserved temporary
          file before the shell opens it, allowing another Vim process to
          reuse the same name.
Solution: Keep the temporary file reserved until command output handling is
          complete (Sam Roeca).

closes: #20915

Signed-off-by: Sam Roeca <samuel.roeca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
16 hours agopatch 9.2.0898: printing support is lacking v9.2.0898
Foxe Chen [Sun, 2 Aug 2026 18:27:01 +0000 (18:27 +0000)] 
patch 9.2.0898: printing support is lacking

Problem:  printing support is lacking
Solution: Improve printing support by making use of pango and cairo
          libraries, use a graphical dialog for :hardcopy in the GTK4 ui
          (Foxe Chen).

fixes:  #8935
closes: #20648

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
17 hours agopatch 9.2.0897: GTK3 X11 redraws are not coalesced v9.2.0897
Christoffer Aasted [Sun, 2 Aug 2026 18:01:14 +0000 (18:01 +0000)] 
patch 9.2.0897: GTK3 X11 redraws are not coalesced

Problem:  GTK3 X11 redraws are not coalesced
Solution: Improve redrawing logic, unify Wayland with X11 redraw
          code (Christoffer Aasted)

closes: #20909

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
17 hours agoruntime(vimgoto): make 'gf' find imported python files
Mateo Gjika [Sun, 2 Aug 2026 17:49:36 +0000 (17:49 +0000)] 
runtime(vimgoto): make 'gf' find imported python files

In Vim script with this line:
py3 import file

make gf work using vimgoto plugin.

closes: #20908

Signed-off-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
18 hours agopatch 9.2.0896: scroll: 'smoothscroll' position is lost when splitting a window
Hirohito Higashi [Sun, 2 Aug 2026 17:25:35 +0000 (17:25 +0000)] 
patch 9.2.0896: scroll: 'smoothscroll' position is lost when splitting a window

Problem:  With 'smoothscroll' the position in a long line is lost when a
          window is split and closed again.
Solution: With 'splitkeep' "screen" keep the skipped columns, they are part
          of keeping the same screen lines.  Otherwise put the cursor in the
          row that keeps its relative position, instead of the last row.

closes: #20912

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
18 hours agopatch 9.2.0896: textprop: wrong Tab size in a line with virtual text above it v9.2.0896
Hirohito Higashi [Sun, 2 Aug 2026 17:20:29 +0000 (17:20 +0000)] 
patch 9.2.0896: textprop: wrong Tab size in a line with virtual text above it

Problem:  In a line with virtual text above it a Tab does not have the right
          size, depending on the width of the window.
Solution: Do not count the columns of the virtual text for the size of the
          Tab, neither when drawing nor when computing the column.

fixes:  #12232
closes: #20901

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
18 hours agopatch 9.2.0895: test: Test_aucmd_win_scroll_multibyte() is flaky in the GUI v9.2.0895
Hirohito Higashi [Sun, 2 Aug 2026 17:13:43 +0000 (17:13 +0000)] 
patch 9.2.0895: test: Test_aucmd_win_scroll_multibyte() is flaky in the GUI

Problem:  The test comparing the top line before and after using the
          autocommand window is flaky in the GUI.
Solution: Run the test in a window with a fixed size.  In the GUI a
          pending resize of the shell is applied at the end of a screen
          update, thus the size may change between the two measurements.

related: #20884
closes:  #20913

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agopatch 9.2.0894: filetype: ed script files not recognised v9.2.0894
Doug Kearns [Sat, 1 Aug 2026 13:57:32 +0000 (13:57 +0000)] 
patch 9.2.0894: filetype: ed script files not recognised

Problem:  filetype: ed script files not recognised.
Solution: Add filetype detection for *.ed files and shebang lines,
          include syntax script and syntax tests.

Features of the ed syntax file:
- BSD and GNU extensions are supported
- Andrew L. Moore's ed extensions are not supported
- Rebuild synmenu.vim

closes: #19602

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agopatch 9.2.0893: MS-Windows: "*.vim" also matches files with a longer extension v9.2.0893
Hirohito Higashi [Sat, 1 Aug 2026 13:47:20 +0000 (13:47 +0000)] 
patch 9.2.0893: MS-Windows: "*.vim" also matches files with a longer extension

Problem:  On MS-Windows a pattern like "path/*.vim" also matches files such
          as "foo.vim9", because the 8.3 short name "FOO~1.VIM" is used for
          matching as well.  These files are then sourced.
Solution: Only match against the short name when the pattern contains a '~'
          (Hirohito Higashi).

closes: #20899

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agoruntime(doc): remove todo entry for test_codestyle errors
Hirohito Higashi [Sat, 1 Aug 2026 13:42:54 +0000 (13:42 +0000)] 
runtime(doc): remove todo entry for test_codestyle errors

The two reported problems are gone: keycode_check.vim has no space before a
tab and setup.vim, now util/setup.vim, has no trailing white space.  Since
patch 9.2.0195 the check is not part of the test suite but a separate
"make codestyle" target.

closes: #20900

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
45 hours agopatch 9.2.0892: highlight: wrong column highlighted with 'cursorcolumn' v9.2.0892
Hirohito Higashi [Sat, 1 Aug 2026 13:32:48 +0000 (13:32 +0000)] 
patch 9.2.0892: highlight: wrong column highlighted with 'cursorcolumn'

Problem:  With 'virtualedit' set to "all" and 'cursorcolumn' set, the wrong
          column may be highlighted after a command that moved the cursor
          into virtual space and back (van-de-bugger).
Solution: Make sure the virtual column is up to date before drawing the
          window (Hirohito Higashi).

fixes:  #2576
closes: #20902

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
46 hours agopatch 9.2.0891: MS-Windows: filename-modifier ":8:t" causes underflow v9.2.0891
Hirohito Higashi [Sat, 1 Aug 2026 13:26:21 +0000 (13:26 +0000)] 
patch 9.2.0891: MS-Windows: filename-modifier ":8:t" causes underflow

Problem:  On MS-Windows using ":8" with ":t", ":e" or ":r" in one
          fnamemodify() gives a wrong result or an out of memory error.
Solution: Recompute the tail after ":8" replaced the name
          (Hirohito Higashi).

related: #20899
closes:  #20903

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
46 hours agoCI: Bump github/codeql-action
dependabot[bot] [Sat, 1 Aug 2026 13:18:08 +0000 (13:18 +0000)] 
CI: Bump github/codeql-action

Bumps the github-actions group with 1 update in the / directory: [github/codeql-action](https://github.com/github/codeql-action).

Updates `github/codeql-action` from 4.37.1 to 4.37.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v4.37.1...v4.37.3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.37.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

closes: #20905

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0890: test: test for patch v9.2.0888 can be clarified v9.2.0890
Hirohito Higashi [Sat, 1 Aug 2026 10:51:44 +0000 (10:51 +0000)] 
patch 9.2.0890: test: test for patch v9.2.0888 can be clarified

Problem:  test for patch v9.2.0888 can be clarified
          (zeertzjq)
Solution: use <NL> instead of CTRL-J for a NL

The comment says "A NL", using <NL> makes the intent clearer.

related: #20898
closes:  #20906

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0889: VMS: spurious "INVALID DECC FEATURE VALUE" message at every startup v9.2.0889
Scott Klein [Sat, 1 Aug 2026 10:44:01 +0000 (10:44 +0000)] 
patch 9.2.0889: VMS: spurious "INVALID DECC FEATURE VALUE" message at every startup

Problem:  On OpenVMS, Vim prints "INVALID DECC FEATURE VALUE" once per
          DECC feature at every startup whenever that feature is already
          set to the value Vim wants -- e.g. when DECC$ARGV_PARSE_STYLE,
          DECC$EFS_CASE_PRESERVE or DECC$EFS_CHARSET are defined as
          logical names. Conversely, a genuinely out-of-range value is
          silently ignored, so the diagnostic fires exactly when it
          should not and never when it should (after v9.1.1591)
Solution: Add braces so that the "else" binds to the range check rather
          than to the inner "if", matching the existing indentation and
          the evident intent (Scott Klein).

related: #17810
closes:  #20904

Supported by AI.

Signed-off-by: Scott Klein <kleinmatic@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0888: mapping: modifier is not recognized after a partial mapping v9.2.0888
Hirohito Higashi [Fri, 31 Jul 2026 19:07:27 +0000 (19:07 +0000)] 
patch 9.2.0888: mapping: modifier is not recognized after a partial mapping

Problem:  With the key protocol enabled, a mapping for a key with a modifier
          is not used when it follows a partial match of another mapping.
Solution: When the modifier was merged into the key in the typeahead, mark
          the key, so that the mapping for the simplified key can be used.

fixes:  #12002
closes: #20898

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0887: scroll: jump-scrolling when moving the cursor onto a wrapping line v9.2.0887
Hirohito Higashi [Fri, 31 Jul 2026 18:58:18 +0000 (18:58 +0000)] 
patch 9.2.0887: scroll: jump-scrolling when moving the cursor onto a wrapping line

Problem:  With 'smoothscroll' and "lastline" in 'display', moving the cursor
          to a wrapping line scrolls much more than needed.
Solution: Only require the screen lines up to the cursor to be visible, the
          rest of the line can be cut off at the bottom.

closes: #20895

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0886: :set completion works for an invalid sub-option name v9.2.0886
Hirohito Higashi [Fri, 31 Jul 2026 18:48:43 +0000 (18:48 +0000)] 
patch 9.2.0886: :set completion works for an invalid sub-option name

Problem:  Completing the value after a sub-option name also works when the
          name merely ends in a valid one, e.g. "invalid_close:".
Solution: Require the name to start the option value or to follow a comma.
          Compute the length of the name at compile time.

closes: #20893

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0885: scroll: 'smoothscroll' position is lost when the window is squeezed v9.2.0885
Hirohito Higashi [Fri, 31 Jul 2026 18:39:49 +0000 (18:39 +0000)] 
patch 9.2.0885: scroll: 'smoothscroll' position is lost when the window is squeezed

Problem:  With 'smoothscroll' the scroll position in a long line is lost when
          a window is temporarily squeezed to a couple of lines, for example
          when opening and closing a help window.
Solution: When the cursor ends up in the skipped columns, skip up to the
          screen line the cursor is in instead of showing the start of the
          line.

closes: #20892

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0884: scroll: unreachable 'smoothscroll' code in cursor_correct() v9.2.0884
Hirohito Higashi [Fri, 31 Jul 2026 18:32:50 +0000 (18:32 +0000)] 
patch 9.2.0884: scroll: unreachable 'smoothscroll' code in cursor_correct()

Problem:  cursor_correct() checks for 'smoothscroll' with 'wrap' off, a
          combination where 'smoothscroll' has no effect.
Solution: Remove the check, adjust_skipcol() already handles the case where
          the cursor line just fits in the window.

closes: #20891

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0883: scroll: 'smoothscroll' position is lost when using "|" v9.2.0883
Hirohito Higashi [Fri, 31 Jul 2026 18:28:25 +0000 (18:28 +0000)] 
patch 9.2.0883: scroll: 'smoothscroll' position is lost when using "|"

Problem:  With 'smoothscroll' the scroll position in a long line is lost when
          moving to a column with "|".
Solution: Adjust the skipped columns for the column the cursor ends up in,
          not for column zero.

related: #20885
closes:  #20890

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agopatch 9.2.0882: :bwipe crashes if WinLeave wipes all other buffers v9.2.0882
zeertzjq [Fri, 31 Jul 2026 18:07:40 +0000 (18:07 +0000)] 
patch 9.2.0882: :bwipe crashes if WinLeave wipes all other buffers

Problem:  :bwipe crashes if WinLeave wipes all other buffers
          (after 9.1.2068).
Solution: Check for NULL pointer.

related: neovim/neovim#41066
closes: #20888

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2 days agoruntime(lf): update syntax to support lf version r42
CatsDeservePets [Fri, 31 Jul 2026 18:02:17 +0000 (18:02 +0000)] 
runtime(lf): update syntax to support lf version r42

closes: #20897

Signed-off-by: CatsDeservePets <145048791+CatsDeservePets@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(zip): fix failure on Windows CI
Christian Brabandt [Thu, 30 Jul 2026 20:22:52 +0000 (20:22 +0000)] 
runtime(zip): fix failure on Windows CI

Problem:  The zip autoload script aborts loading when the "zip"
          command is not available, so even read-only browsing of an
          archive fails with E117 (zip#Browse undefined) on systems
          that have "unzip" but not "zip" (e.g. the Windows CI
          runner).  Regressed in b0e0b22.
Solution: Drop the load-time executable gate and check each command
          per operation instead, so a missing "zip" only affects
          writing.  Update the test to match the reworded message.

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(doc): update todo for the remaining 'smoothscroll' scroll position
Hirohito Higashi [Thu, 30 Jul 2026 20:16:15 +0000 (20:16 +0000)] 
runtime(doc): update todo for the remaining 'smoothscroll' scroll position

The autocommand window no longer resets the scroll position since patch
9.2.0881.  What is left is a window that is temporarily squeezed to a couple
of lines, and 'splitkeep' "screen".

related: #20885
closes:  #20887

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0881: 'smoothscroll' position is lost when the window height changes v9.2.0881
Hirohito Higashi [Thu, 30 Jul 2026 19:40:11 +0000 (19:40 +0000)] 
patch 9.2.0881: 'smoothscroll' position is lost when the window height changes

Problem:  With 'smoothscroll' the scroll position of a window is lost when
          its height changes.
Solution: Only reset the skipped columns when 'smoothscroll' is off, where
          they just serve to keep the cursor visible.

closes: #20885

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0880: scroll: window scrolls when using the autocommand window v9.2.0880
Hirohito Higashi [Thu, 30 Jul 2026 19:28:04 +0000 (19:28 +0000)] 
patch 9.2.0880: scroll: window scrolls when using the autocommand window

Problem:  The window scrolls when an autocommand window is used while the
          cursor is behind multi-byte characters.
Solution: Use the byte column instead of the character count when computing
          how many screen lines the text up to the cursor takes.

fixes:  #12085
closes: #20884

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0879: popup: "maxwidth" is not respected when 'wrap' is off v9.2.0879
Hirohito Higashi [Thu, 30 Jul 2026 19:22:16 +0000 (19:22 +0000)] 
patch 9.2.0879: popup: "maxwidth" is not respected when 'wrap' is off

Problem:  A popup window can become wider than "maxwidth" when 'wrap' is
          off and the popup is near the right edge of the screen.
Solution: Do not shift the popup leftwards beyond "maxwidth", truncate the
          text instead, like it is done when 'wrap' is on.

Reported:
https://groups.google.com/g/vim_use/c/_rOLxGz5kNM/m/JFt7d81QCQAJ
closes: #20883

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0878: Vim9: cannot use a script variable of an enclosing block in a lambda v9.2.0878
Hirohito Higashi [Thu, 30 Jul 2026 18:49:22 +0000 (18:49 +0000)] 
patch 9.2.0878: Vim9: cannot use a script variable of an enclosing block in a lambda

Problem:  Vim9: E1001 when a lambda inside a :def function uses a script
          variable that was declared in an enclosing block, while the :def
          function itself can use it (neoharju)
Solution: Copy the block scope IDs to the lambda, like it is done for a
          nested function (Hirohito Higashi).

fixes:  #20876
closes: #PR

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0877: Vim9: crash when a closure assigns to a variable declared in a loop v9.2.0877
Hirohito Higashi [Thu, 30 Jul 2026 18:43:11 +0000 (18:43 +0000)] 
patch 9.2.0877: Vim9: crash when a closure assigns to a variable declared in a loop

Problem:  Vim9: crash when a closure assigns to a variable that was
          declared in a loop (neoharju)
Solution: Encode the loop depth in the STOREOUTER instruction the same way
          as in LOADOUTER, so that the executor decodes it correctly
          (Hirohito Higashi)

fixes:  #20877
closes: #20881

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(marko): improve syntax highlighting
Brian Carbone [Thu, 30 Jul 2026 18:32:16 +0000 (18:32 +0000)] 
runtime(marko): improve syntax highlighting

closes: #20874

Signed-off-by: Brian Carbone <brian@briancarbone.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agopatch 9.2.0876: GTK4: compile error with disabled netbeans feat v9.2.0876
Foxe Chen [Thu, 30 Jul 2026 18:23:25 +0000 (18:23 +0000)] 
patch 9.2.0876: GTK4: compile error with disabled netbeans feat

Problem:  GTK4: compile error with disabled netbeans feature
Solution: Add ifdefs (Foxe Chen)

closes: #20879

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agotranslation(it): Update Italian man page
Antonio Giovanni Colombo [Thu, 30 Jul 2026 18:21:41 +0000 (18:21 +0000)] 
translation(it): Update Italian man page

Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(doc): regenerate help tags
Christian Brabandt [Thu, 30 Jul 2026 18:20:48 +0000 (18:20 +0000)] 
runtime(doc): regenerate help tags

forgotten from b0e0b22535079e478c3acf

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 days agoruntime(zip): Improve Compatibility for powershell 5 and pwsh 7
curbe454 [Thu, 30 Jul 2026 18:14:51 +0000 (18:14 +0000)] 
runtime(zip): Improve Compatibility for powershell 5 and pwsh 7

related: #20832

Co-Authored-By: curbe454 <asu454@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0875: GTK4: GUI does not support command-line arguments v9.2.0875
Foxe Chen [Wed, 29 Jul 2026 19:34:29 +0000 (19:34 +0000)] 
patch 9.2.0875: GTK4: GUI does not support command-line arguments

Problem:  The GTK4 GUI does not support command-line arguments
Solution: Parse the supported GUI arguments in gui_mch_prepare()
          and add the GTK4-specific --prg-name argument (Foxe Chen).

closes: #20847

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agoruntime(doc): clarify 'laststatus' effect
Christian Brabandt [Wed, 29 Jul 2026 19:22:21 +0000 (19:22 +0000)] 
runtime(doc): clarify 'laststatus' effect

fixes: #20875

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0874: fold size is compared against 'foldminlines' of the wrong window v9.2.0874
Igor Mikushkin [Wed, 29 Jul 2026 18:53:08 +0000 (18:53 +0000)] 
patch 9.2.0874: fold size is compared against 'foldminlines' of the wrong window

Problem:  checkSmall() compares the fold size of window "wp" against
          the current window's 'foldminlines'.  A fold of another
          window, e.g. measured while it is redrawn, is judged by an
          unrelated option value.
Solution: Use 'foldminlines' of the window containing the fold
          (Igor Mikushkin).

closes: #20864

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Igor Mikushkin <igor.mikushkin@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0873: :redrawstatus does not update the ruler of the last window v9.2.0873
Hirohito Higashi [Wed, 29 Jul 2026 18:45:28 +0000 (18:45 +0000)] 
patch 9.2.0873: :redrawstatus does not update the ruler of the last window

Problem:  When the last window has no status line the ruler takes its
          place in the last screen line, but ":redrawstatus" and
          re-setting 'rulerformat' or 'statusline' do not update it
          there.  An item such as a clock in 'rulerformat' can therefore
          not be refreshed from a timer (watael)
Solution: Also mark the ruler for redrawing when the last window has no
          status line and 'ruler' is set.  Update the documentation,
          tests and add a new test (Hirohito Higashi)

Reported: https://groups.google.com/g/vim_use/c/VKCL2bH8xlk
closes: #20865

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 days agopatch 9.2.0872: popup with opacity does not use the font of the highlight group v9.2.0872
Hirohito Higashi [Wed, 29 Jul 2026 18:38:53 +0000 (18:38 +0000)] 
patch 9.2.0872: popup with opacity does not use the font of the highlight group

Problem:  When a popup window has an opacity between 0 and 99 the "font"
          item of its highlight group is ignored and the regular font is
          used instead.  The same applies to "ctermfont", and to the
          popup menu when the "opacity:" value of 'pumopt' is used
          (Salman Halim).
Solution: Also take the font from the popup highlight when blending the
          cell attributes (Hirohito Higashi)

fixes:  #20551
closes: #20866

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntime(doc): GTK: document that "font" in a highlight group has no effect
Hirohito Higashi [Tue, 28 Jul 2026 20:53:34 +0000 (20:53 +0000)] 
runtime(doc): GTK: document that "font" in a highlight group has no effect

Problem:  It is not documented that in the GTK GUI the "font" item of a
          highlight group only works for the "Normal" group.  The example
          even uses another group, so it does not work there.
Solution: Mention the restriction and use the "Normal" group in the
          example.

closes: #20867

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntime(doc): Update popup width rule
Hirohito Higashi [Tue, 28 Jul 2026 20:50:27 +0000 (20:50 +0000)] 
runtime(doc): Update popup width rule

Problem:  The documentation says the width of a popup window is equal to
          the longest visible line, while since 9.2.0419 it is the
          longest line in the buffer, also when that line is not
          displayed.
Solution: Update the documentation and correct a comment that says
          otherwise.

Reported: https://groups.google.com/g/vim_use/c/_rOLxGz5kNM

related: #20042
closes:  #20870

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0871: screen line is lost when splitting a 'winfixheight' window v9.2.0871
Hirohito Higashi [Tue, 28 Jul 2026 20:45:27 +0000 (20:45 +0000)] 
patch 9.2.0871: screen line is lost when splitting a 'winfixheight' window

Problem:  When the only window has 'winfixheight' set and 'laststatus'
          is one, splitting it leaves one screen line unused.  This
          happens for example when jumping to an item from a maximized
          quickfix window (rendcrx)
Solution: Do not subtract the height of the status line twice
          (Hirohito Higashi)

fixes:  #20495
closes: #20871

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntime(doc): Vim9: dictionary in a lambda block is not documented
Hirohito Higashi [Tue, 28 Jul 2026 20:39:43 +0000 (20:39 +0000)] 
runtime(doc): Vim9: dictionary in a lambda block is not documented

Problem:  It is not documented that inside a lambda block the closing "}"
          of a dictionary must not be at the start of a line.  The note
          is only given for a command block, while the restriction is the
          same.
Solution: Mention it at |inline-function| and refer to |command-block|.

closes: #20872
fixes:  #20693

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntime(karel): improve indent plugin
Patrick Meiser-Knosowski [Tue, 28 Jul 2026 20:36:22 +0000 (20:36 +0000)] 
runtime(karel): improve indent plugin

closes: #20873

Signed-off-by: Patrick Meiser-Knosowski <knosowski@graeffrobotics.de>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0870: filetype: marko files are not recognized v9.2.0870
Brian Carbone [Tue, 28 Jul 2026 19:03:49 +0000 (19:03 +0000)] 
patch 9.2.0870: filetype: marko files are not recognized

Problem:  filetype: marko files are not recognized
Solution: Detect *.marko files as marko filetype, include a syntax
          plugin and add syntax tests (Brian Carbone)

References:
https://markojs.com
https://github.com/marko-js/tree-sitter
https://github.com/marko-js/language-server
https://v5.markojs.com/docs/editor-plugins/

closes: #20863

Signed-off-by: Brian Carbone <brian@briancarbone.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0869: buf_copy_options() can lose the P_INSECURE flag v9.2.0869
Christian Brabandt [Tue, 28 Jul 2026 18:52:44 +0000 (18:52 +0000)] 
patch 9.2.0869: buf_copy_options() can lose the P_INSECURE flag

Problem:  An insecurely-set 'indentexpr', 'formatexpr', 'includeexpr'
          or 'complete' value can end up evaluated outside the
          sandbox after buf_copy_options() and clears the flag.
Solution: Copy the insecure flag alongside the value in
          buf_copy_options(), and make 'complete' a per-buffer
          insecure-flags field

Supported by AI.

closes: #20861

Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agopatch 9.2.0868: GTK: Window Manager hint prevents giving focus to dialog v9.2.0868
Christoffer Aasted [Tue, 28 Jul 2026 18:43:56 +0000 (18:43 +0000)] 
patch 9.2.0868: GTK: Window Manager hint prevents giving focus to dialog

Problem:  GTK: Window Manager hint prevents giving focus to dialog
          (Allen Wild, after v9.1.0881)
Solution: Remove Window Manager hint again (Christoffer Aasted)

related: #16100
fixes:   #17760
closes:  #20727

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
5 days agoruntime(m4): Prevent the m4Disabled region from nesting within itself.
Sam Williams [Tue, 28 Jul 2026 18:33:49 +0000 (18:33 +0000)] 
runtime(m4): Prevent the m4Disabled region from nesting within itself.

closes: #20801

Signed-off-by: Sam Williams <sam@badcow.co>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0867: MS-Windows: messages are not in the display language v9.2.0867
Hirohito Higashi [Mon, 27 Jul 2026 22:04:06 +0000 (22:04 +0000)] 
patch 9.2.0867: MS-Windows: messages are not in the display language

Problem:  On MS-Windows the messages use the language of the regional
          format, not the language that Windows is displayed in
          (Markus Nißl)
Solution: Use the display language for the messages, with the other
          preferred languages as fall back.  Make ":language messages"
          overrule it (Hirohito Higashi).

fixes:  #20855
closes: #20860

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0866: MS-Windows: ":language messages" only works once v9.2.0866
Hirohito Higashi [Mon, 27 Jul 2026 21:55:27 +0000 (21:55 +0000)] 
patch 9.2.0866: MS-Windows: ":language messages" only works once

Problem:  On MS-Windows ":language messages" has no effect once messages
          have been translated, the previous language keeps being used.
Solution: Make gettext drop the translations it cached.

related: #18622
closes:  #20862

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0865: GTK4: non-hardware accelerated UI is too slow v9.2.0865
Foxe Chen [Mon, 27 Jul 2026 20:43:18 +0000 (20:43 +0000)] 
patch 9.2.0865: GTK4: non-hardware accelerated UI is too slow

Problem:  GTK4: non-hardware accelerated UI is too slow
Solution: Remove the sofware rendering (cairo) backend, make the GTK4
          hardware accelerated rendering the default (Foxe Chen).

closes: #20844

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0864: Using some dead code in Wayland feature v9.2.0864
Foxe Chen [Mon, 27 Jul 2026 20:28:31 +0000 (20:28 +0000)] 
patch 9.2.0864: Using some dead code in Wayland feature

Problem:  Using some dead code in Wayland feature
Solution: Cleanup configure check and remove HAVE_SHM_OPEN test, remove
          mch_open_anon_file(), Show result "no" when disabling Wayland
          via configure, regenerate auto/configure (Foxe Chen)

closes: #20859

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0863: MS-Windows GUI: window contents can be missing when VimEnter is slow v9.2.0863
Hirohito Higashi [Mon, 27 Jul 2026 20:19:48 +0000 (20:19 +0000)] 
patch 9.2.0863: MS-Windows GUI: window contents can be missing when VimEnter is slow

Problem:  On MS-Windows the text area can stay undrawn while a slow VimEnter
          autocommand runs, so the window shows what was on the screen behind
          it. Whether this happens depends on when the first paint message
          arrives.
Solution: Draw the text area when the window is opened, instead of waiting for
          the message loop.

related: #20807
closes:  #20858

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0862: Missing test change from v9.2.0857 v9.2.0862
mityu [Mon, 27 Jul 2026 19:25:56 +0000 (19:25 +0000)] 
patch 9.2.0862: Missing test change from v9.2.0857

Problem:  Missing test change from v9.2.0857
Solution: Update the test (mityu)

related: #20848
closes:  #20850

Signed-off-by: mityu <mityu.mail@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0861: GTK4: bleed region updates in jumps v9.2.0861
Foxe Chen [Mon, 27 Jul 2026 19:13:22 +0000 (19:13 +0000)] 
patch 9.2.0861: GTK4: bleed region updates in jumps

Problem:  In the GTK4 GUI (GtkSnapshot) the bleed region is only
          repainted when the text grid changes by a whole cell,
          so during a resize it updates in jumps of several pixels
          instead of following the window edge smoothly.
Solution: Redraw the draw area whenever the bleed values change
          (Foxe Chen).

closes: #20851

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0860: filetype: xilinx design constraint files are not recognized v9.2.0860
Wu, Zhenyu [Mon, 27 Jul 2026 18:55:11 +0000 (18:55 +0000)] 
patch 9.2.0860: filetype: xilinx design constraint files are not recognized

Problem:  filetype: xilinx design constraint files are not recognized
Solution: Detect *.xdc files as tcl filetype (Wu, Zhenyu)

Reference:
https://docs.amd.com/r/en-US/ug903-vivado-using-constraints/About-XDC-Constraints

closes: #20853

Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agoruntime(doc): clarify vim9 script autoload mechanism
Ubaldo Tiberi [Mon, 27 Jul 2026 18:40:49 +0000 (18:40 +0000)] 
runtime(doc): clarify vim9 script autoload mechanism

closes: #20833

Signed-off-by: Ubaldo Tiberi <ubaldo.tiberi@volvo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
6 days agopatch 9.2.0859: GTK2: Link error v9.2.0859
Olaf Seibert [Mon, 27 Jul 2026 17:53:33 +0000 (17:53 +0000)] 
patch 9.2.0859: GTK2: Link error

Problem:  GTK2: Link error (after v9.2.0853)
Solution: Adjust ifdef and include only when using at least GTK 3.10
          (Olaf Seibert)

Error message:
ld: objects/gui_gtk_x11.o: in function `gui_mch_init':
gui_gtk_x11.c:(.text+0x33f1): undefined reference to `gtk_widget_get_scale_factor'
link.sh: Linking failed
*** Error code 1

closes: #20857

Signed-off-by: Olaf Seibert <rhialto@falu.nl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(python): highlight the 'lazy' soft keyword
Jon Parise [Sun, 26 Jul 2026 15:20:02 +0000 (15:20 +0000)] 
runtime(python): highlight the 'lazy' soft keyword

Lazy imports (PEP 810, to be released in Python 3.15) introduces a
`lazy` soft keyword that's recognized when it precedes a `from` or
`import` keyword.

closes: #20342

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0858: MS-Windows GUI: white flash when VimEnter is slow v9.2.0858
Hirohito Higashi [Sun, 26 Jul 2026 14:56:09 +0000 (14:56 +0000)] 
patch 9.2.0858: MS-Windows GUI: white flash when VimEnter is slow

Problem:  In the MS-Windows GUI the window is shown before the screen is
          drawn for the first time.  Until then it displays undefined
          content, which appears as a white flash when a VimEnter
          autocommand delays the first redraw.
Solution: Use the background color for the window as long as the screen
          contents are not available, and paint it again when the
          background color changes while only that color is shown.

fixes:  #20757
closes: #20807

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agopatch 9.2.0857: popup: opacity popup over a terminal is not cleared when closed v9.2.0857
mityu [Sun, 26 Jul 2026 14:40:46 +0000 (14:40 +0000)] 
patch 9.2.0857: popup: opacity popup over a terminal is not cleared when closed

Problem:  A semi-transparent (opacity) popup shown over a terminal window
          leaves its old cells on screen when it is closed.
Solution: When a semi-transparent popup is closed, trigger full redraw
          of underlying terminal windows.

fixes:  #20846
closes: #20848

Signed-off-by: mityu <mityu.mail@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
7 days agoruntime(python): Fix indenting for brackets within python byte strings
qwavies [Sun, 26 Jul 2026 14:28:29 +0000 (14:28 +0000)] 
runtime(python): Fix indenting for brackets within python byte strings

Problem:  s:SearchBracket()'s skip-expression matches syntax group
          names ending in "Comment", "Todo", or "String" to decide
          whether a candidate bracket is inside a string/comment
          and should be skipped for indentation purposes. Byte and
          raw-byte string literals (b"...", rb"...") are highlighted
          via the pythonBytes/pythonRawBytes syntax groups, which
          don't end in "String", so brackets inside them (e.g.
          b"[") were never skipped and were counted as real,
          unmatched brackets, producing incorrect indentation.

Solution: Add "Bytes" to the indent script's existing suffix match,
          so pythonBytes/pythonRawBytes are recognized directly, the
          same way pythonString/pythonFString/pythonRawString
          already are.

          This supersedes an earlier version of this fix that
          renamed pythonBytes/pythonRawBytes to
          pythonBytesString/pythonRawBytesString in
          runtime/syntax/python.vim.

fixes:  #20812
closes: #20827

Signed-off-by: qwavies <qwavsbusiness@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(sh): fix Bash/Ksh array highlighting after an escaped paren
frapank [Sat, 25 Jul 2026 17:03:08 +0000 (17:03 +0000)] 
runtime(sh): fix Bash/Ksh array highlighting after an escaped paren

fixes:  #18712
closes: #20705

Signed-off-by: frapank <francesco.pankov+github@proton.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.2.0856: GTK4: undercurl rendering is inefficient v9.2.0856
Foxe Chen [Sat, 25 Jul 2026 16:57:36 +0000 (16:57 +0000)] 
patch 9.2.0856: GTK4: undercurl rendering is inefficient

Problem:  In the GTK4 GUI the undercurl is drawn by building a path
          across the whole width of each decorated row.  With many
          undercurls on screen this causes frame drops.
Solution: Render a single cycle of the undercurl and tile it across the
          row with a repeating node, so the Vulkan and OpenGL
          renderers can repeat directly (Foxe Chen).

closes: #20829

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoCI: Bump the github-actions group across 1 directory with 3 updates
dependabot[bot] [Sat, 25 Jul 2026 16:51:19 +0000 (16:51 +0000)] 
CI: Bump the github-actions group across 1 directory with 3 updates

Bumps the github-actions group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [github/codeql-action](https://github.com/github/codeql-action) and [actions/labeler](https://github.com/actions/labeler).

Updates `actions/checkout` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v7.0.0...v7.0.1)

Updates `github/codeql-action` from 4.37.0 to 4.37.1
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v4.37.0...v4.37.1)

Updates `actions/labeler` from 6.2.0 to 7.0.0
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v6.2.0...v7.0.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action
  dependency-version: 4.37.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/labeler
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

closes: #20838

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agopatch 9.2.0855: 'showcmd' not redrawn with empty mapping triggered on timeout v9.2.0855
zeertzjq [Sat, 25 Jul 2026 16:46:29 +0000 (16:46 +0000)] 
patch 9.2.0855: 'showcmd' not redrawn with empty mapping triggered on timeout

Problem:  'showcmd' not redrawn with empty mapping triggered on timeout.
Solution: Don't postpone redraw when inside vgetorpeek(). Also move test
          for tabline 'showcmd' to test_tabline.vim.

fixes:  #20839
closes: #20840

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(osc52): don't use osc52 provider if gui is running
Foxe Chen [Sat, 25 Jul 2026 16:44:20 +0000 (16:44 +0000)] 
runtime(osc52): don't use osc52 provider if gui is running

closes: #20841

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(doc): clarify expandcmd() and "~" behaviour
Hirohito Higashi [Sat, 25 Jul 2026 16:40:40 +0000 (16:40 +0000)] 
runtime(doc): clarify expandcmd() and "~" behaviour

fixes: #20793

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(doc): Tweak documentation style a bit
Hirohito Higashi [Sat, 25 Jul 2026 16:36:52 +0000 (16:36 +0000)] 
runtime(doc): Tweak documentation style a bit

closes: #20843

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(doc): remove incorrect note about spellcapcheck and the first word
Christian Brabandt [Sat, 25 Jul 2026 16:27:18 +0000 (16:27 +0000)] 
runtime(doc): remove incorrect note about spellcapcheck and the first word

'spellcapcheck' checks the first word in the file for a capital like any
sentence start: capcol is seeded to 0 for line 1 in spell_check_sblock().

This has been the case since the feature was added in v7.0100, so the note
that it "doesn't work for the first word in the file" is incorrect.

related: f9184a1d3151b5b727fec86c2ac0946c9c68df4d (code change)
related: 0d9c26dd8333aae4b20015f13fe2e8e1f07037bd (initial doc patch,
         just a few minutes later)
related: #20715

Signed-off-by: Christian Brabandt <cb@256bit.org>
8 days agoruntime(doc): document &t_8u as &t_8f and &t_8b
Shay Hill [Sat, 25 Jul 2026 16:08:14 +0000 (16:08 +0000)] 
runtime(doc): document &t_8u as &t_8f and &t_8b

fixes:  #20413
closes: #20837

Signed-off-by: Shay Hill <shay_public@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0854: memory leak when reading a spell file with SN_SAL and SN_SOFO v9.2.0854
Christian Brabandt [Fri, 24 Jul 2026 22:51:53 +0000 (22:51 +0000)] 
patch 9.2.0854: memory leak when reading a spell file with SN_SAL and SN_SOFO

Problem:  Memory leak when a spell file has an SN_SAL section before an
          SN_SOFO section: set_sofo() reuses sl_sal without freeing the
          salitem_T entries left by read_sal_section() (after v9.2.0846).
Solution: Factor the SAL free loop into free_sal_items() and call it
          before set_sofo() reuses sl_sal.

closes:  #20836

Supported by AI.

Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agoruntime(doc): Fix truncated sentence in :h map()
Christian Brabandt [Fri, 24 Jul 2026 22:23:34 +0000 (22:23 +0000)] 
runtime(doc): Fix truncated sentence in :h map()

fixes: #20725

Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0853: popup: popup images do not support scaling v9.2.0853
Foxe Chen [Fri, 24 Jul 2026 21:56:37 +0000 (21:56 +0000)] 
patch 9.2.0853: popup: popup images do not support scaling

Problem:  popup: popup images do not support scaling
Solution: Add popup scaling support for GTK4 UI
          (Foxe Chen).

closes: #20611

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0852: GTK: ligatures not correctly displayed v9.2.0852
Foxe Chen [Fri, 24 Jul 2026 20:51:52 +0000 (20:51 +0000)] 
patch 9.2.0852: GTK: ligatures not correctly displayed

Problem:  GTK: ligatures not correctly displayed
          (thunderbird-1990)
Solution: Split ligatures at cursor location (Foxe Chen).

fixes:  #12901
closes: #20708

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0851: Focus autocommands triggered inconsistently v9.2.0851
Christoffer Aasted [Fri, 24 Jul 2026 20:31:48 +0000 (20:31 +0000)] 
patch 9.2.0851: Focus autocommands triggered inconsistently

Problem:  Focus autocommands triggered inconsistently
Solution: Suppress dialog-generated focus events while a dialog is
          active and on X11 ignore the restoring focus_in_event()
          from closing a dialog (Christoffer Aasted).

closes: #20780

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agoUpdate .gitignore and .hgignore files
qeatzy [Fri, 24 Jul 2026 20:28:03 +0000 (20:28 +0000)] 
Update .gitignore and .hgignore files

Ignore everything below auto/ except for configure

fixes:  #20814
closes: #20815

Signed-off-by: qeatzy <qeatzy@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0850: MS-Windows: commands from a client can be lost v9.2.0850
Hirohito Higashi [Fri, 24 Jul 2026 20:20:54 +0000 (20:20 +0000)] 
patch 9.2.0850: MS-Windows: commands from a client can be lost

Problem:  On MS-Windows commands sent by a client in quick succession,
          e.g. repeated "--remote-tab", can be lost: the files are not
          all opened (eight)
Solution: In the GUI the client message is handled re-entrantly, e.g.
          while a command line is being read during a redraw. Inserting
          the received keys into the typeahead buffer then corrupts it.
          Postpone inserting the keys until a safe point where the
          typeahead buffer is empty (Hirohito Higashi).

fixes:  #20810
closes: #20816

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0849: filetype: osquery config files are not recognized v9.2.0849
Fionn Fitzmaurice [Fri, 24 Jul 2026 20:11:25 +0000 (20:11 +0000)] 
patch 9.2.0849: filetype: osquery config files are not recognized

Problem:  filetype: osquery config files are not recognized.
Solution: Detect osquery.conf as jsonc filetype (Fionn Fitzmaurice).

Reference:
https://osquery.readthedocs.io/en/stable/deployment/configuration/#configuration-components

closes: #20826

Signed-off-by: Fionn Fitzmaurice <git@fionn.computer>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0848: tagfunc "cmd" with a generic Ex command corrupts the tag entry v9.2.0848
Hirohito Higashi [Fri, 24 Jul 2026 20:04:21 +0000 (20:04 +0000)] 
patch 9.2.0848: tagfunc "cmd" with a generic Ex command corrupts the tag entry

Problem:  When a tagfunc returns a "cmd" that is neither a line number nor
          a search pattern, the tag entry is corrupted: the "kind" field is
          lost and taglist() returns a mangled "cmd".
Solution: Accept any Ex command in "cmd" as in a tags file, terminate a
          generic command with a bar so the trailing fields are preserved,
          and reject a value that cannot be stored in a tag line with E987
          (Hirohito Higashi).

fixes:   #20781
related: #20790
closes:  #20828

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agoruntime(iar): Add iar compiler plugin
Andrey Starodoubtsev [Fri, 24 Jul 2026 20:00:13 +0000 (20:00 +0000)] 
runtime(iar): Add iar compiler plugin

closes: #20830

Signed-off-by: Andrey Starodoubtsev <andrey.starodoubtsev@gehealthcare.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agoruntime(go): update Go syntax file
Billie Cleek [Fri, 24 Jul 2026 19:43:04 +0000 (19:43 +0000)] 
runtime(go): update Go syntax file

Update the Go syntax file with some recent changes made to vim-go to
correctly highlight the second and later lines of concatenated strings
in var or const blocks.

closes: #20835

Signed-off-by: Billie Cleek <bhcleek@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0847: [security]: vimball: code execution via .VimballRecord file v9.2.0847
Christian Brabandt [Fri, 24 Jul 2026 15:43:51 +0000 (17:43 +0200)] 
patch 9.2.0847: [security]: vimball: code execution via .VimballRecord file

Problem:  [security]: vimball: code execution via .VimballRecord file
          (tdjackey)
Solution: Forbid arbitrary commands, fix broken directory deletion code,
          refactor code

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-r22p-fhw4-84p2

Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0846: [security]: heap buffer overflow in set_sofo() v9.2.0846
Yasuhiro Matsumoto [Thu, 23 Jul 2026 15:58:37 +0000 (00:58 +0900)] 
patch 9.2.0846: [security]: heap buffer overflow in set_sofo()

Problem:  [security]: heap buffer overflow in set_sofo()
          (Yazan Balawneh)
Solution: Reset sl_sal_first (Yasuhiro Matsumoto).

A crafted spell file with an empty SN_SAL section before an SN_SOFO
section reaches set_sofo() with sl_sal_first[] already set to -1 by
set_sal_first(). The counting loop then under-counts colliding
multi-byte "from" characters, allocates an undersized list and writes
past its end.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-9jqx-hgpr-6v64

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0845: [security]: arbitrary Ex command execution during C omni-completion v9.2.0845
Yasuhiro Matsumoto [Fri, 17 Jul 2026 00:11:42 +0000 (09:11 +0900)] 
patch 9.2.0845: [security]: arbitrary Ex command execution during C omni-completion

Problem:  [security]: arbitrary Ex command execution during C
          omni-completion (Threonine)
Solution: Match tags typeref literally to block Ex command injection
          (Yasuhiro Matsumoto).

Escaping only "/" and "\" left the typeref able to break out of the
:vimgrep pattern without a "/": an unclosed "[" makes vimgrep's pattern
skipping fail, and the parser then treats a following "|" as a command
separator, so the tag value runs as Ex commands during C omni-completion.
Match the field literally with \V so no regex metacharacter can affect
pattern parsing.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-cx73-phcg-3j5g

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
9 days agopatch 9.2.0844: [security]: use-after-free on json decode error v9.2.0844
Yasuhiro Matsumoto [Thu, 16 Jul 2026 09:39:24 +0000 (18:39 +0900)] 
patch 9.2.0844: [security]: use-after-free on json decode error

Problem:  [security]: use-after-free on json decode error
          (@tdjackey)
Solution: Report the position from the current reader
          (Matsumoto Yasuhiro)

json_decode_item() caches "p" into js_buf, but json_decode_string() can
refill via channel_fill(), which frees the old js_buf. When the string
parse then fails (e.g. an invalid \u escape), the shared error path passed
the now-dangling "p" to semsg(), a heap use-after-free read reachable
pre-auth through the socketserver.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-69ch-22ch-r887

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.2.0843: [security]: popup: opacity mask indexed out of bounds v9.2.0843
Hirohito Higashi [Wed, 22 Jul 2026 05:51:00 +0000 (14:51 +0900)] 
patch 9.2.0843: [security]: popup: opacity mask indexed out of bounds

Problem:  [security]: A "clipwindow" popup with "opacity" anchored to a
          text property can keep a negative window row when the anchor
          scrolls above the top of the host window.  The opacity mask
          loop then indexes the screen array before its start, causing
          an out-of-bounds read and a conditional out-of-bounds write
          (tdjackey).
Solution: Keep the popup window row at the first visible row and record
          the clipped-off top rows only in the top offset, so no
          consumer has to clamp the row and the opacity mask loop stays
          in bounds (Hirohito Higashi).

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-pmvp-6rcj-98p4

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.2.0842: [security]: stack buffer overflow in socket server v9.2.0842
Yasuhiro Matsumoto [Thu, 23 Jul 2026 20:50:10 +0000 (20:50 +0000)] 
patch 9.2.0842: [security]: stack buffer overflow in socket server

Problem:  [security]: stack buffer overflow in socket server
          (tdjackey)
Solution: Cap accepted socketserver clients (Yasuhiro Matsumoto)

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-49m8-wwxj-mr69

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.2.0841: [security]: heap overflow when adding > 65535 text properties v9.2.0841
Yasuhiro Matsumoto [Thu, 23 Jul 2026 20:14:13 +0000 (20:14 +0000)] 
patch 9.2.0841: [security]: heap overflow when adding > 65535 text properties

Problem:  [security]: heap overflow when adding > 65535 text properties
          (Wang1rrr).
Solution: Verify that the number of text properties falls within the
          limit (Yasuhiro Matsumoto).

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-hm4g-pjfx-m27j

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.2.0840: [security]: code injection in netrw via bookmarks v9.2.0840
Yasuhiro Matsumoto [Mon, 6 Jul 2026 04:54:03 +0000 (13:54 +0900)] 
patch 9.2.0840: [security]: code injection in netrw via bookmarks

Problem:  [security]: code injection in netrw via bookmarks and history
          (David Carliez)
Solution: Escape the '|' explicitly (Yasuhiro Matsumoto)

The bookmark and history menu builders interpolate paths into :execute'd
:menu commands using g:netrw_menu_escape, which did not escape the Ex
command separator '|'. A crafted path could break out of the :menu command
and run arbitrary Ex/shell commands when the menu was built or triggered.

Add '|' to g:netrw_menu_escape for the menu names, escape the :e right-hand
side with fnameescape(), and quote the netrw#MakeTgt() argument with
string() instead of raw single-quote interpolation.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-rcr7-f3wr-22r2

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
10 days agopatch 9.2.0839: [security]: arbitrary code execution via keyword lookup v9.2.0839
Yasuhiro Matsumoto [Thu, 23 Jul 2026 19:13:15 +0000 (19:13 +0000)] 
patch 9.2.0839: [security]: arbitrary code execution via keyword lookup

Problem:  [security]: arbitrary code execution via keyword lookup in
          sh.vim, zsh.vim and ps1.vim filetype plugin
          (manus-use)
Solution: For powershell, quote the commands using single quotes, for
          sh/zsh pass the argument as a separate list item to term_start()/system()
          (Yasuhiro Matsumoto).

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-r5v6-q6j8-8qw2

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(spellfile): xdg: Do not assume $HOME/.vim directory
Christian Brabandt [Wed, 22 Jul 2026 21:49:18 +0000 (21:49 +0000)] 
runtime(spellfile): xdg: Do not assume $HOME/.vim directory

fixes: #20794

Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agoruntime(doc): clarify re-sourcing of Vim9 script behaviour
Christian Brabandt [Wed, 22 Jul 2026 21:18:31 +0000 (21:18 +0000)] 
runtime(doc): clarify re-sourcing of Vim9 script behaviour

related: #19205

Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.2.0838: searchcount() returns wrong cached maxcount v9.2.0838
glepnir [Wed, 22 Jul 2026 20:08:06 +0000 (20:08 +0000)] 
patch 9.2.0838: searchcount() returns wrong cached maxcount

Problem:  Cached searchcount() returns 'maxsearchcount' instead of the
          requested maxcount.
Solution: return the remembered last_maxcount (glepnir)

closes: #20701

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.2.0837: Using wrong colors in hl_blend_attr() v9.2.0837
Shad [Wed, 22 Jul 2026 20:01:09 +0000 (20:01 +0000)] 
patch 9.2.0837: Using wrong colors in hl_blend_attr()

Problem:  Using wrong colors in hl_blend_attr()
          (after v9.2.0715)
Solution: Use the correct background color
          (Shad)

related: #20624
closes:  #20704

Signed-off-by: Shad <shadow.walker@free.fr>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.2.0836: filetype: .git-blame-ignore-revs file is not recognized v9.2.0836
Fionn Fitzmaurice [Wed, 22 Jul 2026 19:49:58 +0000 (19:49 +0000)] 
patch 9.2.0836: filetype: .git-blame-ignore-revs file is not recognized

Problem:  filetype: .git-blame-ignore-revs file is not recognized
Solution: Detect .git-blame-ignore-revs file as gitrevlist filetype,
          include syntax and filetype plugins (Fionn Fitzmaurice)

A Git revision list is

> a list of object names (i.e. one unabbreviated SHA-1 per line)...,
> comments (#), empty lines, and any leading and trailing whitespace are
> ignored.

(from Git's fsck.skipList documentation).

The default output of git rev-list will match this. It is also suitable
as input to git blame --ignore-revs-file.

This adds filetype detection matching .git-blame-ignore-revs files,
syntax highlighting and basic filetype settings.

closes: #20702

Signed-off-by: Fionn Fitzmaurice <fionn@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
11 days agopatch 9.2.0835: features in version.c are not sorted v9.2.0835
Muraoka Taro [Wed, 22 Jul 2026 19:18:03 +0000 (19:18 +0000)] 
patch 9.2.0835: features in version.c are not sorted

Problem:  features in version.c are not sorted
Solution: Sort features case-insensitively (Taro Muraoka)

closes: #20717

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>