aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* build(deps): vendor libvterm at v0.3.3Christian Clason2024-08-10
| | | | | | | | Problem: Adding support for modern Nvim features (reflow, OSC 8, full utf8/emoji support) requires coupling libvterm to Nvim internals (e.g., utf8proc). Solution: Vendor libvterm at v0.3.3.
* vim-patch:0cc5dce: runtime(doc): clarify directory of Vim's executable vs CWDzeertzjq2024-08-09
| | | | | | | | | | According to :h win32-PATH, "the same directory as Vim" means the same directory as the Vim executable, not Vim's current directory. In patch 8.2.4860 these two concepts were mixed up. closes: vim/vim#15451 https://github.com/vim/vim/commit/0cc5dce5780d39fe621f6146d4fb862318918125
* vim-patch:39eff4c: runtime(proto): Add indent script for protobuf filetypeChristian Clason2024-08-08
| | | | | | | | closes: vim/vim#15446 https://github.com/vim/vim/commit/39eff4cdc055a0f0db0d32fcf7a74fe30ea54f25 Co-authored-by: David Pedersen <limero@me.com>
* fix(lsp): avoid reusing diagnostics from different servers in actions (#30002)Grzegorz Rozdzialik2024-08-07
| | | | | | | | | | | | | | | | Problem: When preparing the parameters for a code actions LSP request, the code set `context.diagnostics` when processing the first LSP client, and then reused those `context.diagnostics` for subsequent LSP clients. This meant that the second and next LSP clients got diagnostics that did not originate from them, and they did not get the diagnostics that they sent. Solution: Avoid setting `context.diagnostics` (which is referenced by all clients). Instead, set `params.context.diagnostics` directly, which is specific to a single client. Fixes #30001 Caused by #29501
* vim-patch:afea6b9: runtime(zip): use defer to restore old settingszeertzjq2024-08-07
| | | | | | | | | | Problem: RestoreOpts() plugin called too often Solution: use :defer to have the RestoreOpts() function called when the function returns automatically https://github.com/vim/vim/commit/afea6b946827e964271eb19579946a7f88d2f329 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:8d52926: runtime(zip): add a generic Message functionzeertzjq2024-08-07
| | | | | | | | | | Problem: the zip plugin duplicates a lot of code for displaying warnings/errors Solution: refactor common code into a generic Mess() function https://github.com/vim/vim/commit/8d52926857ec7f08a9bee8f96470748cecf58002 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:a336d8f: runtime(zip): increment base version of zip pluginzeertzjq2024-08-07
| | | | | | | | | Problem: the zip plugin version is still v33 Solution: increment the version to v34 https://github.com/vim/vim/commit/a336d8f21e4cce877e23d47db238801a5a406992 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:19636be: runtime(zip): refactor save and restore of optionszeertzjq2024-08-07
| | | | | | | | | | | | | Problem: zip plugin has no way to set/restore option values Solution: Add the SetSaneOpts() and RestoreOpts() functions, so options that cause issues are set to sane values and restored back to their initial values later on. (this affects the 'shellslash' option on windows, which also changes how the shellescape() function works) https://github.com/vim/vim/commit/19636be55e023cb726389107e9e7d62049b6fd58 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:33836d3: runtime(zip): remove test for fnameescapezeertzjq2024-08-07
| | | | | | | | | | Problem: zip plugin tests for fnameescape() function Solution: Remove the check, fnameescape() has been available since 7.1.299, it should nowadays always be available https://github.com/vim/vim/commit/33836d38b82aa926a2a2b3f945a0139f373f7e56 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:120c0dd: runtime(zip): use :echomsg instead of :echozeertzjq2024-08-07
| | | | | | | | | | Problem: zip plugin uses :echo which does not store messages Solution: use :echomsg instead of :echo so that messages are stored in the message history https://github.com/vim/vim/commit/120c0dd815fa3b44df0fa477f7f3313e4a69c652 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:a63f66e: runtime(zip): clean up and remove commentszeertzjq2024-08-07
| | | | | | | | | Problem: zip plugin contains a lot of comments from the decho plugin Solution: Clean up and remove un-used comments https://github.com/vim/vim/commit/a63f66e953d811bb6d044e92fe338e533ad94ff5 Co-authored-by: Christian Brabandt <cb@256bit.org>
* docs(treesitter): generate inline docs for `Range`sYi Ming2024-08-06
| | | | | | | | docs(treesitter): in-place parameter description docs(treesitter): remove internal type names docs(treesitter): add missing private annotation
* vim-patch:8.2.4838: checking for absolute path is not trivial (#29990)zeertzjq2024-08-06
| | | | | | | | | | Problem: Checking for absolute path is not trivial. Solution: Add isabsolutepath(). (closes vim/vim#10303) https://github.com/vim/vim/commit/dca1d40cd0f2af0755519e7028378bd3c8fefd31 vim-patch:8a3b805c6c9c Co-authored-by: LemonBoy <thatlemon@gmail.com>
* vim-patch:9.1.0465: missing filecopy() function (#29989)zeertzjq2024-08-06
| | | | | | | | | | | Problem: missing filecopy() function Solution: implement filecopy() Vim script function (Shougo Matsushita) closes: vim/vim#12346 https://github.com/vim/vim/commit/60c8743ab6c90e402e6ed49d27455ef7e5698abe Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
* vim-patch:f0e9b72: runtime(zip): Fix for FreeBSD's unzip commandzeertzjq2024-08-06
| | | | | | | | | | | | | | | | | | | Problem: Cannot browse zipfiles with the unzip program found on FreeBSD. Solution: Adjust command arguments. Unzip found on FreeBSD complain about missing argument with the zipinfo modifier '-Z -1'. Joining arguments seems to work for both implementations. Also change `:sil!` to `:sil` so that error messages are properly reported (per review of Christian Brabandt). related: vim/vim#15411 https://github.com/vim/vim/commit/f0e9b72c8fdd47b9b410a11edf7479953cb2aed9 Co-authored-by: Damien <141588647+xrandomname@users.noreply.github.com>
* vim-patch:217d3c1: runtime(doc): capitalize correctlyzeertzjq2024-08-06
| | | | | | | | | | | * do not capitalize after a double colon when introducing a list * Capitalize a header line closes: vim/vim#15433 https://github.com/vim/vim/commit/217d3c17c6fa8d1223fa8dd39efd8c32897f9441 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:c0f7505: runtime(lua): add/subtract a 'shiftwidth' after '('/')' ↵Christian Clason2024-08-04
| | | | | | | | | | | | | | | | | | | | in indentexpr Problem: - Current lua indentexpr does not indent for '(' ')'. - Missing indent test for lua. Solution: - Match '(', ')' in `function GetLuaIndentIntern`. - Add an indent test for lua. closes: vim/vim#15364 https://github.com/vim/vim/commit/c0f7505edeb36bf3e19386f276cafad7cba717a2 Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
* vim-patch:c5bdd66: runtime(zip): escape '[' on Unix as wellChristian Clason2024-08-04
| | | | | | | | | | | | | | | | | | Problem: After 6f1cbfc9ab483a09877e153ad130164875c40b1d fnameescape() is no longer called on the name of the file to be extracted. However, while spaces indeed don't need to be escaped, unzip treats '[' as a wildcard character, so it need to be escaped. Solution: Escape '[' on both MS-Windows and Unix. From the docs it seems '*' and '?' also need escaping, but they seem to actually work without escaping. fixes: neovim/neovim#29977 closes: vim/vim#15427 https://github.com/vim/vim/commit/c5bdd66558b14f04424a22d9714a9b7d0c277dac Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* vim-patch:947f752: runtime(doc): fix typo in syntax.txt (#29974)zeertzjq2024-08-04
| | | | | | | closes: vim/vim#15425 https://github.com/vim/vim/commit/947f752a47b107529b5d591e4e24b51237c20497 Co-authored-by: Jon Parise <jon@indelible.org>
* vim-patch:6228481: runtime(colors): update Todo highlight in habamax colorschemeChristian Clason2024-08-03
| | | | | | | | | | | Magenta background Todo is too bright and might interfere with DiffText. Make it less strong, without background, bold. closes: vim/vim#15423 https://github.com/vim/vim/commit/6228481b8e6341180a3bf2005178fc56d7e1c28b Co-authored-by: Maxim Kim <habamax@gmail.com>
* docs(filetype): consolidate comments in dev_vimpatch.txtChristian Clason2024-08-03
|
* docs(filetype): add note about prefering explicit lists over patternEvgeni Chasnovski2024-08-03
|
* refactor(filetype): use extension match instead of pattern if possibleEvgeni Chasnovski2024-08-03
| | | | | | | | | | | Problem: some patterns are used as a replacement for several explicit extension matches (like '%.[Ss][Yy][Ss]$', '%.php%d$', etc.). They usually correspond to Vim's "ignore case" regexes (like '*.sys\c') and "convenience" patterns to not define many of them (like '*.php\d'). As matching extension directly is faster and more explicit, it should be preferred. Solution: move all such patterns to direct extension match.
* refactor(filetype): use file name match instead of pattern if possibleEvgeni Chasnovski2024-08-03
| | | | | | | | | | | | | | Problem: some patterns are used as a replacement for one-two explicit file matches (like '^[mM]akefile$'). As matching file name directly is faster and more explicit, it should be preferred. Solution: move those patterns to direct file name match. NOTE: this is not strictly backwards compatible, because exact file name matching is done *before* pattern matching. If user has conflicting `vim.filetype.add()` call with high priority (like with `pattern='file$'` and `priority=100`), after this change it will be ignored (i.e. 'makefile' will match exactly). Judging by converted cases, it seems reasonable to prefer exact matches there.
* fix(lsp): redundant spaces in lsp log (#29970)Jaehwang Jung2024-08-03
|
* feat(lsp): announce codeLens resolveSupport (#29956)Mathias Fußenegger2024-08-03
| | | | | | | The codelens implementation can resolve command via `codeLens/resolve`. The spec added client capabilities for that: https://github.com/microsoft/language-server-protocol/pull/1979
* vim-patch:9.1.0655: filetype: goaccess config file not recognizedChristian Clason2024-08-03
| | | | | | | | | | | | | | | | | | | Problem: filetype: goaccess config file not recognized Solution: detect 'goaccess.conf' as goaccess filetype, also include a basic syntax and ftplugin (Adam Monsen) Add syntax highlighting for GoAccess configuration file. GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser. GoAccess home page: https://goaccess.io closes: vim/vim#15414 https://github.com/vim/vim/commit/0aa65b48fbe64e18a767b207802483026baecb5d Co-authored-by: Adam Monsen <haircut@gmail.com>
* vim-patch:c527d90: runtime(netrw): honor `g:netrw_alt{o,v}` for ↵Christian Clason2024-08-03
| | | | | | | | | | | | | | | `:{S,H,V}explore` Make `:Sexplore` / `:Hexplore` / `:Vexplore` commands honor the user `&split{right,below}` settings (or netrw-specific `g:netrw_alt{o,v}`) instead of hardcoding a split direction. Similarly, update banged variants of the two latter commands to follow the inverted preference. closes: vim/vim#15417 https://github.com/vim/vim/commit/c527d90fae7210d6dc5cbdf7507f26a32455149b Co-authored-by: Ivan Shapovalov <intelfx@intelfx.name>
* refactor(eval): treat v:lua call as simple functionzeertzjq2024-08-02
|
* vim-patch:9.0.0634: evaluating "expr" options has more overhead than neededzeertzjq2024-08-02
| | | | | | | | | | | | | | | | | | Problem: Evaluating "expr" options has more overhead than needed. Solution: Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr', "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr', 'formatexpr', 'indentexpr' and 'charconvert'. https://github.com/vim/vim/commit/a4e0b9785e409e9e660171cea76dfcc5fdafad9b vim-patch:9.0.0635: build error and compiler warnings Problem: Build error and compiler warnings. Solution: Add missing change. Add type casts. https://github.com/vim/vim/commit/3292a229402c9892f5ab90645fbfe2b1db342f5b Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:9.0.0632: calling a function from an "expr" option has overheadzeertzjq2024-08-02
| | | | | | | | | | | | Problem: Calling a function from an "expr" option has too much overhead. Solution: Add call_simple_func() and use it for 'foldexpr' https://github.com/vim/vim/commit/87b4e5c5db9d1cfd6f2e79656e1a6cff3c69d15f Cherry-pick a call_func() change from patch 8.2.1343. Add expr-option-function docs to options.txt. Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:8.2.4416: Vim9: using a script-local function requires using "s:" ↵zeertzjq2024-08-02
| | | | | | | | | | | | | | | | | | (#29950) Problem: Vim9: using a script-local function requires using "s:" when setting 'completefunc'. Solution: Do not require "s:" in Vim9 script. (closes vim/vim#9796) https://github.com/vim/vim/commit/1fca5f3e86f08e696058fc7e86dfe41b415a78e6 vim-patch:8.2.4417: using NULL pointer Problem: Using NULL pointer. Solution: Set offset after checking for NULL pointer. https://github.com/vim/vim/commit/e89bfd212b21c227f026e467f882c62cdd6e642d Co-authored-by: Bram Moolenaar <Bram@vim.org>
* fix(lsp): don't send foreign diagnostics to servers in buf.code_action (#29501)Mathias Fußenegger2024-08-01
| | | | | | | `buf.code_action` always included diagnostics on a given line from all clients. Servers should only receive diagnostics they published, and in the exact same format they sent it. Should fix https://github.com/neovim/neovim/issues/29500
* fix(watch): exclude .git when using inotifywait (#29914)Manuel2024-08-01
| | | | | | inotifywait man page specifies: The file must be specified with a relative or absolute path according to whether a relative or absolute path is given for watched directories. So it would only work this way in case the path is relative (which at least for gopls it is not)
* vim-patch:30a8ad6: runtime(java): Document "g:java_space_errors" and ↵Christian Clason2024-08-01
| | | | | | | | | | "g:java_comment_strings" closes: vim/vim#15399 https://github.com/vim/vim/commit/30a8ad675d183c15c47b42e37199e98e2f924d69 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* vim-patch:77b87c3: runtime(java): Cluster optional group definitions and ↵Christian Clason2024-08-01
| | | | | | | | | | | | their group links And keep non-optional group links at the end of the file. related: vim/vim#15399 https://github.com/vim/vim/commit/77b87c30d93dc2049a41c4ea5884f26612d7cd58 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* vim-patch:9aabcef: runtime(java): Tidy up the syntax fileChristian Clason2024-08-01
| | | | | | | | | | | | | | | | | | | | | | - Prefix all global variables with "g:". - Add spaces around each variable assignment operator. - Remove extraneous whitespace characters. - Remove a spurious _serializable_ Java keyword (since v1.1, java.io.Serializable and java.io.Externalizable interfaces provide an API for object serialization; see vim-6-0j). - Normalise the syntax definition argument order by making _contained_ the first argument of each such definition. - Normalise the argument tabulation for highlighting group definitions. Reference: https://web.archive.org/web/20010821025330/java.sun.com/docs/books/jls/first_edition/html/1.1Update.html related: vim/vim#15399 https://github.com/vim/vim/commit/9aabcef1c8f61a7d4f2facf6a510ab6d4f2d52f3 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* vim-patch:3749dff: runtime(java): Tidy up the documentation for "ft-java-syntax"Christian Clason2024-08-01
| | | | | | | | | | | | | | | | | | | | - Reword a few sentences and reformat a few paragraphs. - Supply absent capitalisation and punctuation. - Make listed highlighting groups and code stand out. - Prefix all Java-related global variables with "g:". - Add spaces around each variable assignment operator. - Acknowledge that some Javadoc variables are maintained in the HTML syntax file. Also, move the overridable _default_ HTML group links before the HTML syntax file inclusion in order to implement the documented diverged settings. related: vim/vim#15399 https://github.com/vim/vim/commit/3749dff093d8c3ba0cd34cebf42bd4d3d93afe26 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* vim-patch:5b07213: runtime(doc): re-format tag example lines, mention ctags ↵zeertzjq2024-08-01
| | | | | | | --list-kinds (#29938) https://github.com/vim/vim/commit/5b07213c0b365f2a7fcdd10c7e7cd00aae3560a5 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:partial:f10911e: Update runtime files (#29936)zeertzjq2024-08-01
| | | | | | | https://github.com/vim/vim/commit/f10911e5db16f1fe6ab519c5d091ad0c1df0d063 Also cherry-pick E1142 and E1156 tags from Vim. Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:d88ebcb: runtime(colors): update habamax scheme - tweak ↵Christian Clason2024-08-01
| | | | | | | | | | | | | | diff/search/todo colors - Make diff colors more accessible, Green for added, Red for deleted, Blue for Changed - Change Search to blue to be visible with Diff colors - Change Todo to bright magenta closes: vim/vim#15400 https://github.com/vim/vim/commit/d88ebcbd9ff6e67c2e1ff2abf95f1782aaeed9e4 Co-authored-by: Maxim Kim <habamax@gmail.com>
* vim-patch:fcc5346: runtime(colors): update included colorschemesChristian Clason2024-08-01
| | | | | | | | | | | | | | | | | | | - Add PmenuMatch and PmenuMatchSel to all colorschemes - Add contrast to habamax Type, String, Constant and PreProc - Change habamax PmenuSel to neutral gray to make PmenuMatchSel more visible - Change habamax Tabline and VertSplit - Make Conceal less visible for zellner, torte, shine, ron, peachpuff, pablo, morning, koehler, evening, delek, blue, darkblue, lunaperche, retrobox - Add Added/Changed/Removed highlights - Fix retrobox Terminal background - Other minor fixes and improvements closes: vim/vim#15267 https://github.com/vim/vim/commit/fcc53461d46ecbf128b5bae943f116dbe4e7ad51 Co-authored-by: Maxim Kim <habamax@gmail.com>
* vim-patch:5753d99: runtime(nohlsearch): add missing loaded_hlsearch guardChristian Clason2024-07-31
| | | | | | | | | related: vim/vim#15039 closes: vim/vim#15402 https://github.com/vim/vim/commit/5753d99ff667d0feeff6b582bb7df9aaedd9a2cb Co-authored-by: Maxim Kim <habamax@gmail.com>
* vim-patch:56e8ed6: runtime(kivy): Updated maintainer info for syntax scriptChristian Clason2024-07-31
| | | | | | | | closes: vim/vim#15405 https://github.com/vim/vim/commit/56e8ed61629cebf737f637d843b9f4a397fbcc72 Co-authored-by: Corey Prophitt <git@prophitt.me>
* fix(lsp): prevent desync due to empty buffer (#29904)Jaehwang Jung2024-07-31
| | | | | | | | | | | | | | | Problem: Some language servers (e.g., rust-analyzer, texlab) are desynced when the user deletes the entire contents of the buffer. This is due to the discrepancy between how nvim computes diff and how nvim treats empty buffer. * diff: If the buffer became empty, then the diff includes the last line's eol. * empty buffer: Even if the buffer is empty, nvim regards it as having a single empty line with eol. Solution: Add special case for diff computation when the buffer becomes empty so that it does not include the eol of the last line.
* feat(lsp): lsp.completion support set deprecated (#29882)glepnir2024-07-31
| | | | | | Problem: CompletionItem in lsp spec mentioned the deprecated attribute Solution: when item has deprecated attribute set hl_group to DiagnosticDeprecated in complete function
* fix(scrollbind): properly take filler/virtual lines into accountLewis Russell2024-07-31
| | | | | | | | | | | | | | | | | | Problem: `'scrollbind'` does not work properly if the window being scrolled automatically contains any filler/virtual lines (except for diff filler lines). This is because when the scrollbind check is done, the logic only considers changes to topline which are represented as line numbers. Solution: Write the logic for determine the scroll amount to take into account filler/virtual lines. Fixes #29751
* vim-patch:9.1.0645: regex: wrong match when searching multi-byte char ↵zeertzjq2024-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | case-insensitive Problem: regex: wrong match when searching multi-byte char case-insensitive (diffsetter) Solution: Apply proper case-folding for characters and search-string This patch does the following 4 things: 1) When the regexp engine compares two utf-8 codepoints case insensitive it may match an adjacent character, because it assumes it can step over as many bytes as the pattern contains. This however is not necessarily true because of case-folding, a multi-byte UTF-8 character can be considered equal to some single-byte value. Let's consider the pattern 'ſ' and the string 's'. When comparing and ignoring case, the single character 's' matches, and since it matches Vim will try to step over the match (by the amount of bytes of the pattern), assuming that since it matches, the length of both strings is the same. However in that case, it should only step over the single byte value 's' by 1 byte and try to start matching after it again. So for the backtracking engine we need to ensure: * we try to match the correct length for the pattern and the text * in case of a match, we step over it correctly There is one tricky thing for the backtracing engine. We also need to calculate correctly the number of bytes to compare the 2 different utf-8 strings s1 and s2. So we will count the number of characters in s1 that the byte len specified. Then we count the number of bytes to step over the same number of characters in string s2 and then we can correctly compare the 2 utf-8 strings. 2) A similar thing can happen for the NFA engine, when skipping to the next character to test for a match. We are skipping over the regstart pointer, however we do not consider the case that because of case-folding we may need to adjust the number of bytes to skip over. So this needs to be adjusted in find_match_text() as well. 3) A related issue turned out, when prog->match_text is actually empty. In that case we should try to find the next match and skip this condition. 4) When comparing characters using collections, we must also apply case folding to each character in the collection and not just to the current character from the search string. This doesn't apply to the NFA engine, because internally it converts collections to branches [abc] -> a\|b\|c fixes: vim/vim#14294 closes: vim/vim#14756 https://github.com/vim/vim/commit/22e8e12d9f5034e1984db0c567b281fda4de8dd7 N/A patches: vim-patch:9.0.1771: regex: combining chars in collections not handled vim-patch:9.0.1777: patch 9.0.1771 causes problems Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:e34d0e3: runtime(netrw): removing trailing slash when copying ↵Christian Clason2024-07-31
| | | | | | | | | | files in same directory closes: vim/vim#14756 https://github.com/vim/vim/commit/e34d0e37e397419636ae5d27d4b236b193efef07 Co-authored-by: Travis Shelton <tshelton.mail@gmail.com>
* vim-patch:e6471b4: runtime(cuda): source c and cpp ftpluginsChristian Clason2024-07-31
| | | | | | | | closes: vim/vim#15383 https://github.com/vim/vim/commit/e6471b415b6b56f89624e6e0a6b7a17502109d0c Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>