zeertzjq [Tue, 28 Oct 2025 20:27:19 +0000 (20:27 +0000)]
patch 9.1.1885: Wrong restored cursor pos when re-entering buffer after changes
Problem: Wrong restored cursor position when re-entering a buffer
previously viewed in a window after making changes to the same
buffer in another window.
Solution: Adjust per-window "last cursor" positions on buffer changes.
(zeertzjq)
closes: #18655
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This was added in #16807, with no explanation for why it was necessary beyond
"it's an example of an idea". It completely breaks `gq` for me—rustfmt doesn't
reflow comments so is not an appropriate tool here! Beyond that, formatting a
selection with rustfmt treats that selection as if it were an entire file,
throwing away any indentation.
patch 9.1.1879: Crash when using a lambda funcref with :defer
Problem: Crash when using a lambda funcref with :defer
Solution: De-reference the partial correctly after invoking the deferred
functions (Yegappan Lakshmanan).
closes: #18640
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Anttoni Erkkilä [Sun, 26 Oct 2025 19:46:38 +0000 (19:46 +0000)]
patch 9.1.1877: cindent: wrong indentation after an array declaration
Problem: cindent: wrong indentation after an array declaration
Solution: check if the filetype if javascript before matching the syntax
(Anttoni Erkkilä)
cindent matches a javascript syntax for C files causing wrong
indentation in the following case:
```
void foo() {
float a[5],
b;
}
```
closes: #18631
Signed-off-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Girish Palya [Sun, 26 Oct 2025 18:30:40 +0000 (18:30 +0000)]
patch 9.1.1876: pre-inserted text not exposed in cmdcomplete_info()
Problem: pre-inserted text not exposed in complete_info()
Solution: Add the pre-inserted text to the complete_info() Vim script
function (Girish Palya)
closes: #18571
Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Feat: expose preinserted text in complete_info()
Václav Kobera [Sun, 26 Oct 2025 18:21:04 +0000 (18:21 +0000)]
patch 9.1.1875: username parsing bug in netrw plugin
Problem: username parsing bug in netrw plugin when using remote adding
feature
Solution: Allow any characters except for "@" (Václav Kobera), add a
test for the netrw plugin
closes: #18611
Signed-off-by: Václav Kobera <vasekobera@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Sun, 26 Oct 2025 13:29:09 +0000 (13:29 +0000)]
patch 9.1.1872: Cmdline history not updated when mapping <Up> and <CR>
Problem: Cmdline history not updated when mapping both <Up> and <CR>.
Solution: Consider the command typed when in Cmdline mode and there is
no pending input (zeertzjq).
Although the existing behavior technically does match documentation, the
"completely come from mappings" part is a bit ambiguous, because one may
argue that the command doesn't completely come from mappings as long as
the user has typed a key in Cmdline mode. I'm not entirely sure if this
change will cause problems, but it seems unlikely.
Aliaksei Budavei [Sat, 25 Oct 2025 14:21:56 +0000 (14:21 +0000)]
CI: Include a job index in names of collected artifacts
And include "extra" Linux elements to further disambiguate
archive names.
The current naming of artifacts is inadequate when it comes
to files whose differing name-parts only come from array
values, as arrays are not automatically converted to string.
For example, both artifacts for failing "socketserver" and
"no_x11" CI jobs will claim the same name, and whichever job
finishes last is allowed to overwrite another matching name
artifact.
Yiyang Wu [Sat, 25 Oct 2025 14:19:07 +0000 (14:19 +0000)]
runtime(make): Prevent makeTargetinDefine matching extra line
This fixes a bug introduced in 2a33b499a3d7f46dc307234847a6562cef6cf1d8:
When makeTargetinDefine ends with makeIdent, makeSpecTarget or
makeComment, the following line is also matched as makeTargetinDefine.
So, add keepend to prevent that just as makeTarget does.
related: #18403
closes: #18570
Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com> Signed-off-by: Roland Hieber <rohieb+vim-iR0jGdkV@rohieb.name> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1869: tests: test failures with Python 3.14 and test_python3
Problem: tests: test failures with Python 3.14 and test_python3
Solution: Adjust the expected error message (Yee Cheng Chin)
Python 3.14 changed the error message from "argument must be 2-item
sequence" to "argument must be 2-item tuple". Fix test to account for
that. Otherwise the error message for the `vim.current.window.cursor =
True` line would not match.
closes: #18629
Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Hirohito Higashi [Sat, 18 Oct 2025 13:57:53 +0000 (13:57 +0000)]
patch 9.1.1865: tests: do not notice lines containing only a tab
Problem: tests: test_codestyle does not notice lines containing only a
tab
Solution: Fix the whitespace issue in eval.txt, update test_codestyle to
notice such issues (Hirohito Higashi)
closes: #18595
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Foxe Chen [Fri, 17 Oct 2025 17:30:43 +0000 (17:30 +0000)]
patch 9.1.1864: tests: Clipboard provider feature test failure
Problem: tests: Clipboard provider feature test failure
Solution: Check in the test that the + clipboard register is available,
fix compile warning (Foxe Chen)
closes: #18586
Signed-off-by: Foxe Chen <chen.foxe@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Maxim Kim [Thu, 16 Oct 2025 19:17:02 +0000 (19:17 +0000)]
runtime(vimcomplete): do not complete 'shellcmd' on WSL and Windows
- shellcmd completion is VERY slow on both WSL and Windows, e.g. `term
something` or `!something` might take ~10 seconds to show first
results. Do not complete it there.
- revert previous change to not complete on whitespace, do not complete
on *empty* lines instead.
closes: #18568
Signed-off-by: Maxim Kim <habamax@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Ola Söder [Thu, 16 Oct 2025 18:48:21 +0000 (18:48 +0000)]
patch 9.1.1861: Amiga: Locating runtime dir and rc files can be simplified
Problem: Amiga: Locating runtime directory and rc files can be
simplified.
Solution: Use assigns since it's simpler and more in line with
how other Amiga applications work (Ola Söder).
closes: #18581
Signed-off-by: Ola Söder <rolfkopman@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Foxe Chen [Thu, 16 Oct 2025 18:41:02 +0000 (18:41 +0000)]
patch 9.1.1860: clipboard register "+" enabled with cplipboard provider feature
Problem: clipboard register "+" enabled with cplipboard provider feature
(BenYip, after v9.1.1857)
Solution: Don't make clipboard provider enable plus register on UNIX
(Foxe Chen)
fixes: #18580
closes: #18580
Signed-off-by: Foxe Chen <chen.foxe@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Maxim Kim [Thu, 16 Oct 2025 18:32:21 +0000 (18:32 +0000)]
patch 9.1.1859: completion: whitespace not cleared with 'ai'
Problem: completion: whitespace not cleared with 'ai'
Solution: Remove spaces added by 'autoindent' when autocomplete is set
and restore did_ai in ins_compl_start() (Maxim Kim)
fixes #18560
closes: #18582
Signed-off-by: Maxim Kim <habamax@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Thu, 16 Oct 2025 18:17:45 +0000 (18:17 +0000)]
patch 9.1.1858: v:register not reset after Visual mode command
Problem: v:register not reset after Visual mode command.
(laktak)
Solution: Reset v:register if Visual mode was active before
do_pending_operator() (zeertzjq)
fixes: #18579
related: #5305
closes: #18583
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: cannot style popup window (border, shadow, etc)
Solution: Extend the 'completepopup' option with additional properties
(Girish Palya)
This patch extends the 'completepopup' option with additional settings
to allow more configuration of info popup window.
New values:
```
- close "on" (default) or "off"
- resize "on" (default) or "off"
- borderchars specify eight characters (separated by semicolons) to
draw the popup border: top, right, bottom, left,
topleft, topright, botright, botleft.
- borderhighlight highlight group for the popup border characters
- shadow pum shadow
```
closes: #18487
Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Doug Kearns [Mon, 13 Oct 2025 19:17:14 +0000 (19:17 +0000)]
runtime(doc): Normalise formatting of builtin function descriptions
- Column align tags
- Move tags to the same line as the function signature
- Move descriptions to the line below the function signature
- Add missing hyperlinks to builtins in the description text
closes: #18478
Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Mon, 13 Oct 2025 19:02:10 +0000 (19:02 +0000)]
patch 9.1.1853: Ctrl-F and Ctrl-B at more prompt not working with key protocol
Problem: Ctrl-F and Ctrl-B at more prompt not working with kitty
keyboard protocol or modifyOtherKeys (after v9.1.1849).
Solution: Call merge_modifyOtherKeys() in get_keystroke() (zeertzjq).
closes: #18558
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Martin Schwan [Mon, 13 Oct 2025 18:50:20 +0000 (18:50 +0000)]
runtime(bitbake): fix multiline Python function parameter syntax
Fix syntax highlighting for def-style Python functions, with their
parameters spanning multiple lines. E.g. the following should match as
valid Python code in Bitbake recipes:
def myFunction(one, two, \
three, four):
pass
For this to work, use the prefix modifier "\_" before the wildcard ".",
to also match newline characters.
closes: #18565
Signed-off-by: Martin Schwan <m.schwan@phytec.de> Signed-off-by: Christian Brabandt <cb@256bit.org>
Marshall Ward [Mon, 13 Oct 2025 18:37:59 +0000 (18:37 +0000)]
runtime(rst): Preserve indentation of directives
This patch preserves indentation in comments. It work by removing the
explicit 3-space indentation and replaces with with an expression which
uses the current value with a minimum of three spaces.
Discussed in the mailing list:
https://groups.google.com/g/vim_dev/c/rn8ZLDrCbYU
Thanks to Friedrich Romstedt for reporting and Christian Brabandt for
investigating the issue.
closes: #18566
Signed-off-by: Marshall Ward <marshall.ward@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Doug Kearns [Mon, 13 Oct 2025 18:34:47 +0000 (18:34 +0000)]
runtime(rst): Update b:undo_ftplugin variable
The value of this variable is evaluated when the 'filetype' option is
changed and should be a command string that will undo any configuration
changes that the plugin has made.
Marshall Ward [Mon, 13 Oct 2025 18:31:49 +0000 (18:31 +0000)]
runtime(rst): Inline literal escape support
Escape character support was disabled for inline literals, which are
handled separately from standard inline highlights, in that escape
characters are unsupported.
related: #18566
Signed-off-by: Marshall Ward <marshall.ward@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
The markup for footonotes [1] and citations [2] are almost identical.
The difference is that footnotes allow numeric values but citations
allow every valid reference name except numeric values.
The regex for matching citations currently only checks for valid
reference names but does not exclude number-only labels, thus also
matches numeric footnotes. To match such footnotes, e.g. ``[1]`` define
the syntax rule for footnotes after the syntax rule for citations so it
gets higher precedence and matches first.
Antony Lee [Mon, 13 Oct 2025 18:28:58 +0000 (18:28 +0000)]
runtime(rst): Correctly end nested comments
Previously, a comment in a directive block would incorrectly mark
all subsequent lines in the directive block as comment, because the
syn-region did not check the leading indent.
related: #18566
Signed-off-by: Antony Lee <anntzer.lee@gmail.com> Signed-off-by: Marshall Ward <marshall.ward@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Minjie Xu [Mon, 13 Oct 2025 18:27:49 +0000 (18:27 +0000)]
runtime(rst): Fix highlights nested in directive body
The leading two dots of a RST directive gets matched by
rstExplicitMarkup group first, and then the directive name and directive
body will be matched by the groups contained in rstDirectives cluster in
order.
The rstExDirective group in rstDiretives matches any RST directives
other than footnote, citation and hyperlink target, therefore admonition
and code block will be matched by rstExDirective. This fix has
rstExDirective contain rstExplicitMarkup so as to enable recursive RST
directives match.
The interpreted texts enclosed in quotes are not highlighted within a
RST directive body, because the rstCruft cluster contains a non-existing
rstInterpretedText group.It should be renamed to
rstInterpretedTextOrHyperlinkReference which is defined in a
DefineInlineMarkup function call.
Dragan Simic [Mon, 13 Oct 2025 18:25:57 +0000 (18:25 +0000)]
runtime(rst): Add support for rst_minlines
Following the approach used in other syntax definitions, add support for
defining the "syntax sync minlines=..." values for rst files in the
users' ~/.vimrc files, to allow the users to adjust that value in case
syntax highlighting stops working for some of the files they edit.
Kirk Roemer [Mon, 13 Oct 2025 18:24:09 +0000 (18:24 +0000)]
runtime(rst): Fix doctest block syntax
A doctest block usually spans multiple lines, e.g.
>>> print('this is a Doctest block')
this is a Doctest block
Remove ``oneline`` argument to syntax region as this requirement is not
met. Consequently, also remove ``display`` as the prerequisite (the
syntax region is on a single line) is no longer met.
----
Recognise '>>>' inside doctest blocks
Recognise subsequent '>>>' prompts in doctest blocks, e.g.
>>> print('this is a Doctest block')
this is a Doctest block
>>> print('this is a second Doctest block')
this is a second Doctest block
A doctest block usually spans multiple lines, e.g.
>>> print('this is a Doctest block')
this is a Doctest block
Yiyang Wu [Sun, 12 Oct 2025 15:20:28 +0000 (15:20 +0000)]
runtime(make): syntax highlighting update for makeDefine
Previously contents in makeDefine are nearly highlighted as Define, so
comments and targets shares the same color as Define, making it hard to
distinguish if someone write large block of targets-recipes as defined
function.
Such scenario is common in building data analysis pipeline. Recipes are
reused and targets may have multiple variables, and a single % implicit
rule is not enough.
closes: #18403
Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Lidong Yan [Sun, 12 Oct 2025 15:10:09 +0000 (15:10 +0000)]
patch 9.1.1852: vim9class: memory leak in parse_member()
Problem: vim9class: fix memory leak in parse_member()
Solution: Free evalarg before returning (Lidong Yan)
In parse_member(), skip_expr_concatenate() allocates memory in evalarg.
However parse_member() forgets to free evalarg at early return-fail
point. Add clear_evalarg() at early return-fail point.
closes: #18533
Signed-off-by: Lidong Yan <502024330056@smail.nju.edu.cn> Signed-off-by: Christian Brabandt <cb@256bit.org>
Lidong Yan [Sun, 12 Oct 2025 15:05:11 +0000 (15:05 +0000)]
patch 9.1.1851: memory leak in heredoc_get()
Problem: memory leak in heredoc_get()
Solution: Free "str" if list_append_string() fails
(Lidong Yan).
In heredoc_get(), eval_all_expr_in_str() allocates a new string and
assign it to local variable "str". When list_append_string() failed
the memory pointed to by "str" leaks. Free "str" if list_append_string()
failed.
related: #18533
Signed-off-by: Lidong Yan <502024330056@smail.nju.edu.cn> Signed-off-by: Christian Brabandt <cb@256bit.org>
Aliaksei Budavei [Sun, 12 Oct 2025 14:17:57 +0000 (14:17 +0000)]
runtime(doc): Replace rotted URL links
Both links to libXpm and mysyntax.vim are up but the listed
libXpm version is not offered anymore and mysyntax.vim is no
longer served at all. The link for searching dictionary
extensions of Apache OpenOffice is broken; an alternative
link can be discovered from the home page. Finally, the
English dictionaries Apache OpenOffice extension is probably
gone for good (is it incompatible with more recent versions
of the suite?) as its page neither available directly nor
discoverable through search.
closes: 18549
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Sun, 12 Oct 2025 14:12:41 +0000 (14:12 +0000)]
patch 9.1.1847: No cmdline completion for :echoconsole and :echowindow
Problem: No cmdline completion for :echoconsole, :echowindow and second
expression after :echoerr.
Solution: Set EXPAND_EXPRESSION for :echoconsole and :echowindow, and
check for multiple expressions after :echoerr (zeertzjq).
closes: #18552
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Wu Junkai [Sun, 12 Oct 2025 14:10:34 +0000 (14:10 +0000)]
runtime(cangjie): Fixes and improvements for syntax script
Housekeeping:
- Add GitHub repository link
- Update Last Change date
Style:
- Add Vim modeline for consistent formatting
- Unify indentation style (spaces to tabs)
- Wrap long cluster definitions for readability
New Features:
- Add highlighting for escape sequences
- Add error highlighting for invalid rune literals
- Add syntax-based folding support
Fixes:
- Fix rune matching to allow only a single character/escape
- Fix highlighting for double-quoted rune literals
- Fix highlighting for floats with exponents and type suffixes
- Use the optional tail command-name specs at help entries for :keepalt,
:lcd, :cfdo, :lfdo, :wundo, :rundo, :bdelete and :bunload.
- Add missing shortname tags.
closes: #18547
Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1846: Build failure when building without wayland
Problem: Build failure when building without wayland
(bennyyip, after v9.1.1844)
Solution: Update Makefile dependencies again, remove wayland
dependencies for clipboard.c,
James McCoy [Thu, 9 Oct 2025 20:15:34 +0000 (20:15 +0000)]
patch 9.1.1843: tests: Test_search_stat_option() may fail on slow systems
Problem: tests: Test_search_stat_option() may fail on slow systems
Solution: test_search_stat: Extend searchcount() timeout if the test is
being re-run due to flakiness (James McCoy).
closes: #18524
Signed-off-by: James McCoy <jamessan@jamessan.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1842: MS-Windows: build failure when mzscheme is included
Problem: MS-Windows: build failure when mzscheme is included
(dertuxmalwieder, after v9.1.1838)
Solution: skip specific section when PROTO is defined
(Hirohito Higashi)
fixes: #18529
closes: #18530
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1840: Generating prototype files does not work on all platforms
Problem: Generating prototype files does not work on all platforms
Solution: Rework prototypes generation using python instead of cproto,
enable it in CI to test it for each PR (Hirohito Higashi).
closes: #18045
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>