aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* feat(win32): embed executable iconalex-tdrn2024-07-02
| | | | | | | | Problem: on windows, the neovim executable (and thus the filetypes associated to open with neovim) has no embedded icon Solution: create a windows resource file pointing to the icon, and add it to the nvim binary target
* fix(runtime): update b:undo_ftplugin in Lua runtime files (#29529)zeertzjq2024-07-01
| | | | Related to #29506, but adding vim.treesitter.stop() to b:undo_ftplugin doesn't solve the problem yet.
* feat(jumplist): allow opting out of removing unloaded buffers (#29347)zeertzjq2024-06-30
| | | | Problem: Cannot opt out of removing unloaded buffers from the jumplist. Solution: Only enable that with "unload" flag in 'jumpoptions'.
* refactor: use `vim._with` where possibledundargoc2024-06-28
| | | | | This mostly means replacing `nvim_buf_call` and `nvim_win_call` with `vim._with`.
* Merge pull request #29483 from bfredl/nonbinarybfredl2024-06-27
|\ | | | | refactor(typval)!: remove binary distinction of binary and nonbinary strings
| * refactor(typval)!: remove distinction of binary and nonbinary stringsbfredl2024-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a breaking change which will make refactor of typval and shada code a lot easier. In particular, code that would use or check for v:msgpack_types.binary in the wild would be broken. This appears to be rarely used in existing plugins. Also some cases where v:msgpack_type.string would be used to represent a binary string of "string" type, we use a BLOB instead, which is vimscripts native type for binary blobs, and already was used for BIN formats when necessary. msgpackdump(msgpackparse(data)) no longer preserves the distinction of BIN and STR strings. This is very common behavior for language-specific msgpack bindings. Nvim uses msgpack as a tool to serialize its data. Nvim is not a tool to bit-perfectly manipulate arbitrary msgpack data out in the wild. The changed tests should indicate how behavior changes in various edge cases.
* | fix(lsp): pre-filter matches on label if filterText is missing (#29491)Mathias Fußenegger2024-06-27
| | | | | | | | | | | | | | | | | | | | | | Although the built-in pum completion mechanism will filter anyway on the next input it is odd if the initial popup shows entries which don't match the current prefix. Using fuzzy match on the label/prefix is compatible with `completeopt+=fuzzy` and also doesn't seem to break postfix snippet cases Closes https://github.com/neovim/neovim/issues/29287
* | fix(lsp): avoid vim.keymap.del error when stopping a client (#29478)Matt Fellenz2024-06-26
| |
* | Merge pull request #29280 from echasnovski/with-owobogodundargoc2024-06-26
|\ \ | |/ |/| Add several updates to `vim._with` (tests, granular option contexts, `env` context)
| * feat(lua): add `context.env` (environment variables) to `vim._with()`Evgeni Chasnovski2024-06-24
| |
| * feat(lua): update `vim._with` to allow more granular option contextsEvgeni Chasnovski2024-06-24
| | | | | | | | | | | | | | | | | | | | | | Problem: with a single `context.options` there is no way for user to force which scope (local, global, both) is being temporarily set and later restored. Solution: replace single `options` context with `bo`, `go`, `wo`, and `o`. Naming and implementation follows how options can be set directly with `vim.*` (like `vim.bo`, etc.). Options are set for possible target `win` or `buf` context.
| * test(lua): cover `vim._with()` with testsEvgeni Chasnovski2024-06-24
| | | | | | | | | | | | | | | | | | | | | | | | Problem: `vim._with()` has many different use cases which are not covered with tests. Solution: cover with tests. Some (many) test cases are intentionally marked as "pending" because they cover cases which don't work as expected at the moment (and fixing them requires specific knowledge of C codebase). Use them as a reference for future fixes. Also some of "can be nested" tests currently might pass only because the tested context doesn't work.
* | vim-patch:62f7b55: runtime(netrw): save and restore register 0-9, a and ↵zeertzjq2024-06-25
| | | | | | | | | | | | | | | | | | unnamed (#29479) fixes: vim/vim#15077 https://github.com/vim/vim/commit/62f7b55c1a4564f8744af9446bc7af47fe16a245 Co-authored-by: Christian Brabandt <cb@256bit.org>
* | vim-patch:ecd642a: runtime(doc): clarify, that register 1-9 will always be ↵zeertzjq2024-06-25
|/ | | | | | | | | shifted (#29476) related: vim/vim#15077 https://github.com/vim/vim/commit/ecd642af43dc496e92020422fded717e095d4bc1 Co-authored-by: Christian Brabandt <cb@256bit.org>
* feat(lsp): vim.lsp.buf.format() supports textDocument/rangesFormatting #27323Tom Praschan2024-06-24
| | | | | | | | | | While this relies on a proposed LSP 3.18 feature, it's fully backwards compatible, so IMO there's no harm in adding this already. Looks like some servers already support for this e.g. - gopls: https://go-review.googlesource.com/c/tools/+/510235 - clangd: https://github.com/llvm/llvm-project/pull/80180 Fixes #27293
* refactor(filetype): change some patterns to extensions (#29472)zeertzjq2024-06-24
| | | Ref #29468
* perf(treesitter): remove unnecessary foldexpr loopRiley Bruins2024-06-24
| | | | | | Instead of looping over all captured nodes, just take the end range from the last node in the list. This uses the fact that nodes returned by iter_matches are ordered by their range (earlier to later).
* fix(treesitter): do not modify highlight state for _on_spell_navLuuk van Baal2024-06-24
| | | | | | | | Problem: Treesitter highlighter clears the already populated highlight state when performing spell checking while drawing a smoothscrolled topline. Solution: Save and restore the highlight state in the highlighter's _on_spell_nav callback.
* vim-patch:01a4fb1: runtime(java): Compose "g:java_highlight_signature" and ↵Christian Clason2024-06-23
| | | | | | | | | | | | | | | | | "g:java_highlight_functions" With the variables defined, distinctly highlight parts of a method declaration header: its name and parameter list parens, from its type parameters, return type, and formal parameters; and distinctly highlight parts of a lambda expression: its parameter list parens and the arrow, from its formal parameters and identifiers. closes: vim/vim#15083 https://github.com/vim/vim/commit/01a4fb104dbee6a8b7ef20394a2a7c5b49cf49ca Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* fix(filetype): source ftdetect/* after creating scripts.vim autocmds (#29445)zeertzjq2024-06-22
|
* vim-patch:fc64ac0: runtime(vim): Update base-syntax, fix function tail ↵zeertzjq2024-06-22
| | | | | | | | | | | | | | | comments (#29450) Match Vim9-script comments after :def and :enddef and legacy-script comments after :func and :endfunc, in any definition context. Highlight incorrect comment types after these commands as errors. fixes: vim/vim#15062 closes: vim/vim#15072 https://github.com/vim/vim/commit/fc64ac0be2c4f9446798de4d66b029526d1afa85 Co-authored-by: Doug Kearns <dougkearns@gmail.com>
* vim-patch:9.1.0506: filetype: .envrc & .prettierignore not recognizedChristian Clason2024-06-21
| | | | | | | | | | | | | | | | Problem: filetype: .envrc & .prettierignore not recognized Solution: Detect '.envrc' as shell and '.prettierignore' as gitignore filetype (Tyler Miller) Support ft detection for `.envrc` files used by direnv, and `.prettierignore` files used by prettier. closes: vim/vim#15053 resolves: neovim/neovim#29405 https://github.com/vim/vim/commit/49012cd8c2fb0452847e5d213b07aa8a978f4762 Co-authored-by: Tyler Miller <tmillr@proton.me>
* vim-patch:17e0a19: runtime(scheme): update runtime filesChristian Clason2024-06-21
| | | | | | | | | | | Add TODO highlighting, disable text-wrapping, add "define-library" to lispwords on CHICKEN. Update MAINTAINERS. closes: vim/vim#15063 https://github.com/vim/vim/commit/17e0a1969da4e70771435fc7fa9d8c96d25c8b00 Co-authored-by: Evan Hanson <evhan@foldling.org>
* vim-patch:beb02ed: runtime(java): Optionally highlight parameterised typesChristian Clason2024-06-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the presence of parameterised types whose names begin with a capital letter and end with a less-than sign "<" that introduces a type argument or a list of comma-separated type arguments, followed by a greater-than sign ">", a variable "g:java_highlight_generics" can be defined to have some components of such types uniformly coloured (by picking highlight groups for javaGenericsC{1,2}, javaWildcardBound). For example, ------------------------------------------------------------ java.io.InputStream stream = java.io.InputStream.nullInputStream(); java.util.function.Function<String, java.util.function.BiFunction<String, String, String>> updater = property -> (oldValue, newValue) -> oldValue; java.util.logging.LogManager.getLogManager() .updateConfiguration(stream, updater); ------------------------------------------------------------ Note that the diamond form and explicit type arguments do not qualify for this kind of recognition. For example, ------------------------------------------------------------ new java.util.HashSet<>().<String>toArray(new String[0]); ------------------------------------------------------------ References: https://docs.oracle.com/javase/specs/jls/se21/html/jls-4.html#jls-4.5 https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.9 https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.12.2.1 closes: vim/vim#15050 https://github.com/vim/vim/commit/beb02ed674bc61f179c4ff71e93bdeeb44fe9c4e Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* vim-patch:9.1.0511: CursorMovedC triggered wrongly with setcmdpos()zeertzjq2024-06-21
| | | | | | | | | | | Problem: CursorMovedC triggered wrongly with setcmdpos() (after v9.1.0507) Solution: Remove the premature triggering. Also don't trigger when cursor didn't move. (zeertzjq) closes: vim/vim#15064 https://github.com/vim/vim/commit/bc6f96708e3678dbb27ec4192d87cf94a15d4e9a
* vim-patch:9.1.0507: hard to detect cursor movement in the command linezeertzjq2024-06-21
| | | | | | | | | | | | Problem: hard to detect cursor movement in the command line Solution: Add the CursorMovedC autocommand (Shougo Matsushita) closes: vim/vim#15040 https://github.com/vim/vim/commit/d09521476f41dd8dbddb25b7acd0b299f9bf94d3 Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
* vim-patch:6ccf6da: runtime(gomod): add gomod filetype plugin (#29433)yuyk2024-06-21
| | | | | closes: vim/vim#15060 https://github.com/vim/vim/commit/6ccf6da7a2a7a0b9d1e23a905b091d762e911609
* fix(treesitter): don't open fold when o/O adds a line below #28709Jaehwang Jung2024-06-20
| | | | | | | | | | | Problem: `o`-ing on a folded line opens the fold, because the new line gets the fold level from the above line (level '='), which extends the fold to the new line. `O` has a similar problem when run on the line below a fold. Solution: Use -1 for the added line to get the lower level from the above/below line.
* build(vim-patch.sh): don't ignore changes to version*.txt (#29425)zeertzjq2024-06-20
| | | | | | | Suggest adding them to news.txt instead. Also don't ignore changes to intro.txt and sponsor.txt, as they don't change much these days, and it's necessary to consider whether to include their changes in Nvim's intro.txt.
* vim-patch:9.1.0505: filetype: Faust files are not recognized (#29426)zeertzjq2024-06-20
| | | | | | | | | | | | Problem: filetype: Faust files are not recognized Solution: Detect '*.lib' files as Faust filetype, add detection for '*.dsp' files (Faust or Make), remove '*.lib' from Cobol filetype (PowerUser64) closes: vim/vim#14894 https://github.com/vim/vim/commit/aa61b8a9087e9cd999ef07e0d87b60f43d68f2c6 Co-authored-by: PowerUser64 <blake@blakenorth.net>
* vim-patch:94c5d8a: runtime(java): Remove the group exclusion list from @javaTopChristian Clason2024-06-20
| | | | | | | | | | | Instances of anonymous classes can be passed as method arguments and should be subject to line folding as well. closes: vim/vim#15048 https://github.com/vim/vim/commit/94c5d8a5e20e1dd8c9e8434ee14e368276644f61 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* Merge pull request #29413 from jiangyinzuo/vim-patch-9.1.0497zeertzjq2024-06-20
|\ | | | | vim-patch:partial:9.1.{0497,0501}: termdebug can be further improved
| * vim-patch:partial:9.1.0497: termdebug can be further improvedYinzuo Jiang2024-06-19
| | | | | | | | | | | | | | | | | | | | | | | | Problem: termdebug can be further improved Solution: refactor save/restore, update docs, add a new save/restore test (Ubaldo Tiberi) closes: vim/vim#15032 https://github.com/vim/vim/commit/a48637c105ce5ccf6f3296958c889d15dc3faaa4 Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>
* | vim-patch:aeca717: runtime(nohlsearch): simplify mappingChristian Clason2024-06-19
| | | | | | | | | | | | | | | | | | | | Use <cmd> instead of <expr> with execute(...)[-1] closes: vim/vim#15047 https://github.com/vim/vim/commit/aeca7176f3b7bdc2d698938062f6cad802fea783 Co-authored-by: Maxim Kim <habamax@gmail.com>
* | fix(gen_help_html): handle delimiter, heading #29415Justin M. Keyes2024-06-19
| | | | | | | | | | | | | | | | | | | | Problem: vimdoc grammar added new forms that are not handled in our HTML generator. https://github.com/neovim/tree-sitter-vimdoc/pull/134 Solution: Update `gen_help_html.lua`. Fixes #29277
* | fix(diagnostics): don't apply extmarks to invalid lines #29321Riley Bruins2024-06-19
|/ | | | | | | | | | | Problem: If there are errors in the last line of a buffer, something like `Gdk` or `G2k3J` will produce an error (at least with `lua_ls`): Error executing vim.schedule lua callback: .../neovim/share/nvim/runtime/lua/vim/diagnostic.lua:1446: Invalid 'line': out of range Solution: Only set extmarks if the target buffer line still exists
* vim-patch:1ce65e3: runtime(csv): include a simple csv filetype and syntax ↵Christian Clason2024-06-19
| | | | | | | | | | | | plugin (#29395) * vim-patch:1ce65e3: runtime(csv): include a simple csv filetype and syntax plugin fixes: vim/vim#15038 https://github.com/vim/vim/commit/1ce65e35ac6555054db1276e30d9d63421e6b346 Co-authored-by: Maxim Kim <habamax@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* vim-patch:8.2.4724: current instance of last search pattern not easily spottedzeertzjq2024-06-19
| | | | | | | | | | | Problem: Current instance of last search pattern not easily spotted. Solution: Add CurSearch highlighting. (closes vim/vim#10133) https://github.com/vim/vim/commit/a43993897aa372159f682df37562f159994dc85c Some code is superseded by later patches that are already ported. Co-authored-by: LemonBoy <thatlemon@gmail.com>
* vim-patch:9718ed7: runtime(filetype): update htmldjango detectionChristian Clason2024-06-19
| | | | | | | | | | | | | | | | - update tags to detect djangohtml based on https://docs.djangoproject.com/en/5.0/ref/templates/builtins/#built-in-tag-reference - increase the lines to inspect to 40 lines 10 lines is too few and might result in high false negative. Increasing it to 40 lines should reduce the false negative. closes: vim/vim#15037 https://github.com/vim/vim/commit/9718ed7ab989c0a0be88a0d749f24321eb0e6af1 Co-authored-by: Afiq Nazrie <afnazrie@gmail.com>
* vim-patch:26de90c: runtime(nohlsearch): include the the simple nohlsearch ↵Christian Clason2024-06-18
| | | | | | | | | | | package fixes: vim/vim#15039 closes: vim/vim#15042 https://github.com/vim/vim/commit/26de90c6312cf16d7a4f2b6942befb4e1f14b960 Co-authored-by: Maxim Kim <habamax@gmail.com>
* vim-patch:ca47114: runtime(doc): improve the vim-shebang example (#29382)zeertzjq2024-06-18
| | | | | https://github.com/vim/vim/commit/ca471145321fa8089071330b7637ad3950ac4f11 Co-authored-by: Christian Brabandt <cb@256bit.org>
* docs(lsp): format the handwritten part #29295Yi Ming2024-06-17
|
* docs(news): fix inconsistencies (#29381)zeertzjq2024-06-18
|
* vim-patch:9.1.0495: Matched text isn't highlighted in cmdline pumzeertzjq2024-06-18
| | | | | | | | | | | | Problem: Matched text isn't highlighted in cmdline pum. Solution: Use cmdline completion pattern in cmdline mode. (zeertzjq) closes: vim/vim#15029 https://github.com/vim/vim/commit/d8c9340fc67ca19f82ec3e77ec38296424e758cf Cherry-pick syntax.txt change from runtime update.
* Merge #28775 fix(man.vim): signcolumn causes broken wrapJustin M. Keyes2024-06-17
|\
| * fix(ftplugin/man.vim): hide signcolumn (auto)belkka2024-06-11
| | | | | | | | | | | | | | | | | | | | Problem: It's a common practice to set 'signcolumn=yes' (always show) instead of default 'signcolumn=auto' in order to prevent annoying horizontal shifting in editable buffers when using some popular plugins that add/remove signs on the fly. This makes signcolumn always visible and breaks the text flow of pre-formatted man pages, even when no signs are actually defined. Some other options are already tweaked in man.vim to address the issue (e.g. 'nonumber'), but not signcolumn. Solution: set 'signcolumn=auto' in ftplugin/man.vim. By default there is no |signs| in man pages anyway (and I am not aware of any plugins that could define them in man pages), so 'signcolumn=auto' should behave like 'signcolumn=no', i.e. hide the empty column in order to keep buffer width same as terminal width. In a (rare?) case when user does define some signs in man pages, signcolumn will appear (breaking the text flow).
| * refactor(ftplugin/man.vim): rearrange `setlocal` commandsbelkka2024-06-11
| | | | | | | | | | | | | | | | | | | | | | | | Problem: 1. multiple `setlocal` commands are spread across the script. 2. several options, apparently, serve the same purpose (hide UI columns) which may not be immediately clear. more options may be required to fullfill the same purpose or they could be removed all together as a group if better solution is found later 3. `setlocal nofoldenable` may be overriden by conditional block later in the script. Solution: 1. move 'colorcolumn' and 'nolist' to the group of other options at the beginning 2. add an explanatory comment about options that disable UI columns 3. move 'nofoldenable' to the if-else block to keep relevant commands coupled
* | Merge pull request #29357 from luukvbaal/statuscolzeertzjq2024-06-17
|\ \ | | | | | | feat(column)!: rework 'statuscolumn' %r/l items
| * | feat(column)!: rework 'statuscolumn' %r/l itemsLuuk van Baal2024-06-16
| | | | | | | | | | | | | | | | | | | | | Problem: A custom 'statuscolumn' needs to check a bunch of options and placed signs to replicate the default number column. Solution: Rework %l item to include the necessary logic to mimic the default number column. Remove now redundant %r item.
* | | vim-patch:0ddab58: runtime(java): Add a config variable for commonly used ↵Christian Clason2024-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compiler options The value of g:javac_makeprg_params, if set, is added to the value of 'makeprg' as an option string. closes: vim/vim#14999 https://github.com/vim/vim/commit/0ddab582fa13d1d653800494e45ecfba00974a18 Co-authored-by: Doug Kearns <dougkearns@gmail.com>