aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* perf(vim.fs.normalize): use iteratorLewis Russell2024-05-15
| | | | ~10% faster.
* perf(loader): use a quicker version of vim.fs.normalizeLewis Russell2024-05-15
| | | | | | | | | | | | | | | | Problem: vim.fs.normalize() normalizes too much vim.loader and is slow. Solution: Make it faster by doing less. This reduces the times spent in vim.fs.normalize in vim.loader from ~13ms -> 1-2ms. Numbers from a relative benchmark: - Skipping `vim.validate()`: 285ms -> 230ms - Skipping `path_resolve_dot()`: 285ms -> 60ms - Skipping `double_slash`: 60ms -> 35ms
* docs: misc (#28609)dundargoc2024-05-15
| | | | | | | | | | | | Closes https://github.com/neovim/neovim/issues/28484. Closes https://github.com/neovim/neovim/issues/28719. Co-authored-by: Chris <crwebb85@gmail.com> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Jake B <16889000+jakethedev@users.noreply.github.com> Co-authored-by: Jonathan Raines <jonathan.s.raines@gmail.com> Co-authored-by: Yi Ming <ofseed@foxmail.com> Co-authored-by: Zane Dufour <zane@znd4.me> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* fix(lsp): don't start additional client if attach failed (#28744)Mathias Fußenegger2024-05-14
| | | | If a client for a server was already running and lsp.start was called in an unloaded buffer it started another client instead of bailing out.
* fix(treesitter): allow optional directive captures (#28664)Riley Bruins2024-05-14
|
* fix(health): clients may not support watchfiles #28710Maria José Solano2024-05-14
|
* feat(lsp): update LSP protocol 3.18 typings to date (#28730)Jongwook Choi2024-05-14
| | | | Make the LSP protocol typings up-to-date with LSP protocol (upcoming) version 3.18, before and in preparation for the Nvim 0.10.0 release.
* perf(lsp): only joinpath for dirs in watchdirsMathias Fussenegger2024-05-14
| | | | | | | | | | | | | | | | | | | | | | | | Doesn't have a huge impact, but showed up in profile output using `require("jit.p").start("i1", "/tmp/profile")` before: 31% joinpath 25% fs.lua:0 13% normalize 13% skip 8% _watchfunc 5% gsplit 3% spairs after: 34% skip 29% fs.lua:0 12% joinpath 7% normalize 5% _watchfunc 5% spairs
* perf(fs): normalize path only once in fs.dirMathias Fussenegger2024-05-14
| | | | | | | | | | | | | | | | | | | | | | | Re-normalizing a path after a `joinpath` isn't necessary. Calling `normalize` on each child directory had quite a bit of impact when traversing a large directory. A simple test showed: Before: ~144ms After: ~80ms running the following logic against a dir with 4367 child folders and 25826 files: local files = {} local start = uv.hrtime() for name, type in vim.fs.dir(path, { depth = max_depth }) do table.insert(files, { name, type }) end local duration = uv.hrtime() - start Relates to https://github.com/neovim/neovim/issues/23291
* vim-patch:7961210b861cChristian Clason2024-05-14
| | | | | | | | runtime(python): Fix wrong define regex in ftplugin (vim/vim#14763) https://github.com/vim/vim/commit/7961210b861ce9a1a773cfc1fe96b388216bb1f2 Co-authored-by: Tom Picton <tom@tompicton.com>
* vim-patch:86f6e2c2eed7Christian Clason2024-05-14
| | | | | | | | | | | | | ftplugin(python): E16 fix, async keyword support for define (vim/vim#14751) This change includes the following changes: - Fix "E16: Invalid range" when using a count with jump to start/end of class/method - Update define with optional async keyword - Update maintainer email https://github.com/vim/vim/commit/86f6e2c2eed7df2bf5c60cc74d08d7a8d3c75f45 Co-authored-by: Tom Picton <tom@tompicton.com>
* vim-patch:43f2edc096cbChristian Clason2024-05-14
| | | | | | | | | | | | | | | | runtime(netrw): prefer scp over pscp regression introduced in ce2ad9ffd79fe6b2307cd46b9 The current logic is a bit funny, in that it checks for an executable of scp, then pscp and if neither exists, it uses: scp :/ Anyway, let's fall back to the logic used before the above commit. related: vim/vim#14739 https://github.com/vim/vim/commit/43f2edc096cbf9c67095b301a1f4325866eeba36 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:679f5abb9930Christian Clason2024-05-14
| | | | | | | | | | | runtime(i3config/swayconfig): allow indented commands (vim/vim#14757) fixes: vim/vim#14752 https://github.com/vim/vim/commit/679f5abb9930fafda29ae038f47de357e9a0f53e Co-authored-by: Josef Litoš <54900518+JosefLitos@users.noreply.github.com> Co-authored-by: jamespeapen <jamespeapen@users.noreply.github.com>
* refactor(lua): remove deprecated features #28725Justin M. Keyes2024-05-13
|
* fix(treesitter): text alignment in checkhealth vim.treesitterJongwook Choi2024-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | Problem: The column width 10 for parser name (lang) is too short. For example, `markdown_inline` has 15 characters, which results in a slight misalignment with other lines. e.g. it looked like: ``` - OK Parser: markdown ABI: 14, path: .../parser/markdown.so - OK Parser: markdown_inline ABI: 14, path: .../parser/markdown_inline.so - OK Parser: php ABI: 14, path: .../parser/php.so ``` Solution: Use column width 20. As of now, the longest name among those available in nvim-treesitter has length 18 (`haskell_persistent`). e.g.: ``` - OK Parser: markdown ABI: 14, path: .../parser/markdown.so - OK Parser: markdown_inline ABI: 14, path: .../parser/markdown_inline.so - OK Parser: php ABI: 14, path: .../parser/php.so ```
* refactor(api): nvim_win_xx_ns are EXPERIMENTALJustin M. Keyes2024-05-12
| | | | | | | | | | | | | | | | | Problem: The nvim_win_xx_ns function family introduced in ba0370b1d718d473d0ef51c35d88b98ba220082b needs more bake-time. Currently it's narrowly defined for windows, but other scopes ("buffer") and features are likely in the future. Solution: - Rename the API with double-underscore to mark it as EXPERIMENTAL. TODO/FUTURE: - Rename and change the signature to support more than just "window" scope, and for other flexibility. - Open question: we could choose either: - "store scopes on namespaces", or - "store namespaces on scopes (w:/b:/…)"
* refactor(api): rename nvim_win_remove_nsJustin M. Keyes2024-05-12
| | | | | | | | Problem: nvim_win_remove_ns does not follow `help dev-naming` API naming conventions. Solution: Rename it.
* vim-patch:1c5728e0c4a9 (#28703)zeertzjq2024-05-11
| | | | | | | | | runtime(doc): update and remove some invalid links closes: vim/vim#14748 https://github.com/vim/vim/commit/1c5728e0c4a9df930879f9f0ca108092d5902194 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:c16c4a21eb39Christian Clason2024-05-11
| | | | | | | | | | runtime(netrw): Recursively delete directories by default with netrw delete command closes: vim/vim#14742 https://github.com/vim/vim/commit/c16c4a21eb397634309f1f574811461d6154118d Co-authored-by: Nir Lichtman <nir@lichtman.org>
* vim-patch:d3952e8cfe7bChristian Clason2024-05-11
| | | | | | | | | | | | | runtime(java): Strive to remain compatible for at least Vim 7.0 (vim/vim#14744) Also: - Limit all look-behind regexp patterns. - Cache regexp capabilities for [:upper:] and [:lower:]. https://github.com/vim/vim/commit/d3952e8cfe7baed1ff5c8111da5272a038cb55e4 Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
* vim-patch:9.1.0402: filetype: mdd files detected as zsh filetypeChristian Clason2024-05-11
| | | | | | | | | | | | Problem: filetype: mdd files detected as zsh filetype Solution: detect '*.mdd' files as sh filetype, add links to reference documentation (Wu, Zhenyu) closes: vim/vim#14741 https://github.com/vim/vim/commit/63f2a5b8adfb570792b9a7cbfff1c350913bbe3e Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:9.1.0401: filetype: zsh module files are not recognizedChristian Clason2024-05-11
| | | | | | | | | | | | | Problem: filetype: zsh module files are not recognized Solution: Detect '*.mdh' and '*.epro' as C filetype, '*.mdd' as zsh filetype, determine zsh-modules '*.pro' from from it's content (Wu, Zhenyu) closes: vim/vim#14737 https://github.com/vim/vim/commit/887a38cee78c472fe406da60751fbba4a6ec19dd Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* vim-patch:06bdac158072Christian Clason2024-05-10
| | | | | | | | | | | | | | | | | | | | | | | | runtime(java): Stop handpicking syntax groups for @javaTop (vim/vim#14727) * runtime(java): Stop handpicking syntax groups for @javaTop Also: - Remove the obsolete comment for g:java_allow_cpp_keywords. - Remove the commented out groups java\%[Debug\]StringError. - Infer and set the preferred formatting Vim options from the modeline. Since vim-6-0u, non-contained syntax groups can be referred to by using the "contains=TOP..." argument. * Set &encoding and &termencoding to "utf-8" for test files * Limit non-ASCII charset to [§ƒɐɘʬʭΑ-Τα-μ] for test files https://github.com/vim/vim/commit/06bdac158072b90560915f8e664ee6d9bdab2f9b Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
* fix(lsp): disable didChangeWatchedFiles on LinuxLewis Russell2024-05-10
| | | | | | | | | | | | | Problem: The file watcher backends for Linux have too many limitations and doesn't work reliably. Solution: disable didChangeWatchedFiles on Linux Ref: #27807, #28058, #23291, #26520
* vim-patch:cb3691811be9 (#28684)zeertzjq2024-05-10
| | | | | | | | | | | | | | runtime(spec): add new items to scripts section in syntax plugin - %generate_buildrequires — added in RPM 4.15 - %conf — added in RPM 4.18 closes: vim/vim#14723 Ref: https://rpm-software-management.github.io/rpm/manual/spec.html#build-scriptlets https://github.com/vim/vim/commit/cb3691811be93b2c49179649c684d6ce2141a46f Co-authored-by: Maxwell G <maxwell@gtmx.me>
* vim-patch:ce2ad9ffd79fChristian Clason2024-05-10
| | | | | | | | | | runtime(netrw): Remove hardcoded private.ppk logic from netrw closes: vim/vim#14739 https://github.com/vim/vim/commit/ce2ad9ffd79fe6b2307cd46b96af7d99c0dd646e Co-authored-by: Nir Lichtman <nir@lichtman.org>
* vim-patch:9.1.0396: filetype: jj files are not recognized (#28672)Gregory Anders2024-05-08
| | | | | | | | | | | Problem: jj files are not recognized Solution: recognize '*.jjdescription' files as jj filetype (Gregory Anders) See: https://github.com/martinvonz/jj closes: vim/vim#14733 https://github.com/vim/vim/commit/6a4ea471d28107c4078e106ace1bdc0c54bf946b
* vim-patch:1e34b95e4402Christian Clason2024-05-09
| | | | | | | | | | runtime(netrw): Remove and cleanup Win9x legacy from netrw closes: vim/vim#14732 https://github.com/vim/vim/commit/1e34b95e4402fd8964ea4bcee0d2b6ffa6677aab Co-authored-by: Nir Lichtman <nir@lichtman.org>
* vim-patch:c5def6561d56Christian Clason2024-05-07
| | | | | | | | | | | | runtime(cpp): Fix digit separator in syntax script for octals and floats Also fix the incorrect rendering of floats that start with ".". closes: vim/vim#14724 https://github.com/vim/vim/commit/c5def6561d5612487ac3523787da1c26335b17e1 Co-authored-by: Wu Yongwei <wuyongwei@gmail.com>
* Merge #28637 more support for vim.lsp.ListOpts.loclistJustin M. Keyes2024-05-07
|\
| * feat(lsp): support vim.lsp.ListOpts.loclist in location_handler()tom-anders2024-05-07
| |
| * docs(lsp): document vim.lsp.ListOpts.loclisttom-anders2024-05-07
| |
| * refactor(lsp): use vim.cmd instead of api.nvim_commandtom-anders2024-05-07
| | | | | | | | | | | | As suggested in https://github.com/neovim/neovim/pull/28483#discussion_r1586878457 and https://github.com/neovim/neovim/pull/28483#discussion_r1586878226
| * docs(lsp): fix type annotations in response_to_list(...)tom-anders2024-05-07
| |
| * refactor(lsp): move repeated table construction into a variabletom-anders2024-05-07
| | | | | | | | As suggested in https://github.com/neovim/neovim/pull/28483#discussion_r1581712828
| * refactor(lsp): use vim.is_callable()tom-anders2024-05-07
| |
| * refactor(lsp): s/options/opts for parameters in vim.lsp.buftom-anders2024-05-07
| | | | | | | | See https://github.com/neovim/neovim/pull/28483#discussion_r1583344120
* | fix(lsp): rename LspProgress data.result => data.params #28632Jongwook Choi2024-05-07
|/ | | | | | | | | | | | Rename the field `result` to `params` in the `data` table for `LspProgress` autocmds. This aligns with LspNotify. The previous name was chosen because the initial handler implementation mistakenly had a parameter name `result` instead of `params` for the `$/progress` LSP "notification" handler. However, `params` would be a more appropriate name that is more consistent with the underlying LSP type (`ProgressParams`). See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#progress
* fix(treesitter): clip end row earlyJaehwang Jung2024-05-07
| | | | | | | | Problem: UINT32_MAX + 1 passed to vim._foldupdate. Solution: Clip the end row from treesitter asap to avoid such issues.
* fix(lsp): enable() does not activate inlay hints on open buffers #28629Yi Ming2024-05-07
| | | | | | | | | | | Problem: inlay_hint `enable(<no args>)` does not activate inlay hints on open buffers. If a buffer does not have a corresponding `bufstate` in `bufstates`, then `enable` all buffers will not take effect on it. Solution: Make the effective range determined by the loaded buffers. Fix #28624
* vim-patch:8d8cb45756cb (#28657)zeertzjq2024-05-07
| | | | | | | | | | | | | | | | | | | | | runtime(sh,zsh): clear $MANPAGER in ftplugin before shelling out Say you use Vim and set MANPAGER='vim -M +MANPAGER --not-a-term -'; then :{Zs,S}hKeywordPrg (or K) will crap out and spew terminal garbage into less when bash's "help" fails. This was introduced by 2f25e40b1 (runtime: configure keywordpg for some file types (vim/vim#5566), 2023-08-23) and may be present in other files touched by that commit. Make the "man" invocation sensible by unsetting MANPAGER in the environment. Note that changing MANPAGER for `:terminal` is not needed; Vim within Vim is perfectly fine. closes: vim/vim#14679 https://github.com/vim/vim/commit/8d8cb45756cb7e6fda17013b8347be3a11b29610 Co-authored-by: D. Ben Knoble <ben.knoble+github@gmail.com>
* revert: default LSP mappings (#28649)Gregory Anders2024-05-06
| | | | | | | | | Revert the default LSP mappings before the 0.10 release as these might need some further consideration. In particular, it's not clear if "c" prefixed maps in Normal mode are acceptable as defaults since they interfere with text objects or operator ranges. We will re-introduce default mappings at the beginning of the 0.11 release cycle, this reversion is only for the imminent 0.10 release.
* refactor(snippet): rename exit() => stop() #28628Justin M. Keyes2024-05-06
|
* vim-patch:53753f6a4925 (#28647)zeertzjq2024-05-06
| | | | | | | | | | runtime(doc): Fix typos in help documents closes: vim/vim#14720 https://github.com/vim/vim/commit/53753f6a49253cdb3f98f6461d3de3b07ed67451 Co-authored-by: h-east <h.east.727@gmail.com> Co-authored-by: Christian Clason <c.clason@uni-graz.at>
* fix(treesitter): update queriesChristian Clason2024-05-05
|
* fix(defaults): diagnostic mappings descriptions #28646Evgeni Chasnovski2024-05-05
|
* docs: fix lua type warnings (#28633)Maria José Solano2024-05-05
|
* vim-patch:ad4881cb3c04 (#28636)zeertzjq2024-05-04
| | | | | | | runtime(doc): correct getscriptinfo() example (vim/vim#14718) When "sid" is specified, it returns a List with a single item. https://github.com/vim/vim/commit/ad4881cb3c04048242f69dc77af2dde889c9beea
* fix(treesitter): escape "\" in :InspectTree #28613Riley Bruins2024-05-03
| | | Some parsers for, e.g., LaTeX or PHP have anonymous nodes like `"\"` or `"\text"` that behave wonkily (especially the first example) in the `InspectTree` window, so this PR escapes them by adding another backslash in front of them
* docs: deduplicate information in deprecated.txtdundargoc2024-05-03
| | | | | | Refer to `deprecated.txt` in `news.txt` in the deprecated section and order `deprecated.txt` according to which version a feature was deprecated in.