Home Explore Blog CI



neovim

2nd chunk of `runtime/doc/dev_vimpatch.txt`
9a5f86b1e46fd1dd62766e09ecaf0f5a30b04af7d6a33ec90000000100000fa1
 update" pull request
https://github.com/neovim/neovim/pulls?q=is%3Apr+author%3Aapp%2Fgithub-actions+version.c+is%3Aopen
and mention the NA patches in a comment (please edit/update one comment,
rather than adding a new comment for each patch).

If there are no open `version.c: update` pull requests, include NA patches in
a commit message in the following format:
>
    vim-patch:<version-or-commit>
    vim-patch:<version-or-commit>
    ...
<
where `<version-or-commit>` is a valid Vim version (like `8.0.0123`) or
commit-id (SHA). Each patch is on a separate line.

It is preferred to include NA patches by squashing it in applicable Vim
patches, especially if the Vim patches are related. First line of the commit
message should be from the applicable Vim patch.
>
    ./scripts/vim-patch -p <na-patch>
    ./scripts/vim-patch -p <na-patch>
    ...
    ./scripts/vim-patch -P <patch>
    git rebase -i master
<
Example:
https://github.com/neovim/neovim/commit/00f60c2ce78fc1280e93d5a36bc7b2267d5f4ac6

TYPES OF "NOT APPLICABLE" VIM PATCHES ~

- Vim9script features, and anything related to `:scriptversion`. (Nvim
  supports Vimscript version 1 only.) Be aware that patches labelled `Vim9:`
  may still contain applicable fixes to other parts of the codebase, so these
  patch need to be checked individually.
- Updates to `testdir/Makefile` are usually NA because the Makefile implicitly
  finds
  https://github.com/neovim/neovim/commit/8a677f8a4bff6005fa39f090c14e970c3dfdbe6e#diff-b3c6ad6680a25a1b42095879e3a87104R52
  all `test_*.vim` files.
- Compiler warning fixes: Nvim strives to have no warnings at all, and has a
  very different build system from Vim.
    - Note: Coverity fixes in Vim are relevant to Nvim.
- `*.proto` changes: Nvim autogenerates function prototypes
- `#ifdef` tweaking: For example, Vim decided to enable `FEAT_VISUAL` for all
  platforms - but Nvim already does that. Adding new `FEAT_` guards also isn't
  relevant to Nvim.
- Legacy system support: Fixes for legacy systems such as Amiga, OS/2 Xenix,
  Mac OS 9, Windows older than XP SP2, are not needed because they are not
  supported by Nvim.
    - NA files: `src/Make_*`, `src/testdir/Make__*`
- `if_*.c` changes: `if_python.c` et. al. were removed.
- `term.c` changes: the Nvim TUI uses `libtermkey` to read terminal sequences;
  Vim's `term.c` was removed.
- `job` patches: incompatible API and implementation
    - NA files: `src/channel_*`, `src/job_*`, `src/testdir/test_channel_*`,
      `src/testdir/test_job_*`
- `:terminal` patches that modify NA files: incompatible API and
  implementation
    - NA files: `src/terminal_*`, `src/testdir/test_terminal_*`
- `defaults.vim` patches
- Most GUI-related changes: Nvim GUIs are implemented external to the core C
  codebase.
    - NA files: `src/gui_*`, `src/gvim_*`, `src/GvimExt/*`, `src/testdir/test_gui*`
- `balloon` changes: Nvim does not support balloon feature
    - NA files: `src/beval_*`, `src/testdir/test_balloon_*`
- Screendump tests from `test_popupwin.vim`, `test_popupwin_textprop.vim`:
  https://github.com/neovim/neovim/pull/12741#issuecomment-704677141
- json changes: incompatible API https://github.com/neovim/neovim/pull/4131
    - NA files: `src/json*`, `src/testdir/test_json.vim`
- `test_restricted.vim` restricted mode is removed in
  https://github.com/neovim/neovim/pull/11996
- Many tests in `test_prompt_buffer.vim` require incompatible Vim features
  such as `channel`; they should still be included, but skipped
- non-runtime documentation: Moved to https://neovim.io/doc/,
    - NA files: `Filelist`, `README`, `INSTALL`,
- Anything else might be relevant; err on the side of caution, and post an
  issue if you aren't sure.

==============================================================================
VERSION.C                                          *dev-vimpatch-version.c*

The list of Vim patches in `src/nvim/version.c` is automatically updated
https://github.com/neovim/neovim/pull/7780 based on the presence of

Title: Handling and Identifying 'Not Applicable' Vim Patches in Nvim
Summary
This section details how to handle Vim patches that are not applicable to Nvim, including how to report them and when it's appropriate to squash them into other patches. It then lists common categories of Vim patches that are typically not applicable to Nvim, such as Vim9script features, Makefile updates, compiler warning fixes, changes to legacy systems or GUI code, and more. The section concludes by mentioning that the list of Vim patches in `src/nvim/version.c` is automatically updated.