Commit Graph
229 Commits
Author SHA1 Message Date
Jan Edmund Lazo e96be45bba build(vim-patch): v8.2.4153 is n/a 2026-08-16 23:28:43 -04:00
Jan Edmund Lazo cd71a13589 build(vim-patch): auto-n/a refactor patch like v8.2.0514
Follow-up refactor patches, mixed with unrelated patches in the middle,
is normal in vim-dev when the original patch is not fully tested
across all builds via CI or reviewed by others.

Unless core maintainers push "vim-patch:" directly to master/main branch
without running the full test-suite,
there is little reason to merge incomplete ports that will fail
on Nvim's CI or code review.

Relevant changes in patches like v8.2.0514 are either ported
or (will) become N/A.
2026-08-16 22:23:06 -04:00
Jan Edmund Lazo 5d1901b904 build(vim-patch): v9.1.0349 is n/a 2026-08-16 20:54:24 -04:00
Jan Edmund Lazo 9143da2a05 build(vim-patch): n/a vim9 patch 9.0.1821 2026-08-16 20:54:24 -04:00
Jan Edmund Lazo aef9356e34 build(vim-patch): fix compiled,popup-window regexp for '|' #41326
git "-I" regex seem to be "extended".
grep's default regex is "basic".
Fix regexps for switch/case "runtime/doc/*.txt"
based on the "*.h" switch/case.
2026-08-15 08:26:57 -04:00
Jan Edmund Lazo c7ee6af777 build(vim-patch): v8.1.2219 is n/a
Vim's TerminalWinOpen seems to be required because of Vim
buffer-job-popupwin implementation.
Based on the patch, I'm puzzled why fzf needs this on Vim.

Nvim's TermOpen, TermEnter, and detection mechanisms to know
if buffer is on a (active,visible) window should suffice to not port it.

If there was a feature request or issue without a merged fix,
then I can't find it.

https://github.com/junegunn/fzf/pull/2000
2026-08-15 00:24:09 -04:00
Jan Edmund Lazo d137073024 build(vim-patch): v8.1.2195 is n/a 2026-08-14 17:13:30 -04:00
Jan Edmund Lazo 692e41bb66 build(vim-patch): v8.1.1713 is n/a 2026-08-14 17:13:29 -04:00
Jan Edmund Lazo 2b232a9d6e build(vim-patch): v8.1.1628 docs are n/a 2026-08-14 17:13:29 -04:00
Jan Edmund Lazo 1b79a5ff61 build(vim-patch): n/a popup_ api #41270
- enums
- macros
- struct members
- popup_.*()

8.1.1523

* build(vim-patch): 8.1.0863 is almost auto n/a

Can't ignore os_unix.c hunk for "failed:" .
2026-08-12 08:32:21 -04:00
Jan Edmund Lazo 2450ae797c build(vim-patch): sound feature is n/a (#41257)
Vim core did not leverage it to override/customize bell/beep.
It wasn't used for custom sounds for system/user (autocmd) events.
It should be in-scope for GUI, unlike terminal, even as a plugin
by leveraging some internal option similar to `set guioptions+=!`.

No progress as of Vim 9.2 so I quit.
2026-08-10 04:29:42 +00:00
Jan Edmund Lazo 04f802a2f6 build(vim-patch): n/a patches from comments, ifdefs #41247
vim-patch.sh fails to detect n/a patches
because of ifdef FEAT_ guards and reserved Vim9script error codes.

Ignore all conditional directives for Vim's "FEAT_" guards.
https://cppreference.com/c/preprocessor/conditional
2026-08-09 06:49:05 -04:00
Jan Edmund Lazo 906639e34b build(vim-patch): vim9 check_typval_type() is n/a
v8.2.1551
2026-08-07 14:59:37 -04:00
Jan Edmund Lazo 107b806bbe build(vim-patch): os makefile for tests are n/a
Following remain relevant:

- src/testdir/Makefile (default setup in Unix-like OS)
- src/testdir/Make_all.mak (define old/new style Vim tests)

Rest are n/a because Nvim runs Vim's tests on GHA Windows runner.
2026-08-06 23:15:57 -04:00
Jan Edmund Lazo 2b7c53be42 build(vim-patch): runnvim should make redir_test_to_null n/a
Prior patches for it are marked n/a.
Target v8.2.2630 .
2026-08-06 19:33:45 -04:00
Jan Edmund Lazo 12d9f33c15 build(vim-patch): vim9 error 1103 is n/a
v8.2.1341
2026-08-06 13:17:05 -04:00
Jan Edmund Lazo 693de029bc build(vim-patch): vim9 skip_type() is n/a
v8.2.1300
2026-08-06 12:53:47 -04:00
Jan Edmund Lazo 4ea4c80ae6 build(vim-patch): python2 test is n/a
Target v8.2.1120 .
Removed since https://github.com/neovim/neovim/pull/3074.
Nvim removed EOL versions in
https://github.com/neovim/neovim/pull/17222 .
2026-08-05 18:34:52 -04:00
Jan Edmund Lazo 0aed30b4de build(vim-patch): misc n/a funcs, headers, err msgs #41116
* build(vim-patch): n/a func in version.c

init_longVersion() sets datetime for ":version".
Nvim removed it for more deterministic builds.

* build(vim-patch): n/a header from amiga

* build(vim-patch): n/a vim9 err msg for declaring vars

* build(vim-patch): nvim support.txt replaces *os-support*

* build(vim-patch): vim xdg is n/a

* build(vim-patch): n/a 1-line err msg

Vim error message can be 1-line (globals.h), not multi-line (errors.h).
Target v8.2.1032
2026-08-03 05:33:32 -04:00
Jan Edmund Lazo d95b0fc12c build(vim-patch): n/a vim9 struct from *.h
Target v8.2.0543
This can catch stray '#define' but they're most likely 'TTFLAG' for
Vim9 types. N/A.
TTFLAG is used in 'static_types[]'.
See v9.0.0623.
2026-08-01 09:14:13 -04:00
Jan Edmund Lazo 9fbcb28ea6 build(vim-patch): N/A prop func defs, n/a vim9 type vars (#41089) 2026-08-01 06:23:08 -04:00
Jan Edmund Lazo 02a25caa1b build(vim-patch): N/A diffs from vim9 err msgs #41070 2026-07-31 05:09:43 -04:00
Jan Edmund Lazo a3b85b9a4d build(vim-patch): ':vim9' is n/a
1. Vim9 error messages, ex commands, are N/A.
2. ":scriptversion" is N/A:
3. Most `#.*define.*ex_ni$` are N/A
   because `FEAT_` compile guards are N/A.

----

Target patch: v8.2.2238

Actual patch list:

```
vim-patch:8.2.4240: error for using flatten() in Vim9 script is unclear
vim-patch:9.0.0170: various minor code formatting issues
vim-patch:9.1.0356: MS-Windows: --remote may change working directory
vim-patch:9.2.0251: Link error when building without channel feature
vim-patch:9.2.0714: Coverity warns for NULL deref
vim-patch:9.2.0818: tests: client-server test fails without X11 server
vim-patch:9.2.0868: GTK: Window Manager hint prevents giving focus to dialog
```

----

Ignore diff blanklines via regex ("-I"), not "--ignore-blank-lines".
Almost useless.
I tried with/without "--word-diff=porcelain", "--word-diff-regex",
and diff algorithms like `--histogram`.
2026-07-30 01:21:07 -04:00
Jan Edmund Lazo 6dc755ee09 build(vim-patch): skip doc for n/a features
Fix xfuncname to support tags that target Vim mappings, options.

- events
- options
    - *'luadll'*
    - *'mzschemedll'*
    - *'mzschemegcdll'*
    - *'perldll'*
    - *'pythondll'*
    - *'pythonthreedll'*
    - *'rubydll'*
    - *'tcldll'*
    - *'winptydll'*
    - t_.+, termcap opts
- internal variables
- cli flags
- ':h emacs-tags'
2026-07-27 01:20:35 -04:00
Jan Edmund Lazo 43a0258f55 build(vim-patch): detect N/A tags in vimhelp patches #40942
Vim patches for Vim help files must use Vim tags as diff hunk header
to reliably detect if a hunk is N/A or not.
Git does not know which files are Vim help files
so that it can use custom "diff.<filetype>.xfuncname" regexp
to create the header.

Update Neovim's gitattributes to detect Vim help files
and then use it on vim-patch.sh to scan Vim patches.
Add non-function tags from ":h vim_diff"
to detect N/A Vim runtime patches.
2026-07-25 12:16:03 -04:00
Jan Edmund Lazo 3d5d2ad4a9 fix(vim-patch.sh): omit gpg for git-log #37173
"vim-patch.sh -L" includes gpg signature for "log.showSignature=true"
in user's .gitconfig.
vim-patch.sh expects no signature for 1-line output per patch.
2026-07-24 08:37:47 -04:00
Jan Edmund Lazo 800e12ac8a build(vim-patch): n/a runtime/doc/*.txt updates
- Vim version header (date)
- N/A Vimscript functions
    - "listener_" and "redraw_listener_" API
- N/A line changes
    - "^.*{.* compiled with .*}$"
2026-07-23 08:56:22 -04:00
Jan Edmund Lazo 9536d35099 build(vim-patch): ignore amount of whitespace change
Patch 9.1.1363 is N/A after ignoring whitespace.

-----

Unrelated N/A patches
vim-patch:8.1.1985: code for dealing with paths is spread out

https://github.com/neovim/neovim/pull/36125#issuecomment-5012670153
2026-07-18 16:09:17 -04:00
Jan Edmund Lazo 0d92bf3761 build(vim-patch): '#ifdef FEAT_' tweaking is N/A #40785
Filter out `#ifdef` line changes when analyzing C files (*.c, *.h)
via git "-I" flag.

```
-I<regex>
--ignore-matching-lines=<regex>
Ignore changes whose all lines match <regex>. This option may be specified more than once.
```

- https://git-scm.com/docs/diff-options#Documentation/diff-options.txt--Iregex
2026-07-17 07:16:31 -04:00
Jan Edmund Lazo 2e9b06caf7 build(vim-patch): N/A runtime/doc/*.txt changes
Vim's runtime/doc/*.txt may change the 1st line only
for publish datetime.
Nvim removed those datetimes.

TODO - src/version.h for vX.Y.0000 patch.
2026-07-14 01:03:57 -04:00
Justin M. Keyes 17f13ab338 Merge #40473 from janlazo/vimpatch_na_cfuncs
build(vim-patch): detect N/A C files based on diff
2026-07-12 12:13:20 -04:00
Justin M. Keyes 81c4c295ac refactor(insert): rename edit.c => insert.c #40705
Problem:
- `edit.c` is an unnecessarily misleading and less-discoverable name
  than `insert.c`.
- Numerous insert-mode related things are named with a `ins_` prefix.
- There is already a `insexpand.c` module...

Solution:
Rename `edit.c` => `insert.c`.
2026-07-12 11:57:17 -04:00
Justin M. Keyes d25ae8b8c2 refactor(input): rename getchar.c => input.c #40698
Problem:
`getchar.c` is a quirky name and doesn't align with our existing
`os/input.c` and `tui/input.c` modules, which encompass the same topic
at different layers.

Solution:
Rename `getchar.c` => `input.c` for discoverability.

Introduce `dialog.c` for functionality related to showing confirm
prompts, dialogs, etc.
2026-07-12 08:34:13 -04:00
Jan Edmund Lazo e618d279b8 build(vim-patch): version.c "included_patches[]" is N/A
Nvim relies on commit history for automated updates
to ported Vim patches across Vim releases via "included_patchsets[]".
Each Vim commit is suppose to manually adjust "included_patches[]"
but it is prone to human error such that vim-patch.sh found
the following N/A commits:

```
495282b6e Correct list of patch numbers
85d9b03f8 Correct list of patches.
```

Prior to this commit, vim-patch doesn't find the following N/A commit:

```
9.0.2172: Vim9: compiling :defer may fail
```

https://github.com/neovim/neovim/pull/40519#issuecomment-4850337525
2026-07-06 09:51:27 -04:00
Jan Edmund Lazo 384a9c451a build(vim-patch): detect N/A C files based on diff
vim_na_cfuncs.txt lists Vim C functions that are N/A to Nvim.
Listed in 'src/proto/*.proto' files.
Based on ':h vim-diff'.

- features (ie. balloon, tabpanel)
- Ex-commands
- eval functions (ie. f_err_teapot())

On top of the existing algorithm,
scan diff hunks on C files to filter out N/A C functions.
If the remaining hunk contains applicable changes,
then the patch is applicable.
If the patch does not modify C files, then it is likely applicable.
2026-07-06 09:51:27 -04:00
Jan Edmund LazoandBram Moolenaar 56fe6713ca vim-patch:8.2.0904: assuming modifyOtherKeys for rhs of mapping (#38970)
Problem:    Assuming modifyOtherKeys for rhs of mapping.
Solution:   Ignore seenModifyOtherKeys for mapped characters. (closes vim/vim#6200)

https://github.com/vim/vim/commit/46cd43bda102c3782bba1c4c629836e010734d77

----

"getchar.c" changes depend on patch 8.1.2145.
Can't port it due to tests.
"test_gui.vim" doesn't depend on GUI for all tests.

----

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2026-04-12 07:07:16 +08:00
d1f7672bc9 vim-patch:fc00006: runtime(sieve): preserve existing line endings in ftplugin (#37334)
Only set fileformat=dos for new files; preserve existing line endings
when editing. This satisfies RFC 5228 for new files while avoiding
issues with version control and existing workflows.

The previous change (3cb4148) unconditionally set fileformat=dos, which
converts existing files with LF line endings to CRLF on save. This
causes issues with version control (entire file appears changed) and
breaks workflows where sieve files are stored with unix line endings.

Dovecot Pigeonhole (the main sieve implementation) has explicitly
accepted LF line endings since 2008 (commit 97b967b5):
  /* Loose LF is allowed (non-standard) and converted to CRLF */
This behavior has remained unchanged for almost 18 years.

closes: vim/vim#19144

https://github.com/vim/vim/commit/fc00006777594f969ba8fcff676e6ca1bcb43546

Co-authored-by: André-Patrick Bubel <code@apb.name>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:07:58 +08:00
Jan Edmund Lazo d548b52b0f build(vim-patch): update Vim N/A file/regexp (#37049)
* fix(vim-patch): test_codestyle.vim is NA

Neovim has make lint, specifically clint.lua.
Unless vim9jit, https://github.com/tjdevries/vim9jit, or similar tool
compiles vim9 "test" code into lua, it's futile to port it.

* fix(vim-patch): NA files from dev_vimpatch.txt

- channel
- json
- job
- term
- terminal

Nvim has its own incompatible implementation or uses 3rd-party
libraries (ie. libuv, libtermkey).

* fix(vim-patch): term.c is applicable for replace_termcodes()

* fix(vim-patch/na): blowfish,dlldata,iid_ole,nbdebug,os_w32

blowfish is for encryption.
dlldata,iid_ole,os_w32 are for Windows (GUI, registry, entry point).
Nvim doesn't need them to be installed on Windows.

nbdebug.[ch] is for Netbeans Debugging Tools.
They're N/A.

* fix(vim-patch): runtime/

Nvim has its own documentation for development

- runtime/doc/debug.txt
- runtime/doc/develop.txt

N/A since the beginning:

- runtime/doc/os_haiku.txt
- runtime/doc/pi_logipat.txt
- runtime/doc/quotes.txt
- runtime/plugin/logiPat.vim
- runtime/plugin/manpager.vim
- runtime/tools/demoserver.py
- runtime/spell/.*\.latin1

Vim9 is N/A.

- runtime/doc/os_haiku.txt

* fix(vim-patch): src/

win32yank replaces "src/winclip.c".
Vim's desktop files are N/A.
Nvim removed 'termencoding'.
Nvim doesn't use Vim's lsan-suppress.txt to configures LSAN.
2026-01-04 14:15:23 +08:00
Jan Edmund Lazo 361671870e feat(vim-patch.sh): -M lists all ported patches
Start from current "v:version".
Exclude reverted patches.
Normalize left-zero-pad patch numbers to avoid grep inverse pattern
file like scripts/vim_na_regexp.txt.
Track reverted patches in vimpatch_token_reverts.txt
because no convention in git-log.

TODO: Track patch numbers per v:version in version.c.
2025-12-01 02:34:51 -05:00
Yochem van Rosmalen a468bc573d ci: check URL reachability #35593
Problem:
scripts/check_urls.vim manually matches urls in the help pages and then
synchronously checks them via curl/wget/powershell. This is extremely
slow (~5 minutes for Nvims runtime on my machine) and prone to errors in
how the urls are matched.

Solution:
- Use Tree-sitter to find the urls in the help pages and `vim.net.request` to
  check the responses.
- Add a `lintdocurls` build task and check it in CI (every Friday).
  - Reopens a dedicated issue if it finds unreachable URLs.
- Drop the old check_urls.vim script.
2025-11-18 12:35:22 -08:00
Jan Edmund Lazo d2517acdc5 fix(vim-patch.sh): 'vim-patch:<hash>' token for 'non-patch' commits #36534
Vim may tag runtime-only commits without the 2-liner version.c change.
Inspect both tag and commit message to "guess" if it the patch
should go to version.c or not.
2025-11-12 20:46:22 -08:00
zeertzjq 8bce9342d1 fix(vim-patch.sh): don't treat 1-file runtime-only patch as N/A (#36525)
If the patch in question does not change src/version.c, `git log -1`
instead shows the previous patch that changes src/version.c, which
causes 1-file runtime-only patches to be considered N/A.

Check that the remaining file is src/version.c to fix this problem.
Also use `git diff-tree` instead of `git log -1` for version.c.
2025-11-12 14:45:20 +08:00
Jan Edmund Lazo 7fe02126f9 feat(vim-patch.sh): add n flag to list possible N/A patches (#36431)
Scan all unmerged Vim commits to determine which commits are N/A
for Neovim.
vim_na_regexp.txt contains the file patterns to filter out N/A files
in a Vim commit.
vim_na_files.txt contains "absolute filepath" of N/A files.
It relies on vim_na_regexp.txt to reduce file size.
If version.c remains and it has the expected 2-liner update,
then it's considered N/A.

https://github.com/neovim/neovim/discussions/36326
2025-11-11 03:09:44 +00:00
Justin M. Keyes 6dd6c5b523 docs: rename l10n help files #36377 2025-10-28 20:15:16 -07:00
Jan Edmund LazoandBram Moolenaar f211af3ab7 vim-patch:8.2.3962: build fails for missing error message
Problem:    Build fails for missing error message.
Solution:   Add changes in missed file.

https://github.com/vim/vim/commit/d0819d11ecdf3bca4b0800ef905091b5e175b6f4

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2025-10-12 23:33:20 -04:00
Jan Edmund LazoandBram Moolenaar 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.

https://github.com/vim/vim/commit/1e1d30048e722906a13665bd6c3c24c87eb2fe25

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2025-10-06 20:56:38 -04:00
zeertzjq 916ff94649 build(vim-patch.sh): fix new files matching pattern not removed 2025-09-27 18:55:48 +08:00
Eisuke Kawashima 2d8ed73143 build(vim-patch.sh): ignore runtime/*/testdir/
tracked files are removed
2025-09-27 18:55:43 +08:00
zeertzjqandAnttoni Erkkilä 35be59cc7b vim-patch:9.1.1626: cindent: does not handle compound literals (#35319)
Problem:  C-indent does not handle compound literals
          (@44100hertz, @Jorenar)
Solution: Detect and handle compound literal and structure
          initialization (Anttoni Erkkilä)

match '=' or "return" optionally followed by &, (typecast), {
Fixes also initialization which begins with multiple opening braces.

fixes: vim/vim#2090
fixes: vim/vim#12491
closes: vim/vim#17865

https://github.com/vim/vim/commit/5ba6e41d37ec29fc8360a4f06d4e95c63eb013ab

Co-authored-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
2025-08-12 23:21:09 +00:00
Justin M. Keyes 56a4ef3c21 docs: lsp, ui events, dev guidance, osc7
fix #34981
2025-07-28 22:00:25 -04:00