aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* refactor(treesitter): {start,stop} are optional in Query:iter_* methodsJongwook Choi2024-02-08
| | | | | | | | Document that the `start` and `stop` parameters in `Query:iter_captures()` and `Query:iter_matches()` are optional. The tree-sitter lib has been bumped up to 0.20.9, so we also no longer need "Requires treesitter >= 0.20.9".
* refactor(treesitter): typing for Query, TSQuery, and TSQueryInfoJongwook Choi2024-02-08
| | | | | | | | | | | | | | | | | | | | - `TSQuery`: userdata object for parsed query. - `vim.treesitter.Query`: renamed from `Query`. - Add a new field `lang`. - `TSQueryInfo`: - Move to `vim/treesitter/_meta.lua`, because C code owns it. - Correct typing for `patterns`, should be a map from `integer` (pattern_id) to `(integer|string)[][]` (list of predicates or directives). - `vim.treesitter.QueryInfo` is added. - This currently has the same structure as `TSQueryInfo` (exported from C code). - Document the fields (see `TSQuery:inspect`). - Add typing for `vim._ts_parse_query()`.
* Merge pull request #27388 from zeertzjq/vim-9.1.0082zeertzjq2024-02-08
|\ | | | | vim-patch:9.1.{0082,0083}: redrawing can be improved
| * vim-patch:9.1.0083: Redrawing can be improved when deleting lines with 'number'zeertzjq2024-02-08
| | | | | | | | | | | | | | | | | | | | | | Problem: Redrawing can be improved when inserting/deleting lines with 'number'. Solution: Only redraw the number column of lines below changed lines. Add a test as this wasn't previously tested. (zeertzjq) closes: vim/vim#13985 https://github.com/vim/vim/commit/ae07ebc04b0726e12b1af39d52e01d86ae79ef0a
| * vim-patch:9.1.0082: Redrawing can be improved when deleting lines with ↵zeertzjq2024-02-08
|/ | | | | | | | | | | | | | 'cursorline' Problem: Redrawing can be improved when deleting lines with 'cursorline'. Solution: Use smarter invalidation and adjustment. Remove unnecessary UPD_VALID as it is already set at the top of the loop. Make the test for vim/vim#4862 fail without the fix. (zeertzjq) closes: vim/vim#13986 https://github.com/vim/vim/commit/7ce34c9a947b17a8b5e81e7c2335a63552182d10
* refactor(lsp): tidy up loggingLewis Russell2024-02-08
|
* vim-patch:b8170143c8f8 (#27387)zeertzjq2024-02-08
| | | | | | | runtime(doc): further improve docs about List/Blob += operator closes: vim/vim#13990 https://github.com/vim/vim/commit/b8170143c8f8a115b5be59a94d10f931d3cd567c
* feat(api): pass 0 to nvim_get_chan_info for current channel (#27321)nikolightsaber2024-02-08
| | | | | | | | | | | Getting current channel info was kind of annoying via RPC. Two functions had to be called: 1. `nvim_get_api_info` which returns `[channel_id, meta_data]`. - This results in `channel_id = api.nvim_get_api_info()[0]`. - Here the meta_data is sent but never used. 2. Finally call `nvim_get_chan_info(channel_id)`. This commit reduces the need for `nvim_get_api_info` as passing 0 returns current channel info.
* Merge pull request #27284 from bfredl/unkeydictbfredl2024-02-08
|\ | | | | refactor(api): use keydict and arena for more api return values
| * refactor(generators): style of generating and generated lua dispatch codebfredl2024-02-08
| |
| * refactor(api): use keydict and arena for more api return valuesbfredl2024-02-08
| | | | | | | | | | | | | | Implement api_keydict_to_dict as the complement to api_dict_to_keydict Fix a conversion error when nvim_get_win_config gets called from lua, where Float values "x" and "y" didn't get converted to lua numbers.
* | build(deps): bump libuv to v1.48.0Christian Clason2024-02-08
|/
* Merge pull request #27379 from zeertzjq/vim-9.1.0080zeertzjq2024-02-08
|\ | | | | vim-patch:partial:9.1.0080,c9c2e2d2ff44
| * vim-patch:c9c2e2d2ff44zeertzjq2024-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): Clarify list-concatenation a bit more Make doc list-concatenation more clear as for += and extend(). 1. describe `+=` for list-concatenation more accurately 2. add `extend()` example for list-concatenation 3. Fix CI errors for missing helptags reference |+=| closes: vim/vim#13983 https://github.com/vim/vim/commit/c9c2e2d2ff4429a6b5876ee919f15c1dc0018e86 Co-authored-by: qeatzy <qeatzy@users.noreply.github.com>
| * vim-patch:partial:9.1.0080: unexpected error for modifying final list using +=zeertzjq2024-02-08
|/ | | | | | | | | | | | | | | | | | Problem: unexpected error for modifying final list using += operator (Ernie Rael) Solution: Allow List value modification of a final variable using += operator (Yegappan Lakshmanan) fixes: vim/vim#13745 fixes: vim/vim#13959 closes: vim/vim#13962 https://github.com/vim/vim/commit/1af35631f85d2fcdc83c5d457af8273697f5146a Only port eval.txt changes. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* fix(runtime): source c ftplugins in correct order (#27377)Maximilian Fricke2024-02-08
|
* fix(lsp): set fallback client name properlyzeertzjq2024-02-08
|
* refactor(lsp): move client code to a regular Lua classLewis Russell2024-02-07
| | | | | | | | | | Problem: The LSP client code is implemented as a complicated closure-class (class defined in a single function). Solution: Move LSP client code to a more conventional Lua class and move to a separate file.
* perf: improve utf_char2cells() performance (#27353)VanaIgr2024-02-07
| | | | | | | | | | | | | | `utf_char2cells()` calls `utf_printable()` twice (sometimes indirectly, through `vim_isprintc()`) for characters >= 128. The function can be refactored to call to it only once. `utf_printable()` uses binary search on ranges of unprintable characters to determine if a given character is printable. Since there are only 9 ranges, and the first range contains only one character, binary search can be replaced with SSE2 SIMD comparisons that check 8 ranges at a time, and the first range is checked separately. SSE2 is enabled by default in GCC, Clang and MSVC for x86-64. Add 3-byte utf-8 to screenpos_spec benchmarks.
* fix(event-loop): process input before events (#27358)zeertzjq2024-02-07
| | | | | | | | | | | Problem: When nvim_input is followed immediately by non-fast events on RPC, both events and input are available after the polling done by the os_inchar() in state_enter(), but state_enter() then chooses to process events even if input is available, which is inconsistent with state_handle_k_event() that stops processing events once input is available. Solution: Also check for available input after the os_inchar() in state_enter().
* feat(treesitter): show root nodes in :InspectTree (#26944)altermo2024-02-06
| | | | Co-authored-by: altermo <> Co-authored-by: Jongwook Choi <wookayin@gmail.com>
* fix(doc): prevent doxygen confusionLewis Russell2024-02-06
|
* fix(column): handle w_redr_statuscol at end filler lines (#27365)zeertzjq2024-02-06
| | | | There doesn't seem to be an easy solution that doesn't involve a goto. Also remove duplicate assignment in win_line().
* ci(release): bump mac runner version to macos-12dundargoc2024-02-06
|
* fix(lsp): send back diagnostic tags to the serverLewis Russell2024-02-06
| | | | Fixes: #27318
* vim-patch:9.1.0079: LineNrAbove/Below highlighting wrong on wrapped lines ↵zeertzjq2024-02-06
| | | | | | | | | | | | | (#27363) Problem: LineNrAbove and LineNrBelow background wrong on wrapped lines. Solution: Update number column also for wrapped part of a line. (zeertzjq) closes: vim/vim#13974 https://github.com/vim/vim/commit/ebfd856cfdf6ea0b16c8d115000961c998ce97da Cherry-pick test_number.vim changes from patch 9.0.0626.
* docs: small fixes (#27213)dundargoc2024-02-06
| | | Co-authored-by: Matthieu Coudron <886074+teto@users.noreply.github.com>
* vim-patch:f7f33e3719c8Christian Clason2024-02-06
| | | | | | | | | | | | | | | | | | | | | | runtime(dosbatch): improve '::' comment highlighting Added a syntax region for command blocks so that the highlighting of `::` comments in them can be controlled. The `dosbatch_colons_comment` variable now controls if all `::` comments in a code block are highlighted as comments or errors. A `::` comment at the end of a command block is always highlighted as an error. This re-enables the highlighting of `::` comments in `.bat` files as requested in vim/vim#13666, while allowing control of highlighting them in command blocks requested in vim/vim#11778 and first attempted in vim/vim#11980. related: vim/vim#11980 fixes: vim/vim#13666 https://github.com/vim/vim/commit/f7f33e3719c87279dfad109b874e2817007a1184 Co-authored-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Mike Williams <mikew@globalgraphics.com>
* vim-patch:9.1.0077: Unnecessary call to redraw_for_cursorline() in ↵zeertzjq2024-02-06
| | | | | | | | | | | | | | nv_mousescroll() (#27359) Problem: The call to redraw_for_cursorline() in nv_mousescroll() is unnecessary because redraw_for_cursorline() only sets redraw type to UPD_VALID, and all code paths in do_mousescroll() already set redraw type to at least UPD_VALID. Solution: Remove call to redraw_for_cursorline() in nv_mousescroll(). (zeertzjq) closes: vim/vim#13979 https://github.com/vim/vim/commit/3f1b5312e0fa0089f255bf9c0c3b27590552119e
* test(tui_spec): prevent race between nvim_input and nvim_paste (#27356)zeertzjq2024-02-06
|
* test: add test for 'foldcolumn' with cmdwin (#27355)zeertzjq2024-02-06
|
* fix(tui): `space_buf` overflow when clearing screen (#27352)Sean Dewar2024-02-06
| | | | | | | | | Problem: `tui->space_buf` may be smaller than the width of the TUI or widest grid, causing an overflow when calling `tui_grid_clear` if `print_spaces` is called from `clear_region` (clears the TUI's screen since #23428). Solution: resize `space_buf` to be wide enough to fit the TUI or widest grid. Didn't bother shrinking the allocation if the max widths decrease.
* Merge pull request #27295 from wookayin/feat/inspecttreeGregory Anders2024-02-05
|\ | | | | feat(treesitter): use 0-based indexing to show ranges in `:InspectTree`
| * test(treesitter): add test cases for inspect_treeJongwook Choi2024-02-05
| | | | | | | | Co-authored-by: altermo <107814000+altermo@users.noreply.github.com>
| * feat(treesitter): use 0-based indexing to show ranges in `:InspectTree`Jongwook Choi2024-02-05
|/ | | | | | | | | | | | | | | | | | Problem: - `:InspectTree` was showing node ranges in 1-based indexing, i.e., in vim cursor position (lnum, col). However, treesitter API adopts 0-based indexing to represent ranges (Range4). This can often be confusing for developers and plugin authors when debugging code written with treesiter APIs. Solution: - Change to 0-based indexing from 1-based indexing to show node ranges in `:InspectTree`. - Note: To make things not complicated, we do not provide an option or keymap to configure which indexing mode to use.
* fix(lsp): handle adjacent snippet tabstopsMaria José Solano2024-02-05
|
* Merge pull request #27328 from wookayin/fix/lsp-tagfuncLewis Russell2024-02-05
|\
| * test(lsp): add test cases for vim.lsp.tagfuncJongwook Choi2024-02-03
| | | | | | | | | | | | | | Problem: There is no test case for vim.lsp.tagfunc; so CI was unable to catch the infinite loop bug (#27325). Solution: Add test cases for vim.lsp.tagfunc().
| * fix(lsp): fix infinite loop on vim.lsp.tagfuncJongwook Choi2024-02-03
| | | | | | | | | | | | | | | | Problem: vim.lsp.tagfunc() causes an infinite loop. This is a bug happened while introducing deferred loading. Solution: Rename the private module to `vim.lsp._tagfunc`.
* | fix(redraw): update Visual selection properly with splits (#27343)zeertzjq2024-02-05
| |
* | fix(inccommand): update topline after moving cursor (#27341)zeertzjq2024-02-05
| |
* | perf(redraw): only redraw Visual area when cursor has moved (#27340)zeertzjq2024-02-05
| |
* | build(deps): bump luajit to HEAD - 0d313b243Christian Clason2024-02-04
| |
* | fix(treesitter): inspect-tree remember opts on buf changealtermo2024-02-04
| |
* | vim-patch:9.1.0076: luau config file not detectedChristian Clason2024-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: luau config file not detected (lopy) Solution: Detect it as jsonc (lopy) fixes: vim/vim#13960 closes: vim/vim#13970 https://github.com/vim/vim/commit/de7f5bde6c598d4da4ce5b30328eb458962ba60a Co-authored-by: lopy <70210066+lopi-py@users.noreply.github.com>
* | vim-patch:9.1.0075: insert completion not correct when adding new leader ↵Raphael2024-02-04
| | | | | | | | | | | | | | | | | | | | | | (#27332) Problem: insert completion not correct when adding new leader Solution: Reset compl_curr_match to compl_shown_match (glepnir) closes: vim/vim#13957 https://github.com/vim/vim/commit/cbb46b439888e10f87baaca504eafd191723c44b
* | vim-patch:7c5aeaffa2be (#27327)zeertzjq2024-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(vim): Update syntax file (vim/vim#13969) Improve string interpolation highlighting. Use the vimSep group to highlight interpolation braces as vimOperParen has no highlighting of its own and employs vimSep via matchgroup. Add vimNumber to the interpolation group's contained list. https://github.com/vim/vim/commit/7c5aeaffa2bec8f16f36bd33a749a6e965d8ab30 Co-authored-by: dkearns <dougkearns@gmail.com>
* | Merge pull request #27326 from zeertzjq/vim-9.1.0073zeertzjq2024-02-04
|\ \ | | | | | | vim-patch:9.1.{0073,0074}
| * | vim-patch:9.1.0074: did_set_breakat() should be in optionstr.czeertzjq2024-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: did_set_breakat() should be in optionstr.c as 'breakat' is a string option. Solution: Move did_set_breakat() to optionstr.c. (zeertzjq) closes: vim/vim#13958 https://github.com/vim/vim/commit/eac3fdcfa0b54281c37ffb66b4d4e8d1072cca1c
| * | vim-patch:9.1.0073: Looping over modifier_keys_table unnecessarilyzeertzjq2024-02-04
|/ / | | | | | | | | | | | | | | | | | | | | | | | | Problem: Looping over modifier_keys_table[] unnecessarily with only MOD_MASK_ALT or MOD_MASK_CMD, as modifier_keys_table[] only contains MOD_MASK_SHIFT and MOD_MASK_CTRL, and the loop won't do anything. Solution: Remove MOD_MASK_ALT and MOD_MASK_CMD from the condition. (zeertzjq) closes: vim/vim#13963 https://github.com/vim/vim/commit/0c989e4a3ae50085aa8c6bed5d6701760191bc1d