aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua
Commit message (Collapse)AuthorAge
...
| * perf(diagnostic): use api variable and improve validate (#21111)Raphael2022-11-19
| | | | | | | | | | * fix(diagnostic): use api variable and improve validate * fix: fix test case
| * fix(lsp): ignore hover and signatureHelp responses on buffer change (#21121)Grzegorz Rozdzialik2022-11-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Language servers can take some time to respond to the `textDocument/hover` and `textDocument/signatureHelp` messages. During that time, the user could have already moved to another buffer. The popup was always shown in the current buffer, which could be a different one than the buffer for which the request was sent. This was particularly annoying when moving to a buffer with a `BufLeave` autocmd, as that autocmd was triggered when the hover popup was shown for the original buffer. Ignoring the response from these 2 messages if they are for a buffer that is not the current one leads to less noise. The popup will only be shown for the buffer for which it was requested. A more robust solution could involve cancelling the hover/signatureHelp request if the buffer changes so the language server can free its resources. It could be implemented in the future.
| * feat(lsp): run handler in coroutine to support async response (#21026)Mathias Fußenegger2022-11-19
| | | | | | | | To illustrate a use-case this also changes `window/showMessageRequest` to use `vim.ui.select`
| * vim-patch:9.0.0897: Clinical Quality Language files are not recognized (#21094)Matthew Gramigna2022-11-18
| | | | | | | | | | | | | | | | Problem: Clinical Quality Language files are not recognized. Solution: Add the "*.cql" pattern. (Matthew Gramigna, closes vim/vim#11452) https://github.com/vim/vim/commit/12babe45a389cd1ea8befd5b06239e877b4abbba Co-authored-by: mgramigna <mgramigna@mitre.org>
| * feat: add vim.secure.read()Gregory Anders2022-11-17
| | | | | | | | | | | | | | | | | | This function accepts a path to a file and prompts the user if the file is trusted. If the user confirms that the file is trusted, the contents of the file are returned. The user's decision is stored in a trust database at $XDG_STATE_HOME/nvim/trust. When this function is invoked with a path that is already marked as trusted in the trust database, the user is not prompted for a response.
| * fix(lua): make `vim.deepcopy` work with `vim.NIL`Max2022-11-14
| | | | | | | | | | | | | | | | style: changed double quotes to single quotes feat: add tests fix tests
| * fix: vim.ui.input always calls callback #21006Steven Arcangeli2022-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Followup to #20883 Related: #18144 This patch changes the behavior of the default `vim.ui.input` when the user aborts with `<C-c>`. Currently, it produces an error message + stack and causes `on_confirm` to not be called. With this patch, `<C-c>` will cause `on_confirm` to be called with `nil`, the same behavior as when the user aborts with `<Esc>`. I can think of three good reasons why the behavior should be this way: 1. Easier for the user to understand** It's not intuitive for there to be two ways to abort an input dialog that have _different_ outcomes. As a user, I would expect any action that cancels the input to leave me in the same state. As a plugin author, I see no value in having two possible outcomes for aborting the input. I have to handle both cases, but I can't think of a situation where I would want to treat one differently than the other. 2. Provides an API that can be overridden by other implementations** The current contract of "throw an error upon `<C-c>`" cannot be replicated by async implementations of `vim.ui.input`. If the callsite wants to handle the case of the user hitting `<C-c>` they need to use `pcall(vim.ui.input, ...)`, however an async implementation will instantly return and so there will be no way for it to produce the same error-throwing behavior when the user inputs `<C-c>`. This makes it impossible to be fully API-compatible with the built-in `vim.ui.input`. 3. Provides a useful guarantee to the callsite** As a plugin author, I want the guarantee that `on_confirm` will _always_ be called (only catastrophic errors should prevent this). If I am in the middle of some async thread of logic, I need some way to resume that logic after handing off control to `vim.ui.input`. The only way to handle the `<C-c>` case is with `pcall`, which as already mentioned, breaks down if you're using an alternative implementation.
| * feat(spell): support nospell in treesitter queriesLewis Russell2022-11-12
| |
| * feat(checkhealth): use "help" syntax, avoid tabpage #20879Justin M. Keyes2022-11-11
| | | | | | | | | | | | | | | | | | - If Nvim was just started, don't create a new tab. - Name the buffer "health://". - Use "help" syntax instead of "markdown". It fits better, and eliminates various workarounds. - Simplfy formatting, avoid visual noise. - Don't print a "INFO" status, it is noisy. - Drop the ":" after statuses, they are already UPPERCASE and highlighted.
| * fix(man.lua): use `env` command (#21007)euclidianAce2022-11-09
| | | | | | | | | | | | | | Previously man.lua would use the `env` field in the parameters of `vim.loop.spawn` to override things like MANPAGER. This caused issues on NixOS since `spawn` will _override_ the environment rather than _append_ to it (and NixOS relies on a heavily modified environment). Using the `env` command to append to the environment solves this issue.
| * fix(vim.ui.input): return empty string when inputs nothing (#20883)Jongwook Choi2022-11-08
| | | | | | | | | | | | | | | | | | | | | | fix(vim.ui.input): return empty string when inputs nothing The previous behavior of `vim.ui.input()` when typing <CR> with no text input (with an intention of having the empty string as input) was to execute `on_confirm(nil)`, conflicting with its documentation. Inputting an empty string should now correctly execute `on_confirm('')`. This should be clearly distinguished from cancelling or aborting the input UI, in which case `on_confirm(nil)` is executed as before.
| * vim-patch:9.0.0843: VHS tape files are not recognized (#20995)Christian Clason2022-11-07
| | | | | | | | | | | | | | | | | | Problem: VHS tape files are not recognized. Solution: Add a filetype pattern. (Carlos Alexandro Becker, closes vim/vim#11452) https://github.com/vim/vim/commit/1756f4b21837e8596241ecd668f4abbbab4bc7e5 Co-authored-by: Carlos A Becker <caarlos0@users.noreply.github.com>
| * fix(paste): feed keys as typed in cmdline mode (#20959)zeertzjq2022-11-06
| |
| * fix(man.lua): set modifiable before writing page (#20914)Kevin Hwang2022-11-03
| |
| * feat(checkhealth): check runtime ($VIMRUNTIME)Justin M. Keyes2022-10-30
| | | | | | | | | | | | Move man/health.lua into the "runtime" check. fix #20696
| * refactor(checkhealth): convert "nvim" check to LuaJustin M. Keyes2022-10-30
| |
| * feat(checkhealth): improve treesitter reportJustin M. Keyes2022-10-30
| |
| * fix(lsp/window_showDocument): correctly handle external resources #20867lvimuser2022-10-30
| | | | | | | | | | - since cmd is a list, it runs directly ('no shell') and we shouldn't escape. - typo: shellerror -> shell_error
| * fix(docs): nil as viable argument for goto_prev (#20852)Martin Kunz2022-10-28
| | | | | | | | Added `nil` as a possible option to `vim.diagnostics.goto_prev` in the docs
| * fix(lua): pesc, tbl_islist result types #20751NAKAI Tsuyoshi2022-10-24
| | | | | | | | | | | | | | | | | | | | | | | | Problem: - pesc() returns multiple results, it should return a single result. - tbl_islist() returns non-boolean in some branches. - Docstring: @generic must be declared first Solution: Constrain docstring annotations. Fix return types. Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
| * vim-patch:9.0.0814: aws config files are not recognized (#20769)Christian Clason2022-10-21
| | | | | | | | | | | | | | | | vim-patch:436e5d395fd6 (since upstream tagged the wrong commit) Problem: Aws config files are not recognized. Solution: Use "confini" for aws config files. (Justin M. Keyes, closes vim/vim#11416) https://github.com/vim/vim/commit/436e5d395fd629c8d33b5cf7b373aad007f16851
| * fix(filetype): don't pass empty string to detect (#20766)Christian Clason2022-10-21
| | | | | | | | | | Problem: `*.db` files use empty string as default filetype, which is inconsistent with the rest of the code which uses `nil` instead. Solution: don't pass a default empty string
| * vim-patch:9.0.0808: jsonnet filetype detection has a typo (#20753)Christian Clason2022-10-20
| | | | | | | | | | Problem: jsonnet filetype detection has a typo. Solution: Change "libjsonnet" to "libsonnet". (Maxime Brunet, closes vim/vim#11412) https://github.com/vim/vim/commit/6c8bc37a1083d17447156592f6f52da2d40b4855
| * vim-patch:9.0.0798: clang format configuration files are not recognized (#20741)ObserverOfTime2022-10-19
| | | | | | | | | | | | Problem: Clang format configuration files are not recognized. Solution: Use yaml for Clang format configuration files. (Marwin Glaser, closes vim/vim#11398) https://github.com/vim/vim/commit/3c708c43908ba44f075bbaa7daf584c6b46d9723
| * vim-patch:9.0.0779: lsl and lm3 file extensions are not recognized (#20704)Christian Clason2022-10-18
| | | | | | | | | | Problem: lsl and lm3 file extensions are not recognized. Solution: Add *.lsl and *.lm3 patterns. (Doug Kearns, closes vim/vim#11384) https://github.com/vim/vim/commit/4ac8e7948cb3e07bc4598ede8b274891d14dfa7c
| * vim-patch:9.0.0782: OpenVPN files are not recognized (#20702)Christian Clason2022-10-17
| | | | | | | | | | Problem: OpenVPN files are not recognized. Solution: Add patterns for OpenVPN files. (closes vim/vim#11391) https://github.com/vim/vim/commit/4bf67ec52e938a3edaa4f452adab42a57505f940
| * fix(man): handle absolute paths as `:Man` targets (#20624)Mahmoud Al-Qudsi2022-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix(man): handle absolute paths as :Man targets Previously, attempting to provide `:Man` with an absolute path as the name would cause neovim to return the following error: ``` Error detected while processing command line: /usr/local/share/nvim/runtime/lua/man.lua:690: /usr/local/share/nvim/runtime/lua/man.lua:683: Vim:E426: tag not found: nil(nil) Press ENTER or type command to continue ``` ..because it would try to validate the existence of a man page for the provided name by executing `man -w /some/path` which (on at least some Linux machines [0]) returns `/some/path` instead of the path to the nroff files that would be formatted to satisfy the man(1) lookup. While man pages are not normally named after absolute paths, users shouldn't be blamed for trying. Given such a name/path, neovim would **not** complain that the path didn't have a corresponding man file but would error out when trying to call the tag function for the null-propagated name-and-section `nil(nil)`. (The same underlying error existed before this function was ported to lua, but did not exhibit the lua-specific `nil(nil)` name; instead a tag lookup for `()` would fail and error out.) With this patch, we detect the case where `man -w ...` returns the same value as the provided name to not only prevent invoking the tag function for a non-existent/malformed name+sect but also to properly report the non-existence of a man page for the provided lookup (the absolute path). While man(1) can be used to directly read an nroff-formatted document via `man /path/to/nroff.doc`, `:Man /path/to/nroff.doc` never supported this behavior so no functionality is lost in case the provided path _was_ an nroff file. [0]: `man -w /absolute/path` returning `/absolute/path` observed on an Ubuntu 18.04 installation. * test: add regression test for #20624 Add a functional test to `man_spec.lua` to check for a regression for #20624 by first obtaining an absolute path to a random file and materializing it to disk, then attempting to query `:Man` for an entry by that same name/path. The test passes if nvim correctly reports that there is no man page correspending to the provided name/path and fails if any other error (or no error) is shown.
| * feat(runtime)!: remove filetype.vim (#20428)Christian Clason2022-10-17
| | | | | | | | | | | | Made obsolete by now graduated `filetype.lua` (enabled by default). Note that changes or additions to the filetype detection still need to be made through a PR to vim/vim as we port the _logic_ as well as tests.
| * vim-patch:9.0.0771: cannot always tell the difference beween tex and … ↵Jonas Strittmatter2022-10-17
| | | | | | | | | | | | | | | | | | | | (#20687) vim-patch:9.0.0771: cannot always tell the difference beween tex and rexx files Problem: Cannot always tell the difference beween tex and rexx files. Solution: Recognize tex by a leading backslash. (Martin Tournoij, closes vim/vim#11380) https://github.com/vim/vim/commit/bd053f894b0d7652928201faa68c53d1ce2acdc5
| * fix(lsp): reporting bogus capabilities in CodeActionKind #20678David Hotham2022-10-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: LSP client provides bogus capabilities in CodeActionKind. LSP logs show this in the "initialize" message: codeActionKind = { valueSet = { "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" } Solution: Only the values from the CodeActionKind table should be presented, not also the keys. fix #20657
| * vim-patch:9.0.0752: Rprofile files are not recognized (#20658)Christian Clason2022-10-15
| | | | | | | | | | Problem: Rprofile files are not recognized. Solution: Recognize Rprofile files as "r". (closes vim/vim#11369) https://github.com/vim/vim/commit/7e120ffccbf81ae8acac28f11fbd5eab79a1630d
| * docs: fix/remove invalid URLs #20647Justin M. Keyes2022-10-14
| |
| * fix(lua): on_yank error with blockwise multibyte region #20162Daniel Zhang2022-10-14
| | | | | | | | | | Prevent out of range error when calling `str_byteindex`. Use `vim.str_byteindex(bufline, #bufline)` to cacluate utf length of `bufline`. fix #20161
| * feat(cscope)!: removeLewis Russell2022-10-13
| |
| * vim-patch:9.0.0731: clang-tidy configuration files are not recognized (#20620)Christian Clason2022-10-12
| | | | | | | | | | Problem: clang-tidy configuration files are not recognized. Solution: Recognize clang-tidy files as yaml. (closes vim/vim#11350) https://github.com/vim/vim/commit/af40f9af335e0c8b167eac31ceace45b6a2e0565
| * fix(man): support MacOS 13Lewis Russell2022-10-11
| | | | | | | | | | | | | | | | MacOS 13 has changed its version of `man` to an version that doesn't properly support `man -w` (without arguments). In order to workaround this we simply fallback to $MANPATH. Fixes #20579
| * refactor(man): pass env directly to spawn() (#20591)Lewis Russell2022-10-11
| |
| * vim-patch:9.0.0711: SubStation Alpha files are not recognized (#20577)Christian Clason2022-10-10
| | | | | | | | | | Problem: SubStation Alpha files are not recognized. Solution: Add patterns for SubStation Alpha files. (closes vim/vim#11332) https://github.com/vim/vim/commit/084f2620ec7d08d6043de30436197c002fffe3ec
| * feat(man): add health checkLewis Russell2022-10-10
| | | | | | | | Fixes #20432
| * fix(docs-html): update parserJustin M. Keyes2022-10-10
| | | | | | | | | | | | | | | | | | | | | | - Improve generated HTML by updating parser which includes fixes for single "'" and single "|": https://github.com/neovim/tree-sitter-vimdoc/pull/31 - Updated parser also fixes the conceal issue for "help" highlight queries https://github.com/neovim/tree-sitter-vimdoc/issues/23 by NOT including whitespace in nodes. - But this means we need to restore the getws() function which scrapes leading whitespace from the original input (buffer).
| * docs: various #12823Justin M. Keyes2022-10-09
| | | | | | | | | | | | | | | | | | | | | | | | - increase python line-length limit from 88 => 100. - gen_help_html: fix bug in "tag" case (tbl_count => tbl_contains) ref #15632 fix #18215 fix #18479 fix #20527 fix #20532 Co-authored-by: Ben Weedon <ben@weedon.email>
| * fix(lua): properly configure luacheck and remove `local vim = ...` lines ↵Folke Lemaitre2022-10-09
| | | | | | | | (#20551)
| * vim-patch:9.0.0692: PoE filter files are not recognized (#20542)ObserverOfTime2022-10-08
| | | | | | | | | | Problem: PoE filter files are not recognized. Solution: Add a pattern to detect PoE filter files. (closes vim/vim#11305) https://github.com/vim/vim/commit/b7f52f5659c68b61ccc645ef866f8fd82361cd26
| * feat(lsp): support window/showDocument (#19977)lvimuser2022-10-08
| |
| * feat: added support for specifying types for lua2doxFolke Lemaitre2022-10-06
| |
| * feat: added support for optional params to lua2doxFolke Lemaitre2022-10-06
| |
| * docs: added proper annotations to functions in shared.luaFolke Lemaitre2022-10-06
| |
| * docs(docstrings): fix runtime type annotationsElizabeth Paź2022-10-05
| |
| * feat(lsp): add bufnr option to lsp.start (#20473)August Masquelier2022-10-04
| |
| * refactor(diagnostic): remove deprecated function (#20423)Raphael2022-10-01
| |