Dr. Chip retired some time ago and is no longer maintaining the netrw
plugin. However as a runtime plugin distributed by Vim, it important to
maintain the netrw plugin in the future and fix bugs as they are
reported.
So, split out the netrw plugin as an additional package, however include
some stubs to make sure the plugin is still loaded by default and the
documentation is accessible as well.
closes: vim/vim#163689cfdabb074
Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
- highlight more C keywords, including some from C23
Conditionally highlight C23 features:
- #embed, #elifdef and #elifndef preprocessor directives
- predefined macros
- UTF-8 character constants
- binary integer constants, _BitInt literals, and digit separators
- nullptr_t type and associated constant
- decimal real floating-point, bit precise and char types
- typeof operators
Matchit:
- update for new preprocessor directives
fixes: vim/vim#13667fixes: vim/vim#13679closes: vim/vim#12984c2a967a1b9
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
Co-authored-by: Albin Ahlbäck <albin.ahlback@gmail.com>
Problem: too many strlen() calls in screen.c
Solution: refactor screen.c and remove calls to strlen(),
verify that leadmultispace != NULL (John Marriott)
closes: vim/vim#16460c15de972e8
Co-authored-by: John Marriott <basilisk@internode.on.net>
Problem:
With language servers like lemminx, completing xml tags like `<mo` first
shows the right candidates (`modules`) but after typing `d` the
candidates disappear.
This is because the server returns:
[...]
filterText = "<module",
label = "module",
textEdit = {
newText = "<module>$1</module>$0",
Which resulted in `module` being used as `word`, and `module` doesn't
match the prefix `<mo`. Typing `d` causes the `complete()` filtering
mechanism to kick in and remove the entry.
Solution:
Use `<module` from the `filterText` as `word` if the textEdit/label
heuristic doesn't match.
Problem: string might be used without a trailing NUL (after v9.1.0997)
Solution: Make sure that the buffer is NUL terminated
closes: vim/vim#1645770dfc374ec
Co-authored-by: John Marriott <basilisk@internode.on.net>
Problem: no way to get current selected item in a async context
Solution: add completed flag to show the entries of currently selected
index item (glepnir)
closes: vim/vim#16451037b028a22
Co-authored-by: glepnir <glephunter@gmail.com>
This commit adds basic support for the kitty keyboard protocol to
Neovim's builtin terminal. For now only the first mode ("Disambiguate
escape codes") is supported.
* refactor(options): generic expand and did_set callbacks
Problem:
Many options have similar callbacks to check the values are valid.
Solution:
Generalize these callbacks into a single function that reads the option
table.
* refactor: gen_options.lua
refactor: gen_options.lua - inline get_cond
* refactor(options): use a simpler format for the common default
Problem: Vim9: Patch 9.1.1013 causes a few problems
Solution: Translate the function name only when it is a string
(Yegappan Lakshmanan)
fixes: vim/vim#16453closes: vim/vim#164509904cbca41
Cherry-pick call() change from patch 9.0.0345.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Vim9: Regression caused by patch v9.1.0646
Solution: Translate the function name before invoking it in call()
(Yegappan Lakshmanan)
fixes: vim/vim#16430closes: vim/vim#164456289f91591
N/A patch:
vim-patch:8.2.4176: Vim9: cannot use imported function with call()
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: v9.1.0743 causes regression with diff mode
Solution: Fix the regression with overlapping regions
closes: vim/vim#1645401f6509fb2
Co-authored-by: Yukihiro Nakadaira <yukihiro.nakadaira@gmail.com>
Problem: If a (vim.ui_attach) cmdline_hide callback triggers a redraw,
it may cause cmdline_show events for an already exited cmdline.
Solution: Avoid emitting cmdline_show event when ccline.cmdbuff is
already NULL. Unset ccline.cmdbuff before emitting cmdline_hide.
Problem:
`yx` uses "y" prefix, which shadows a builtin operator.
Solution:
Use `g=` (in the form of `g==` currently), drawing from precedent of
CTRL-= and 'tpope/vim-scriptease'.
Problem:
Per the documentation, passing `false` as the `enable` parameter of
`vim.lsp.enable()` should disable the given LSP(s), but it does not work
due to a logic error.
Specifically, `enable == false and nil or {}` will always evaluate to
`{}` because `nil` is falsy.
Solution:
Correct the conditional statement.
- new unokai colorscheme (similar/inspired by monokai)
- the rest: add explicit PopupSelected link to PmenuSel
closes: vim/vim#16443045564d0a7
Co-authored-by: Maxim Kim <habamax@gmail.com>
Problem: Coverity complains about dereferencing NULL value
Solution: Check that cms2 is not null
closes: vim/vim#164381ac53b84ad
Co-authored-by: Christian Brabandt <cb@256bit.org>
When `root_dir` is a function it can (and often will) call the provided
callback function in a fast API context (e.g. in the `on_exit` handler
of `vim.system`). When the callback function is executed we should
ensure that it runs vim.lsp.start on the main event loop.
On master (and also before #31539) closing a window could cause the
used wininfo for a buffer to change. This is due to always removing the
previous NULL wininfo when deleting a window, even if that wininfo had
higher priority than the the deleted window's own wininfo.
Instead delete the wininfo with lowest priority. This retains the memory
saving efect while not affecting the effective value of window options
and so on.
Problem: Anchoring a floating window to the tabline and laststatus is
cumbersome; requiring autocommands and looping over all
windows/tabpages.
Solution: Add new "tabline" and "laststatus" options to the `relative`
field of nvim_open_win() to place a window relative to.
Problem: It was decided on Matrix chat that multitype options won't be necessary for Neovim options, and that options should only have a single canonical type. Therefore the code for supporting multitype options is unnecessary.
Solution: Remove the additional code that's used to provide multitype option support.
**Problem:** The treesitter `foldexpr` runs synchronous parses to
calculate fold levels, which eliminates async parsing performance in the
highlighter.
**Solution:** Migrate the `foldexpr` to also calculate and apply fold
levels asynchronously.