Nvim implementation of ":TOhtml" fails on test_tohtml.vim
because they compare with the sample test files.
Customizing the sample files to pass Vim's test is maintenance burden.
Nvim has lua functional tests to skip Vim's tests.
Nvim's test Makefile computes NEW_TESTS, NEW_TESTS_RES, unlike Vim.
Likely N/A.
Following runtime/ files are N/A after Lua rewrite.
- runtime/autoload/tohtml.vim
- runtime/syntax/2html.vim
- runtime/plugin/tohtml.vim
Nvim uses utf8proc or an older process involving "src/unicode/"
and "download-unicode-files.sh" to decouple unicode characters
from "mbyte.c".
These unicode patches should be auto N/A but the diff hunk xfuncname
is wrong for utf_char2cells().
Is it because of the `#ifdef`?
Need a volunteer to inspect if these patches still have relevant
changes
Nvim
```c
/// same as utf_composinglike but operating on UCS-4 values
bool utf_iscomposing(int c1, int c2, GraphemeState *state)
{
return (!utf8proc_grapheme_break_stateful(c1, c2, state)
|| arabic_combine(c1, c2));
}
```
Vim
```c
/*
* Return TRUE if "c" is a composing UTF-8 character. This means it will be
* drawn on top of the preceding character.
* Based on code from Markus Kuhn.
*/
int
utf_iscomposing(int c)
{
// Sorted list of non-overlapping intervals.
// Generated by ../runtime/tools/unicode.vim.
static struct interval combining[] =
{
{0x0300, 0x036f},
{0x0483, 0x0489},
{0x0591, 0x05bd},
// ...
{0x0300, 0x036f},
{0x0483, 0x0489},
{0x0591, 0x05bd},
};
return intable(combining, sizeof(combining), c);
}
```
termopen() and term_start() are not 1-1 because of Windows.
See Vim's ":h job_start".
```
{command} can be a String. This works best on MS-Windows. On
Unix it is split up in white space separated parts to be
passed to execvp(). Arguments in double quotes can contain
white space.
{command} can be a List, where the first item is the
executable and further items are the arguments. All items are
converted to String. This works best on Unix.
```
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.
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.
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.
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.
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.
Ignoring incompatible implementation,
TerminalOpen and TermOpen events are not 1-1.
"TerminalWinOpen" was accepted as N/A in
commit c7ee6af777 .
I planned to not do this to have more test cases
after manipulating the hunks header to filter out more hunks
but Justin is eager to just mark these N/A
to bump the Vim major.minor version.
Time to move on from v8.1.x.
Target v8.1.2195 .
Nvim did not port Vim's ":terminal" opts.
Incompatible implementations.
Ex-command was ported from C to Lua.
Vim needs them partly because of splitting the current window.
I keep forgetting `++close` option so I either run ":qall!"
or kill the parent process (ie. terminal emulator).
Unsatisfied users should create their Ex-command that runs jobstart().
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
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.
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
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.