summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/vim-patch.sh
AgeCommit message (Collapse)AuthorFiles
2026-01-10vim-patch:fc00006: runtime(sieve): preserve existing line endings in ↵zeertzjq1
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-04build(vim-patch): update Vim N/A file/regexp (#37049)Jan Edmund Lazo1
* 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.
2025-12-01feat(vim-patch.sh): -M lists all ported patchesJan Edmund Lazo1
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-11-18ci: check URL reachability #35593Yochem van Rosmalen1
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-12fix(vim-patch.sh): 'vim-patch:<hash>' token for 'non-patch' commits #36534Jan Edmund Lazo1
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-12fix(vim-patch.sh): don't treat 1-file runtime-only patch as N/A (#36525)zeertzjq1
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-11feat(vim-patch.sh): add n flag to list possible N/A patches (#36431)Jan Edmund Lazo1
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-10-28docs: rename l10n help files #36377Justin M. Keyes1
2025-10-12vim-patch:8.2.3962: build fails for missing error messageJan Edmund Lazo1
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-06vim-patch:8.1.1978: the eval.c file is too bigJan Edmund Lazo1
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-09-27build(vim-patch.sh): fix new files matching pattern not removedzeertzjq1
2025-09-27build(vim-patch.sh): ignore runtime/*/testdir/Eisuke Kawashima1
tracked files are removed
2025-08-12vim-patch:9.1.1626: cindent: does not handle compound literals (#35319)zeertzjq1
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-07-28docs: lsp, ui events, dev guidance, osc7Justin M. Keyes1
fix #34981
2025-07-17build(vim-patch.sh): remove vim.pot (#34964)zeertzjq1
This file is updated on almost every source change like version.c.
2025-05-30docs: rename builtin.txt, eval.txt #34212Phạm Bình An1
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
2024-10-18vim-patch: make gen_opt_test.vim work with Nvim (#30850)zeertzjq1
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
2024-09-18docs(tui): rename term.txt, nvim_terminal_emulator.txt #30398Justin M. Keyes1
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.
2024-08-01build(vim-patch.sh): use 7 hex digits for runtime patch file name (#29940)zeertzjq1
7 digits are used in commit message, so also using this in patch file name allows its proper deletion on PR creation.
2024-06-20build(vim-patch.sh): don't ignore changes to version*.txt (#29425)zeertzjq1
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.
2024-05-21build(vim-patch.sh): include commit subject #28767Jongwook Choi1
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.
2024-02-28vim-patch:e84d2d4432cdChristian Clason1
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>
2024-02-16build(vim-patch.sh): don't add vim/vim to issue of another repo (#27493)zeertzjq1
2023-12-13docs: move vim-patch wiki page to runtime documentationdundargoc1
2023-11-13vim-patch: mark N/A 8.1 patches #26008Justin M. Keyes1
Problem: Numerous Vim 8.1 patches are listed by `vim-patch.sh -l`. Solution: Mark the following patches as N/A: obviated by $NVIM env var: vim-patch:8.1.0049 shell cannot tell running in a terminal window vim-patch:8.1.0050 $VIM_TERMINAL is also set when not in a terminal window 'termwinkey' is not supported by Nvim: vim-patch:8.1.0072 use of 'termwinkey' is inconsistent Nvim handles STOP signal via libuv: vim-patch:8.1.0304 no redraw when using a STOP signal on Vim and then CONT vim-patch:8.1.0312 wrong type for flags used in signal handlers Nvim does not have `parse_queued_messages`: vim-patch:8.1.0367 getchar(1) no longer processes pending messages N/A various: vim-patch:8.1.1396 'wincolor' does not apply to lines below the buffer vim-patch:8.1.1502 cannot play any sound vim-patch:8.1.1515 memory leak reported for sound when build with EXITFREE Nvim has extmarks instead of textprops: vim-patch:8.1.0579 cannot attach properties to text vim-patch:8.1.0582 text properties are not enabled vim-patch:8.1.0634 text properties cannot cross line boundaries vim-patch:8.1.0638 text property highlighting is off by one column vim-patch:8.1.0639 text properties test fails on MS-Windows vim-patch:8.1.0643 computing byte offset wrong vim-patch:8.1.0654 when deleting a line text property flags are not adjusted vim-patch:8.1.0655 when appending a line text property flags are not added vim-patch:8.1.0663 text property display wrong when 'number' is set vim-patch:8.1.0665 text property display wrong when 'spell' is set vim-patch:8.1.0667 textprop test leaves file behind vim-patch:8.1.0675 text property column in screen columns is not practical vim-patch:8.1.0676 textprop screendump test fails vim-patch:8.1.0681 text properties as not adjusted for deleted text vim-patch:8.1.0682 text properties not adjusted when backspacing replaced text vim-patch:8.1.0688 text properties are not restored by undo vim-patch:8.1.0689 undo with text properties not tested vim-patch:8.1.0690 setline() and setbufline() do not clear text properties vim-patch:8.1.0691 text properties are not adjusted for :substitute vim-patch:8.1.0694 when using text props may free memory that is not allocated vim-patch:8.1.0703 compiler warnings with 64-bit compiler vim-patch:8.1.0707 text property columns are not adjusted for changed indent vim-patch:8.1.0970 text properties test fails when 'encoding' is not utf-8 vim-patch:8.1.1035 prop_remove() second argument is not optional vim-patch:8.1.1276 cannot combine text properties with syntax highlighting vim-patch:8.1.1278 missing change for "combine" field vim-patch:8.1.1333 text properties don't always move after changes vim-patch:8.1.1337 get empty text prop when splitting line just after text prop vim-patch:8.1.1341 text properties are lost when joining lines vim-patch:8.1.1343 text properties not adjusted for Visual block mode delete vim-patch:8.1.1340 attributes from 'cursorline' overwrite textprop vim-patch:8.1.1351 text property wrong after :substitute vim-patch:8.1.1359 text property wrong after :substitute with backslash vim-patch:8.1.1387 calling prop_add() in an empty buffer doesn't work vim-patch:8.1.1388 errors when calling prop_remove() for an unloaded buffer vim-patch:8.1.1463 gcc warns for uninitialized variable N/A Nvim has buf_attach instead of "listeners": vim-patch:8.1.1320 it is not possible to track changes to a buffer vim-patch:8.1.1321 no docs or tests for listener functions vim-patch:8.1.1326 no test for listener with partial vim-patch:8.1.1328 no test for listener with undo operation vim-patch:8.1.1332 cannot flush listeners without redrawing, mix of changes vim-patch:8.1.1335 listener callback is called after inserting text vim-patch:8.1.1419 listener callbacks may be called recursively vim-patch:8.1.1486 a listener change is merged even when it adds a line N/A build issues: vim-patch:8.1.0601 a few compiler warnings vim-patch:8.1.0612 cannot use two global runtime dirs with configure vim-patch:8.1.0684 warnings from 64-bit compiler vim-patch:8.1.1344 Coverity complains about possibly using a NULL pointer vim-patch:8.1.1376 warnings for size_t/int mixups vim-patch:8.1.1414 alloc() returning "char_u *" causes a lot of type casts vim-patch:8.1.1508 sound keeps failing on Travis vim-patch:8.1.1494 build failure N/A terminal / job control patches: vim-patch:8.1.0761 default value for brief_wait is wrong vim-patch:8.1.0824 SunOS/Solaris has a problem with ttys vim-patch:8.1.0845 having job_status() free the job causes problems vim-patch:8.1.0870 Vim doesn't use the new ConPTY support in Windows 10 vim-patch:8.1.0880 MS-Windows: inconsistent selection of winpty/conpty vim-patch:8.1.0890 pty allocation wrong if using file for out channel vim-patch:8.1.0906 using clumsy way to get console window handle vim-patch:8.1.0909 MS-Windows: using ConPTY even though it is not stable vim-patch:8.1.0928 stray log function call vim-patch:8.1.0940 MS-Windows console resizing not handled properly vim-patch:8.1.1028 MS-Windows: memory leak when creating terminal fails vim-patch:8.1.1265 when GPM mouse support is enabled double clicks do not work vim-patch:8.1.1267 cannot check if GPM mouse support is working N/A encoding patches: vim-patch:8.1.0879 MS-Windows: temp name encoding can be wrong vim-patch:8.1.0895 MS-Windows: dealing with temp name encoding not quite right vim-patch:8.1.0918 MS-Windows: startup messages are not converted vim-patch:8.1.1090 MS-Windows: modify_fname() has problems with some 'encoding' N/A platform patches: vim-patch:8.1.1103 MS-Windows: old API calls are no longer needed N/A Lua patches: vim-patch:8.1.1019 Lua: may garbage collect function reference in use N/A Nvim has floating windows instead of popup window: vim-patch:8.1.1329 plans for popup window support are spread out vim-patch:8.1.1364 design for popup window support needs more details vim-patch:8.1.1391 no popup window support vim-patch:8.1.1400 using global pointer for tab-local popups is clumsy vim-patch:8.1.1399 popup windows not adjusted when switching tabs vim-patch:8.1.0062 popup menu broken if a callback changes the window layout vim-patch:8.1.1405 "highlight" option of popup windows not supported vim-patch:8.1.1406 popup_hide() and popup_show() not implemented yet vim-patch:8.1.1407 popup_create() does not support text properties vim-patch:8.1.1410 popup_move() is not implemented yet vim-patch:8.1.1402 "timer" option of popup windows not supported vim-patch:8.1.1408 PFL_HIDDEN conflicts with system header file vim-patch:8.1.1420 popup window size only uses first line length vim-patch:8.1.1421 drawing "~" line in popup window vim-patch:8.1.1422 popup_getoptions() not implemented yet vim-patch:8.1.1423 popup windows use options from current window and buffer vim-patch:8.1.1426 no test for syntax highlight in popup window vim-patch:8.1.1427 popup window screenshot test fails vim-patch:8.1.1428 popup_atcursor() not implemented yet vim-patch:8.1.1429 "pos" option of popup window not supported yet vim-patch:8.1.1430 popup window option "wrap" not supported vim-patch:8.1.1431 popup window listed as "Scratch" vim-patch:8.1.1432 can't build with eval feature vim-patch:8.1.1438 some commands cause trouble in a popup window vim-patch:8.1.1441 popup window filter not yet implemented vim-patch:8.1.1442 popup windows not considered when the Vim window is resized vim-patch:8.1.1443 popup window padding and border not implemented yet vim-patch:8.1.1444 not using double line characters for popup border vim-patch:8.1.1445 popup window border highlight not implemented yet vim-patch:8.1.1446 popup window callback not implemented yet vim-patch:8.1.1447 not allowed to create an empty popup vim-patch:8.1.1448 statusline is sometimes drawn on top of popup vim-patch:8.1.1449 popup text truncated at end of screen vim-patch:8.1.1450 popup window positioning wrong when using padding or borders vim-patch:8.1.1451 CTRL-L does not clear screen with a popup window vim-patch:8.1.1452 line and col property of popup windows not properly checked vim-patch:8.1.1453 popup window "moved" property not implemented yet vim-patch:8.1.1455 popup_atcursor() not completely implemented vim-patch:8.1.1459 popup window border looks bad when 'ambiwidth' is "double" vim-patch:8.1.1460 popup window border characters may be wrong vim-patch:8.1.1416 popup_getposition() not implemented yet vim-patch:8.1.1493 redrawing with popups is slow and causes flicker vim-patch:8.1.1496 popup window height is not recomputed vim-patch:8.1.1499 ruler not updated after popup window was removed vim-patch:8.1.1511 matches in a popup window are not displayed properly vim-patch:8.1.1513 all popup functionality is in functions, except :popupclear vim-patch:8.1.1517 when a popup changes all windows are redrawn vim-patch:8.1.1518 crash when setting 'columns' while a popup is visible vim-patch:8.1.1520 popup windows are ignored when dealing with mouse position vim-patch:8.1.1521 when a popup window is closed the buffer remains vim-patch:8.1.1522 poup_notification() not implemented yet vim-patch:8.1.1495 memory access error vim-patch:8.1.1497 accessing memory beyond allocated space N/A already applied: vim-patch:8.1.1226 {not in Vi} remarks get in the way of useful help text vim-patch:8.1.1280 remarks about functionality not in Vi clutters the help
2023-09-30refactor: reorganize option header files (#25437)zeertzjq1
- Move vimoption_T to option.h - option_defs.h is for option-related types - option_vars.h corresponds to Vim's option.h - option_defs.h and option_vars.h don't include each other
2023-09-08build(vim-patch.sh): don't use control chars in command (#25044)zeertzjq1
2023-09-08build(vim-patch.sh): use older associative array syntaxzeertzjq1
2023-09-08build(vim-patch.sh): dereference annotated tags when listing (#25042)zeertzjq1
2023-08-23vim-patch:9.0.1773: cannot distinguish Forth and Fortran *.f files (#24841)zeertzjq1
Problem: cannot distinguish Forth and Fortran *.f files Solution: Add Filetype detection Code Also add *.4th as a Forth filetype closes: vim/vim#12251 https://github.com/vim/vim/commit/19a3bc3addf9b4aa8150a01b11b4249c67d15d3b Don't remove filetype files from Vim patches: - filetype.vim, script.vim, ft.vim usually contain useful changes - script.vim and ft.vim don't even have their paths spelled correctly Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2023-08-16build(vim-patch.sh): use sed -E for portable regexp (#24734)zeertzjq1
Also always use -e for consistency.
2023-08-13build(vim-patch.sh): rename locale.c to os/lang.c (#24687)zeertzjq1
2023-08-13build(vim-patch.sh): group co-authors together (#24686)zeertzjq1
2023-05-26build(vim-patch.sh): use bundled uncrustify (#23770)zeertzjq1
2023-05-09test(old): remove python2 tests (#23547)zeertzjq1
Because python2 provider is no longer supported.
2023-04-13build(vim-patch.sh): ignore test_behave.vim (#23062)zeertzjq1
2023-03-08test(old): move memfile_test.c to test/old/ (#22567)zeertzjq1
2023-03-07test: move oldtests to test directory (#22536)dundargoc1
The new oldtest directory is in test/old/testdir. The reason for this is that many tests have hardcoded the parent directory name to be 'testdir'.
2023-01-03feat!: remove hardcopyLewis Russell1
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2022-11-29vim-patch:8.1.2001: some source files are too big (#21231)zeertzjq1
Problem: Some source files are too big. Solution: Move buffer and window related functions to evalbuffer.c and evalwindow.c. (Yegappan Lakshmanan, closes vim/vim#4898) https://github.com/vim/vim/commit/261f346f8154c0ec7094a4a211c653c74e9f7c2e
2022-10-30build(vim-patch.sh): checkout files with path for uncrustify (#20863)zeertzjq1
2022-10-27build(vim-patch.sh): handle added/removed files properlyzeertzjq1
2022-10-24build: preprocess vim patches with uncrustify #20786dundargoc1
This will enable a larger amount of chunks being automatically included due to fewer formatting differences between the vim and neovim files. The strategy is straightforward, if a bit tedious: - Get a list of all changed files. - Checkout parent commit. Copy all relevant files to a temporary location. - Checkout patch commit. Copy all relevant files to a temporary location. - Format .c and .h files with uncrustify. - Generate a diff from from these files. Closes https://github.com/neovim/neovim/issues/6226
2022-10-23feat(vim-patch): mention original author #20772Maxime Brunet1
2022-10-21vim-patch: bump VIM_VERSION from 8.0 => 8.1 #20762Justin M. Keyes1
There are 6 remaining 8.0.x patches, tracked in: https://github.com/neovim/neovim/issues/5431
2022-10-17feat(runtime)!: remove filetype.vim (#20428)Christian Clason1
Made obsolete by now graduated `filetype.lua` (enabled by default). Note that changes or additions to the filetype detection still need to be made through a PR to vim/vim as we port the _logic_ as well as tests.
2022-10-13feat(cscope)!: removeLewis Russell1
2022-08-12refactor: move code dealing with script files to runtime.c (#19734)zeertzjq1
vim-patch:8.1.1927: code for dealing with script files is spread out Problem: Code for dealing with script files is spread out. Solution: Move the code to scriptfile.c. (Yegappan Lakshmanan, closes vim/vim#4861) https://github.com/vim/vim/commit/307c5a5bb77c3728dfab06c30e9f786309c63f74
2022-08-12vim-patch:8.1.1684: profiling functionality is spread outzeertzjq1
Problem: Profiling functionality is spread out. Solution: Put profiling functionality in profiling.c. (Yegappan Lakshmanan, closes vim/vim#4666) https://github.com/vim/vim/commit/fa55cfc69d2b14761e2a8bd85bc1e0d82df770aa Move proftime_T to types.h for now to avoid recursive #include.
2022-07-22refactor: move f_getbufvar() and f_setbufvar() to eval/vars.czeertzjq1
Vim moved them there in patch 8.1.1943.