| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
| |
Since 643546b82b4bc0c29ca869f81af868a019723d83 the request handler
context (`ctx`) includes a `version` field.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
- `vim.json` exposes various global options which:
- affect all Nvim Lua plugins (especially the LSP client)
- are undocumented and untested
- can cause confusing problems such as: https://github.com/codota/tabnine-nvim/commit/cc76ae3abe2f129d44b5a8edee2529e0ee0dcf69
- `vim.json` exposes redundant mechanisms:
- `vim.json.null` is redundant with `vim.NIL`.
- `array_mt` is redundant because Nvim uses a metatable
(`vim.empty_dict()`) for empty dict instead, which `vim.json` is
configured to use by default (see `as_empty_dict`).
Example:
```
:lua vim.print(vim.json.decode('{"bar":[],"foo":{}}'))
--> { bar = {}, foo = vim.empty_dict() }
```
Thus we don't need to also decorate empty arrays with `array_mt`.
Solution:
Remove the functions from the public vim.json interface.
Comment-out the implementation code to minimize drift from upstream.
TODO:
- Expose the options as arguments to `vim.json.new()`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Spacing around inlay hints has the same highlight as the hint itself.
The LSP spec for inlay hints specifically mentions the padding should not be
coloured:
/**
Render padding before the hint.
Note: Padding should use the editor's background color, not the
background color of the hint itself. That means padding can be used
to visually align/separate an inlay hint.
*/
paddingLeft?: boolean;
/**
Render padding after the hint.
Note: Padding should use the editor's background color, not the
background color of the hint itself. That means padding can be used
to visually align/separate an inlay hint.
*/
paddingRight?: boolean;
Solution:
Add the space as separate parts of the virtual text, don't add the space to the
text itself.
|
|
|
| |
Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
|
|
|
|
|
|
| |
(#24074)
disabling before enabling throws an error otherwise, because bufstate[bufnr]
doesn't exist
|
| |
|
| |
|
|
|
|
| |
M.enable already clears bufstate[bufnr] and the namespace,
the duplicate callbacks cause an error (indexing bufstate[bufnr] fails)
|
|
|
|
|
|
|
|
|
|
|
| |
Add automatic refresh and a public interface on top of #23736
* add on_reload, on_detach handlers in `enable()` buf_attach, and
LspDetach autocommand in case of manual detach
* unify `__buffers` and `hint_cache_by_buf`
* use callback bufnr in `on_lines` callback, bufstate: remove __index override
* move user-facing functions into vim.lsp.buf, unify enable/disable/toggle
Closes #18086
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- nvim requires rpc responses in reverse order. https://github.com/neovim/neovim/issues/19932
- NVIM_APPNAME: UIs normally should NOT set this.
ref #23520
fix #24050
fix #23660
fix #23353
fix #23337
fix #22213
fix #19161
fix #18088
fix #20693
|
| |
|
|
|
|
|
|
|
|
|
| |
Co-authored by: zeertzjq <zeertzjq@outlook.com>
Co-authored by: Steven Todd McIntyre II <114119064+stmii@users.noreply.github.com>
Co-authored by: nobe4 <nobe4@users.noreply.github.com>
- docs: mention --luadev-mod to run with lua runtime files
When changing a lua file in the ./runtime folder, a new contributor
might expect changes to be applied to the built Neovim binary.
|
|
|
|
|
| |
Problem: Treesitter highlighting base priority cannot be customized.
Solution: Use `vim.highlight.priorities.treesitter` instead of hard-coded value.
|
|
|
|
|
|
|
| |
Problem: Current implementation of "remove trailing /" doesn't
account for the case of literal '/' as path.
Solution: Remove trailing / only if it preceded by something else.
Co-authored by: notomo <notomo.motono@gmail.com>
|
|
|
|
|
|
|
| |
Previously, filtering code actions with the "only" option failed
if the code action kind contained special Lua pattern chars such as "-"
(e.g. the ocaml language server supports a "type-annotate" code action).
Solution: use string comparison instead of string.find
|
| |
|
|
|
|
|
|
|
|
| |
Problem: Having utf16idx() rounding up is inconvenient.
Solution: Make utf16idx() round down. (Yegappan Lakshmanan, closes vim/vim#12523)
https://github.com/vim/vim/commit/95707037afa1aeae4f3494dc623a721ceed7fc4e
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
|
|
| |
Co-authored-by: Lewis Russell <lewis6991@gmail.com>
|
|
|
| |
Co-authored-by: Rohit Sukumaran <rohit.sukumaran@kredx.com>
|
|
|
|
|
|
| |
Fixes a `Invalid buffer id: 123` race when the buffer gets deleted before
the callback triggered.
Alternative to https://github.com/neovim/neovim/pull/23981
|
|
|
|
|
| |
Close #18907
Close #20314
Close #23749
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
tostring(vim.version()) returns "table: 0x…".
Solution:
Modify vim.version() to return a string prerelease instead of a boolean.
Fix #23863
|
| |
| |
| |
| |
| |
| | |
- vim.version() returns a Version object.
Makes it printable and removes the need of workarounds when passing it
to other vim.version methods.
|
|/ |
|
| |
|
| |
|
|
|
|
| |
- Use tostring() as that's what print() uses internally.
- Do not append trailing new line.
|
|
|
|
|
|
|
|
|
| |
Update runtime files
https://github.com/vim/vim/commit/f1dcd14fc5d4370476cd82895a4479ca2d252e54
:autocmd-block is N/A (Vim9 script)
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update runtime files
https://github.com/vim/vim/commit/10e8ff9b26078994cae57c2422b145d37aaf714e
Also:
- fix a missing `<` in builtin.txt.
- edit `:function` `{name}` wording to match the change made for the docs above
by Justin in #10619.
- link to `*vimrc*` rather than `*init.vim*` in repeat.txt change (as `init.lua`
may also be used).
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
| |
initial support; public API left for a follow-up PR
|
| |
|
|
|
|
| |
A table passed to `vim.iter` can be a class instance with a `__call`
implementation for the iterator protocol.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Problem: Filetype name t32 is a bit obscure.
Solution: Rename t32 to trace32. (Christoph Sax, closes vim/vim#12512)
https://github.com/vim/vim/commit/740df76c90ee2c421ab7852b7ff2835aa0af782a
Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
|
|
|
|
| |
closes #19198
|
|
|
|
|
|
|
|
|
|
| |
Problem: charidx() and utf16idx() result is not consistent with byteidx().
Solution: When the index is equal to the length of the text return the
lenght of the text instead of -1. (Yegappan Lakshmanan,
closes vim/vim#12503)
https://github.com/vim/vim/commit/577922b917e48285a7a312daf7b5bbc6e272939c
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LspProgressUpdate (#23958)
`client.messages` could grow unbounded because the default handler only
added new messages, never removing them.
A user either had to consume the messages by calling
`vim.lsp.util.get_progress_messages` or by manually removing them from
`client.messages.progress`. If they didn't do that, using LSP
effectively leaked memory.
To fix this, this deprecates the `messages` property and instead adds a
`progress` ring buffer that only keeps at most 50 messages. In addition
it deprecates `vim.lsp.util.get_progress_messages` in favour of a new
`vim.lsp.status()` and also promotes the `LspProgressUpdate` user
autocmd to a regular autocmd to allow users to pattern match on the
progress kind.
Also closes https://github.com/neovim/neovim/pull/20327
|
|
|
|
|
|
|
|
| |
Problem: Nix files are not recognized from the hashbang line.
Solution: Add a hashbang check. (issue vim/vim#12507)
https://github.com/vim/vim/commit/19548c6a742d954ecd0b50b0680c37cc6ced7473
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
| |
Problem: Trace32 files are not recognized.
Solution: Add patterns for the t32 filetype. (Christoph Sax, closes vim/vim#12505)
https://github.com/vim/vim/commit/7fbcee6f928356f1c205a4dfa67c1d542f743b92
Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
|
|
|
| |
https://en.wikipedia.org/wiki/Circular_buffer
|
|
|
|
|
|
|
|
| |
Problem: URL shortcut files are not recognized.
Solution: Add a pattern for URL shortcut files. (closes vim/vim#12474)
https://github.com/vim/vim/commit/cdb7b4c50826df254d2e5ba8abd211e49b7a9784
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
feat(lua): add vim.system()
Problem:
Handling system commands in Lua is tedious and error-prone:
- vim.fn.jobstart() is vimscript and comes with all limitations attached to typval.
- vim.loop.spawn is too low level
Solution:
Add vim.system().
Partly inspired by Python's subprocess module
Does not expose any libuv objects.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The options 'path', 'include', and 'define' all use C-specific default
values. This may have made sense a long time ago when Vim was mostly
used just for writing C, but this is no longer the case, and we have
ample support for filetype specific configuration. Make the default
values of these options empty and move the C-specific values into a
filetype plugin where they belong.
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|