| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
| |
**Problem:** `is_ancestor()` uses a slow, bottom-up parent lookup which
has performance pitfalls detailed in #28512.
**Solution:** Take `is_ancestor()` from $O(n^2)$ to $O(n)$ by
incorporating the use of the `child_containing_descendant()` function
|
|
|
| |
fix(diagnostic): correct severity type on setqflist, setloclist
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
CID 497370: Overflowed constant (INTEGER_OVERFLOW)
Expression `tsize - ret.has_type_key`, where tsize=0 and
ret.has_type_key=1, underflows the type that
receives it, an unsigned integer 64 bits wide.
CID 509910: Overflowed constant (INTEGER_OVERFLOW)
Expression stack.size++, which is equal to 0, where stack.size is
known to be equal to 18446744073709551615, overflows the type that
receives it, an unsigned integer 64 bits wide
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: When using nvim_paste in a mapping during a macro recording,
both the mapping and the paste are recorded, causing the paste
to be performed twice when replaying the macro.
Solution: Only record a paste when it is from RPC.
Unfortunately this means there is no way for a script to make a recorded
paste. A way to enable that can be discussed later if there is need.
|
|
|
|
| |
Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
Co-authored-by: Ananth Bhaskararaman <antsub@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Add 'fex' to b:undo_ftplugin variable
closes: vim/vim#15728
https://github.com/vim/vim/commit/a7229c8a99129608e9d651441cca6e6d3079ef56
Co-authored-by: John M Devin <john.m.devin@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this PR, the behavior of nvim_paste is:
- When vim.paste() returns false, return false to the client, but treat
following chunks normally (i.e. rely on the client cancelling the
paste as expected).
- When vim.paste() throws an error, still return true to the client, but
drain the following chunks in the stream without calling vim.paste().
There are two problems with such behavior:
- When vim.paste() errors, the client is still supposed to send the
remaining chunks of the stream, even though they do nothing.
- Having different code paths for two uncommon but similar situations
complicates maintenance.
This PR makes both the cancel case and the error case return false to
the client and drain the remaining chunks of the stream, which, apart
from sharing the same code path, is beneficial whether the client checks
the return value of nvim_paste or not:
- If the client checks the return value, it can avoid sending the
following chunks needlessly after an error.
- If the client doesn't check the return value, chunks following a
cancelled chunk won't be pasted on the server regardless, which leads
to less confusing behavior.
|
|
|
|
|
|
|
|
|
| |
Problem:
fnamemodify with the :r flag will not strip extensions if the filename
starts with a ".". This means that files named ".in" could cause an
infinite loop.
Solution:
Add early return if the filename was not changed
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the api_info() output:
:new|put =map(filter(api_info().functions, '!has_key(v:val,''deprecated_since'')'), 'v:val')
...
{'return_type': 'ArrayOf(Integer, 2)', 'name': 'nvim_win_get_position', 'method': v:true, 'parameters': [['Window', 'window']], 'since': 1}
The `ArrayOf(Integer, 2)` return type didn't break clients when we added
it, which is evidence that clients don't use the `return_type` field,
thus renaming Dictionary => Dict in api_info() is not a breaking change.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the api_info() output:
:new|put =map(filter(api_info().functions, '!has_key(v:val,''deprecated_since'')'), 'v:val')
...
{'return_type': 'ArrayOf(Integer, 2)', 'name': 'nvim_win_get_position', 'method': v:true, 'parameters': [['Window', 'window']], 'since': 1}
The `ArrayOf(Integer, 2)` return type didn't break clients when we added
it, which is evidence that clients don't use the `return_type` field,
thus renaming Dictionary => Dict in api_info() is not (in practice)
a breaking change.
|
|/
|
|
|
|
|
|
|
|
| |
Problem:
`vim.fs.dirname([[C:\User\XXX\AppData\Local]])` returns "." on
mingw/msys2.
Solution:
- Check for "mingw" when deciding `iswin`.
- Use `has("win32")` where possible, it works in "fast" contexts since
b02eeb6a7281df0561a021d7ae595c84be9a01be.
|
|
|
|
|
| |
Problem: When input immediately follows end of bracketed paste, the
nvim_input may be processed before the nvim_paste.
Solution: Ensure some waiting after the end of a bracketed paste.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Noise in stderr from src/nvim/po/CMakeLists.txt during build:
48 substitutions on 48 lines
"optwin.js" "optwin.js" 1299L, 57582B written
385 substitutions on 385 lines
"nvim.pot" "nvim.pot" 9318L, 180177B written
Solution:
Run with `-c silent source` instead of `-S`.
|
|
|
|
| |
- Don't assume b:undo_ftplugin is set when first modifying it.
- Don't assume b:undo_ftplugin already contains some resetting.
|
|
|
|
|
|
|
|
|
| |
fixes: vim/vim#15717
closes: vim/vim#15718
https://github.com/vim/vim/commit/be551dacb87a0542afd8b5c17b89e6749f2dc355
Co-authored-by: Peter Aronoff <peter@aronoff.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: incorrect internal diff with an empty file
Solution: Set pointer to NULL, instead of using an empty line file
(Yukihiro Nakadaira)
When using internal diff, empty file is read as one empty line file.
So result differs from external diff.
closes: vim/vim#15719
https://github.com/vim/vim/commit/f1694b439bb175d956b49da620f1253462ec507b
Co-authored-by: Yukihiro Nakadaira <yukihiro.nakadaira@gmail.com>
|
| |
|
|
|
|
| |
Policy CMP0092 is by default on for minimum cmake versions above 3.15.
|
|
|
|
| |
Analogous to the shell `rm` command.
|
| |
|
|
|
|
|
|
|
| |
- Fixes 'autoindent' being applied during redo.
- Makes redoing a large paste significantly faster.
- Stores pasted text in the register being recorded.
Fix #28561
|
| |
|
|
|
|
| |
These should have been unskipped again when reflow was reenabled.
|
| |
|
|\
| |
| | |
vim-patch: rapid files are not recognized
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: tests: Test_filetype_detection() fails (after 9.1.0738)
Solution: Add missing filetype detect patterns for *.SYSx and *.MODx
https://github.com/vim/vim/commit/a0c14ef310acac62276b4ee51930d3246b11772e
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: rapid files are not recognized
Solution: detect '*.sysx' and '*.modx' as rapid filetype
(KnoP-01)
closes: vim/vim#15669
https://github.com/vim/vim/commit/fdcb08264d6e8525a07b29c14863adc6ead83913
Co-authored-by: KnoP-01 <knosowski@graeffrobotics.de>
|
|
|
|
|
|
|
|
|
| |
not found (#30451)
closes: vim/vim#15705
https://github.com/vim/vim/commit/e6b01cfe01a2722ec55a011ae04c4c404e88f924
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
|
|
|
|
|
|
|
|
| |
Problem: [security]: use-after-free in ex_getln.c
Solution: free pointer p a bit later (John Marriott)
closes: vim/vim#15712
https://github.com/vim/vim/commit/a6de28755ec3fcc86d1ed0b744f1b410a8e9702d
Co-authored-by: John Marriott <basilisk@internode.on.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declarations
Define "g:java_syntax_previews" and include number 476 in
its list to enable this recognition:
------------------------------------------------------------
let g:java_syntax_previews = [476]
------------------------------------------------------------
Reference:
https://openjdk.org/jeps/476
closes: vim/vim#15709
https://github.com/vim/vim/commit/50423ab8086c6e51b86548de77d79db8542ae317
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Multiple timestamps in the same line were not highlighted
Solution: Adapt the syntax to support multiple timestamps
fixes: vim/vim#15703
closes: vim/vim#15707
https://github.com/vim/vim/commit/597aadcf214cd13bf6a2155bf45173edc03199de
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
|
|
|
|
|
|
|
|
|
|
| |
regression introduced in f86568f91848ece0c5da
closes: vim/vim#15704
https://github.com/vim/vim/commit/87b65652e806ed5ae999f8b1f46b9306d48c9326
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
|
|
|
|
|
|
|
| |
closes: vim/vim#15696
https://github.com/vim/vim/commit/f86568f91848ece0c5da2178881b3ed858dae799
Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
constants in _switch-case_ labels
Define "g:java_syntax_previews" and include number 455 in
its list to enable this recognition:
------------------------------------------------------------
let g:java_syntax_previews = [455]
------------------------------------------------------------
Reference:
https://openjdk.org/jeps/455
closes: vim/vim#15698
https://github.com/vim/vim/commit/23079450a8dea98f9d4e3e74ab57866914b0a813
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
|
|
|
|
|
|
|
|
| |
closes: vim/vim#15699
https://github.com/vim/vim/commit/41c7bbaf8f567d3a19ab2a6191ec9937fb890220
Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes E872 too many '(' in highlight pattern for `mf` selection
fixup for vim/vim#15551
closes: vim/vim#15700
https://github.com/vim/vim/commit/c18a9d5835456e0e47e943b673d631caaebdbea3
Co-authored-by: yasuda <yasuda@kyoto-sr.co.jp>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There appears to be a bug in `make` where if a rule asks `make` to
invoke a command called `foo`, and `foo` exists somewhere in `$PATH` as
a directory (not an executable file), `make` will attempt to `execve`
that directory instead of continuing to search in later parts of the
`$PATH` for `foo` as a true executable.
The cause can be traced back to a bug in Make 4.3 which stems from their
use of the findprog function in Gnulib. This was reported to the Make
maintainers here:
https://savannah.gnu.org/bugs/index.php?57962
and then forwarded to the Gnulib maintainers here:
https://github.com/coreutils/gnulib/commit/7b1de4a
Make 4.4 does not have this bug, and I can confirm that I'm able to run
make in the Neovim repo with no further modifications to my system than
upgrading the version of make I'm using to 4.4 or 4.4.1.
As the change is small enough, and it's unlikely that make version
around the world is going to be updated in a timely manner, it makes
sense to just add a workaround for this. Using `command -v` to resolve
the `cmake` command, similar to what is already being done with
`cmake3`, makes it work correctly in all cases. Continuing to include
`... || echo cmake` at the end means that if neither `cmake3` nor
`cmake` are installed, the user will still see a message about CMake
being missing.
Co-authored-by: Jake Zimmerman <zimmerman.jake@gmail.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
**Problem:** Top-level anonymous nodes are not being checked by the
query linter
**Solution:** Check them by adding them to the top-level query
This commit also moves a table construction out of the match iterator so
it is run less frequently.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function matches (#30427)
- Allow function command modifiers.
- Match function bodies starting with empty lines.
Command modifiers reported by @Konfekt.
fixes vim/vim#15671
closes: vim/vim#15674
https://github.com/vim/vim/commit/35699f17497dcdcfdd747fedaef28f208ac6eb5f
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Node.js provider (optional) ~
- ERROR Failed to run healthcheck for "provider.node" plugin. Exception:
…/runtime/lua/provider/node/health.lua:9: attempt to call field 'provider_disabled' (a nil value)
Perl provider (optional) ~
- ERROR Failed to run healthcheck for "provider.perl" plugin. Exception:
…/runtime/lua/provider/perl/health.lua:8: attempt to call field 'provider_disabled' (a nil value)
Python 3 provider (optional) ~
- ERROR Failed to run healthcheck for "provider.python" plugin. Exception:
…/runtime/lua/provider/python/health.lua:226: attempt to call field 'provider_disabled' (a nil value)
Ruby provider (optional) ~
- ERROR Failed to run healthcheck for "provider.ruby" plugin. Exception:
…/runtime/lua/provider/ruby/health.lua:9: attempt to call field 'provider_disabled' (a nil value)
Solution:
Add these files to the runtime sanity check.
fix #29302
|
|
|
| |
Follow-up to #29347
|