| Commit message (Collapse) | Author | Age |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There can be other places that access window buffer info (e.g.
`tabpagebuflist()`), so checking `w_closing` in `win_findbuf()` doesn't
solve the crash in all cases, and may also cause Nvim's behavior to
diverge from Vim.
Fix #14998
|
| |\ \
| | | |
| | | | |
refactor(api): reorganize code
|
| | | | |
|
| | | | |
|
| | | | |
|
| | |/ |
|
| | |
| | |
| | |
| | |
| | | |
Command preview now behaves like inccommand=nosplit when there's not
enough room for the preview window to be opened instead of aborting,
which is consistent with old behavior of 'inccommand'.
|
| |/
| |
| |
| | |
Opted to use a shell script because it's simpler to manipulate
environment variables than in makefiles.
|
| |\
| | |
| | | |
fix(messages): add color when showing nvim_echo in :messages history
|
| |/ |
|
| |\
| | |
| | | |
feat(api): nvim__get_runtime do_source
|
| |/ |
|
| | |
|
| |
| |
| |
| |
| | |
Problem: Unnecessary code.
Solution: Remove code and replace with function call. (closes vim/vim#10552)
https://github.com/vim/vim/commit/2e7cba347fc8b746add12aa5e0e9f6218a76c788
|
| |\
| | |
| | | |
refactor: change type of linenr_T from long to int32_t
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The size of long varies depending on architecture, in contrast to the
MAXLNUM constant which sets the maximum allowable number of lines to
2^32-1. This discrepancy may lead to hard to detect bugs, for example
https://github.com/neovim/neovim/issues/18454. Setting linenr_T to a
fix maximum size of 2^32-1 will prevent this type of errors in the
future.
Also change the variables `amount` and `amount_after` to be linenr_T
since they're referring to "the line number difference" between two
texts.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Update runtime files
https://github.com/vim/vim/commit/63f32603789d1a27c559fc440325955fd0b8b500
skip translations
skip user manual rewrite
|
| |
| |
| |
| |
| |
| |
| |
| | |
Many filetypes from filetype.vim set buffer-local variables, meaning
vim.filetype.match cannot be used without side effects. Instead of
setting these buffer-local variables in the filetype detection functions
themselves, have vim.filetype.match return an optional function value
that, when called, sets these variables. This allows vim.filetype.match
to work without side effects.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* build: move the logic for linters to cmake
Cmake is our source of truth. We should have as much of our build
process there as possible so everyone can make use of it.
* build: remove redundant check for ninja generator
The minimum cmake version as of writing this is 3.10, which has ninja
support.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The "first run" has high variability. Looks like the test failures
correlate with 545dc82c1b22709c83ec23e9450f245f9ff1babc
, which makes sense because that improves "first run" performance.
So the `1000*` factor of this test could be adjusted to e.g. `300*` or `500*`.
ref https://github.com/neovim/neovim/pull/16945
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fixes #15221
I tried to reproduce with a test, but failed. The below patch is able to
cause the out of bound access (I verified by adding a check to the
code), but it doesn't seg fault or trigger asan/valgrind errors.
```
diff --git a/src/nvim/testdir/test_tagfunc.vim b/src/nvim/testdir/test_tagfunc.vim
index ffc1d63b9..22828a39f 100644
--- a/src/nvim/testdir/test_tagfunc.vim
+++ b/src/nvim/testdir/test_tagfunc.vim
@@ -117,4 +117,26 @@ func Test_tagfunc_settagstack()
delfunc Mytagfunc2
endfunc
+func Test_tagfunc_settagstack_many()
+
+ func Mytagfunc1(pat, flags, info)
+ return [{'name' : 'mytag', 'filename' : 'Xtest', 'cmd' : '1'}]
+ endfunc
+ set tagfunc=Mytagfunc1
+ call writefile([''], 'Xtest')
+
+ for i in range(0,20)
+ let pos = [bufnr()] + getcurpos()[1:]
+ let newtag = [{'tagname' : 'mytag' + i, 'from' : pos}]
+ call settagstack(1, {'items' : newtag}, 'a')
+ call settagstack(1, {'curidx' : 21})
+ endfor
+
+ tag
+
+ call delete('Xtest')
+ set tagfunc&
+ delfunc Mytagfunc1
+endfunc
```
|
| |
| |
| | |
the message is wrapped in `if (timeout < 0)`, which means 0 is a valid value
|
| |\
| | |
| | | |
vim-patch:8.2.{5066,5070}: lcs-leadmultispace
|
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Unnecessary code.
Solution: Remove code that isn't needed. (closes vim/vim#10534)
https://github.com/vim/vim/commit/b5f0801b1f043b5cf99380f58eca51b75b3236c7
|
| |/
| |
| |
| | |
https://github.com/vim/vim/commit/aca12fd89b082dd9cc12ae085a84f1805747bbdf
|
| |
| |
| | |
add a new `callback` field to `nvim_get_autocmds`
|
| |\
| | |
| | | |
ci: run tests with no treesitter parsers installed
|
| | | |
|
| |/ |
|
| |\
| | |
| | | |
test(ts): skip test if C parser is not available
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* on_scrollback_option_changed renamed to adjust_scrollback. The
function name did not correspond to what it was doing. It is
called unconditionally in every refresh of the terminal
unrelated if the scrollback option was changed.
* new on_scrollback_option_changed function, which calls
refresh_terminal, which then calls adjust_scrollback
* terminal_check_size is not the appropriate function to call when the
option is changed since it only conditionally adjusts the scrollback.
Use the new on_scrollback_option_changed
fixes #15477
fixes #11811
|
| |\ \
| | |/
| |/| |
ci(api-docs): show required changes with color
|
| | |
| | |
| | |
| | | |
It makes it easier to see what needs to be changed.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem:
Since 22b52dd462e5 #11501, log_path_init is called in log_init, so it is
now called at a deterministic time. So the "just in time" complexity of
log_path_init is no longer needed.
Solution:
Remove logic intended to try to "heal" partial initialization.
|
| |\ \
| | | |
| | | | |
fix(nvim_create_user_command): make `smods` work with `nvim_cmd`
|
| |/ /
| | |
| | |
| | | |
Closes #18876.
|
| | |
| | |
| | |
| | |
| | | |
Slight inaccuracy in v8.1.1084's port.
Like Vim, it should return [], not 0.
Ref #18890
|
| |\ \
| | | |
| | | | |
fix(highlight): let winhighlight use cursor
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Update runtime files.
https://github.com/vim/vim/commit/016188fd8a30cfbaca3faa0daea9a47138dc5c4b
omit changes from doc/builtin.txt (needs 8.2.1536, 8.2.4981)
skip user manual rewrite for Vim9script
|
| | |
| | |
| | |
| | | |
(#18885)
|
| | |
| | |
| | |
| | |
| | | |
Problem: No test for what 8.1.0052 fixes.
Solution: Add a test. (closes vim/vim#10531)
https://github.com/vim/vim/commit/3760bfddc414e4d3e1c4203db8c22e293cf08d09
|
| | |
| | |
| | |
| | | |
(#18814)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Without the proper comments, doxygen doesn't understand the comment
belongs to the struct member:
https://www.doxygen.nl/manual/docblocks.html#memberdoc
[skip ci]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(#18872)
Problem: input() does not handle composing characters properly.
Solution: Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
(closes vim/vim#10527)
https://github.com/vim/vim/commit/e3a529bc877909a9eccf792461050b4f6737ed33
Cherry-pick all of Test_input_func() from patch 8.2.0316.
|
| | |
| | |
| | | |
Fixes https://github.com/neovim/neovim/issues/18860
|