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>
Co-authored-by: Christian Brabandt <cb@256bit.org> Signed-off-by: Miguel Barro <miguel.barro@live.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Also, distinguish (by abbreviating their names) and manage
foldable kinds of syntax items: blocks of code ("b"), plain
comments ("c"), Javadoc comments ("d"), adjacent "import"
declarations ("i"). Fold all qualifying items by default;
otherwise, do not fold items of explicitly delisted kinds.
For example,
------------------------------------------------------------
let g:java_ignore_folding = "bcdi"
------------------------------------------------------------
Resolves zzzyxwvut/java-vim#12.
closes: #18492
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1837: tests: Test_plugin_evaluate_in_popup() fails on 32bit
Problem: tests: Test_plugin_evaluate_in_popup() fails on 32bit arch
(James McCoy)
Solution: Instead of evaluating the ptr, let's evaluate just the pointer
content, skipping printing the pointer address.
zeertzjq [Tue, 7 Oct 2025 20:53:48 +0000 (20:53 +0000)]
patch 9.1.1836: 'culopt' "screenline" not redrawn with line("w0") and :retab
Problem: 'cursorlineopt' "screenline" isn't redrawn when moving cursor
and then using line("w0") and :retab that does nothing.
Solution: Call redraw_for_cursorcolumn() when setting a valid w_virtcol
(zeertzjq).
closes: #18506
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Girish Palya [Tue, 7 Oct 2025 20:43:06 +0000 (20:43 +0000)]
patch 9.1.1835: completion: not possible to style popup borders globally
Problem: not possible to style popup borders globally
Solution: Add the 'pumborder' option (Girish Palya)
This commit introduces a new global option, 'pumborder' ('pb'), that
allows users to define borders and optional decorations for the
completion popup menu.
```
Defines a border and optional decorations for the popup menu in
completion. The value is a comma-separated list of keywords.
Border styles (at most one):
"single"singleuse thin box-drawing characters
"double"doubleuse double-line box-drawing characters
"round"rounduse rounded corners
"ascii"asciiuse ASCII characters (-, |, +)
"custom:XXXXXXXX"
use eight characters given after "custom:",
in order: top, right, bottom, left,
topleft, topright, botright, botleft
Additional flags:
"margin"marginadds one-cell spacing inside the left and right border
"shadow"shadowdraws a shadow at the right and bottom edges
Highlight groups:
|hl-PmenuBorder|hl-PmenuBorderused for the border characters
|hl-PmenuShadow|hl-PmenuShadowused for the shadow
Border styles using box-drawing characters ("single", "double",
"round") are only available when |'encoding'| is "utf-8" and
|'ambiwidth'| is "single". "margin" requires a border style.
See also: |ins-completion-menu|.
```
Mao-Yining [Tue, 7 Oct 2025 19:31:22 +0000 (19:31 +0000)]
patch 9.1.1834: MS-Windows: not possible to highlight the title bar
Problem: MS-Windows: not possible to highlight the title bar
Solution: Make the title/caption bar configurable by introducing the
'go-C' option value which allows to highlight it using the
TitleBar and TitleBarNC highlighting groups (Mao-Yining).
Introduce titlebar color customization for Windows 11 GUI through
highlight groups and new 'guioptions' flag:
- Add 'C' flag to enable titlebar color customization (opt-in)
- New highlight groups: TitleBar (active) and TitleBarNC (inactive)
- Uses DWMWA_CAPTION_COLOR and DWMWA_TEXT_COLOR DWM attributes
- Dynamically loads dwmapi.dll for Windows 11 compatibility
- Defaults to system colors when set to NONE or feature disabled
closes: #18449
Signed-off-by: Mao-Yining <mao.yining@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime(zip): add *.pkpass to list of zip extensions
Similar to a359c9c25e5c3c1e543fc720223aa7256e6f72cf.
See https://developer.apple.com/documentation/walletpasses/building-a-pass#Sign-the-Pass-and-Create-the-Bundle,
which explicitly mentions that pkpasses are just renamed ZIPs.
closes: #18501
Signed-off-by: MultisampledNight <contact@multisamplednight.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Sean Dewar [Sun, 5 Oct 2025 17:00:58 +0000 (17:00 +0000)]
patch 9.1.1831: stray vseps in right-most 'winfixwidth' window
Problem: vertical separator of 'winfixwidth' windows may remain if they
become right-most windows from closing windows to the right.
Solution: Don't implicitly rely on frame_new_width to fix vseps, as the
call may be skipped for 'winfixwidth' windows to preserve
their width; do it explicitly in winframe_remove (Sean Dewar).
Note that I prefer win_new_width here over setting w_width directly, which
would've previously been done by win_split_ins after frame_add_vsep, as this
wasn't true for winframe_remove.
Though the equivalent issue of bottom 'winfixheight' windows leaving stray
statuslines with &ls=0 doesn't seem to exist, test it anyway.
closes: #18481
Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1829: filetype: KerML and SysML files are not recognized
Problem: filetype: KerML and SysML files are not recognized
Solution: Detect *.kerml as kerml filetype, detect *.sysml as sysml
filetype, include a kerml and sysml filetype plugin
(Daumantas Kavolis)
closes: #18476
Signed-off-by: Daumantas Kavolis <daumantas.kavolis@sensmetry.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
In insert-mode completion, the leader text is temporarily removed while
searching for candidates. When the LSP server responds slowly, the
client may call `:sleep` to wait, which triggers `out_flush()`. This
causes the deleted text to disappear briefly before being redrawn,
resulting in visible flicker.
This commit reinserts the leader text before invoking the user function,
and removes it again afterward to eliminate flicker.
closes: #18468
Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Sat, 4 Oct 2025 10:35:49 +0000 (10:35 +0000)]
patch 9.1.1824: tests: no test for displaying 'foldcolumn' with Unicode "foldinner"
Problem: tests: no test for displaying 'foldcolumn' with Unicode
"foldinner" in 'fillchars'.
Solution: Add a few more test cases. Also fix misplaced "foldinner"
entry in version9.txt (zeertzjq).
closes: #18483
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1823: diff: w_topline may be invalidated
Problem: diff: w_topline may be invalidated
Solution: Update lnum in diff_set_topline()
(Yee Cheng Chin).
This can happen in ex_diffupdate() for certain edge cases which cause
the logic to now be wrong. This was also the root cause for #18437 where
Vim would crash due to a null pointer dereferencing (said pointer would
not be null under normal circumstances).
related: #18437
closes: #18484
Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
- Add to the list of java.lang classes three new types: IO,
ScopedValue, and ScopedValue.Carrier.
- Add to the list of java.lang interfaces a new type:
ScopedValue.CallableOp.
- "Demote" RuntimePermission from the list of java.lang
class types to javaLangDeprecated.
- Reintroduce supported syntax-preview-feature numbers 455
and 488 as _a new number_ 507.
Jan Claußen [Fri, 3 Oct 2025 08:41:32 +0000 (08:41 +0000)]
patch 9.1.1821: filetype: Not all PKL files are recognized
Problem: filetype: Not all PKL files are recognized
Solution: Detect *.pcf as pkl filetype, detect using the pkl-lsp://
protocol as pkl filetype, include PKL syntax script
(Jan Claußen)
This adds basic syntax support for the new PKL language by Apple.
What works:
- Shebang support
- Comment support
- Integers (decimal, hex, octal and binary) support
- Floating point support including exponentials
- Basic datatype support
- Unicode escape delimiters
- Escape code support
- String interpolation
- Support up to five pounds for custom delimiters
- Folding of multi-line comments and blocks
What doesn't work:
The language heavily uses parameterized type declarations, which can get
very complex. It is very hard to highlight this properly. There is
official Tree-sitter support for this. Since it is hard to pull this off
in a vim syntax file, I opted for basic support of the data types.
References:
https://github.com/apple/pkl-pantry
fixes: #18271
closes: #18274
Signed-off-by: Jan Claußen <jan.claussen10@web.de> Signed-off-by: Christian Brabandt <cb@256bit.org>
Girish Palya [Fri, 3 Oct 2025 08:28:38 +0000 (08:28 +0000)]
patch 9.1.1820: completion: some issues with 'acl'
Problem: completion: some issues with 'acl' when "preinsert" and
"longest" is in 'completeopt' (musonius, after v9.1.1638)
Solution: Fix various issues (see details below) (Girish Palya)
This commit addresses multiple issues in the 'autocompletedelay' behavior with
"preinsert" and "longest":
- Prevents spurious characters from being inserted.
- Ensures the completion menu is not shown until `autocompletedelay` has
expired.
- Shows the "preinsert" effect immediately.
- Keeps the "preinsert" effect visible even when a character is deleted.
fixes: #18443
closes: #18460
Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1819: Cannot configure the inner foldlevel indicator
Problem: Cannot configure the inner foldlevel indicator for the
foldcolumn
Solution: Add "foldinner" suboption value to the 'fillchar' option
(Maria José Solano).
closes: #18365
Signed-off-by: Maria José Solano <majosolano99@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Girish Palya [Wed, 1 Oct 2025 21:09:53 +0000 (21:09 +0000)]
runtime(doc): Clarify use of "noselect" in 'completeopt'
closes: #18452
Co-authored-by: Tomasz N <przepompownia@users.noreply.github.com> Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Girish Palya [Wed, 1 Oct 2025 20:52:44 +0000 (20:52 +0000)]
patch 9.1.1817: popup: there are some position logic bugs
Problem: popup: there are some position logic bugs
Solution: Refactor position logic and fix a few bugs
(Girish Palya).
This change does the following:
- Simplified and rewrote horizontal positioning logic (was overly
complex).
- Split horizontal and vertical positioning into separate functions.
- Fixed missing truncation marker (e.g. `>`) when items were truncated
and `pummaxwidth` was not set.
- Fixed occasional extra space being added to menu items.
- Update tests
closes: #18441
Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>