Commit Graph

240 Commits

Author SHA1 Message Date
Justin M. Keyes
7ecab736f5 ci: no AI advertisements #41492
Problem:
Claude and friends love to sprinkle advertisements in commit messages.

Solution:
Allow a generic "AI-assisted" token only.
Reject useless mentions of AI services, sessions, and other cringe.

Disclosure: This PR was authored by an sapient turnip 🫜, raised in
moist, fluffy soil, tilled by the blurry wings of a hummingbird.
2026-08-25 15:42:33 -04:00
Jan Edmund Lazo
5009467965 build(vim-patch): v9.0.1760 is n/a 2026-08-23 22:44:13 -04:00
Jan Edmund Lazo
15f6b7a7f5 build(vim-patch): vim9 uf_type_list is n/a
From v8.2.0149 .
Target v9.0.1605 .
2026-08-23 22:44:13 -04:00
Jan Edmund Lazo
805bf3c81c build(vim-patch): v9.0.0627 is n/a 2026-08-23 22:44:13 -04:00
Jan Edmund Lazo
9744c76af0 build(vim-patch): v8.2.2331 is n/a
Vim9script variable declaration via const/final
2026-08-23 22:44:13 -04:00
Jan Edmund Lazo
042e337861 fix(vim-patch): sync list_vimpatch_tokens(), list_vimpatch_numbers() #41440
Developer and CI may think a Vim patch is merged
but list_vimpatch_numbers() and the "version.c" update suggest
otherwise.
2026-08-23 07:37:03 -04:00
Jan Edmund Lazo
39a7b68539 feat(vim-patch): ignore vim-patch tokens from commit list
Sort vimpatch_commit_ignore.txt based on "git log" order
else "diff" fails to filter out reverted vim-patch tokens.
Put latest commit to revert on top of file.
2026-08-21 22:42:45 -04:00
Jan Edmund Lazo
03ec1b37d3 fix(vim-patch): :redrawtabpanel regexp, delay grep on hunk
Too many suggestions in
bcf116cc2f

Multi-line grep on the hunk contents before filtering by hunk header
prevents vim-patch.sh from detecting v8.1.2195 and v8.1.2219 as N/A.

Revisit multi-line parsing for `runtime/doc/*.txt`
when Vim v9.2+ has new runtime/doc/ patches
about features that require "has()/exists()" guards.
2026-08-20 22:20:24 -04:00
Jan Edmund Lazo
3e487dd145 build(vim-patch): n/a tabpanel docs from v9.1.1391 2026-08-19 01:24:03 -04:00
Jan Edmund Lazo
c8da9f3df2 build(vim-patch): n/a patterns for popupwin. v9.2.0636 2026-08-19 00:49:08 -04:00
Jan Edmund Lazo
a98858651e build(vim-patch): n/a docs from 9.0.1481, keep hunks without header
switch/case and goto labels v9.0.1481 and similar patches
from auto-N/A.
Blacklist as much as possible to auto-N/A later crypt patches.

Hunks without header in "*.h" is valid if only littered with #ifdefs
or change is isolated to 1st line
but "src/feature.h" should be mostly N/A
after Nvim removed "FEAT_" guards.
Wonder if certain patches with only "*.h" changes were mistakenly
marked N/A.
2026-08-18 21:40:04 -04:00
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 Lazo
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)

46cd43bda1

----

"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
zeertzjq
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

fc00006777

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