aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* fix(lsp): reuse client if configs match and no root dirLewis Russell2024-12-13
| | | | | | | | | | | | Problem: An LSP configuration that creates client with no root_dir or workspace_folders can result in vim.lsp.enable attaching to it multiple times. Solution: When checking existing clients, reuse a client if it wasn't initially configured have any workspace_folders. This more closely matches the behaviour we had prior to d9235ef
* fix(man.lua): `:Man <tab>` does not complete #31569Luca Saccarola2024-12-13
| | | closes: #31512
* vim-patch:5c42c77: runtime(netrw): do not pollute search history with symlinksChristian Clason2024-12-13
| | | | | | | | fixes: vim/vim#16206 https://github.com/vim/vim/commit/5c42c7731536418c53273932d7ef76b80b001f38 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.1.0919: filetype: some assembler files are not recognizedChristian Clason2024-12-13
| | | | | | | | | | | | Problem: filetype: some assembler are files not recognized Solution: detect '*.nasm' files as nasm filetype and '*.masm' as masm filetype (Wu, Zhenyu) closes: vim/vim#16194 https://github.com/vim/vim/commit/d66d68763d0947c292a9fdda4da6fda3650fa563 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* fix(diagnostic): broken variable reference #31557Jeremy Fleischman2024-12-12
|
* refactor(lsp/rpc): move transport logic to separate moduleLewis Russell2024-12-12
|
* fix(diagnostic): setqflist() is stuck after vim.lsp.buf.document_symbol #31553Jeremy Fleischman2024-12-11
| | | | | | | | | | | | | Previously, when updating the quickfix diagnostics list, we'd update it, and then open the quickfix buffer, but there was no guarantee that the quickfix buffer would be displaying the quickfix diagnostics list (it could very possibly be displaying some other quickfix list!). This fixes things so we first select the quickfix list before opening the quickfix buffer. If `open` is not specified, the behavior is the same as before: we update the diagnostics quickfix list, but do not navigate to it. fixes https://github.com/neovim/neovim/issues/31540
* feat(diagnostic): update quickfix list by title #31486Jeremy Fleischman2024-12-11
| | | | | | | Previously, there was a singleton diagnostics quickfix list. Now there's effectively one per title (up to vim's internal limit on quickfix lists). Suggested by mfussenegger https://github.com/neovim/neovim/pull/30868#pullrequestreview-2385761374.
* fix(uri): uri_encode encodes brackets incorrectly for RFC2732 #31284Jonny Kong2024-12-11
| | | | | | | | | | **Problem:** The brackets in the RFC2732 regular expression are currently unescaped, causing them to be misinterpreted as special characters denoting character groups rather than as literal characters. **Solution:** Escape the brackets. Fix #31270
* feat(treesitter): include capture id in return value of ↵Riley Bruins2024-12-11
| | | | | | | | | | | | | | | `get_captures_at_pos()` #30559 **Problem:** Currently, it is difficult to get node(s)-level metadata for a capture returned by `get_captures_at_pos()`. This is because it is stored in `metadata[id]` and we do not have access to the value of `id`, so to get this value we have to iterate over the keys of `metadata`. See [this commit](https://github.com/neovim/neovim/commit/d63622930001b39b12f14112fc3abb55b760c447#diff-8bd4742121c2f359d0345f3c6c253a58220f1a28670cc4e1c957992232059a6cR16). Things would be much simpler if we were given the `id` of the capture so we could use it to just index `metadata` directly. **Solution:** Include `id` in the data returned by `get_captures_at_pos()`
* docs(annotation): return types for Vimscript functions #31546Colin Kennedy2024-12-11
|
* feat(lsp): add vim.lsp.config and vim.lsp.enableLewis Russell2024-12-10
| | | | | | | | | | | | | | | | | | | | Design goals/requirements: - Default configuration of a server can be distributed across multiple sources. - And via RTP discovery. - Default configuration can be specified for all servers. - Configuration _can_ be project specific. Solution: - Two new API's: - `vim.lsp.config(name, cfg)`: - Used to define default configurations for servers of name. - Can be used like a table or called as a function. - Use `vim.lsp.confg('*', cfg)` to specify default config for all servers. - `vim.lsp.enable(name)` - Used to enable servers of name. Uses configuration defined via `vim.lsp.config()`.
* fix(messages): no message kind for :write messages #31519Tomasz N2024-12-10
| | | | - Problem: cannot replace the initial bufwrite message (from `filemess`) by the final one (`"test.lua" [New] 0L, 0B written`), when using `vim.ui_attach`. - Solution: add kind to both messages.
* Merge pull request #30869 from vanaigr/decor_long_lines_perfbfredl2024-12-10
|\ | | | | perf(decor): improve performance for long lines
| * perf: consider only active decorations when drawing linesvanaigr2024-12-05
| |
* | vim-patch:b66cac1: runtime(typst): add definition lists to formatlistpat, ↵Christian Clason2024-12-10
| | | | | | | | | | | | | | | | | | | | update maintainer closes: vim/vim#16192 https://github.com/vim/vim/commit/b66cac1a8ed8636a38e867226f5bb621c96ff322 Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
* | vim-patch:ad4764f: runtime(proto): include filetype plugin for protobufChristian Clason2024-12-10
| | | | | | | | | | | | | | | | closes: vim/vim#16199 https://github.com/vim/vim/commit/ad4764f65b678938c1b252245e1af1ae150fbce8 Co-authored-by: David Pedersen <limero@me.com>
* | docs(vvars): adjust lua types for vim.v variables #31510luukvbaal2024-12-09
| | | | | | | | - classes for v:event and v:completed_item - add remaining unknown types
* | docs: fix type of vim.validate valueMaria José Solano2024-12-09
| |
* | vim-patch:92b3666: runtime(netrw): only check first arg of ↵zeertzjq2024-12-09
| | | | | | | | | | | | | | | | | | | | netrw_browsex_viewer for being executable fixes: vim/vim#16185 https://github.com/vim/vim/commit/92b36663f8d0e507f60f357c6add6f6c9148a951 Co-authored-by: Christian Brabandt <cb@256bit.org>
* | vim-patch:eda923e: runtime(netrw): do not detach when launching external ↵zeertzjq2024-12-09
| | | | | | | | | | | | | | | | | | | | | | | | programs in gvim On Debian 12 when detaching the program wouldn't launch at all closes: vim/vim#16168 https://github.com/vim/vim/commit/eda923e9c9e639bc4f02b8b3ead1e7d27981e552 Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
* | refactor(lsp): better tracking of requestsLewis Russell2024-12-08
| | | | | | | | | | Not essential, but adds robustness and hardening for future changes.
* | vim-patch:41afa30: runtime(doc): Add vietnamese.txt to helps main TOCzeertzjq2024-12-08
| | | | | | | | | | | | | | | | closes: vim/vim#16177 https://github.com/vim/vim/commit/41afa308d6f420504c47567b494e97a6721afe71 Co-authored-by: h-east <h.east.727@gmail.com>
* | vim-patch:8a52587: runtime(doc): fix wrong syntax and style of vietnamese.txtbrianhuster2024-12-08
| | | | | | | | | | | | | | | | | | | | https://github.com/vim/vim/commit/8a52587ee05a360cad4d42322200775fc74a4430 vim-patch:72212c9: runtime(doc): update wrong Vietnamese localization tag https://github.com/vim/vim/commit/72212c9bea77f14f1e6be703de3c10d70eb2984c Co-authored-by: Christian Brabandt <cb@256bit.org>
* | vim-patch:189e24b: runtime(doc): include vietnamese.txtbrianhuster2024-12-08
| | | | | | | | | | | | | | | | | | | | Since Vietnamese keymaps in Vim is quite differences from the corresponding input methods, let's document the Vietnamese specifics in vietnames.txt related: vim/vim#16144 https://github.com/vim/vim/commit/189e24bb1441abe87387a4e21c4387bbf2eac718
* | vim-patch:9.1.0911: Variable name for 'messagesopt' doesn't match short namezeertzjq2024-12-08
| | | | | | | | | | | | | | | | | | | | Problem: Variable name for 'messagesopt' doesn't match short name (after v9.1.0908) Solution: Change p_meo to p_mopt. Add more details to docs. closes: vim/vim#16182 https://github.com/vim/vim/commit/8cc43daee1f485c9abf1de3c638cce7835b9f861
* | vim-patch:9.1.0910: 'messagesopt' does not check max wait timezeertzjq2024-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'messagesopt' does not check max wait time (after v9.1.0908) Solution: Check for max wait value (Shougo Matsushita) closes: vim/vim#16183 https://github.com/vim/vim/commit/d9e9f89e0ffd6e7ce5e2a7f8f1ace5471e37c210 Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
* | refactor: add vim._resolve_bufnrLewis Russell2024-12-07
| |
* | fix(inspect): always show priorityChristian Clason2024-12-07
| | | | | | | | | | | | | | | | Problem: It is not obvious if a treesitter highlight priority shown in `:Inspect` is higher or lower than the default. Solution: Also print default priority (`vim.hl.priorities.treesitter`). Add padding for better readability.
* | feat(ex_cmds): :sleep! hides the cursor while sleeping (#31493)zeertzjq2024-12-07
| | | | | | | | | | | | | | | | | | | | Problem: :sleep! not hiding the cursor is an arbitrary difference from Vim without obvious justification, and Vim's behavior isn't easily achievable in Nvim. Solution: Make :sleep! hide the cursor while sleeping. Ref: https://github.com/neovim/neovim/commit/6a01b3fcc361960e559db459e1524418bc76dd66 https://github.com/neovim/neovim/commit/b5c0ade43790cf18f6a54858ddad30d8d9667cf9
* | fix(treesitter): #trim! range for nodes ending at col 0 #31488Riley Bruins2024-12-07
| | | | | | | | | | | | | | | | | | Problem: char-wise folding for `#trim!` ranges are improperly calculated for nodes that end at column 0, due to the way `get_node_text` works. Solution: Add the blank line that `get_node_text` removes for for nodes ending at column 0. Also properly set column positions when performing linewise trims.
* | fix: remove vim.lsp._with_extendLewis Russell2024-12-07
| | | | | | | | Not used anywhere.
* | fix(lsp): cancel pending requests before refreshingtris2032024-12-07
| | | | | | | | | | | | | | | | | | | | | | Problem: Diagnostics and inlay hints can be expensive to calculate, and we shouldn't stack them as this can cause noticeable lag. Solution: Check for duplicate inflight requests and cancel them before issuing a new one. This ensures that only the latest request is processed, improving performance and preventing potential conflicts.
* | fix(lsp): check for configuration workspace folders when reusing clientsMaria José Solano2024-12-07
| |
* | fix(inspect): show priority for treesitter highlightsChristian Clason2024-12-07
| | | | | | | | | | | | | | | | Problem: `:Inspect` does not show priority for treesitter highlights, leading to confusion why sometimes earlier highlights override later highlights. Solution: Also print priority metadata if set.
* | vim-patch:9.1.0908: not possible to configure :messages (#31492)zeertzjq2024-12-07
| | | | | | | | | | | | | | | | | | | | | | Problem: not possible to configure :messages Solution: add the 'messagesopt' option (Shougo Matsushita) closes: vim/vim#16068 https://github.com/vim/vim/commit/51d4d84d6a7159c6ce9e04b36f8edc105ca3794b Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com> Co-authored-by: h_east <h.east.727@gmail.com>
* | feat(stdlib): vim.json.encode(...,{escape_slash:boolean}) #30561Bartłomiej Maryńczak2024-12-06
| | | | | | | | | | | | | | | | | | | | | | | | Problem: vim.json.encode escapes every slash in string values (for example in file paths), and is not optional. Use-case is for preventing HTML injections (eg. injecting `</script>` closing tag); in the context of Nvim this is rarely useful. Solution: - Add a `escape_slash` flag to `vim.json.encode`. - Defaults to `false`. (This is a "breaking" change, but more like a bug fix.)
* | fix(lsp): add foldingrange method support check #31463Tristan Knight2024-12-06
| | | | | | | | | | | | Problem: The folding_range request method assumes that the client supports the method Solution: Add a capability guard to the call
* | docs: do not escape Lua keywords #31467Gregory Anders2024-12-06
| |
* | Merge #30085 #trim! all whitespaceJustin M. Keyes2024-12-06
|\ \
| * | feat(treesitter): #trim! can trim all whitespaceRiley Bruins2024-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit also implements more generic trimming, acting on all whitespace (charwise) rather than just empty lines. It will unblock https://github.com/nvim-treesitter/nvim-treesitter/pull/3442 and allow for properly concealing markdown bullet markers regardless of indent width, e.g.
* | | feat(defaults): disable 'foldcolumn' in terminal buffers (#31480)Micah Halter2024-12-06
|/ /
* | fix(filetype): make filetype detection work with :doautocmd (#31470)zeertzjq2024-12-06
| |
* | docs: delineate blocks/list items #30973Brian A. Weston2024-12-06
| | | | | | | | | | Problem: Paragraph below bulleted list was joined to last list item instead of dropping below as expected. Same with "Notes:" paragraph below it. Solution: Added necessary newlines.
* | fix(events): don't expand `args.file` for Lua callback (#31473)zeertzjq2024-12-06
| | | | | | | | | | | | | | | | Problem: In an autocommand Lua callback whether `args.file` is expanded depends on whether `expand('<afile>')` has been called. Solution: Always use the unexpanded file name for `args.file`. Related to #31306 and vim/vim#16106. This doesn't provide `sfname`, but at least makes `args.file` have a consistent value.
* | vim-patch:9.1.0906: filetype: Nvidia PTX files are not recognizedChristian Clason2024-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: filetype: Nvidia PTX files are not recognized Solution: detect '*.ptx' files as ptx filetype (Yinzuo Jiang) Reference: https://docs.nvidia.com/cuda/parallel-thread-execution/ closes: vim/vim#16171 https://github.com/vim/vim/commit/bdb5f85a5189534653f36e92b1bc780ca8d25218 Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
* | vim-patch:ea0e41a: runtime(doc): make tag alignment more consistent in ↵zeertzjq2024-12-06
| | | | | | | | | | | | | | | | | | | | | | | | filetype.txt (#31459) closes: vim/vim#16169 https://github.com/vim/vim/commit/ea0e41a1152378358975e5021ea9f5540dabf542 Omit Lua folding. N/A patch: vim-patch:fdfcce5: runtime(lua): add optional lua function folding
* | fix(diagnostic): only store quickfix id when creating a new one #31466Jeremy Fleischman2024-12-05
| | | | | | | | | | | | The old code would always update `_qf_id` with the current quickfix, even if you're currently looking at a completely different, non-diagnostics quickfix list. This completely defeats the intent of <https://github.com/neovim/neovim/pull/30868>, whoops!
* | docs: graduate intro.txt to "flow layout" #31462Justin M. Keyes2024-12-05
| | | | | | - move credits and backers to credits.txt
* | Merge #31451 docsJustin M. Keyes2024-12-05
|\ \