Removes NOLINT, which is pointless for the generated terminfo_defs.h.
Adds `uncrustify:off`, so it is not uncrustify which complains about the same
things (too long lines, no space after comma) instead.
`:tabmove` takes either an argument (`:tabmove -`) or an address (`:-tabmove`).
The code assumed that `:tabmove` is the first command on the cmdline, but that
is not the case when using additional modifiers like `:silent`.
Make the addr parsing more robust by searching the command first, then going
back to check for a potential address `-`.
In a locale "en_US", "en" is the language and "US" is the region.
Before this change, we were too clever for our own good and tried to handle the
region as well. But if the macOS primary language is set to "English" and the
region to "Norway", we would end up with "en_NO", which is a locale that does
not exist.
Now we only take the language into account. Taking the example from above would
yield "en_US", which is a sensible fallback.
If the region is important to you, set $LANG and the more specific LC_*
variables in your shell config or alternatively use `:help :language`.
References https://github.com/neovim/neovim/issues/18292
Unfortunately, there are some subtle bugs in the smarter tagstack changes,
so we'll revert them for now and try to come up with a better approach.
One of the added tests, adds current position to jumplist before jumping,
is valuable though and changed to still work after reverting the other two
commits.
Closes#14571
Allow to sort diagnostics (and thus signs and virtual text) by severity, so that
the most important message is shown first.
vim.lsp.handlers['textDocument/publishDiagnostics'] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
severity_sort = true,
}
)
Fixes https://github.com/neovim/neovim/issues/13929
I build Vim and Nvim from source and have both repos cloned locally. To prevent
vim-patch.sh from downloading the Vim source once again to /.vim-src/, I usually
use a symlink pointing to the already existing Vim repo.
The pattern "/.vim-src" works for both, a directory or a symlink.
It looks solid with the default `FloatBorder` group.
If you set the bgcolor of FloatBorder to the same color as for FloatNormal, you
effectively get an "1-cell padding".
Because borders add up to 2 to the height of a float, we need to subtract that
from the anchor position, when opening a float in the lower half of the window.
We have a GitHub Sponsors page for the neovim organization now:
- https://github.com/sponsors/neovim
It can be reached by clicking on the "Sponsor" button on the
[organization page](https://github.com/neovim).
This commit replaces Salt by GitHub Sponsors and Open Collective.
The following script is cut out from vim-patch.sh:
```sh
#!/usr/bin/env bash
BASENAME=vim-patch.sh
printf "\nInstructions:
To port one of the above patches to Neovim, execute this script with the patch revision as argument and follow the instructions, e.g.
'%s -p v8.0.1234', or '%s -P v8.0.1234'
NOTE: Please port the _oldest_ patch if you possibly can.
You can use '%s -l path/to/file' to see what patches are missing for a file.
" "${BASENAME}" "${BASENAME}" "${BASENAME}"
```
The code itself should be correct, but shellcheck 0.7.0 says:
```
In /tmp/test.sh line 5:
printf "\nInstructions:
^-- SC2183: This format string has 2 variables, but is passed 3 arguments.
```
We also had a problem before that a `%s` was added, but the accompanying
argument to printf was forgotten. Using a heredoc is less error-prone, since we
insert variables directly.
Using `:wincmd j` and friends doesn't make much sense to a floating window. For
convenience though, any direction will simply change to the previous window.
Make sure the previous window is valid, not the current window, and not another
floating window. Change to the first window (which is never a floating window)
otherwise.
gettext contains libintl.h. That header file defines a macro that replaces
`setlocale` by `libintl_setlocale`. That function eventually calls the original
`setlocale()` from Apple's libc, but is known to make it fail.
Mac users with gettext from Homebrew can easily reproduce this:
#include <stdio.h>
#include <locale.h>
#include <libintl.h>
int main(void) {
setlocale(LC_ALL, "");
printf("locale: %s\n", setlocale(LC_CTYPE, NULL));
}
Compile and run it:
cc -I/usr/local/opt/gettext/include -L/usr/local/opt/gettext/lib -lintl -o test test.c && ./test
When $LC_CTYPE is set to a valid value like UTF-8, it should output:
locale: UTF-8
But it does not. It returns C anyway. Remove libintl.h and recompile and you get
the expected UTF-8.
Fixes https://github.com/neovim/neovim/issues/9787
Nvim doesn't expect a window-changing command on an created-window event.
autocmd WinNew * wincmd p
help help
- A snapshot for window 1000 is created.
- The window is split and the cursor changes to the new window 1001.
- The autocmd kicks in and switches back to 1000.
- The help buffer is opened.
- On closing the help window 1000, it tries to go back to the snapshotted window
which is... 1000.
- wp1000->w_buffer == NULL
- w_buffer is used by check_cursor()
- 🧨 -> 💥
Fixes https://github.com/neovim/neovim/issues/9773
$ bzr log --line --forward -r v0.20..
372: Paul "LeoNerd" Evans 2017-03-30 {v0.20} Bumped VERSION to 0.20
373: Paul "LeoNerd" Evans 2017-04-10 [merge] Apply typo fixes from jamessan
374: Paul "LeoNerd" Evans 2017-11-29 Build termkey.pc by invoking a small shell script instead of sed'ing a template
375: Paul "LeoNerd" Evans 2018-03-29 Implement mouse key parsing (thanks Marc André Tanner <mat@brain-dump.org>)
376: Paul "LeoNerd" Evans 2019-01-02 Bugfix for infinite CPU spin on TERM=dumb, which has no terminfo key strings
377: Paul "LeoNerd" Evans 2019-02-14 Fix a couple of valgrind-cleanness errors in DEBUG mode
378: Paul "LeoNerd" Evans 2019-02-14 Fix valgrind uninitialised value warning
379: Paul "LeoNerd" Evans 2019-02-14 Remember to unibi_destroy() even if we never (lazily) loaded terminfo
380: Paul "LeoNerd" Evans 2019-02-14 Bugfix memory leak in TI driver on xterm
381: Paul "LeoNerd" Evans 2019-02-17 driver-ti.c does not need a separate TYPE_MOUSE node type since TERMKEY_TYPE_MOUSE already exists
382: Paul "LeoNerd" Evans 2019-02-17 Perform TI string lookup by iterating all the strings we care about, rather than iterating everything in the DB; that way a hook function can invent new strings
383: Paul "LeoNerd" Evans 2019-02-17 Avoid nonstandard \e sequence in unit tests (via neovim https://github.com/neovim/neovim/blob/master/third-party/patches/libtermkey-Fix-escape-sequences-for-MSVC.p...
384: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 lacks <unistd.h> and S_ISFIFO()
385: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 needs help to get ssize_t
386: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no <termios.h>
387: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no poll() so cannot provide termkey_waitkey()
388: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no <strings.h> and needs help getting strcasecmp()
389: Paul "LeoNerd" Evans 2019-02-17 Write the version into the .pc file at 'make install' time so we don't get@VERSION@ from source
390: Paul "LeoNerd" Evans 2019-02-19 {v0.21} Bumped VERSION to 0.21
391: Paul "LeoNerd" Evans 2019-02-19 Bugfix to missing TERMIOS support
392: Paul "LeoNerd" Evans 2019-02-19 Fix offbyone buffer overflow in sprintf calculation of key names (neovim #9630)
393: Paul "LeoNerd" Evans 2019-02-19 {v0.21.1} Remove a pointless (and warny) cast
Our local patches are now part of the libtermkey repo and get removed.
Makes the 'scrollback' option more consistent (same default for all buffers) and future-proof.
- Default to -1 for all buffers, but treat it as an implementation detail.
- Document range of 1 - 100_000.
- New terminal buffer by default sets scrollback=10_000 if the global default is -1.
- Existing terminal buffer: On entering terminal-mode or on refresh, if the user explicitly did `:set[local] scbk=-1`, the local value goes to 100_000 (max). (This is undocumented on purpose. Users should work with explicit values in the range of 1-100_000.)