aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
Commit message (Collapse)AuthorAge
* vim-patch:9.1.0242: filetype: octave history files are not recognizedChristian Clason2024-04-01
| | | | | | | | | | | | Problem: filetype: octave history files are not recognized Solution: Detect octave/history files as octave (Wu, Zhenyu) closes: vim/vim#14363 https://github.com/vim/vim/commit/be71ac694f623e162f1ecb7a182bdf2fd281591f Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0241: filetype: mysql history files are not recognizedChristian Clason2024-04-01
| | | | | | | | | | | | Problem: filetype: mysql history files are not recognized Solution: Detect .mysql_history as mysql (Wu, Zhenyu) closes: vim/vim#14362 https://github.com/vim/vim/commit/6b285c8cfd74e1da49fe17dca2ea9989bd9dae49 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0240: filetype: some python tools config files are not recognizedChristian Clason2024-04-01
| | | | | | | | | | | | Problem: filetype: some python tools config files are not recognized Solution: Detect config files for setuptools, pudb, coverage as dosini (Wu, Zhenyu) closes: vim/vim#14361 https://github.com/vim/vim/commit/665220a17b830a271f0c7ef07211d25cd1c7b389 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0239: filetype: gnuplot history files are not recognisedChristian Clason2024-04-01
| | | | | | | | | | | | Problem: filetype: gnuplot history files are not recognised Solution: detect .gnuplot_history files as gnuplot (Wu, Zhenyu) closes: vim/vim#14360 https://github.com/vim/vim/commit/8e47eb31cc8b29a223f1706730b8f4a5598d59ce Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0238: filetype: jupyterlab and sublime config are not recognizedChristian Clason2024-04-01
| | | | | | | | | | | | Problem: filetype: jupyterlab and sublime config are not recognized Solution: Detect jupyterlab and sublime config files as json (Wu, Zhenyu) closes: vim/vim#14359 https://github.com/vim/vim/commit/75c607dff7c9e02766ae0fd3588e08da00394d0f Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0237: filetype: mplstyle files are not recognizedChristian Clason2024-04-01
| | | | | | | | | | | Problem: filetype: mplstyle files are not recognized Solution: Detect '*.mplstyle' files as yaml (Wu, Zhenyu) closes: vim/vim#14358 https://github.com/vim/vim/commit/0fd560d46a1b83edba032300ab1f6119d4dca7b5 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0236: filetype: texlua files are not recognizedChristian Clason2024-04-01
| | | | | | | | | | | | | Problem: filetype: texlua files are not recognized Solution: Add '*.tlu' pattern for texlua files (Wu, Zhenyu) Reference: https://github.com/TeX-Live/texdoc/tree/master/script closes: vim/vim#14357 https://github.com/vim/vim/commit/a75f4791b147db60a1d2744bb5ab7326e0c0edc0 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0235: filetype: supertux files are not recognizedChristian Clason2024-04-01
| | | | | | | | | | | | | | | Problem: filetype: supertux files are not recognized Solution: Supertux uses lisp to store hotkeys in config and game stage information, so add a pattern for supertux files. (Wu, Zhenyu) Reference: https://github.com/SuperTux/supertux/wiki/S-Expression closes: vim/vim#14356 https://github.com/vim/vim/commit/4ff83b904ea579e51a0da5d2c6c3873ccef4ac0e Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0234: filetype: support for Intel HEX files is lackingChristian Clason2024-04-01
| | | | | | | | | | | | | | Problem: filetype: support for Intel HEX files is lacking Solution: Add more file extensions that are typical for Intel HEX files (Wu, Zhenyu) Reference: https://en.wikipedia.org/wiki/Intel_HEX closes: vim/vim#14355 https://github.com/vim/vim/commit/e523dd9803ed62ea0657af8c85ab7bdfe80f4c53 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* fix(lsp): abort callHierarchy on no result (#28102)Marcin Szamotulski2024-03-31
| | | | | | | | The `callHierarchy` function should warn the user when `textDocument/prepareCallHierarchy` didn't resolve an entity and return, rather than calling the `callHierarchy/{incoming,outgoing}Calls` method with an empty object - which is encoded as an empty list (which doesn't respect language server specification for the `callHierarchy/incomingCalls` call).
* feat(lua): pass keys before mapping to vim.on_key() callback (#28098)zeertzjq2024-03-31
| | | Keys before mapping (i.e. typed keys) are passed as the second argument.
* fix: support UNC paths in vim.fs.normalizedundargoc2024-03-30
| | | | Closes https://github.com/neovim/neovim/issues/27068.
* fix(fs): allow backslash characters in unix pathsJames Trew2024-03-29
| | | | | | | Backslashes are valid characters in unix style paths. Fix the conversion of backslashes to forward slashes in several `vim.fs` functions when not on Windows. On Windows, backslashes will still be converted to forward slashes.
* vim-patch:9.1.0228: Two unrelated things are tested by a single test (#28093)zeertzjq2024-03-29
| | | | | | | | | | Problem: Two unrelated things are tested by a single test. Solution: Split it into two, restoring the old Test_brace_single_line(). Add missing cleanup to some tests. (zeertzjq) closes: vim/vim#14323 https://github.com/vim/vim/commit/ad493ef3ea9ef7f2b0badcd2298883b5ab6e4ef4
* vim-patch:9.1.0215: Half-page scrolling does not support smooth-scrollingLuuk van Baal2024-03-28
| | | | | | | | | | | | | Problem: Page-wise scrolling with Ctrl-D/Ctrl-U implements it's own logic to change the topline and cursor. More logic than necessary for scrolling with Ctrl-F/Ctrl-B was removed in patch 9.1.0211. Solution: Re-use the logic from Ctrl-E/Ctrl-Y/Ctrl-F/Ctrl-B while staying backward compatible as much as possible. Restore some of the logic that determined how many lines will be scrolled (Luuk van Baal) https://github.com/vim/vim/commit/5a2e3ec9ac72b6e644fea4ebba7e632498296e2f
* vim-patch:9.1.0211: page-wise scrolling does not support smooth-scrollingLuuk van Baal2024-03-28
| | | | | | | | | | | Problem: Page-wise scrolling with Ctrl-F/Ctrl-B implements it's own logic to change the topline and cursor. In doing so, skipcol is not handled properly for 'smoothscroll', and virtual lines. Solution: Re-use the logic from Ctrl-E/Ctrl-Y while staying backward compatible as much as possible. https://github.com/vim/vim/commit/b9f5b95b7bec2414a5a96010514702d99afea18e
* docs: fix typos (#27868)dundargoc2024-03-28
| | | | | | | | | Co-authored-by: ite-usagi <77563904+ite-usagi@users.noreply.github.com> Co-authored-by: v-sim <56476039+v-sim@users.noreply.github.com> Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Quico Augustijn <quico.public@gmail.com> Co-authored-by: nhld <nahnera@gmail.com> Co-authored-by: francisco souza <108725+fsouza@users.noreply.github.com>
* feat(tui): query extended underline support using DECRQSS (#28052)zeertzjq2024-03-28
|
* vim-patch:9.1.0196: filetype: support for gnuplot files is lacking (#27972)Christian Clason2024-03-27
| | | | | | | | | | | Problem: filetype: support for gnuplot files is lacking Solution: Also detect *.gnuplot files (RobbiZ98) closes: vim/vim#14243 https://github.com/vim/vim/commit/3a6bd0c5c743bf69d2e8af4c8b3c6b2cb5f3631a Co-authored-by: RobbiZ98 <113035863+RobbiZ98@users.noreply.github.com>
* fix(treesitter): return correct match table in iter_captures()Lewis Russell2024-03-27
|
* feat(diagnostic): add support for many namespaces filtering in GetOpts (#28045)Mayrom2024-03-26
|
* docs: remove remaining mentions of hkmap (#28038)zeertzjq2024-03-26
|
* fix(filetype): don't use fnamemodify() with :e for extension (#27976)zeertzjq2024-03-26
| | | | | | | Use pattern matching instead, as fnamemodify() with :e produces an empty string when the file name only has an extension, leading to differences in behavior from Vim. Related #16955 #27972
* refactor(lsp): simplify client trackingLewis Russell2024-03-25
| | | | | | | | | | | - Remove: - uninitialized_clients - active_clients - all_buffer_active_clients - Add: - all_clients - Use `lsp.get_clients()` to get buffer clients.
* fix(test): typingLewis Russell2024-03-25
|
* vim-patch:ab01adf7c65bChristian Clason2024-03-25
| | | | | | | | | | runtime(doc): Update options.txt closes: vim/vim#14295 https://github.com/vim/vim/commit/ab01adf7c65b4ee350b402ab3ef1e7dfa5e074f1 Co-authored-by: Song-Tianxiang <149415622+Song-Tianxiang@users.noreply.github.com>
* Revert "refactor(lsp): simplify client tracking"Lewis Russell2024-03-25
| | | | This reverts commit 3f238b39cfdf27657b2d9452c6ffd28f8209c95f.
* refactor(lsp): simplify client trackingLewis Russell2024-03-25
| | | | | | | | | | | - Remove: - uninitialized_clients - active_clients - all_buffer_active_clients - Add: - all_clients - Use `lsp.get_clients()` to get buffer clients.
* fix(vim.iter): use correct cmp function when truncating tail in `take` (#27998)Calvin Bochulak2024-03-23
|
* vim-patch:9.1.0199: Not enough tests for the slice() function (#27991)zeertzjq2024-03-23
| | | | | | | | | | Problem: Not enough tests for the slice() function. Solution: Test with multibyte chars, and in both Legacy and Vim9 script. Update docs to be clearer about how it treats composing chars. (zeertzjq) closes: vim/vim#14275 https://github.com/vim/vim/commit/ad38769030b5fa86aa0e8f1f0b4266690dfad4c9
* fix(lsp): handle stale bufnr on LspRequest autocmd trigger (#27981)Jaehwang Jung2024-03-22
| | | continuation of https://github.com/neovim/neovim/pull/24013
* vim-patch:9.1.0188: filetype: no support for Vento files (#27935)Christian Clason2024-03-20
| | | | | | | | | | | | Problem: Vento files are not recognized. Solution: Recognize *.vto files as filetype "vento" (wrapperup) Vento is a templating engine https://vento.js.org/ closes: vim/vim#14229 https://github.com/vim/vim/commit/9f26e5a9bcedb3caef26e9d77849ea37a3626bbf Co-authored-by: wrapperup <wrapperup4@gmail.com>
* refactor(treesitter): redesign query iteratingLewis Russell2024-03-19
| | | | | | | | | | | | | | | | Problem: `TSNode:_rawquery()` is complicated, has known issues and the Lua and C code is awkwardly coupled (see logic with `active`). Solution: - Add `TSQueryCursor` and `TSQueryMatch` bindings. - Replace `TSNode:_rawquery()` with `TSQueryCursor:next_capture()` and `TSQueryCursor:next_match()` - Do more stuff in Lua - API for `Query:iter_captures()` and `Query:iter_matches()` remains the same. - `treesitter.c` no longer contains any logic related to predicates. - Add `match_limit` option to `iter_matches()`. Default is still 256.
* vim-patch:9.1.0187: filetype: no support for Dafny files (#27918)Christian Clason2024-03-18
| | | | | | | | | | | | | Problem: Dafny files are not recognized. Solution: Recognize *.dfy files as filetype "dafny" (zeertzjq). Ref: https://dafny.org/ Ref: https://github.com/mlr-msft/vim-loves-dafny closes: vim/vim#14226 https://github.com/vim/vim/commit/4e334d0443f28f4e749dbef38d686d0dd19122de Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* fix(treesitter): revert to using iter_captures in highlighterLewis Russell2024-03-17
| | | | Fixes #27895
* fix(lsp): create codelens request parameters for each buffer (#27699)Takuya Tokuda2024-03-17
|
* refactor(lua): type annotationsLewis Russell2024-03-16
|
* Merge pull request #27674 from glepnir/snippet_indentbfredl2024-03-15
|\ | | | | fix(snippet): correct indent with newline
| * fix(snippet): correct indent with newlineglepnir2024-03-01
| | | | | | | | | | | | Problem: snippet newline use before line indent after expand. Solution: it should level + 1.
* | vim-patch:9.1.0181: no overflow check for string formatting (#27863)zeertzjq2024-03-15
| | | | | | | | | | | | | | | | | | | | | | Problem: no overflow check for string formatting Solution: Check message formatting function for overflow. (Chris van Willegen) closes: vim/vim#13799 https://github.com/vim/vim/commit/c35fc03dbd47582b256776fb11f11d8ceb24f8f0 Co-authored-by: Christ van Willegen <cvwillegen@gmail.com>
* | fix(terminal): disable reflow againChristian Clason2024-03-14
| | | | | | | | | | | | | | reverts https://github.com/neovim/neovim/commit/c855eee919f2d4edc9b9fa91b277454290fbabfe This setting introduces constant CI failures on macos (see https://github.com/neovim/neovim/issues/23762).
* | refactor(treesitter): move some logic into functionsLewis Russell2024-03-14
| |
* | fix(treesitter): highlight injections properlyLewis Russell2024-03-14
| | | | | | | | | | `on_line_impl` doesn't highlight single lines, so using pattern indexes to offset priority doesn't work.
* | vim-patch:9.1.0175: wrong window positions with 'winfix{width,height}' (#27845)Sean Dewar2024-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: winframe functions incorrectly recompute window positions if the altframe wasn't adjacent to the closed frame, which is possible if adjacent windows had 'winfix{width,height}' set. Solution: recompute for windows within the parent of the altframe and closed frame. Skip this (as before) if the altframe was top/left, but only if adjacent to the closed frame, as positions won't change in that case. Also correct the return value documentation for win_screenpos. (Sean Dewar) The issue revealed itself after removing the win_comp_pos call below winframe_restore in win_splitmove. Similarly, wrong positions could result from windows closed in other tabpages, as win_free_mem uses winframe_remove (at least until it is entered later, where enter_tabpage calls win_comp_pos). NOTE: As win_comp_pos handles only curtab, it's possible via other means for positions in non-current tabpages to be wrong (e.g: after changing 'laststatus', 'showtabline', etc.). Given enter_tabpage recomputes it, maybe it's intentional as an optimization? Should probably be documented in win_screenpos then, but I won't address that here. closes: vim/vim#14191 Nvim: don't reuse "wp" for "topleft" in winframe_remove, so the change integrates better with the call to winframe_find_altwin before it. https://github.com/vim/vim/commit/5866bc3a0f54115d5982fdc09bdbe4c45069265a
* | Merge pull request #27839 from seandewar/vim-9.1.0169Sean Dewar2024-03-12
|\ \ | | | | | | vim-patch:9.1.{0169,0170,0171,9a660d2883f9}
| * | vim-patch:9a660d2883f9Sean Dewar2024-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): add reference to matchbufline() at :h search() related: vim/vim#14173 https://github.com/vim/vim/commit/9a660d2883f92b3a3761c964dc14363a8f70c8d8 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | vim-patch:9.1.0170: Re-allow curwin == prevwin, but document it insteadSean Dewar2024-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: more places exist where curwin == prevwin, and it may even be expected in some cases. Solution: revert v9.1.0001, but document that it's possible instead. (Sean Dewar) I've had a change of heart for the following reasons: - A quick 'n dirty [GitHub code search](https://github.com/search?q=%2F%28winnr%5C%28%5C%29%5Cs*%3D%3D%5Cs*winnr%5C%28%5B%27%22%5D%23%5B%27%22%5D%5C%29%7Cwinnr%5C%28%5B%27%22%5D%23%5B%27%22%5D%5C%29%5Cs*%3D%3D%5Cs*winnr%5C%28%5C%29%29%2F&type=code) reveals some cases where it's expected in the wild. Particularly, it made me aware `winnr() == winnr('#')` is possible when curwin is changed temporarily during the evaluation of a &statusline expression item (`%{...}`), and is used to show something different on the statusline belonging to the previous window; that behaviour wasn't changed in v9.1.0001, but it means curwin == prevwin makes sense in some cases. - The definition and call sites of back_to_prevwin imply some expectation that prevwin == wp (== curwin) is possible, as it's used to skip entering the prevwin in that case. - Prior to v9.1.0001, `:wincmd p` would not beep in the case that was patched in v9.1.0001, but now does. That resulted in vim/vim#14047 being opened, as it affected the CtrlP plugin. I find it odd that `:wincmd p` had cases where it wouldn't beep despite doing nothing, but it may be preferable to keep things that way (or instead also beep if curwin == prevwin, if that's preferred). - After more digging, I found cases in win_free_mem, enter_tabpage, aucmd_restbuf and qf_open_new_cwindow where curwin == prevwin is possible (many of them from autocommands). Others probably exist too, especially in places where curwin is changed temporarily. fixes: vim/vim#14047 closes: vim/vim#14186 https://github.com/vim/vim/commit/d64801e913314d2e19dbb38f60e6d285238debff
* | | fix(treesitter): use 0 as initial value for computing maximum (#27837)Gregory Anders2024-03-12
|/ / | | | | | | | | Using -1 as the initial value can cause the pattern offset to become negative, which in turn results in a negative subpriority, which fails validation in nvim_buf_set_extmark.
* | feat(treesitter): support URLs (#27132)Gregory Anders2024-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tree-sitter queries can add URLs to a capture using the `#set!` directive, e.g. (inline_link (link_text) @text.reference (link_destination) @text.uri (#set! @text.reference "url" @text.uri)) The pattern above is included by default in the `markdown_inline` highlight query so that users with supporting terminals will see hyperlinks. For now, this creates a hyperlink for *all* Markdown URLs of the pattern [link text](link url), even if `link url` does not contain a valid protocol (e.g. if `link url` is a path to a file). We may wish to change this in the future to only linkify when the URL has a valid protocol scheme, but for now we delegate handling this to the terminal emulator. In order to support directives which reference other nodes, the highlighter must be updated to use `iter_matches` rather than `iter_captures`. The former provides the `match` table which maps capture IDs to nodes. However, this has its own challenges: - `iter_matches` does not guarantee the order in which patterns are iterated matches the order in the query file. So we must enforce ordering manually using "subpriorities" (#27131). The pattern index of each match dictates the extmark's subpriority. - When injections are used, the highlighter contains multiple trees. The pattern indices of each tree must be offset relative to the maximum pattern index from all previous trees to ensure that extmarks appear in the correct order. - The `iter_captures` implementation currently has a bug where the "match" table is only returned for the first capture within a pattern (see #27274). This bug means that `#set!` directives in a query apply only to the first capture within a pattern. Unfortunately, many queries in the wild have come to depend on this behavior. `iter_matches` does not share this flaw, so switching to `iter_matches` exposed bugs in existing highlight queries. These queries have been updated in this repo, but may still need to be updated by users. The `#set!` directive applies to the _entire_ query pattern when used without a capture argument. To make `#set!` apply only to a single capture, the capture must be given as an argument.
* | fix: move fswatch linux check inside of vim.schedule (#27824)Tomas Slusny2024-03-12
| | | | | | | | | | | | Fixes issue reported in the original PR: https://github.com/neovim/neovim/pull/27810 Signed-off-by: Tomas Slusny <slusnucky@gmail.com>