summaryrefslogtreecommitdiffstatshomepage
path: root/scripts
AgeCommit message (Collapse)AuthorFiles
2026-04-21Merge pull request #39076 from bfredl/zig0.16bfredl1
IT IS HAPPENING: Zig 0.16
2026-04-21fix(substitute): don't crash with very large count (#39272)zeertzjq1
2026-04-21fix(build): more changes to make zig 0.16.0 workbfredl1
2026-04-20fix(excmd): nlua_call_excmd require() failure is a "lua_error"Justin M. Keyes1
Although `nlua_call_excmd` is semantically for implementing Ex-commands, the `require()` should never fail, so that's a "Lua error". But if the call itself fails (the later `semsg` call), that's an "Ex cmd" error.
2026-04-18feat(vimfn): use Lua for more excmds/vimfnsJustin M. Keyes1
Problem: Too much boilerplate needed to use Lua to impl an excmd or f_xx function. Solution: - Add `nlua_call_vimfn` which takes the args typval, executes Lua, and returns a typval. - refactor(excmd): lua impl for :log, :lsp
2026-04-16test: lint EXX error codes #8155Justin M. Keyes1
Problem: - Choosing a new EXX error code is tedious. - It's possible to accidentally use an EXX error code for different purposes. Solution: Add a lint check which requires EXX error codes to have a :help tag. This also avoids duplicates because `make doc` does `:helptags ++t doc` which fails if duplicates are found.
2026-04-16test: lint naming conventions #39117Justin M. Keyes1
Problem: Naming conventions are not automatically checked. Solution: Add a check to the doc generator. Eventually we should extract this somehow, but that will require refactoring the doc generator... Note: this also checks non-public functions, basically anything that passes through `gen_eval_files.lua` and `gen_vimdoc.lua`. And that's a good thing.
2026-04-14feat(build): rename `io.neovim.nvim` to `org.neovim.nvim`Olivia Kinnear2
2026-04-14fix(build): fix `make appimage`Olivia Kinnear2
2026-04-12vim-patch:8.2.0904: assuming modifyOtherKeys for rhs of mapping (#38970)Jan Edmund Lazo1
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-11vim-patch:8.2.0898: missing help for a function goes unnoticedJan Edmund Lazo1
Problem: Missing help for a function goes unnoticed. Solution: Add a test. (Gary Johnson) https://github.com/vim/vim/commit/6b0e528368415476bfc3a8414c9c70f9852b1517 ---- Test relies on parsing runtime/doc/*.txt and src/evalfunc.c . Error-prone because Vim and Nvim diverged on both documentation and source code in spite of ported Vim patches. Importing src/nvim/eval.lua is an alternative but it uses associatve index such that it's unsorted. Treat it as N/A because I can't rewrite any of its tests under minimal effort. ---- Co-authored-by: Bram Moolenaar <Bram@vim.org>
2026-04-01build(vim-patch): N/A runtime files (#38666)Jan Edmund Lazo1
* fix(vim-patch): runtime/doc/print.txt is N/A - https://github.com/neovim/neovim/issues/21471 * fix(vim-patch): test_urls.vim is N/A - https://github.com/neovim/neovim/pull/35593
2026-03-29ci(lintcommit): allow "NVIM vx.y.z" commit message #38563Justin M. Keyes2
2026-03-30vim-patch:9.1.0327,9.2.0019 (#38567)Jan Edmund Lazo1
* vim-patch:9.2.0019: Hard to configure Vim according to full XDG spec Problem: Hard to configure Vim according to full XDG spec Solution: Include the $VIMRUNTIME/xdg.vim script as an example. (Andrey Butirsky). closes: vim/vim#19421 ---- Nvim already supports XDG spec and provides 'stdpath()'. runtime/xdg.vim is N/A. ---- https://github.com/vim/vim/commit/4f04efb760af4f51975091ace7605c3dbd01d0c9 * vim-patch:9.1.0327: No support for using $XDG_CONFIG_HOME Problem: No support for using $XDG_CONFIG_HOME Solution: optionally source $XDG_CONFIG_HOME/vim/vimrc (Luca Saccarola) fixes: vim/vim#2034 closes: vim/vim#14182 --- test_xdg.vim can be applicable but it's a chore to swap "vimrc" with "init.vim" and comment out gvimrc in all tests. Nvim has enough XDG functional tests and runtime documentation. Vim eventually rewrites the screendump tests such that Nvim can run them in Unix-like systems. It's possible to just port the latest version and treat the older patches as N/A. --- https://github.com/vim/vim/commit/c9df1fb35a1866901c32df37dd39c8b39dbdb64a
2026-02-12fix(scripts): collect_typos.lua: show commit message on failureJustin M. Keyes1
2026-01-25fix(vim-patch): add N/A files and re-sort (#37544)Jan Edmund Lazo1
Nvim doesn't maintain runtime/macros/README.txt. Nvim has existing linting rules for preprocesor.
2026-01-25vim-patch:9.1.1984: terminal OSC52 support can be improved (#37543)Jan Edmund Lazo2
Problem: terminal OSC52 support to access the clipboard can be improved Solution: Include and package the optional osc52 package, note: this requires a Vim with clipboard provider feature (Foxe Chen). related: vim/vim#14995 closes: vim/vim#18575 https://github.com/vim/vim/commit/02b8ec7da52bb11e49d3e0d801eb0d349c73677e ---- Nvim has incompatible implementation for OSC52 clipboard provider. Vim9 is N/A. Co-authored-by: Foxe Chen <chen.foxe@gmail.com>
2026-01-15vim-patch:9.1.0697: [security]: heap-buffer-overflow in ins_typebuf (#37372)Jan Edmund Lazo1
Problem: heap-buffer-overflow in ins_typebuf (SuyueGuo) Solution: When flushing the typeahead buffer, validate that there is enough space left Github Advisory: https://github.com/vim/vim/security/advisories/GHSA-4ghr-c62x-cqfh https://github.com/vim/vim/commit/322ba9108612bead5eb7731ccb66763dec69ef1b Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-12build(vim-patch): Vim9 comment plugin is N/A (#37370)Jan Edmund Lazo2
Nvim has builtin 'gc' commenting, instead of bundling https://github.com/tpope/vim-commentary, partly for treesitter. Vim9 comment plugin, runtime/pack/dist/opt/comment/ seems to be based on https://github.com/habamax/.vim/blob/master/autoload/comment.vim which is similar to vim-commentary. test/functional/lua/comment_spec.lua has enough tests to justify skipping test_plugin_comment.vim. Vim's terminal + packadd + Vim9 test files is a chore to manually port. - https://github.com/neovim/neovim/commit/73de98256cf3932dca156fbfd0c82c1cc10d487e - https://github.com/vim/vim/pull/14634
2026-01-12docs: misc (#37281)zeertzjq1
Close #37289 Close #37348 Co-authored-by: Marc Jakobi <marc@jakobi.dev> Co-authored-by: Anton Kesy <anton@kesy.de>
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-05build(vim-patch): getscript plugin is N/A (#37247)Jan Edmund Lazo1
- https://github.com/neovim/neovim/issues/2231#issuecomment-89873348 - https://github.com/neovim/neovim/pull/3826
2026-01-04build(vim-patch): update Vim N/A file/regexp (#37049)Jan Edmund Lazo3
* 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(version): support multiple Vim versionsJan Edmund Lazo1
Group up to 15 vimpatch numbers in 1 line to guard against 'make formatc'. 1-liner for vim_versions, num_patches. Automate '*Version' to remove version.h macros. '-V1 -v' lists merged Vim versions.
2025-12-01feat(vim-patch.sh): -M lists all ported patchesJan Edmund Lazo3
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-30fix(tui): enable vtpcon strikethrough feature #36762Justin M. Keyes1
Problem: Strikethrough was not enabled for vtpcon thus preventing strikethrough text from being shown. Solution: Update `windows.ti`. Co-authored-by: ymich9963 <gmichael834@gmail.com> Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2025-11-27fix(appimage): wrong $ARCH used by linuxdeploy #36712Siwen Yu1
Problem: In scripts/genappimage.sh running on arm64 host, the $ARCH will be set to 'arm64' before calling linuxdeploy, which cause linuxdeploy to generate an 32bit ELF executable instead 64bit. See the issue for more details. Solution: Keep $ARCH unchanged, use $ARCH_OUTPUT in the output file name. On arm64 host, $ARCH_OUTPUT will be converted to 'arm64'.
2025-11-23docs: decode MIME-encoded author nameJustin M. Keyes1
2025-11-18ci: check URL reachability #35593Yochem van Rosmalen3
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 Lazo3
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-02fix(scripts): release.shJustin M. Keyes1
2025-10-28docs: rename l10n help files #36377Justin M. Keyes1
2025-10-18perf(tui): faster implementation of terminfobfredl1
The processing of terminfo can be separated into two steps: 1. The initialization of terminfo, which includes trying to find $TERM in a terminfo database file. As a fallback, common terminfo definitions are compiled in. After this, we apply a lot of ad-hoc patching to cover over limitations of terminfo. 2. While processing updates from nvim, actually using terminfo strings and formatting them with runtime values. for this part, terminfo essentially is a hyper-enhanced version of snprintf(), including a sm0l stack based virtual machine which can manipulate the runtime parameters. This PR completely replaces libuniblium for step 2, with code vendored from NetBSD's libtermkey which has been adapted to use typesafe input parameters and to write into an output buffer in place. The most immedatiate effects is a performance enhancement of update_attrs() which is a very hot function when profiling the TUI-process part of screen updates. In a stupid microbenchmark (essentially calling nvim__screenshot over and over in a loop) this leads to a speedup of ca 1.5x for redrawing the screen on the TUI-side. What this means in practise when using nvim as a text editor is probably no noticible effect at all, and when reabusing nvim as idk a full screen RGB ASCII art rendrer maybe an increase from 72 to 75 FPS LMAO. As nice side-effect, reduce the usage of unibilium to initialization only.. which will make it easier to remove, replace or make unibilium optional, adressing #31989. Specifically, the builtin fallback doesn't use unibilium at all, so a unibilium-free build is in principle possible if the builtin definitions are good enough. As a caveat, this PR doesn't touch libtermkey at all, which still has a conditional dependency on unibilium. This will be investigated in a follow-up PR Note: the check of $TERMCOLOR was moved from tui/tui.c to _defaults.lua in d7651b27d54a87c5783c0a579af11da9a16a39aa as we want to skip the logic in _defaults.lua if the env var was set, but there is no harm in TUI getting the right value when the TUI is trying to initialize its terminfo shenanigans. Also this check is needed when a TUI connects to a `--headless` server later, which will observe a different $TERMCOLOR value than the nvim core process itself.
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-09-18build: add script to collect typo PRs (#35824)zeertzjq1
2025-09-03docs: lsp, miscJustin M. Keyes2
- Problem: It's not clear for new plugin developers that `:help` uses a help-tags file for searching the docs, generated by `:helptags`. - Solution: Hint to the |:helptags| docs for regenerating the tags file for their freshly written documentation. Co-authored-by: Yochem van Rosmalen <git@yochem.nl>
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-23refactor(lua): use vim.system #34707Yochem van Rosmalen1
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
2025-05-12fix(scripts): use right syntax for choosing ref in "zig fetch"bfredl1
2025-05-10fix(deps): make script/bump_deps.lua update build.zig.zon versions in syncbfredl1
Also bring luv version in build.zig.zon up to date This skips some deps not currently managed/used by build.zig
2025-03-22build(release.sh): fix hang when generating docs (#33026)zeertzjq1
It's been hanging since the change in #32638.
2025-03-09fix(build): vimdoc tags are not validated #32801Justin M. Keyes1
Problem: "make lintdoc" is not validating vimdoc (:help) tags. Solution: - Call `lang_tree:parse()` to init the parser. - Load netrw 🤢 explicitly, since it was moved to `pack/dist/opt/`. - Fix invalid help tags.