aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua
Commit message (Collapse)AuthorAge
...
* fix(lsp): avoid `foldclose()` after current window-buffer changed #33901Yi Ming2025-05-22
| | | | | | | Problem: Because the buffer in the window may change before the request is completed, foldclose() might be executed on the wrong buffer. Solution: Avoid that.
* feat(outline): smaller indentation #34005altermo2025-05-22
|
* feat(glob): new Glob implementation based on Peglob #33605Brynne Taylor2025-05-22
| | | | | | | |vim.glob.to_lpeg()| uses a new LPeg-based implementation (Peglob) that provides ~50% speedup for complex patterns. The implementation restores support for nested braces and follows LSP 3.17 specification with additional constraints for improved correctness and resistance to backtracking edge cases.
* fix(extui): reset message state after "search_cmd" message (#34119)luukvbaal2025-05-21
| | | | | | Problem: A "search_cmd" message alters the message state (since 8e8f4523), unnecessarily affecting logic for messages that follow. Solution: Reset the appropriate variables after a "search_cmd" message. Don't show "search_cmd" message with zero 'cmdheight'.
* fix(diagnostic): accept multiple namespace in `open_float()` (#34073)Maria José Solano2025-05-21
|
* fix(diagnostics): fixed virtual_text cursormoved autocmd error (#34017)Rijul Kapoor2025-05-21
|
* Merge pull request #34090 from yochem/exrc-search-parentGregory Anders2025-05-20
|\ | | | | feat(exrc): unset 'exrc' to stop searching parent directories
| * feat(exrc): stop searching in parent directories by unsetting 'exrc'Yochem van Rosmalen2025-05-20
| | | | | | | | | | | | | | | | | | | | Problem: No way for a user to limit 'exrc' search in parent directories (compare editorconfig.root). Solution: A configuration file can unset 'exrc', disabling the search for its parent directories.
| * fix(defaults): start exrc search from parent directoryYochem van Rosmalen2025-05-19
| | | | | | | | | | | | | | | | | | | | Problem: The exrc file in the current directory is executed twice, here and in `do_exrc_initalization()`. Solution: Start search from parent directory. Let core handle exrc in current directory.
* | fix(lsp/health): ensure valid table before concatenating (#34092)Gregory Anders2025-05-20
| | | | | | | | | | | | | | | | The root_markers field can now contain a table of tables (as of https://github.com/neovim/neovim/pull/33485) and :checkhealth will show an error in that case since Lua cannot concatenate a table of tables. Ensure that tables contain strings before concatenating and if not, fall back to using vim.inspect().
* | fix(diagnostic): deprecate `float` in `vim.diagnostic.Opts.Jump` (#34037)v1nh1shungry2025-05-19
| |
* | Don't set manwidth wider than the window (#34078)Fionn Fitzmaurice2025-05-19
|/ | | | | | | | | | fix: set manwidth to not exceed the window width If we set the MANWIDTH variable to a value wider than the window, the contents wrap and formatting breaks. A more sensible way to handle this is to interpret MANWIDTH as a maximum width, but to set the width to the window size if smaller. See also: #9023, #10748.
* feat(logs): show full paths in lsp logs (#33886)Anakin Childerhose2025-05-17
| | | | | | | | | | feat(logs): show full path of short_src in lsp logs Problem: - Cannot gf to info.short_src printed in the logs since only the last 16 characters are printed Solution: - Print full info.short_src and remove ...
* fix(extui): translate <Tab> in cmdline text (#34055)luukvbaal2025-05-17
| | | | | | | Problem: <Tab> is not translated on the cmdline, and exposes a wrong assumption in search messages that may contain multiple chunks. Solution: Translate unprintable characters in the cmdline content. Extract the 'search_count' from the last chunk and route 'search_cmd' to cmdline to handle multiple chunks.
* build(deps): bump luv to 1.51.0-1Christian Clason2025-05-17
|
* vim-patch:9.1.1396: 'grepformat' is a global option (#34060)zeertzjq2025-05-17
| | | | | | | | | | | | | | | Problem: The 'grepformat' option is global option, but it would be useful to have it buffer-local, similar to 'errorformat' and other quickfix related options (Dani Dickstein) Solution: Add the necessary code to support global-local 'grepformat', allowing different buffers to parse different grep output formats (glepnir) fixes: vim/vim#17316 closes: vim/vim#17315 https://github.com/vim/vim/commit/7b9eb6389d693dafcd502cda2ffc62564a2dbba9 Co-authored-by: glepnir <glephunter@gmail.com>
* fix(extui): better message highlighting after carriage return (#34034)luukvbaal2025-05-15
| | | | | | Problem: Incorrect message highlighting for highlighted message chunks containing carriage returns. Solution: Add a highlight for each substring ending in a newline or carriage return separately.
* revert: show "g<" hint when message spills 'cmdheight'Luuk van Baal2025-05-14
| | | | | | | Problem: Hint message to press "g<" for message that spills 'cmdheight' is too intrusive. Solution: Remove the hint message. Document the meaning of the spill indicator instead.
* fix(extui): handle carriage return in messagesLuuk van Baal2025-05-14
| | | | | Problem: Carriage return should place the "write cursor" at the start of a line. Solution: Construct the to be printed line by iterating over carriage returns.
* feat(diagnostic): add `enabled` filter (#33981)Maria José Solano2025-05-13
|
* fix(extui): adjust which messages are sent to "more" windowLuuk van Baal2025-05-13
| | | | | | | | | | | | | Problem: Decision whether message is sent to "more" window is based on the number of newlines present in a message, rather than the actual text height. With the "box" target, messages that come from a cmdline entered command are not always routed to the more window. Solution: Still write the message to the target buffer, and calculate the actual text height. Postpone updating several state variables until after the decision to re-route is made. With the "box" target, only consider the text height of the message if it is not a message from a cmdline entered command.
* feat(extui): show "g<" hint when message spills 'cmdheight'Luuk van Baal2025-05-13
| | | | | | | Problem: Extui shows a spill indicator to hint to the user to press "g<" to show the output of the last command. The user may be unaware of this mapping. Solution: Route a hint message to the message "box" window.
* feat(diagnostic): add `format` option to `setloclist`/`setqflist` (#33977)Maria José Solano2025-05-12
|
* fix(diagnostic): accept multiple namespaces when setting loclist/qflist (#33982)Maria José Solano2025-05-12
|
* feat(exrc): search in parent directories (#33889)Yochem van Rosmalen2025-05-11
| | | | | | | | | | feat(exrc): search exrc in parent directories Problem: `.nvim.lua` is only loaded from current directory, which is not flexible when working from a subfolder of the project. Solution: Also search parent directories for configuration file.
* build(deps): bump luv to 1.51.0-0Christian Clason2025-05-11
|
* fix(treesitter): proper tree `contains()` logic with combined injectionsRiley Bruins2025-05-11
| | | | | | | | | | | | **Problem:** `LanguageTree:contains()` considers any range within the start of the first tree and end of the last tree as "within" the language tree. In the case of combined injections, this is problematic because we only want to consider ranges within any of the combined trees as "contained" (as opposed to any range within the entire range spanned by all combined trees). **Solution:** Use a more discriminative check in `LanguageTree:contains()`.
* refactor(docs): remove unnecessary `@private`/`@nodoc` annotations (#33951)Maria José Solano2025-05-10
| | | | | * refactor(docs): remove `@private` annotations from local functions * refactor(docs): remove unnecessary `@nodoc` annotations
* vim-patch:0553f2f: runtime(doc): clarify single/multibyte support for ↵zeertzjq2025-05-10
| | | | | | | | | 'fillchars' (#33941) closes: vim/vim#17287 https://github.com/vim/vim/commit/0553f2ff0d170db3f4649a7aaa74b635b1101eed Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
* vim-patch:9973b39: runtime(doc): remove duplicate sentence in builtin.txtzeertzjq2025-05-10
| | | | | | https://github.com/vim/vim/commit/9973b39a17095e6d77b25aafb73a317cebcf586e Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:17ad852: runtime(doc): update return types for builtin functionszeertzjq2025-05-10
| | | | | | | | | | fixes: vim/vim#17273 credit: Github user @msoyka2024 https://github.com/vim/vim/commit/17ad852a62b6e2cf25207292ebca7a748e529d59 Co-authored-by: Christian Brabandt <cb@256bit.org>
* fix(extui): close cmdwin to enter "more" window (#33860)luukvbaal2025-05-09
| | | | | | | Problem: Cannot enter "more" window while cmdwin is open since it is a regular window and changing windows is disallowed. Solution: Close cmdwin to enter the "more" window. Minor regression w.r.t. the current message grid. Resolving that will require somehow bypassing textlock for the "more" window.
* feat(extui): assign 'filetype' to extui windows (#33924)luukvbaal2025-05-09
| | | | | | | | | Problem: Unable to discern windows used by the extui interface to configure their local options. 'winblend' may be detrimental to legibility depending on the colorscheme and 'background'. Solution: Assign the "cmdline", "msgmore", "msgprompt" and "msgbox" 'filetype' to the respective windows. Don't set 'winblend' for the message "box" window.
* fix(extui): route interactive messages to more-window (#33885)luukvbaal2025-05-09
| | | | | | | | | | | Problem: Extui does not route messages emitted as a result of a typed command to the "more" window. Command message leading shell messages is missing a kind. Messages not routed to 'cmdheight' area after it was 0. Solution: Route messages that were emitted in the same event loop as an entered command to the "more" window. Also append multiple messages in an already open more-window. Assign it the `shell_cmd` kind. Change message position when 'cmdheight' changes from 0.
* vim-patch:9.1.1374: completion: 'smartcase' not respected when filtering matcheszeertzjq2025-05-09
| | | | | | | | | | | | | | | | | | | | Problem: Currently, 'smartcase' is respected when completing keywords using <C-N>, <C-P>, <C-X><C-N>, and <C-X><C-P>. However, when a user continues typing and the completion menu is filtered using cached matches, 'smartcase' is not applied. This leads to poor-quality or irrelevant completion suggestions, as shown in the example below. Solution: When filtering cached completion items after typing additional characters, apply case-sensitive comparison if 'smartcase' is enabled and the typed pattern includes uppercase characters. This ensures consistent and expected completion behavior. (Girish Palya) closes: vim/vim#17271 https://github.com/vim/vim/commit/dc314053e121b0a995bdfbcdd2f03ce228e14eb3 Co-authored-by: Girish Palya <girishji@gmail.com>
* Merge pull request #33850 from MariaSolOs/on-jumpMaria José Solano2025-05-08
|\ | | | | feat(diagnostic): add `on_jump` callback option
| * feat(diagnostic): add `on_jump` callback optionMaria José Solano2025-05-05
| |
* | fix(lsp): nil error in ColorScheme autocmdSean Dewar2025-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: nil error possible if a loaded buffer hasn't been drawn in a window: ```vim lua vim.lsp.document_color.is_enabled() -- Load module badd foo call bufload('foo') colo default ``` Solution: Skip _buf_refresh branch also if bufstates[bufnr] is nil.
* | fix(extui): "box" window width calculated on last line (#33881)luukvbaal2025-05-07
| | | | | | | | | | | | | | | | | | Problem: The "box" window width is calculated on the last line when applying "last" virt_text. There may be longer lines part of the same message. Solution: Don't decrease box width if the calculated width is smaller. Minor unrelated changes. Co-authored-by: Eike <eike.rackwitz@mail.de>
* | fix(treesitter): invalidate conceal_lines cache earlier #33875luukvbaal2025-05-06
| | | | | | | | | | | | | | | | Problem: conceal_lines cache is invalidated in `on_buf` which is too late for code calculating text height after a buffer change but before a redraw (like `lsp/util.lua`). Solution: Replace `on_buf` with `on_bytes` handler that invalidates the cache and clears the marks.
* | docs(luv): replace bundled LuaCATS meta files with upstreamChristian Clason2025-05-06
| | | | | | | | Synced from https://github.com/luvit/luv/blob/master/meta.lua
* | fix(runtime): 'includeexpr' with non-Nvim-style Lua modules #33867Phạm Bình An2025-05-06
| | | | | | Closes #33862
* | fix(treesitter): eliminate flicker for single windows #33842Riley Bruins2025-05-05
| | | | | | | | | | | | | | | | | | | | This commit will eliminate flicker while editing one open window. It works by querying previously calculated trees for highlight marks, in the case that we are still asynchronously parsing in `on_win`. It will not fully solve the case of flicker when there are multiple open windows, since the parser will drop previously parsed injection trees whenever it receives a call to parse a different region of the buffer. This will require a refactor of `languagetree.lua`.
* | fix(extui): drop "more" window that is no longer floating #33861luukvbaal2025-05-05
| | | | | | | | | | | | Problem: Moving the "more" (or any extui)-window to a split with `wincmd L` does not invalidate it as a tracked window. Solution: Drop an extui window that is no longer floating.
* | fix(lua): vim.validate `message` param #33675Justin M. Keyes2025-05-04
| | | | | | | | | | | | | | Problem: vim.validate does not handle `message` param. Solution: Add the missing logic.
* | fix(lsp): check if client is stopping before reuse #33796Eike2025-05-04
| | | | | | | | | | | | | | Problem: Stopping a language server and then calling vim.lsp.start() with the same name/root will return the old language server that's in the middle of shutting down. vim.lsp.start() won't return a new server until the old process has terminated. Solution: Introducing a client._is_stopping field that tracks the shutdown phase, preventing the client from being reused.
* | refactor(lua): swap value params in `tbl_extend` behavior callback #33847Maria José Solano2025-05-04
| |
* | fix(extui): message may overwrite active cmdline #33846luukvbaal2025-05-04
|/ | | | | Problem: Active cmdline may be overwritten by a message. Solution: Check if cmdline is active before writing message.
* feat(lsp): support `documentColor` dynamic registration #33800Maria José Solano2025-05-04
|
* fix(lsp): improve error completion message #33812glepnir2025-05-04
| | | | | | | problem: Error notifications from LSP responses were difficult to read due to inconsistent formatting and missing critical information like client name and error codes. solution: Implemented a more structured error notification format using pipe separators to clearly display client name, error code (when available), and error message.