aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | vim-patch:9.1.1011: popupmenu internal error with some abbr in completion ↵zeertzjq2025-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | item (#31988) Problem: Popup menu internal error with some abbr in completion item. Solution: Don't compute attributes when there is no corresponding text. Reduce indent in pum_redraw() while at it (zeertzjq). fixes: vim/vim#16427 closes: vim/vim#16435 https://github.com/vim/vim/commit/3a0cc36c69744a7727ce34311d39d2d9d8ddc6f9
| * | | Merge pull request #31631 from ribru17/async_parse_attempt_2Lewis Russell2025-01-13
| |\ \ \ | | | | | | | | | | feat(treesitter): async parsing
| | * | | feat(treesitter)!: don't parse tree in get_parser() or start()Riley Bruins2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Problem:** `vim.treesitter.get_parser()` and `vim.treesitter.start()` both parse the tree before returning it. This is problematic because if this is a sync parse, it will stall the editor on large files. If it is an async parse, the functions return stale trees. **Solution:** Remove this parsing side effect and leave it to the user to parse the returned trees, either synchronously or asynchronously.
| | * | | feat(treesitter): async parsingRiley Bruins2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Problem:** Parsing can be slow for large files, and it is a blocking operation which can be disruptive and annoying. **Solution:** Provide a function for asynchronous parsing, which accepts a callback to be run after parsing completes. Co-authored-by: Lewis Russell <lewis6991@gmail.com> Co-authored-by: Luuk van Baal <luukvbaal@gmail.com> Co-authored-by: VanaIgr <vanaigranov@gmail.com>
| * | | | build(deps): bump tree-sitter to v0.24.7Christian Clason2025-01-12
| |/ / /
| * | | perf(treesitter): cache queries stronglyRiley Bruins2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Problem:** Query parsing uses a weak cache which is invalidated frequently **Solution:** Make the cache strong, and invalidate it manually when necessary (that is, when `rtp` is changed or `query.set()` is called) Co-authored-by: Christian Clason <c.clason@uni-graz.at>
| * | | build(deps): bump wasmtime to v25.0.3Christian Clason2025-01-12
| | | |
| * | | vim-patch:9.1.1007: filetype: various ignore are not recognizedChristian Clason2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: filetype: various ignore are not recognized Solution: detect rg/docker/npm/vvsce ignore files as 'gitgnore' filetype (Wu, Zhenyu) Not only prettier, but many programs also support ignore files (like rg, docker, npm, vscode). So use the gitignore filetype for them due to same syntax closes: vim/vim#16428 https://github.com/vim/vim/commit/8cbe2e0a0a78f57bb545a97695bfedd6a95e6992 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
| * | | vim-patch:9.1.1003: [security]: heap-buffer-overflow with visual mode (#31971)zeertzjq2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: [security]: heap-buffer-overflow with visual mode when using :all, causing Vim trying to access beyond end-of-line (gandalf) Solution: Reset visual mode on :all, validate position in gchar_pos() and charwise_block_prep() This fixes CVE-2025-22134 Github Advisory: https://github.com/vim/vim/security/advisories/GHSA-5rgf-26wj-48v8 https://github.com/vim/vim/commit/c9a1e257f1630a0866447e53a564f7ff96a80ead Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | vim-patch:9.1.1005: completion text is highlighted even with no pattern ↵zeertzjq2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | found (#31973) Problem: completion text is highlighted even with no pattern found Solution: use ins_compl_leader_len() instead of checking compl_leader.length (glepnir) closes: vim/vim#16422 https://github.com/vim/vim/commit/9fddb8ae770be3e16545dd4c2f4cfaad8f62cb40 Co-authored-by: glepnir <glephunter@gmail.com>
| * | | vim-patch:partial:9598a63: runtime(doc): add package-<name> helptags for ↵zeertzjq2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | included packages (#31972) Improve how to find the justify package closes: vim/vim#16420 https://github.com/vim/vim/commit/9598a6369bce32d3da831e8968caf4625985ac3c Co-authored-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Peter Benjamin <petermbenjamin@gmail.com>
| * | | feat(diagnostic)!: filter diagnostics by severity before passing to handlers ↵Gregory Anders2025-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#30070) BREAKING CHANGE: This changes the list of diagnostics that are passed to a diagnostic handler. If a handler is already filtering by severity itself then this won't break anything, since the handler's filtering will become a no-op. But handlers which depend on receiving the full list of diagnostics may break. Note that diagnostics are only filtered if the handler's configuration has the `severity` option set. If `severity` is not set, the handler still receives the full list of diagnostics.
| * | | vim-patch:668e9f2: runtime(filetype): don't detect string interpolation as ↵Christian Clason2025-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | angular fixes: vim/vim#16375 https://github.com/vim/vim/commit/668e9f24037fc7c362ffdf5fc1d5c5b1a8b0e855 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | docs: miscdundargoc2025-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Axel <axelhjq@gmail.com> Co-authored-by: Colin Kennedy <colinvfx@gmail.com> Co-authored-by: Daiki Noda <sys9kdr@users.noreply.github.com> Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: Jean-Jacq du Plessis <1030058+jj-du-plessis@users.noreply.github.com> Co-authored-by: Juan Giordana <juangiordana@gmail.com> Co-authored-by: Lincoln Wallace <locnnil0@gmail.com> Co-authored-by: Matti Hellström <hellstrom@scm.com> Co-authored-by: Steven Locorotondo <steven.locorotondo@justeattakeaway.com> Co-authored-by: Yochem van Rosmalen <git@yochem.nl> Co-authored-by: glepnir <glephunter@gmail.com> Co-authored-by: ifish <fishioon@live.com>
| * | | vim-patch:9.1.1001: ComplMatchIns highlight hard to read on light background ↵zeertzjq2025-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#31958) Problem: ComplMatchIns highlight hard to read on light background (after v9.1.0996) Solution: define the highlighting group cleared, it should be configured in colorschemes separately (glepnir) closes: vim/vim#16414 https://github.com/vim/vim/commit/ad409876d9cf7e565f99c5e21b9e2e400a83a4d4 Co-authored-by: glepnir <glephunter@gmail.com>
| * | | vim-patch:695522d: runtime(vim): Update base-syntax, highlight literal ↵zeertzjq2025-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | string quote escape (#31957) Match the '' escape sequence in literal strings. These were previously ending the current string and starting another concatenated literal string. closes: vim/vim#16415 https://github.com/vim/vim/commit/695522dea3703cf1b4cd4a894ca9a745a0d2756f Co-authored-by: Doug Kearns <dougkearns@gmail.com>
| * | | vim-patch:9.1.0996: ComplMatchIns may highlight wrong text (#31931)glepnir2025-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ComplMatchIns may highlight wrong text Solution: don't highlight in case of fuzzy match, skip-highlight when not inserting anything (glepnir) closes: vim/vim#16404 https://github.com/vim/vim/commit/e890887b8052561ac5f8dce218e578ed28599cc6
| * | | vim-patch:51754c8: runtime(editorconfig): set omnifunc to syntaxcomplete funcChristian Clason2025-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | closes: vim/vim#16419 https://github.com/vim/vim/commit/51754c8a498c39592250a077f56db89dd261995d Co-authored-by: Yochem van Rosmalen <git@yochem.nl>
| * | | fix(treesitter): don't return error message on success #31955Guilherme Soares2025-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The `vim.treesitter.language.add` function returns a error message even when it succeeds. Solution: Don't return error message on success.
| * | | fix(messages): attaching/detaching ext_messages causes asserts #31952luukvbaal2025-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Assert hit related to message kind, which is reset after a ext_messages UI is forcibly detached, so the assertion is expectedly false. Assert hit related to message grid variables after an ext_messages UI attaches while message grid is scrolled. Solution: Don't check message kind assertion if no ext_messages UI is attached. Flush message grid when first/last ext_messages UI attaches/detaches.
| * | | refactor(treesitter.foldexpr): remove unused parse_injections parameterRiley Bruins2025-01-10
| | | |
| * | | refactor(api): deprecate nvim_notify #31938Justin M. Keyes2025-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The `nvim_notify` API (note: unrelated to `vim.notify()` Lua API) was not given any real motivation in https://github.com/neovim/neovim/pull/13843 There are, and were, idiomatic and ergonomic alternatives already. Solution: Deprecate `nvim_notify`.
| * | | vim-patch:df4a7d7: runtime(tiasm): use correct syntax name tiasm in syntax ↵zeertzjq2025-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | script (#31942) vim-patch:df4a7d7: runtime(tiasm): use correct syntax name tiasm in syntax script closes: vim/vim#16416 https://github.com/vim/vim/commit/df4a7d761740d59a4f911c9e13ac620a459cdea6 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
| * | | fix(decor): set invalid flag for end of invalidated paired marksLuuk van Baal2025-01-10
| | | |
| * | | vim-patch:9.1.1000: tests: ruby tests fail with Ruby 3.4 (#31940)zeertzjq2025-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: tests: ruby tests fail with Ruby 3.4 Solution: adjust expected output for Ruby 3.4 (Yee Cheng Chin) Vim's Ruby tests relied on explicit matching of output texts which are fragile in design. Ruby 3.4 has changed the output slightly (using 'name' instead of `name', and also using more spaces in dictionary printouts). Modify the Vim tests to be less fragile to such changes. closes: vim/vim#16411 https://github.com/vim/vim/commit/ebea31e454b9a1731cde845226f2c28ca5c097b1 Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
| * | | vim-patch:9.1.0999: Vim9: leaking finished exception (#31939)zeertzjq2025-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: leaking finished exception (after v9.1.0984) Solution: use finish_exception to clean up caught exceptions (Yee Cheng Chin) In Vimscript, v:exception/throwpoint/stacktrace are supposed to reflect the currently caught exception, and be popped after the exception is finished (via endtry, finally, or a thrown exception inside catch). Vim9script does not handle this properly, and leaks them instead. This is clearly visible when launching GVim with menu enabled. A caught exception inside the s:BMShow() in menu.vim would show up when querying `v:stacktrace` even though the exception was already caught and handled. To fix this, just use the same functionality as Vimscript by calling `finish_exception` to properly restore the states. Note that this assumes `current_exception` is always the same as `caught_stack` which believe should be the case. Added tests for this. Also fix up test_stacktrace to properly test the stack restore behavior where we have nested exceptions in catch blocks and to also test the vim9script functionality properly. - Also, remove its dependency on explicitly checking a line number in runtest.vim which is a very fragile way to write tests as any minor change in runtest.vim (shared among all tests) would require changing test_stacktrace.vim. We don't actually need such granularity in the test. closes: vim/vim#16413 https://github.com/vim/vim/commit/2051af1642843426714efc2572c3e270fe0948be Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
| * | | docs: misc #31867Justin M. Keyes2025-01-09
| | | |
| * | | feat(docs): "yxx" runs Lua/Vimscript code examples #31904Riley Bruins2025-01-09
| | | | | | | | | | | | | | | | | | | | `yxx` in Normal mode over a Lua or Vimscript code block section will execute the code. Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
| * | | fix(api): deprecated API nvim_get_option does not validate option name #31919Famiu Haque2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Deprecated API `nvim_get_option()` doesn't validate the option name, which leads to an assertion failure. Solution: Validate option name in `nvim_get_option()`. Ref: #31894
| * | | Merge #31900 from luukvbaal/nvim_echoJustin M. Keyes2025-01-09
| |\ \ \ | | |/ / | |/| |
| | * | feat(api): deprecate nvim_out/err_write(ln)Luuk van Baal2025-01-09
| | | |
| | * | feat(api): add err field to nvim_echo() optsLuuk van Baal2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: We want to deprecate `nvim_err_write(ln)()` but there is no obvious replacement (from Lua). Meanwhile we already have `nvim_echo()` with an `opts` argument. Solution: Add `err` argument to `nvim_echo()` that directly maps to `:echoerr`.
| * | | Merge pull request #31844 from bfredl/iter_crashbfredl2025-01-09
| |\ \ \ | | | | | | | | | | fix(decoration): fix crash when on_lines decor provider modifies marktree
| | * | | fix(decoration): fix crash when on_lines decor provider modifies marktreebfredl2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a "on_lines" callback changes the structure of the marktree, the iterator (which is used for an entire window viewport) might now point to invalid memory. Restore the iterator to the beginning of the line in this case. fixes #29484
| * | | | Merge pull request #31898 from bfredl/termbombbfredl2025-01-09
| |\ \ \ \ | | | | | | | | | | | | fix(terminal): don't crash on unprintable chars
| | * | | | fix(terminal): don't crash on unprintable charsbfredl2025-01-09
| |/ / / / | | | | | | | | | | | | | | | fixes #31897
| * | | | vim-patch:9.1.0998: filetype: TI assembly files are not recognized (#31929)zeertzjq2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: filetype: TI assembly files are not recognized Solution: inspect '*.sa' and assembly files and detect TI assembly files, include filetype plugin and syntax script for TI assembly files (Wu, Zhenyu) closes: vim/vim#15827 https://github.com/vim/vim/commit/4f73c07abff420bad9fa5befc2c284c00b984993 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
| * | | | vim-patch:8ab1819: runtime(xf86conf): add section name OutputClass to syntax ↵Christian Clason2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | script References: https://man.archlinux.org/man/xorg.conf.5#DESCRIPTION closes: vim/vim#16397 https://github.com/vim/vim/commit/8ab1819df625354f6cc9b36cb46989e7b7c9ebae Co-authored-by: Jan-Arvid Harrach <jharrach@tutanota.com>
| * | | | vim-patch:9.1.0997: too many strlen() calls in drawscreen.c (#31927)zeertzjq2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: too many strlen() calls in drawscreen.c Solution: refactor drawscreen.c and remove calls to strlen(), make get_keymap_str() (in screen.c) return string length instead of TRUE/FALSE (John Marriott). https://github.com/vim/vim/commit/a21240b97debea2e087aee6ad1488b5f075d1259 Co-authored-by: John Marriott <basilisk@internode.on.net>
| * | | | Revert "refactor(options): set option value for non-current context ↵zeertzjq2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | directly" (#31924) Reverts #31112
| * | | | vim-patch:partial:9.1.0882: too many strlen() calls in insexpand.c (#31490)zeertzjq2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: too many strlen() calls in insexpand.c Solution: Refactor insexpand.c and reduce number of calls to STRLEN(), fix a warning get_next_filename_completion(), add new function ins_compl_leader_len() (John Marriott) closes: vim/vim#16095 https://github.com/vim/vim/commit/5e6ea92b2c58cbfc642d7e35bd717f99aa2e1e53 Co-authored-by: John Marriott <basilisk@internode.on.net>
| * | | | vim-patch:1718e7d: runtime(vim): Update base-syntax, improve ex-bang ↵zeertzjq2025-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | matching (#31922) Always match ex-bang explicitly rather than incidentally as the ! operator. fixes: vim/vim#16221 closes: vim/vim#16410 https://github.com/vim/vim/commit/1718e7d07e391571ac81c507a746b3bc7a7e2024 Co-authored-by: Doug Kearns <dougkearns@gmail.com>
| * | | | Merge pull request #31112 from famiu/refactor/options/set_option_forLewis Russell2025-01-08
| |\ \ \ \ | | | | | | | | | | | | refactor(options): set option value for non-current context directly
| | * | | | refactor(options): set option value for non-current context directlyFamiu Haque2024-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Currently, we use `switch_option_context` to temporarily switch the current option context before setting an option for a different buffer / window. This is not ideal because we already support getting and setting option values for non-current contexts in the underlying implementation. Solution: Set option value for non-current context by passing the context directly to the lower level functions. Also introduce a new `OptCtx` struct to store option context information, this will scale much better if we add more option scopes and other context information in the future.
| | * | | | refactor(autocmd): allow specifying window for autocmd contextFamiu Haque2024-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Currently we can only specify a buffer to use for an autocmd context through `aucmd_prepbuf()`, which finds a window that uses that buffer in the current tabpage, or creates an autocmd window. This means it's not possible to actually specify a window to use for an autocmd. Solution: Add an `aucmd_prepbuf_win()` function which also takes a window as a parameter and uses it for the autocmd. If the window is not provided, then it behaves similarly to `aucmd_prepbuf()`
| * | | | | test(treesitter): inspect_tree #31182Guilherme Soares2025-01-08
| | | | | | | | | | | | | | | | | | To prevent #30986 and #31198 regression update inspect_tree tests
| * | | | | fix(api): nvim_set_decoration_provider callback return type #31912notomo2025-01-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: incorrect return type doc causes luals `Annotations specify that at most 0 return value(s) are required, found 1 returned here instead.` diagnosis Solution: correct return type doc
| * | | | | vim-patch:9.1.0995: filetype: shaderslang files are not detectedChristian Clason2025-01-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: filetype: shaderslang files are not detected Solution: detect '*.slang' files as shaderslang filetype, include a filetype and syntax script (mtvare6) Reference: https://shader-slang.com/ closes: vim/vim#16387 https://github.com/vim/vim/commit/616219f684744bcfad61a53c13166cda9b141dea Co-authored-by: mtvare6 <mtvare6@proton.me>
| * | | | | fix(api): crash on invalid buffer to nvim_buf_del_user_command (#31908)zeertzjq2025-01-08
| | | | | |
| * | | | | fix(highlight): make TablineSel more noticeable with 'notermguicolors' #31905Evgeni Chasnovski2025-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Linking `TablineSel` to `Normal` makes it more noticeable with `notermguicolors` but less so with `termguicolors` (compared to using bold text in both cases). Solution: use bold text with `termguicolors` and regular with `notermguicolors`.