aboutsummaryrefslogtreecommitdiff
path: root/scripts/vim-patch.sh
Commit message (Collapse)AuthorAge
...
* build(vim-patch): n/a popup_ api #41270Jan Edmund Lazo2026-08-12
| | | | | | | | | | | | - 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:" .
* build(vim-patch): sound feature is n/a (#41257)Jan Edmund Lazo2026-08-10
| | | | | | | | 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.
* build(vim-patch): n/a patches from comments, ifdefs #41247Jan Edmund Lazo2026-08-09
| | | | | | | 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
* build(vim-patch): vim9 check_typval_type() is n/aJan Edmund Lazo2026-08-07
| | | | v8.2.1551
* build(vim-patch): os makefile for tests are n/aJan Edmund Lazo2026-08-06
| | | | | | | | | 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.
* build(vim-patch): runnvim should make redir_test_to_null n/aJan Edmund Lazo2026-08-06
| | | | | Prior patches for it are marked n/a. Target v8.2.2630 .
* build(vim-patch): vim9 error 1103 is n/aJan Edmund Lazo2026-08-06
| | | | v8.2.1341
* build(vim-patch): vim9 skip_type() is n/aJan Edmund Lazo2026-08-06
| | | | v8.2.1300
* build(vim-patch): python2 test is n/aJan Edmund Lazo2026-08-05
| | | | | | | 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 .
* build(vim-patch): misc n/a funcs, headers, err msgs #41116Jan Edmund Lazo2026-08-03
| | | | | | | | | | | | | | | | | | | * 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
* build(vim-patch): n/a vim9 struct from *.hJan Edmund Lazo2026-08-01
| | | | | | | | 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.
* build(vim-patch): N/A prop func defs, n/a vim9 type vars (#41089)Jan Edmund Lazo2026-08-01
|
* build(vim-patch): N/A diffs from vim9 err msgs #41070Jan Edmund Lazo2026-07-31
|
* build(vim-patch): ':vim9' is n/aJan Edmund Lazo2026-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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`.
* build(vim-patch): skip doc for n/a featuresJan Edmund Lazo2026-07-27
| | | | | | | | | | | | | | | | | | | | 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'
* build(vim-patch): detect N/A tags in vimhelp patches #40942Jan Edmund Lazo2026-07-25
| | | | | | | | | | | | 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.
* fix(vim-patch.sh): omit gpg for git-log #37173Jan Edmund Lazo2026-07-24
| | | | | "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.
* build(vim-patch): n/a runtime/doc/*.txt updatesJan Edmund Lazo2026-07-23
| | | | | | | | - Vim version header (date) - N/A Vimscript functions - "listener_" and "redraw_listener_" API - N/A line changes - "^.*{.* compiled with .*}$"
* build(vim-patch): ignore amount of whitespace changeJan Edmund Lazo2026-07-18
| | | | | | | | | | | 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
* build(vim-patch): '#ifdef FEAT_' tweaking is N/A #40785Jan Edmund Lazo2026-07-17
| | | | | | | | | | | | 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
* build(vim-patch): N/A runtime/doc/*.txt changesJan Edmund Lazo2026-07-14
| | | | | | | | 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.
* Merge #40473 from janlazo/vimpatch_na_cfuncsJustin M. Keyes2026-07-12
|\ | | | | build(vim-patch): detect N/A C files based on diff
| * build(vim-patch): version.c "included_patches[]" is N/AJan Edmund Lazo2026-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * build(vim-patch): detect N/A C files based on diffJan Edmund Lazo2026-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | refactor(insert): rename edit.c => insert.c #40705Justin M. Keyes2026-07-12
| | | | | | | | | | | | | | | | | | | | 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`.
* | refactor(input): rename getchar.c => input.c #40698Justin M. Keyes2026-07-12
|/ | | | | | | | | | | | 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.
* vim-patch:8.2.0904: assuming modifyOtherKeys for rhs of mapping (#38970)Jan Edmund Lazo2026-04-12
| | | | | | | | | | | | | | | | 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>
* vim-patch:fc00006: runtime(sieve): preserve existing line endings in ↵zeertzjq2026-01-10
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* build(vim-patch): update Vim N/A file/regexp (#37049)Jan Edmund Lazo2026-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* feat(vim-patch.sh): -M lists all ported patchesJan Edmund Lazo2025-12-01
| | | | | | | | | | | 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.
* ci: check URL reachability #35593Yochem van Rosmalen2025-11-18
| | | | | | | | | | | | | | 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.
* fix(vim-patch.sh): 'vim-patch:<hash>' token for 'non-patch' commits #36534Jan Edmund Lazo2025-11-12
| | | | | 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.
* fix(vim-patch.sh): don't treat 1-file runtime-only patch as N/A (#36525)zeertzjq2025-11-12
| | | | | | | | 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.
* feat(vim-patch.sh): add n flag to list possible N/A patches (#36431)Jan Edmund Lazo2025-11-11
| | | | | | | | | | | | | 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
* docs: rename l10n help files #36377Justin M. Keyes2025-10-28
|
* vim-patch:8.2.3962: build fails for missing error messageJan Edmund Lazo2025-10-12
| | | | | | | | | 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>
* vim-patch:8.1.1978: the eval.c file is too bigJan Edmund Lazo2025-10-06
| | | | | | | | | 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>
* build(vim-patch.sh): fix new files matching pattern not removedzeertzjq2025-09-27
|
* build(vim-patch.sh): ignore runtime/*/testdir/Eisuke Kawashima2025-09-27
| | | | tracked files are removed
* vim-patch:9.1.1626: cindent: does not handle compound literals (#35319)zeertzjq2025-08-12
| | | | | | | | | | | | | | | | | 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>
* docs: lsp, ui events, dev guidance, osc7Justin M. Keyes2025-07-28
| | | | fix #34981
* build(vim-patch.sh): remove vim.pot (#34964)zeertzjq2025-07-17
| | | This file is updated on almost every source change like version.c.
* docs: rename builtin.txt, eval.txt #34212Phạm Bình An2025-05-30
| | | | | | | | | | | | Problem: Despite the name, `builtin.txt` only includes Vimscript functions, which is confusing, especially to people who only use Lua to configure Nvim Solution: From justinmk's suggestion - Rename `builtin.txt` to `vimfn.txt` - Rename `eval.txt` to `vimeval.txt` - The tags `*builtin.txt*` and `*eval.txt*` should be kept for Vim-patches Closes #33743
* vim-patch: make gen_opt_test.vim work with Nvim (#30850)zeertzjq2024-10-18
| | | | | | | Problem: Insufficient test coverage for validation of option values. Solution: Port Vim's gen_opt_test.vim and make it work with Nvim. vim-patch:9.1.0760: tests: no error reported, if gen_opt_test.vim fails vim-patch:9.1.0791: tests: errors in gen_opt_test.vim are not shown
* docs(tui): rename term.txt, nvim_terminal_emulator.txt #30398Justin M. Keyes2024-09-18
| | | | | | | | | | | | Problem: It has long been a convention that references to the builtin terminal UI should mention "tui", not "term", in order to avoid ambiguity vs the builtin `:terminal` feature. The final step was to rename term.txt; let's that step. Solution: - rename term.txt => tui.txt - rename nvim_terminal_emulator.txt => terminal.txt - `gen_help_html.lua`: generate redirects for renamed pages.
* build(vim-patch.sh): use 7 hex digits for runtime patch file name (#29940)zeertzjq2024-08-01
| | | | 7 digits are used in commit message, so also using this in patch file name allows its proper deletion on PR creation.
* build(vim-patch.sh): don't ignore changes to version*.txt (#29425)zeertzjq2024-06-20
| | | | | | | Suggest adding them to news.txt instead. Also don't ignore changes to intro.txt and sponsor.txt, as they don't change much these days, and it's necessary to consider whether to include their changes in Nvim's intro.txt.
* build(vim-patch.sh): include commit subject #28767Jongwook Choi2024-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: vim-patch commits lack an informative title and summary in the very first line of the commit message when the vim-revision is a Git SHA hash, unlike when is a Vim version. This makes it difficult to discern at a glance what changes are introduced by such vim-patch commits (in git log, PR title, changelog generated by git-cliff, etc.). BEFORE: vim-patch:abcdef123456 runtime(vim): improve performance <some details> ... Solution: Repeat the title of the upstream commit message, to improve the clarity and visibility of the commit message. AFTER: vim-patch:abcdef123456: runtime(vim): improve performance <some details> ... Note: the `vim-patch:<hash>` token is still needed by `vim-patch.sh` (but not necessarily in the very first line of the commit message) to determine which vim patches have been applied. `<hash>` is internally normalized to 7 hex digits.
* vim-patch:e84d2d4432cdChristian Clason2024-02-28
| | | | | | | | | | | | runtime(sh): Update ftplugin, fix vim/vim#14101 (vim/vim#14102) Add the 'b' flag to 'comments', so that the shebang line is not detected as comment. Fixes vim/vim#14101. https://github.com/vim/vim/commit/e84d2d4432cd6e43f2bb300d02abc90d551bcf4a Co-authored-by: dkearns <dougkearns@gmail.com>
* build(vim-patch.sh): don't add vim/vim to issue of another repo (#27493)zeertzjq2024-02-16
|