Commit Graph

34134 Commits

Author SHA1 Message Date
luukvbaal
150490d365 fix(conceal): assert tripped during startup #36136
Problem:  Row assertion for concealed lines trips during startup.
Solution: Remove the assertion and return early instead.
2025-10-11 09:22:18 -07:00
Rob Pilling
ce27423132 feat: ":wall ++p" creates parent dirs for each buf #36121
`:wall ++p` will create parent directories if they do not exist, for
each modified buffer
2025-10-11 08:27:58 -07:00
Vlad
f0b9232ad8 test(plugin/shada_spec): always use UTC formatted date (#36128)
Problem

Similar to https://github.com/neovim/neovim/pull/33257, but for the date
component. When timezone is behind UTC the epoch date of individual
components mismatch causing the test to fail.

Solution

The `epoch` variable is created using `os.date` with a `!`, which means
format the date in UTC instead of local timezone:
https://www.lua.org/manual/5.1/manual.html#pdf-os.date.

Since the individual components like year, month, and day are expected
to match `epoch` they should all be created using a `!` as well.
2025-10-11 06:03:02 +00:00
phanium
f40672be99 fix(undotree): clear autocmd correctly #36124
Problem: nvim_clear_autocmds clear some other autocmd unexpectedly

Solution: clear it correctly
nightly
2025-10-10 21:09:51 -07:00
zeertzjq
9b03385d85 Merge pull request #36118 from janlazo/vim-8.2.5017
vim-patch:8.2.{2456,4772,5017}
2025-10-11 10:47:11 +08:00
Jan Edmund Lazo
ffdb316491 vim-patch:8.2.4772: old Coverity warning for not checking ftell() return value
Problem:    Old Coverity warning for not checking ftell() return value.
Solution:   Check return value of fseek() and ftell().

3df8f6e353

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2025-10-10 21:20:55 -04:00
Jan Edmund Lazo
7995e7a89b vim-patch:8.2.2456: Coverity warning for strcpy() into fixed size array
Problem:    Coverity warning for strcpy() into fixed size array.
Solution:   Add a type cast to hopefully silence the bogus warning.

7b6903f02c

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2025-10-10 19:57:44 -04:00
glepnir
fafc329bbd feat(ui): 'pumborder' (popup menu border) #25541
Problem:
Popup menu cannot have a border.

Solution:
Support 'pumborder' option.
Generalize `win_redr_border` to `grid_redr_border`,
which redraws border for window grid and pum grid.
2025-10-10 07:14:50 -07:00
phanium
9c89212de1 fix(undotree): sync scroll pos with undo #36117
Problem: when undo in buffer, undotree window is not updated to
position of correct node

Solution: schedule nvim_win_set_cursor
2025-10-10 07:07:01 -07:00
luukvbaal
d8cea8d45d fix(ui2): don't scroll beyond eob in dialog window #36116
Problem:  Forward page scrolling reveals eob lines in the dialog window.
Solution: Check if the end of the buffer is visible before scrolling down.
2025-10-10 07:05:40 -07:00
Jan Edmund Lazo
eb67f3a6ba vim-patch:8.2.5017: gcc 12.1 warns for uninitialized variable
Problem:    Gcc 12.1 warns for uninitialized variable.
Solution:   Initialize the variable. (closes vim/vim#10476)

8be36eecdc

Co-authored-by: mityu <mityu.mail@gmail.com>
2025-10-10 00:33:47 -04:00
github-actions[bot]
56713ef872 docs: update version.c #35753
vim-patch:8.1.1989: the evalfunc.c file is still too big

vim-patch:8.2.0379: gcc warns for ambiguous else
vim-patch:8.2.0510: Coverity complains about using uninitialized variable
vim-patch:8.2.0566: Vim9: variable can be used uninitialized
vim-patch:8.2.1908: Lua is initialized even when not used
vim-patch:8.2.2313: Vim9: using uninitialized field when parsing range
vim-patch:8.2.2374: accessing uninitialized memory in test_undo
vim-patch:8.2.2509: tests fail on s390 build
vim-patch:8.2.2572: Vim9: crash when getting the types for a legacy function
vim-patch:8.2.3134: crash when using typename() on a function reference
vim-patch:8.2.3527: gcc complains about uninitialized variable
vim-patch:8.2.3653: terminal ANSI colors may be wrong
vim-patch:8.2.3755: Coverity warns for using a buffer in another scope
vim-patch:8.2.3770: new compiler warnings from clang-12 and clang-13
vim-patch:8.2.3875: gcc complains about buffer overrun
vim-patch:8.2.3893: Vim9: many local variables are initialized with an instruction
vim-patch:8.2.4017: gcc warns for misleading indent in Athena menu code
vim-patch:8.2.4023: using uninitialized variable
vim-patch:8.2.4126: crash on exit when built with dynamic Tcl
vim-patch:8.2.4468: Coverity warns for uninitialized struct member
vim-patch:8.2.4471: Coverity warns for uninitialized variable
vim-patch:8.2.4661: Coverity warning for using uninitialized variable
vim-patch:8.2.4779: lsan suppression is too version specific
vim-patch:8.2.4995: still a compiler warning for possibly uninitialized variable
vim-patch:8.2.5005: compiler warning for uninitialized variable
vim-patch:8.2.5068: gcc 12.1 warning when building tee
vim-patch:8.2.5069: various warnings from clang on MS-Windows
vim-patch:8.2.5073: clang on MS-Windows produces warnings
vim-patch:8.2.5075: clang gives an out of bounds warning
vim-patch:8.2.5085: gcc gives warning for signed/unsigned difference
vim-patch:8.2.5087: cannot build with clang on MS-Windows

vim-patch:9.0.0395: clang warnings for function prototypes
vim-patch:9.0.0860: MS-Windows: windres fails with clang 15.0.4
vim-patch:9.0.1088: clang warns for unused variable
vim-patch:9.0.1517: MacOS: configure removes -O2 from $CFLAGS
vim-patch:9.0.1685: silence Python 3.11 depreciations for gcc
vim-patch:9.0.1716: Windows build with python 3.12 and clang fails
vim-patch:9.0.1913: if_python: undefined behaviour for function pointers
vim-patch:9.0.1930: compiler warnings with clang-17
vim-patch:9.0.1971: macOS: FEAT_SOUND guard too restrictive

vim-patch:9.1.0066: gcc complains about use of uninitialized var
vim-patch:9.1.0067: gcc still complains about use of uninitialized var
vim-patch:9.1.0588: The maze program no longer compiles on newer clang
vim-patch:9.1.0827: CI: tests can be improved
vim-patch:9.1.0833: CI: recent ASAN changes do not work for indent tests
vim-patch:9.1.0846: debug symbols for xxd are not cleaned in Makefile
vim-patch:9.1.0884: gcc warns about uninitialized variable
vim-patch:9.1.0946: cross-compiling fails on osx-arm64
vim-patch:9.1.1189: if_python: build error due to incompatible pointer types
vim-patch:9.1.1347: small problems with gui_w32.c
vim-patch:9.1.1358: if_lua: compile warnings with gcc15
vim-patch:9.1.1365: MS-Windows: compile warnings and too many strlen() calls
vim-patch:9.1.1686: if_ruby: unknown pragma when not using gcc
vim-patch:9.1.1729: CI is not run with clang 21

vim-patch:9.1.1765: f_isnan() and f_isinf() do not correctly initialize rettv type
vim-patch:9.1.1767: Patch v9.1.1765 was wrong
vim-patch:9.1.1812: completion: flicker with slow LSPs
vim-patch:9.1.1814: Patch v9.1.1812 causes crashes
2025-10-09 20:30:22 -07:00
Vlad
abd0c882b3 fix(rpc): handle more cases when identifying loopback #36100
Problem:

On MacOS it is a relatively common pattern to set XDG_RUNTIME_DIR under
`/tmp` or `/var`. Both of these are symlinks to `/private/tmp` and
`/private/var`. When checking for loopback the input address is
normalized using `fix_fname`, however this is not applied to the
addresses of the sockets. As a result of one address being normalized
and the other not the comparison would fail.

Solution:

Normalize both sides of the comparison using `fix_fname`.
2025-10-09 18:04:02 -07:00
zeertzjq
b1c41a332d vim-patch:9.1.1843: tests: Test_search_stat_option() may fail on slow systems (#36110)
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: vim/vim#18524

4fa7ec8036

Co-authored-by: James McCoy <jamessan@jamessan.com>
2025-10-10 07:32:08 +08:00
zeertzjq
f81014f25c vim-patch:1388fa6: runtime(doc): Add reference to 'wildoptions' in fuzzy-matching docs
The docs for fuzzy matching seems to try to list every possible use
case, but misses this one. It's a good idea to be consistent.

closes: vim/vim#18525

1388fa62d2

Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2025-10-10 07:21:09 +08:00
zeertzjq
ec8405c473 vim-patch:partial:7dba04f: runtime(doc,vim): Update base syntax, match full :syntime command
- Use the optional tail command-name spec at :help :syntime.
- Match full :syntime command and highlight args.

7dba04f15c

Documentation changes only.

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-10-10 07:21:09 +08:00
Mickaël RAYBAUD-ROIG
8e740db70c fix(vim.pack): skip checkout on bad version #36038
Refs: #36037
2025-10-09 13:40:26 -07:00
Mike J McGuirk
4598305e0b fix(undotree): mark title field annotation as optional (#36102)
* fix(undotree): mark title field annotation as optional

* fix(doc): run make doc for undotree annotation change
2025-10-09 10:49:49 -04:00
luukvbaal
ad8bce6674 fix(conceal): check for concealed lines on invalid row (#36084)
Problem:  May check for concealed lines on invalid line numbers.
Solution: Move checks after line number validation.
2025-10-09 15:44:11 +02:00
Tristan Kapous
645206e87f fix(undotree): error on undotree.open() with title as string #36085 2025-10-08 19:49:21 -07:00
Mike J McGuirk
81d2d88f70 feat(undotree): set 'filetype' #36091 2025-10-09 02:34:44 +00:00
zeertzjq
c401999e47 vim-patch:143686b: runtime(java): Fold adjacent "import" declarations (#36095)
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: vim/vim#18492

143686b3c4

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
2025-10-09 07:49:35 +08:00
zeertzjq
f21295d596 vim-patch:ec19075: runtime(doc): Normalise ellipsis dots in syntax.txt (#36094)
Use three dots rather than two.

closes: vim/vim#18521

ec19075f61

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-10-09 07:49:14 +08:00
zeertzjq
28355050a8 vim-patch:9.1.1839: Window may have wrong height if resized from another tabpage (#36093)
Problem:  Window may have wrong height if resized from another tabpage.
Solution: Improve check for whether a tabline has been added (zeertzjq).

fixes: vim/vim#18518
closes: vim/vim#18519

bd3b958027
2025-10-09 07:49:05 +08:00
zeertzjq
f09225e6dd Merge pull request #36096 from zeertzjq/vim-9.1.1834
vim-patch: Vim syntax updates
2025-10-09 07:48:27 +08:00
zeertzjq
6969534935 vim-patch:ce5f9f4: runtime(vim): Update base syntax, allow legacy script comments after :eval
closes: vim/vim#18522

ce5f9f45af

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2025-10-09 07:13:10 +08:00
zeertzjq
e47529ab56 vim-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: vim/vim#18449

2c09368273

Co-authored-by: Mao-Yining <mao.yining@outlook.com>
2025-10-09 07:11:24 +08:00
dependabot[bot]
0ea46563eb ci: bump github/codeql-action from 3 to 4 (#36082)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [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/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 13:13:58 -07:00
Sean Dewar
d7472c0617 fix(api): nvim_open_win default to half-size for splits (#36088)
Problem: after #35601, nvim_open_win incorrectly attempts to set the size of a
split window to 0 if it wasn't specified.

Solution: only attempt to set the size again if it was actually specified. This has the effect of defaulting to half the size of the parent window (or it may be equalized with other windows to make room), like before.

Fix #36080
2025-10-08 16:22:29 +00:00
zeertzjq
c881bc537e vim-patch:9.1.1817: popup: there are some position logic bugs (#36075)
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: vim/vim#18441

e3ed5584ed

Cherry-pick pum_display_{rtl,ltr}_text() changes from patch 9.1.1835.

Co-authored-by: Girish Palya <girishji@gmail.com>
2025-10-08 13:47:50 +08:00
Igor Lacerda
f67306cc67 fix(lsp): typos in method names #36077 2025-10-07 20:44:57 -07:00
zeertzjq
c58cc46094 vim-patch:f8b9251: runtime(doc): Fix typos in syntax.txt (#36073)
closes: vim/vim#18504

f8b9251d8f

Co-authored-by: Elijah Greenstein <197816462+elijahgreenstein@users.noreply.github.com>
2025-10-08 08:28:10 +08:00
zeertzjq
b9482a0a26 test: add a test for #36059 2025-10-08 08:16:17 +08:00
zeertzjq
ba47cb7eda vim-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: vim/vim#18506

a084914361
2025-10-08 08:16:17 +08:00
zeertzjq
236d831d77 fix(cmdline): don't treat c_CTRL-D as wildmenu (#36067)
Remove WM_LIST, which was previously added in #7110, but now statusline
and messages no longer interfere with each other thanks to the message
grid, etc., and terminal refreshing no longer calls update_screen()
directly since #9883.

Tests from #7110 and #10107 still pass.
2025-10-08 06:29:00 +08:00
altermo
9e1d3f4870 feat(runtime): undotree #35627
Problem
No builtin way to visualize and navigate the undo-tree.

Solution
Include an "opt" plugin.
2025-10-07 14:32:22 -07:00
Evgeni Chasnovski
3b860653ca fix(pack): handle lockfile in case of install errors #36064
Problem: If plugin was intended to install but there were errors (like
  if there is a typo in `src`), lockfile still includes its entry.
  This leads to all source of problems (like not correct `get()` output,
  not working `update()`, etc.).

Solution: Explicitly account for plugins that were not installed.
  Alternative solution might be to write a safe
  `lock_set(plug, field, value)` wrapper (which sets field for a correct
  `plugins` entry in the lockfile Lua table) and use it after install
  to detect the change in `version`. However, this always requires
  an extra pass through plugins on every startup, which is suboptimal.
  Optimizing for the "happy path" should be a priority in `add()`.
2025-10-07 12:24:23 -07:00
Maria Solano
006101360d fix(lsp): use LSP method type in more places (#36069) 2025-10-07 11:17:40 -04:00
zeertzjq
a4006360f1 Merge pull request #36052 from janlazo/vim-8.1.1978
vim-patch:8.1.{1978,1981}
2025-10-07 10:20:48 +08:00
zeertzjq
d9153d620a vim-patch:9.1.1833: completion: fuzzy candidates are not sorted (#36062)
Problem:  completion: fuzzy candidates are not sorted
          (ddad431)
Solution: Always sort fuzzy candidates (Girish Palya)

fixes: vim/vim#18488
closes: vim/vim#18497

10aa04e3d4

Co-authored-by: Girish Palya <girishji@gmail.com>
2025-10-07 10:02:11 +08:00
Jan Edmund Lazo
3051e8bbb1 vim-patch:8.1.1981: the evalfunc.c file is too big
Problem:    The evalfunc.c file is too big.
Solution:   Move undo functions to undo.c.  Move cmdline functions to
            ex_getln.c.  Move some container functions to list.c.

08c308aeb5

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2025-10-06 20:56:38 -04:00
Jan Edmund Lazo
ed0f46af62 vim-patch:8.1.1978: the eval.c file is too big
Problem:    The eval.c file is too big.
Solution:   Move filter() and map() to list.c.

1e1d30048e

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2025-10-06 20:56:38 -04:00
zeertzjq
facde3dcbe vim-patch:8824526: runtime(zip): add *.pkpass to list of zip extensions (#36061)
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: vim/vim#18501

882452644c

Co-authored-by: MultisampledNight <contact@multisamplednight.com>
2025-10-07 00:08:22 +00:00
zeertzjq
1c4e0e5044 vim-patch:cd6e209: runtime(kerml): update KerML comments to handle more cases (#36060)
closes: vim/vim#18502

cd6e209651

Co-authored-by: Daumantas Kavolis <daumantas.kavolis@sensmetry.com>
2025-10-06 23:53:47 +00:00
zeertzjq
c2a196f19b vim-patch:adc729c: runtime(doc): fix typo in :h credits section (#36048)
adc729cd32

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-10-05 23:32:59 +00:00
Sean Dewar
7923e847ca vim-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: vim/vim#18481

620c655677

Nvim: calling win_new_width over setting w_width directly is especially
important in making sure stuff like w_view_width is correct here.

Co-authored-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
2025-10-05 23:30:23 +01:00
zeertzjq
a4a8838178 vim-patch:9.1.1829: filetype: KerML and SysML files are not recognized (#36042)
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: vim/vim#18476

b73ccf7ff0

Co-authored-by: Daumantas Kavolis <daumantas.kavolis@sensmetry.com>
2025-10-06 06:07:41 +08:00
zeertzjq
6fefdd6b53 Merge pull request #36035 from janlazo/vim-8.1.1957
vim-patch:8.1.1957,8.2.0200
2025-10-06 06:05:43 +08:00
Maria Solano
729e0acd26 feat(lsp): pass client ID in code action filter (#36046) 2025-10-05 15:02:00 -07:00
Maria Solano
bcc9242bc7 fix: remove quotes around nil deprecation alternatives (#36047) 2025-10-05 14:39:23 -07:00