patch 9.1.1750: completion: preinserted text highlighed using ComplMatchIns
Problem: completion: preinserted text highlighed using ComplMatchIns
Solution: Use highlighting group PreInsert and update the documentation
(Girish Palya).
When "preinsert" is included in 'completeopt', only the PreInsert
highlight group should be applied, whether autocompletion is active or not.
Previously, ComplMatchIns was used when autocompletion was not enabled.
Related to https://github.com/vim/vim/pull/18213.
closes: #18254
Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This is a trickier pattern to match because we can't rely on keyword
boundaries, so we instead look for exactly three dots (`...`).
This does mean that we will match the `...` portion of `x...x`, which
isn't valid Python syntax, but I think that's an acceptable trade-off
that avoids making this pattern much more complex.
Problem: Haiku: no full-screen support
Solution: Add support for toggling full-screen using the keyboard
(rymdbar)
Makes toggling using keyboard possible. This change does not add any
`:fullscreen` command (Which currently only macVim has).
See https://www.haiku-os.org/docs/userguide/en/keyboard-shortcuts.html
for motivation on key combination used, as well as terminology choice.
With vim being inconsistent (`:help intro` suggests <A> and <M>, while
<Alt> is used at a dozen other places) following Haiku nomenclature
seems most appropriate.
closes: #18235
Signed-off-by: rymdbar <rymdbar@x20.se> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1740: Memory leak with wildmode=longest,full and wildoptions=pum
Problem: Memory leak with wildmode=longest,full and wildoptions=pum
(after 9.1.1737).
Solution: Avoid using showmatches() and WILD_NEXT together. Also fix
wildmode=longest,noselect:full selecting wrong item
(zeertzjq).
fixes: #18228
closes: #18229
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1739: Matches may be listed twice with wildmode=longest,list
Problem: Matches may be listed twice with wildmode=longest,list when
"longest" doesn't change command line (after 9.1.1737).
Solution: Set did_wild_list when trying "list" after "longest"
(zeertzjq).
closes: #18227
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1737: Patch v9.1.1714 introduce a regression for wildmenu
Problem: Patch v9.1.1714 introduce a regression for wildmenu (zeertzjq)
Solution: Restore behavior of "longest" in 'wildmode' (Girish Palya)
- Fixed a regression caused by PR #18125 selecting wrong item
- Fixed another regression where the first pasted text did not appear on
the command-line after starting Vim.
closes: #18212
Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1735: Cygwin Makefile still checks for Win XP version
Problem: Cygwin Makefile still checks for Win XP version
Solution: Remove check for WINVER >= 0x600 in Make_cyg_ming.mak
(Mao-Yining)
Vim's does no longer support Windows XP and Vista since v9.0.0496. So
the condition in Make_cyg_ming.mak to check for any Windows version below
Vista can be removed.
fixes: #18160
closes: #18215
Signed-off-by: Mao-Yining <mao.yining@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1734: Memory leak when allocating match fails
Problem: Memory leak when allocating match fails
Solution: Initialize m to NULL and centralize cleanup via goto fail to
avoid leaks on early returns (Damien Lejay)
Martin Schwan [Thu, 4 Sep 2025 20:09:26 +0000 (22:09 +0200)]
patch 9.1.1732: filetype: .inc file detection can be improved
Problem: filetype: .inc file detection can be improved
Solution: Update filetype detection for Pascal and BitBake code
(Martin Schwan).
Fix the detection of .inc files containing Pascal and BitBake code:
- the concatenated string, merged from three lines, only contains one
beginning and the pattern "^" would not match as expected. Use a range()
loop to iterate each line string individually. This way, the pattern "^"
works for beginning of lines.
- improve BitBake include file detection by also matching forward-slashes
"/" in variable names and assignment operators with a dot ".=" and "=.".
Valid examples, which should match, are:
This change does the following to the M4 syntax script:
- In M4 there are no "strings" in the usual sense. Instead, M4 has
quotes, but the text inside a quoted region is rescanned just like
outside, and quotes can be nested.
- The old m4String region was misleading and removed. A new m4Quoted
region reflects proper quoting semantics.
- Removed a duplicate highlight rule.
- Fixed a typo in a highlight group name (m4builtin → m4Builtin).
- Added a reference link to the POSIX M4 specification.
- Removed outdated maintainer URL.
closes: #18192
Signed-off-by: Damien Lejay <damien@lejay.be> Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: Wayland code can be improved
Solution: Refactor Wayland Clipboard code (Foxe Chen)
This refactor makes the Wayland codebase less convoluted:
- Move clipboard code in wayland.c to clipboard.c
- Use C99 bool type
- Properly poll the Wayland display file descriptor
- Instead of checking if the data source is not NULL in order to
determine if a selection event comes from us, use a special mime type to
identify selection events coming from ourselves. The problem with the
previous approach is that race conditions may occur.
- Put the focus stealing code under a new feature "wayland_focus_steal"
- Use ELAPSED_* macros instead of gettimeofday()
- Pass tests
- Reimplement commented out code
- Update docs
- Make Wayland clipboard behaviour more in line with X11 when connection is lost
- add missing malloc checks and possible memory leaks + refactored some
tests.
closes: #18139
Signed-off-by: Foxe Chen <chen.foxe@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
ashamedbit [Sun, 31 Aug 2025 18:05:23 +0000 (20:05 +0200)]
patch 9.1.1722: compiler may optimize away clearing of crypt key
Problem: Compiler may optimize away clearing of crypt key
Solution: Use sodium_memzero() if available, else use memset() using a
volatile function pointer (ashamedbit).
closes: #18173
Signed-off-by: ashamedbit <muralianiruddhan@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Hirohito Higashi [Sun, 31 Aug 2025 17:43:23 +0000 (19:43 +0200)]
patch 9.1.1721: Defining a global gettimeofday() function
Problem: Defining a global gettimeofday() function causes conflicts if
gettimeofday() is already defined.
Solution: Revert globalized gettimeofday() function (Hirohito Higashi).
Aliaksei Budavei [Sun, 31 Aug 2025 17:16:14 +0000 (19:16 +0200)]
runtime(java): Dismiss "g:markdown_fenced_languages" for Java buffers
No support is provided or planned for language recognition
in code snippets of documentation comments. Requesting to
load arbitrary syntax plugins with the aid of the concerned
variable is therefore wasteful in general and erroneous when
paired languages ":syn-include" one another without taking
steps to manage circularity.
related: #17308
related: #17220
closes: #18172
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Hirohito Higashi [Sun, 31 Aug 2025 16:52:32 +0000 (18:52 +0200)]
patch 9.1.1715: Some functions need to be re-ordered
Problem: Some functions need to be re-ordered
Solution: Re-order and move functions around favoring mch_*() functions
inside os_*.c files, Change scope of dos_expandpath() to
global instead of static (Hirohito Higashi)
The following fixes and tweaks have been made:
- Moved the definition of mch_expandpath() from filepath.c to os_win32.c
in MS-Windows builds (essentially, the mch_~() function should be
defined in os_~.c.)
- In accordance with the above, the scope of dos_expandpath() has been
changed from static to global.
- Other miscellaneous changes.
closes: #18176
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1708: tests: various tests can be improved
Problem: tests: various tests can be improved
Solution: Use string interpolation to concatenate strings in
test_winfixbuf, check for specific errors in assert_fails()
(Yegappan Lakshmanan)
closes: #18151
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Foxe Chen [Wed, 27 Aug 2025 21:53:41 +0000 (23:53 +0200)]
patch 9.1.1706: MS-Windows: Compile error when building with if_ruby
Problem: MS-Windows: Compile error when building with if_ruby
(Christian Robinson, after v9.1.1704)
Solution: Do not define gettimeofday() if ruby interface is compiled in
(Foxe Chen).
fixes: #18143
closes: #18144
Signed-off-by: Foxe Chen <chen.foxe@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Damien Lejay [Wed, 27 Aug 2025 19:31:35 +0000 (21:31 +0200)]
patch 9.1.1705: time.h include is available on all platforms
Problem: time.h include is available on all platforms
Solution: Remove ifdef guards and simply include it in all source files,
get rid of double include in spellfile.c (Damien Lejay).
closes: #18075
Signed-off-by: Damien Lejay <damien@lejay.be> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.1701: tests: failure on CI with GUI and ASAN in test_edit.res
Problem: tests: failure on CI with GUI and ASAN in test_edit.res
(Hirohito Higashi)
Solution: Disable the test for that specific situation in CI, close
swapfiles
patch 9.1.1700: Multiline ignorecase specific pattern does not match with 'ignorecase'
Problem: a pattern that involves a backref on a different line does not
match when 'ignorecase' is set (QiWei, after v9.1.0645)
Solution: Use MB_STRNICMP when ignorecase is set, fix tests to close
swapfiles
related: #14756
fixes: #17470
closes: #18104
Signed-off-by: author Signed-off-by: Christian Brabandt <cb@256bit.org>
Maxim Kim [Wed, 27 Aug 2025 16:09:14 +0000 (18:09 +0200)]
patch 9.1.1699: Fuzzy completion disabled for 'findfunc' and customlist
Problem: Fuzzy completion disabled for 'findfunc' and customlist
Solution: Remove those cases from cmdline_fuzzy_completion_supported()
because it is supported (Maxim Kim).
fixes: #18117
closes: #18122
Signed-off-by: Maxim Kim <habamax@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Sean Dewar [Tue, 26 Aug 2025 19:45:07 +0000 (21:45 +0200)]
patch 9.1.1696: tabnr from getwininfo() for popup windows is always 0
Problem: getwininfo() has logic for getting the tabnr of a local popup
window, but due to only breaking from the inner loop, tp is
eventually set to NULL, so tabnr is always 0.
Solution: Break out of both loops, continue to use 0 for global popup
windows (Sean Dewar).
closes: #18111
Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>