aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* fix(lua): improve annotations for stricter luals diagnostics (#24609)Christian Clason2023-08-09
| | | | | | | | | | | | | | | Problem: luals returns stricter diagnostics with bundled luarc.json Solution: Improve some function and type annotations: * use recognized uv.* types * disable diagnostic for global `vim` in shared.lua * docs: don't start comment lines with taglink (otherwise LuaLS will interpret it as a type) * add type alias for lpeg pattern * fix return annotation for `vim.secure.trust` * rename local Range object in vim.version (shadows `Range` in vim.treesitter) * fix some "missing fields" warnings * add missing required fields for test functions in eval.lua * rename lsp meta files for consistency
* ci(labeler): run "type-scope" after "triage"zeertzjq2023-08-09
| | | | | Problem: When "triage" job is run after "type-scope" job, it may remove labels added by the "type-scope" job. Solution: Run "type-scope" job after "triage" job.
* vim-patch:9.0.1679: Cleanup Tests from leftover files (#24617)zeertzjq2023-08-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Tests may leave leftover files around Solution: Clean up tests and remove files There were a few failures in 'linux (huge, gcc, testgui, true, true)' e.g. here: https://github.com/vim/vim/actions/runs/5497376153/jobs/10018060156 ,---- | Error detected while processing command line..script /home/runner/work/vim/vim/src/testdir/runtest.vim[585]..function RunTheTest[54]..Test_lvimgrep_crash[16]..TestTimeout[12]..VimLeavePre Autocommands for "*"..function EarlyExit[7]..FinishTesting: | line 70: | E445: Other window contains changes | E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txt | E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txt | E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txtmalloc(): unsorted double linked list corrupted `---- Which is puzzling, because the Xtest_stable_xxd file should have been long gone after test_crypt.vim is run (and definitely no longer be staying around in test_quickfix.vim). So try to clean up properly after a test script is run, just in case any X<file> is still around. During testing, a found a few leftover files, which I also fixed in the relevant test-file. Unfortunately, the test workflow 'linux (huge, gcc, testgui, true, true)' now seems to fail with 'E1230: Encryption: sodium_mlock()' in test_crypt.vim. Hopefully this is only temporary. https://github.com/vim/vim/commit/84bc00e9b52b1174888f2f696f8b628a83c49988 Co-authored-by: Christian Brabandt <cb@256bit.org>
* docs(builtin): fix some missing lines (#24615)Sean Dewar2023-08-08
| | | | | | These two functions seem to have previously had their docs start on the same line as the signature, which I guess contributed to the lines being lost (though I checked all other such functions from before again and these were the only two).
* fix(filetype): add typing and dry (#24573)Lewis Russell2023-08-08
|
* docs: Bram farewell #24589Computer23402023-08-08
| | | ref #24579
* build(deps): bump tree-sitter to HEAD - 0a1c4d846 (#24607)Christian Clason2023-08-08
| | | | adapt to breaking change in `ts_query_cursor_set_max_start_depth` https://github.com/tree-sitter/tree-sitter/pull/2278
* fix(lua): vim.fs typing (#24608)Lewis Russell2023-08-08
|
* Merge pull request #24606 from bfredl/keysetnilbfredl2023-08-08
|\ | | | | docs(lua): the keyset nilocalypse
| * docs(lua): the keyset nilocalypsebfredl2023-08-08
|/ | | | This is needed to give recent LuaLS the right idea about optional fields.
* fix(treesitter): make sure injections don't return empty ranges (#24595)Lewis Russell2023-08-07
| | | | | | | | | | | | | | | | | | | | When an injection has not set include children, make sure not to add the injection if no ranges are determined. This could happen when there is an injection with a child that has the same range as itself. e.g. consider this Makefile snippet ```make foo: $(VAR) ``` Line 2 has an injection for bash and a make variable reference. If include-children isn't set (default), then there is no range on line 2 to inject since the variable reference needs to be excluded. This caused the language tree to return an empty range, which the parser now interprets to mean the full buffer. This caused makefiles to have completely broken highlighting.
* vim-patch:9.0.1678: blade files are not recognized (#24601)ObserverOfTime2023-08-07
| | | | | | | | Problem: Blade files are not recognized. Solution: Add a pattern for Blade files. (closes vim/vim#12650) https://github.com/vim/vim/commit/ad34abee258322826146d597ac5b5fd2111c2b79 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* feat: add .luarc.json (#24592)Lewis Russell2023-08-07
|
* docs(lsp): fix references to protocol.constants #24578Maria José Solano2023-08-07
|
* fix(treesitter): escape quotes in :InspectTree view #24582ObserverOfTime2023-08-07
| | | | Problem: Anonymous nodes containing double quotes break the highlighting. Solution: Escape double quotes in anonymous nodes.
* Merge pull request #24524 from bfredl/typed_keysbfredl2023-08-07
|\ | | | | refactor(api): use typed keysets
| * feat(lua): use keyset type informationbfredl2023-08-07
| |
| * test(api): update tests to new error messagesbfredl2023-08-07
| |
| * feat(lua): specific error messages for type checking `opts` paramsbfredl2023-08-07
| |
| * refactor(api): use typed keysetsbfredl2023-08-07
| | | | | | | | | | Initially this is just for geting rid of boilerplate, but eventually the types could get exposed as metadata
| * feat(lua): more specific error messages for vim.api type checkingbfredl2023-08-04
| |
* | fix(inccommand): don't set an invalid 'undolevels' value (#24575)zeertzjq2023-08-05
| | | | | | | | | | | | | | Problem: Cannot break undo by setting 'undolevels' to itself in 'inccommand' preview callback. Solution: Don't set an invalid 'undolevels' value. Co-authored-by: Michael Henry <drmikehenry@drmikehenry.com>
* | refactor(lsp): use protocol.Methods instead of strings #24570Raphael2023-08-05
| |
* | docs(options): fix mistakes (#24568)zeertzjq2023-08-05
| |
* | docs(options): take ownership of options.txt (#24528)Lewis Russell2023-08-04
|/ | | | | | | | | | | | | | * docs(options): take ownership of options.txt - `src/nvim/options.lua` is now the source of truth - generate runtime/lua/vim/_meta/options.lua * fixup! zeer comments * fixup! zeer comments (2) * fixup! re-enable luacheck * fixup! regen
* fix(lsp): do not assume client capability exists in watchfiles check (#24550)Sean Dewar2023-08-04
| | | | | | | | | | | | | | | | | | | | | PR #23689 assumes `client.config.capabilities.workspace.didChangeWatchedFiles` exists when checking `dynamicRegistration`, but thats's true only if it was passed to `vim.lsp.start{_client}`. This caused #23806 (still an issue in v0.9.1; needs manual backport), but #23681 fixed it by defaulting `config.capabilities` to `make_client_capabilities` if not passed to `vim.lsp.start{_client}`. However, the bug resurfaces on HEAD if you provide a non-nil `capabilities` to `vim.lsp.start{_client}` with missing fields (e.g: not made via `make_client_capabilities`). From what I see, the spec says such missing fields should be interpreted as an absence of the capability (including those indicated by missing sub-fields): https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#clientCapabilities Also, suggest `vim.empty_dict()` for an empty dict in `:h vim.lsp.start_client()` (`{[vim.type_idx]=vim.types.dictionary}` no longer works anyway, probably since the cjson switch).
* test(options/defaults_spec): fix NVIM_APPNAME test flakiness (#24553)zeertzjq2023-08-04
| | | Also avoid leaving directories behind.
* fix(terminal): forward horizontal mouse scrolling (#24552)zeertzjq2023-08-04
|
* fix(terminal): include modifiers when forwarding mouse (#24549)zeertzjq2023-08-04
|
* build(deps): bump libvterm to 0.3.3 (#24547)zeertzjq2023-08-04
| | | Fix #21106
* docs: luaref cleanup #24541Justin M. Keyes2023-08-03
| | | | - drop "luaref-" prefix in favor of "lua-" or nothing, where possible. - remove redundant "luaref--lang…" and "luaref-api…" tags.
* Merge #24351 docsJustin M. Keyes2023-08-03
|\
| * docs: remove "#" comment char in @returnJustin M. Keyes2023-08-03
| | | | | | | | | | | | | | Everything after a "#" char is a "description" comment, i.e. luals won't treat it as a type, name, etc. But "#" should not be present in the generated docs (such as :help docs). https://github.com/LuaLS/lua-language-server/wiki/Annotations#return
| * docs: miscJustin M. Keyes2023-08-03
| | | | | | | | Co-authored-by: Kevin Pham <keevan.pham@gmail.com>
* | refactor(lsp): use protocol.Methods instead of strings #24537Raphael2023-08-03
|/
* fix(gen_lsp.lua): no notifications in lsp.Methods #24530Raphael2023-08-03
| | | | | | | | | Problem: - Notifications are missing from `lsp.Methods`. - Need a way to represent `$/` prefixed methods. Solution: - Generate notifications. - Use "dollar_" prefix for `$/` methods.
* docs(lua): fix generated `fname` param annotations #24533Marc Jakobi2023-08-02
|
* docs(builtin): fix alignment of comments in code blocks (#24529)zeertzjq2023-08-02
|
* docs: drop "Can also be used as a method" #24508Justin M. Keyes2023-08-01
| | | | | | | | Now that we "own" builtin.txt, we cant remove the repetitive mention of Vimscript's UFCS syntax. It's noisy to mention this for each function, and it's also not a Vimscript feature that should be encouraged. Also change the builtin.txt heading to "NVIM REFERENCE MANUAL", which indicates when a help file is Nvim-owned.
* feat(lua): add meta file for vim submodules (#24525)Lewis Russell2023-08-01
|
* fix(loader): cache path ambiguity #24491Tyler Miller2023-08-01
| | | | | | | | | | | Problem: cache paths are derived by replacing each reserved/filesystem- path-sensitive char with a `%` char in the original path. With this method, two different files at two different paths (each containing `%` chars) can erroneously resolve to the very same cache path in certain edge-cases. Solution: derive cache paths by url-encoding the original (path) instead using `vim.uri_encode()` with `"rfc2396"`. Increment `Loader.VERSION` to denote this change.
* Merge #24504 feat(lsp): protocol.MethodsJustin M. Keyes2023-08-01
|\
| * feat(gen_lsp.lua): sort by name, handle failure #24504Justin M. Keyes2023-08-01
| |
| * feat(gen_lsp.lua): protocol.Methods #24504mathew2023-08-01
| |
* | feat(lua-types): types for vim.api.* (#24523)Lewis Russell2023-08-01
|/
* fix(lsp): inlay hints: "Failed to delete autocmd" when closing buffer #24469Chris AtLee2023-08-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: "Failed to delete autocmd" error when deleting LspNotify autocmd. #24456 Solution: Change a few things in the inlay_hint and diagnostic LSP code: 1. Re-introduce the `enabled` flag for the buffer state tables. Previously I was relying on the presence of an autocmd id in the state table to track whether inlay_hint / diagnostic was enabled for a buffer. There are two reasons why this doesn't work well: - Each time inlay_hint / diagnostic is enabled, we call `nvim_buf_attach` on the buffer, resulting in multiple `on_reload` or `on_detach` callbacks being registered. - Commands like `bwipeout` delete buffer local autocmds, sometimes before our `on_detach` callbacks have a chance to delete them first. This causes the - Use module local enabled state for diagnostic as well. bwipeout can race with on_detach callbacks for deleting autocmds. Error referenced in #24456. 2. Change the `LspDetach` autocmd to run each time (i.e., remove the `once` flag). Since we're only registering autocmds once per buffer now, we need to make sure that we set the enabled flag properly each time the LSP client detaches from the buffer. - Remove `once` from the LspDetach autocmds for inlay_hint and diagnostic. We only set up the autocmd once now. Gets removed when buffer is deleted. 3. Have the `LspNotify` handler also refresh the inlay_hint / diagnostics when receiving the `textDocument/didOpen` event. Before this point, the LSP backend doesn't have the contents of the buffer, so can't provide inlay hints or diagnostics. Downsides of this approach: * When inlay_hint / diagnostics are disabled on a buffer, it will continue to receive `LspNotify` events for that buffer. The callback exits early since the `enabled` flag is false. Alternatives: * Can we wrap the call to `nvim_del_autocmd` in `pcall` to swallow any errors resulting from trying to delete the autocmd? Fixes #24456 Helped-by: Maria José Solano <majosolano99@gmail.com>
* docs(builtin): right align tags (#24522)Lewis Russell2023-08-01
|
* fix(defaults): don't use nvim_feedkeys in default mappings (#24520)zeertzjq2023-08-01
| | | | | | | Problem: Using nvim_feedkeys in default mappings makes it hard to use them as a part of another mapping. Solution: Use an expression mapping and stop Visual mode later. Fix #24518.
* docs(builtin): fix and annotate language blocks (#24506)Lewis Russell2023-08-01
|
* build: fix --luamod-dev not working properly (#24519)zeertzjq2023-08-01
| | | Fixes a regression from #23112.