aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* fix(lsp): error in reset_timer on second detach #24117Chinmay Dalal2023-06-23
| | | | | | | | | | | Problem: On running `zig fmt` manually, the on_lines callback and the server both detach (for some reason), and both of them call `clear()`. This fixes it, otherwise the second one to detach has an error in `reset_timer` since the bufstate doesn't exist Solution: * exit early in clear if `bufstates[bufnr]` is nil * set bufstatte.enabled to true on reload instead of making bufstate nil
* ci: introduce CI_LINT optiondundargoc2023-06-24
| | | | | | This will abort if lint programs are not found, and is meant primarily for the lint job in CI. Supersedes the REQUIRED argument in add_glob_target as it's a superior replacement by being a built-in solution.
* build(luarc.json): disable luadoc-miss-see-name #24108Raphael2023-06-23
|
* fix(lsp): reapplying already-applied hints #24114Chinmay Dalal2023-06-23
| | | | | | | | | Problem: The decoration provider clears the whole buffer then redraws all the hints every time the window was redrawn. This may lead to an infinite loop. Solution: Store the last applied version for a line and only clear and redraw the line if the buffer version has changed.
* fix(cmdline): don't redraw 'tabline' in Ex mode (#24123)zeertzjq2023-06-23
| | | | | | | | Redrawing of 'statusline' and 'winbar' are actually already inhibited by RedawingDisabled in Ex mode. In Vim there is a check for `msg_scrolled == 0` (which is false in Ex mode) since Vim doesn't have msgsep. Add a `!exmode_active` check here in Nvim instead.
* feat(lsp): opt-in to dynamicRegistration for inlay hints (#24102)Mathias Fußenegger2023-06-22
| | | | | Since https://github.com/neovim/neovim/pull/23681 there is dynamic registration support. We should use that for new features unless there is a good reason to turn it off.
* vim-patch:9.0.1645: zserio files are not recognized (#24120)Christian Clason2023-06-22
| | | | | | | | | Problem: zserio files are not recognized. Solution: Add a pattern for zserio files. (Dominique Pellé, closes vim/vim#12544) https://github.com/vim/vim/commit/2b994da57a0ac6ec0ec09fe3783f48ecd2bce610 Co-authored-by: =?UTF-8?q?Dominique=20Pell=C3=A9?= <dominique.pelle@gmail.com>
* feat(extmarks): support hl_mode "combine" for inline virt_text (#24099)zeertzjq2023-06-22
|
* feat(lsp): soft deprecate vim.lsp.for_each_buffer_client (#24104)Mathias Fußenegger2023-06-22
| | | | | | | There is no need for two ways to access all clients of a buffer. This doesn't add a `vim.deprecate` call yet, as the function is probably used a lot, but removes it from the documentation and annotates it with `@deprecated`
* fix(messages): use "Vimscript" instead of "VimL" #24111Justin M. Keyes2023-06-22
| | | | followup to #24109 fix #16150
* test: spellcheck :help (vimdoc) files #24109Justin M. Keyes2023-06-22
| | | | | | | Enforce consistent terminology (defined in `gen_help_html.lua:spell_dict`) for common misspellings. This does not spellcheck English in general (perhaps a future TODO, though it may be noisy).
* fix(extmarks): hide inline virt_text properly with 'smoothscroll' (#24106)zeertzjq2023-06-22
|
* fix(extmarks): empty inline virt_text interfering with DiffText (#24101)zeertzjq2023-06-22
|
* Merge #24087 from justinmk/docJustin M. Keyes2023-06-22
|\ | | | | docs: lsp, fix errors, gen_help_html features
| * feat(gen_help_html): ignore pi_netrw.txt errorsJustin M. Keyes2023-06-22
| | | | | | | | IDGAF about netrw
| * feat(gen_help_html): non-default vimdoc.so parserJustin M. Keyes2023-06-22
| | | | | | | | Callers can specify a non-default vimdoc.so file path.
| * fix(docs): vimdoc syntax errorsJustin M. Keyes2023-06-22
| | | | | | | | | | | | Since https://github.com/neovim/tree-sitter-vimdoc/pull/97 the many cases of *.foo cause parser errors. But even before that, these were erroneously highlighted as (argument), so fixing them is good.
| * docs: lsp, vim_diffJustin M. Keyes2023-06-22
| | | | | | | | | | | | | | - quickstart - mark lsp.txt as `new_layout` - remove lsp-handler documentation for notifications: they don't have handlers because they don't have server responses.
* | perf(lsp): remove grouping logic from lsp.status (#24096)Mathias Fußenegger2023-06-22
|/ | | | With the title carry-over logic in the `$/progress` handler it's not necessary to group again in vim.lsp.status
* Merge pull request #24098 from zeertzjq/fix-extmarkzeertzjq2023-06-22
|\ | | | | Fix two extmark bugs
| * fix(api): wrong nvim_buf_set_extmark error for invalid hl_modezeertzjq2023-06-22
| |
| * fix(extmarks): empty inline virt_text interfering with Visual highlightzeertzjq2023-06-22
| |
* | fix: tostring(vim.version()) fails if build is NIL #24097Julian Grinblat2023-06-22
|/ | | | | | | | | | | | Problem: Since #23925, Version.build may be vim.NIL, which causes tostring() to fail: E5108: Error executing lua E5114: Error while converting print argument #1: …/version.lua:129: attempt to concatenate field 'build' (a userdata value) stack traceback: [C]: in function 'print' [string ":lua"]:1: in main chunk Solution: Handle vim.NIL in Version:__tostring().
* feat(man): respect 'wrapmargin' when wrapping man pages (#24091)Gregory Anders2023-06-21
|
* Merge #24086 LSP ctx.version, report full Nvim versionJustin M. Keyes2023-06-21
|\
| * docs(lsp): mention ctx.versionJustin M. Keyes2023-06-21
| | | | | | | | | | Since 643546b82b4bc0c29ca869f81af868a019723d83 the request handler context (`ctx`) includes a `version` field.
| * refactor(lsp): report full Nvim version string in clientInfoJustin M. Keyes2023-06-21
| |
* | fix(folds): don't show search or match highlighting on fold (#24084)zeertzjq2023-06-21
|/
* fix(vim.json)!: remove global options, "null", "array_mt" #24070Justin M. Keyes2023-06-21
| | | | | | | | | | | | | | | | | | | | | | | | | 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()`
* fix(lsp): add spacing for inlay hints separately #24079Akin2023-06-21
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* fix(lsp): define LspInlayHint highlight group #24073Chinmay Dalal2023-06-21
| | | | | fixes #24068 Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
* fix(lsp): always return boolean in lsp.buf_client_attach (#24077)Sooryakiran Ponnath2023-06-20
| | | Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
* Merge pull request #24069 from famiu/refactor/options/varpbfredl2023-06-20
|\ | | | | refactor(option): use `void *` for pointer to option value
| * refactor(option): use `void *` for pointer to option valueFamiu Haque2023-06-20
| | | | | | | | | | | | Option related code uses `char *` for pointer to option value, which is not the best way of representing a type-agnostic pointer. Solution: Make pointers to option value use `void *` instead.
* | fix(lsp): check if inlay hints are enabled for a buffer before disabling ↵Chinmay Dalal2023-06-20
| | | | | | | | | | | | (#24074) disabling before enabling throws an error otherwise, because bufstate[bufnr] doesn't exist
* | refactor(lsp): extract common execute command functionality (#24065)Mathias Fußenegger2023-06-20
| |
* | docs(lsp): LspInlayHint highlight group #24071Chinmay Dalal2023-06-20
| |
* | fix(lsp): duplicate on_detach, on_reload callbacks #24067Chinmay Dalal2023-06-20
| | | | | | | | M.enable already clears bufstate[bufnr] and the namespace, the duplicate callbacks cause an error (indexing bufstate[bufnr] fails)
* | feat(lsp): inlay hints #23984Chinmay Dalal2023-06-19
| | | | | | | | | | | | | | | | | | | | | | 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
* | docs #24061Justin M. Keyes2023-06-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* | Merge pull request #24063 from bfredl/ceci-nest-pas-rtpbfredl2023-06-19
|\ \ | | | | | | fix(docs): the runtimepath is not the runtime path
| * | fix(docs): the runtimepath is not the runtime pathbfredl2023-06-19
|/ /
* | docs: deprecation policy #23138Gregory Anders2023-06-19
| |
* | docs #22363Justin M. Keyes2023-06-19
| | | | | | | | | | | | | | | | | | 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.
* | fix(treesitter): use vim.highlight.priorities instead of hardcoded 100 (#24052)Santos Gallegos2023-06-18
| | | | | | | | | | Problem: Treesitter highlighting base priority cannot be customized. Solution: Use `vim.highlight.priorities.treesitter` instead of hard-coded value.
* | fix(fs): make `normalize()` work with '/' path (#24047)Evgeni Chasnovski2023-06-18
| | | | | | | | | | | | | | 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>
* | vim-patch:9.0.1638: crypt tests hang and cause memory errors (#24053)zeertzjq2023-06-18
|/ | | | | | | | | | | | | | | | | | | | | | | | Problem: crypt tests hang and cause memory errors Solution: Move variable to start of function. https://github.com/vim/vim/commit/438d0c5e58aa475179ade9a1b99013733c5b8f06 N/A patches for version.c: vim-patch:9.0.1639: build failure without the crypt feature Problem: Build failure without the crypt feature. Solution: Adjust #ifdefs https://github.com/vim/vim/commit/bc385a150f9d812bb3e54ff0d5db75d3c6c3bb43 vim-patch:9.0.1640: compiler warning for unused variables without crypt feature Problem: Compiler warning for unused variables without the crypt feature. Solution: Adjust #ifdefs https://github.com/vim/vim/commit/7f29122c8ce2ca224d21abbaeb35e38bc354d95d Co-authored-by: Bram Moolenaar <Bram@vim.org>
* fix(lsp): allow Lua pattern chars in code action filter (#24041)Jonas Strittmatter2023-06-17
| | | | | | | 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
* vim-patch:9.0.1637: compiler warning for uninitialized variable (#24042)zeertzjq2023-06-17
| | | | | | | | | | | | Problem: Compiler warning for uninitialized variable. Solution: Move the variable to an inner block and initialize it. (Christian Brabandt, closes vim/vim#12549) https://github.com/vim/vim/commit/54f50cbf6a470316a262e4389d62424e6f06b81c The "eof" variable is not present in Nvim because it is only used by FEAT_CRYPT. Co-authored-by: Christian Brabandt <cb@256bit.org>
* Merge pull request #24037 from zeertzjq/vim-9.0.1634zeertzjq2023-06-16
|\ | | | | vim-patch:9.0.{1634,1635}: message is cleared when removing mode message