summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua
AgeCommit message (Collapse)AuthorFiles
2022-11-25vim-patch:9.0.0932: Oblivion files are not recognized (#21179)zeertzjq1
Problem: Oblivion files are not recognized. Solution: Recognize Oblivion files and alike as "obse". (closes vim/vim#11540) https://github.com/vim/vim/commit/ecfd511e8d802068434735dda00db6b783df6922 Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-25vim-patch:9.0.0942: Workflow Description Language files are not recognized ↵Christian Clason1
(#21183) Problem: Workflow Description Language files are not recognized. Solution: Add a pattern for the "wdl" filetype. (Matt Dunford, closes vim/vim#11611) https://github.com/vim/vim/commit/f60bdc3417a56a1f69e001a7ec210b92d5b0f2e1 Co-authored-by: Matt Dunford <zenmatic@gmail.com>
2022-11-24docs(lua): add clarifications for fs.find() and fs.normalize() (#21132)AzerAfram1
Co-Authored-By: Gregory Anders <8965202+gpanders@users.noreply.github.com> Co-Authored-By: zeertzjq <zeertzjq@outlook.com>
2022-11-22vim-patch:9.0.0922: Mermaid files are not recognized (#21160)Christian Clason1
Problem: Mermaid files are not recognized. Solution: Add patterns for Mermaid. (Crag MacEachern) https://github.com/vim/vim/commit/364438d1e817d1d76003695f9ab533df35f8948a Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-21fix(diagnostic): correct type annotations; add Diagnostic type (#21120)Mathias Fußenegger1
Some functions didn't include the `nil` case in the return type annotation. This corrects those and also adds a Diagnostic class definition for the diagnostic.get return type
2022-11-21feat(lsp): support set title in lsp relate floatwindow (#21110)Raphael2
2022-11-20feat(diagnostic): add `suffix` option to `virt_text` config (#21140)beardedsakimonkey1
This introduces a `suffix` option to the `virt_text` config in `vim.diagnostic.config()`. The suffix can either be a string which is appended to the diagnostic message or a function returning such. The function receives a `diagnostic` argument, which is the diagnostic table of the last diagnostic (the one whose message is rendered as virt text).
2022-11-20feat(diagnostic): add `suffix` option to `open_float()` (#21130)beardedsakimonkey1
Closes #18687 This introduces a `suffix` option to `vim.diagnostic.open_float()` (and consequently `vim.diagnostic.config()`) that appends some text to each diagnostic in the float. It accepts the same types as `prefix`. For multiline diagnostics, the suffix is only appended to the last line. By default, the suffix will render the diagnostic error code, if any.
2022-11-19perf(diagnostic): use api variable and improve validate (#21111)Raphael1
* fix(diagnostic): use api variable and improve validate * fix: fix test case
2022-11-19fix(lsp): ignore hover and signatureHelp responses on buffer change (#21121)Grzegorz Rozdzialik1
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.
2022-11-19feat(lsp): run handler in coroutine to support async response (#21026)Mathias Fußenegger3
To illustrate a use-case this also changes `window/showMessageRequest` to use `vim.ui.select`
2022-11-18vim-patch:9.0.0897: Clinical Quality Language files are not recognized (#21094)Matthew Gramigna1
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>
2022-11-17feat: add vim.secure.read()Gregory Anders2
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.
2022-11-14fix(lua): make `vim.deepcopy` work with `vim.NIL`Max1
style: changed double quotes to single quotes feat: add tests fix tests
2022-11-12fix: vim.ui.input always calls callback #21006Steven Arcangeli1
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.
2022-11-12feat(spell): support nospell in treesitter queriesLewis Russell1
2022-11-11feat(checkhealth): use "help" syntax, avoid tabpage #20879Justin M. Keyes1
- 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.
2022-11-09fix(man.lua): use `env` command (#21007)euclidianAce1
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.
2022-11-08fix(vim.ui.input): return empty string when inputs nothing (#20883)Jongwook Choi1
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.
2022-11-07vim-patch:9.0.0843: VHS tape files are not recognized (#20995)Christian Clason1
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>
2022-11-06fix(paste): feed keys as typed in cmdline mode (#20959)zeertzjq1
2022-11-03fix(man.lua): set modifiable before writing page (#20914)Kevin Hwang1
2022-10-30feat(checkhealth): check runtime ($VIMRUNTIME)Justin M. Keyes3
Move man/health.lua into the "runtime" check. fix #20696
2022-10-30refactor(checkhealth): convert "nvim" check to LuaJustin M. Keyes1
2022-10-30feat(checkhealth): improve treesitter reportJustin M. Keyes1
2022-10-30fix(lsp/window_showDocument): correctly handle external resources #20867lvimuser1
- since cmd is a list, it runs directly ('no shell') and we shouldn't escape. - typo: shellerror -> shell_error
2022-10-28fix(docs): nil as viable argument for goto_prev (#20852)Martin Kunz1
Added `nil` as a possible option to `vim.diagnostics.goto_prev` in the docs
2022-10-24fix(lua): pesc, tbl_islist result types #20751NAKAI Tsuyoshi1
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>
2022-10-21vim-patch:9.0.0814: aws config files are not recognized (#20769)Christian Clason1
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
2022-10-21fix(filetype): don't pass empty string to detect (#20766)Christian Clason1
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
2022-10-20vim-patch:9.0.0808: jsonnet filetype detection has a typo (#20753)Christian Clason1
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
2022-10-19vim-patch:9.0.0798: clang format configuration files are not recognized (#20741)ObserverOfTime1
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
2022-10-18vim-patch:9.0.0779: lsl and lm3 file extensions are not recognized (#20704)Christian Clason2
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
2022-10-17vim-patch:9.0.0782: OpenVPN files are not recognized (#20702)Christian Clason1
Problem: OpenVPN files are not recognized. Solution: Add patterns for OpenVPN files. (closes vim/vim#11391) https://github.com/vim/vim/commit/4bf67ec52e938a3edaa4f452adab42a57505f940
2022-10-17fix(man): handle absolute paths as `:Man` targets (#20624)Mahmoud Al-Qudsi1
* 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.
2022-10-17feat(runtime)!: remove filetype.vim (#20428)Christian Clason1
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.
2022-10-17vim-patch:9.0.0771: cannot always tell the difference beween tex and … ↵Jonas Strittmatter1
(#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
2022-10-16fix(lsp): reporting bogus capabilities in CodeActionKind #20678David Hotham1
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
2022-10-15vim-patch:9.0.0752: Rprofile files are not recognized (#20658)Christian Clason1
Problem: Rprofile files are not recognized. Solution: Recognize Rprofile files as "r". (closes vim/vim#11369) https://github.com/vim/vim/commit/7e120ffccbf81ae8acac28f11fbd5eab79a1630d
2022-10-14docs: fix/remove invalid URLs #20647Justin M. Keyes1
2022-10-14fix(lua): on_yank error with blockwise multibyte region #20162Daniel Zhang1
Prevent out of range error when calling `str_byteindex`. Use `vim.str_byteindex(bufline, #bufline)` to cacluate utf length of `bufline`. fix #20161
2022-10-13feat(cscope)!: removeLewis Russell1
2022-10-12vim-patch:9.0.0731: clang-tidy configuration files are not recognized (#20620)Christian Clason1
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
2022-10-11fix(man): support MacOS 13Lewis Russell1
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
2022-10-11refactor(man): pass env directly to spawn() (#20591)Lewis Russell1
2022-10-10vim-patch:9.0.0711: SubStation Alpha files are not recognized (#20577)Christian Clason1
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
2022-10-10feat(man): add health checkLewis Russell1
Fixes #20432
2022-10-10fix(docs-html): update parserJustin M. Keyes1
- 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).
2022-10-09docs: various #12823Justin M. Keyes1
- 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>
2022-10-09fix(lua): properly configure luacheck and remove `local vim = ...` lines ↵Folke Lemaitre9
(#20551)