aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * 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
| * Merge pull request #29967 from zeertzjq/vim-9.1.0648zeertzjq2024-08-03
| |\ | | | | | | vim-patch:9.1.{0648,0653}
| | * vim-patch:9.1.0653: Patch v9.1.0648 not completely rightzeertzjq2024-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Patch v9.1.0648 not completely right (zeertzjq) Solution: Remove always true condition closes: vim/vim#15415 https://github.com/vim/vim/commit/a0b5bc12850f1d87fa51fb7be42df0ea835ccf21 Co-authored-by: Christian Brabandt <cb@256bit.org>
| | * vim-patch:9.1.0648: [security] double-free in dialog_changed()zeertzjq2024-08-03
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: [security] double-free in dialog_changed() (SuyueGuo) Solution: Only clear pointer b_sfname pointer, if it is different than the b_ffname pointer. Don't try to free b_fname, set it to NULL instead. fixes: vim/vim#15403 Github Advisory: https://github.com/vim/vim/security/advisories/GHSA-46pw-v7qw-xc2f https://github.com/vim/vim/commit/b29f4abcd4b3382fa746edd1d0562b7b48c9de60 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * refactor: move some functions out of eval.c (#29964)zeertzjq2024-08-02
| | | | | | | | | | | | - common_function() has always been in evalfunc.c in Vim - return_register() has always been in evalfunc.c in Vim - get_user_input() was moved to ex_getln.c in Vim 8.1.1957 - tv_get_lnum_buf() was moved to typval.c in Vim 8.2.0847
| * 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>
| * test: allow exec_lua to handle functionsLewis Russell2024-08-02
| | | | | | | | | | | | | | | | | | | | | | Problem: Tests have lots of exec_lua calls which input blocks of code provided as unformatted strings. Solution: Teach exec_lua how to handle functions.
| * fix(tui): reset active attr ID when OSC 8 sequence is terminated (#29960)Gregory Anders2024-08-02
| | | | | | | | | | | | | | | | | | | | | | | | When the cursor is moved we terminate any active OSC 8 sequences to prevent the sequence from inadvertently spanning regions it is not meant to span. However, if we do not also reset the TUI's active attr id (print_attr_id) then the TUI does not "know" that it's current attribute set has changed. When cursor_goto is called to wrap a line, the TUI does not recompute the attributes so the OSC 8 sequence is not restarted again. When we terminate an OSC 8 sequence before moving the cursor, also reset the active attr id so that the attributes are recomputed for URLs.
| * refactor(lsp): remove freeze() from gen_lsp (#29955)Mathias Fußenegger2024-08-02
| | | | | | To match the change in https://github.com/neovim/neovim/pull/29283
| * refactor(lsp): add test case for default diagnostic severityMathias Fussenegger2024-08-02
| | | | | | | | | | | | | | | | See https://github.com/microsoft/language-server-protocol/pull/1978 If the severity is not specified by the server, error should be used. This was already the case because it matches the vim.diagnostic default. This only adds a test case for it.
| * fix(eval): handle wrong v:lua in expr option properly (#29953)zeertzjq2024-08-02
| |
| * Merge pull request #29951 from zeertzjq/vim-9.0.0632zeertzjq2024-08-02
| |\ | | | | | | vim-patch:9.0.{0632,0634,0635},9.1.0649
| | * refactor(eval): treat v:lua call as simple functionzeertzjq2024-08-02
| | |
| | * vim-patch:9.1.0649: Wrong comment for "len" argument of call_simple_func()zeertzjq2024-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Wrong comment for "len" argument of call_simple_func(). Solution: Remove the "or -1 to use strlen()". Also change its type to size_t to remove one cast. (zeertzjq) closes: vim/vim#15410 https://github.com/vim/vim/commit/c1ed788c1b41db9b5f1ef548dc877f771f535bbe
| | * 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>
| * vim-patch:9.1.0652: too many strlen() calls in syntax.c (#29949)zeertzjq2024-08-02
| | | | | | | | | | | | | | | | | | | | | | | | Problem: too many strlen() calls in syntax.c Solution: refactor code to reduce the number or strlen() calls, get rid of un-used SYN_NAMELEN macro (John Marriott) closes: vim/vim#15368 https://github.com/vim/vim/commit/b4ea77185c7deeb6f7c8d5aa14f8c97a097e5dee Co-authored-by: John Marriott <basilisk@internode.on.net>
| * vim-patch:9.1.0651: ex: trailing dot is optional for :g and :insert/:append ↵zeertzjq2024-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#29946) Problem: ex: trailing dot is optional for :g and :insert/:append Solution: don't break out early, when the next command is empty. (Mohamed Akram) The terminating period is optional for the last command in a global command list. closes: vim/vim#15407 https://github.com/vim/vim/commit/0214680a8ec5f7f656cb42e5db19243709202ed2 Co-authored-by: Mohamed Akram <mohd.akram@outlook.com>
| * Merge pull request #29945 from zeertzjq/vim-9.1.0647zeertzjq2024-08-02
| |\ | | | | | | vim-patch:9.0.{2149,2158},9.1.0647
| | * vim-patch:9.1.0647: [security] use-after-free in tagstack_clear_entryzeertzjq2024-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: [security] use-after-free in tagstack_clear_entry (Suyue Guo ) Solution: Instead of manually calling vim_free() on each of the tagstack entries, let's use tagstack_clear_entry(), which will also free the stack, but using the VIM_CLEAR macro, which prevents a use-after-free by setting those pointers to NULL This addresses CVE-2024-41957 Github advisory: https://github.com/vim/vim/security/advisories/GHSA-f9cr-gv85-hcr4 https://github.com/vim/vim/commit/8a0bbe7b8aad6f8da28dee218c01bc8a0185a2d5 Co-authored-by: Christian Brabandt <cb@256bit.org>
| | * vim-patch:9.0.2158: [security]: use-after-free in check_argument_typezeertzjq2024-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: [security]: use-after-free in check_argument_type Solution: Reset function type pointer when freeing the function type list function pointer fp->uf_func_type may point to the same memory, that was allocated for fp->uf_type_list. However, when cleaning up a function definition (e.g. because it was invalid), fp->uf_type_list will be freed, but fp->uf_func_type may still point to the same (now) invalid memory address. So when freeing the fp->uf_type_list, check if fp->func_type points to any of those types and if it does, reset the fp->uf_func_type pointer to the t_func_any (default) type pointer closes: vim/vim#13652 https://github.com/vim/vim/commit/0f28791b215bd4c22ed580839409c2f7d39d8140 Co-authored-by: Christian Brabandt <cb@256bit.org>
| | * vim-patch:9.0.2149: [security]: use-after-free in exec_instructions()zeertzjq2024-08-02
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: [security]: use-after-free in exec_instructions() Solution: get tv pointer again [security]: use-after-free in exec_instructions() exec_instructions may access freed memory, if the GA_GROWS_FAILS() re-allocates memory. When this happens, the typval tv may still point to now already freed memory. So let's get that pointer again and compare it with tv. If those two pointers differ, tv is now invalid and we have to refresh the tv pointer. closes: vim/vim#13621 https://github.com/vim/vim/commit/5dd41d4b6370b7b7d09d691f9252b3899c66102a Co-authored-by: Christian Brabandt <cb@256bit.org>
| * vim-patch:9.1.0650: Coverity warning in cstrncmp() (#29944)zeertzjq2024-08-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Coverity warning in cstrncmp() (after v9.1.0645) Solution: Change the type of n2 to int. (zeertzjq) ________________________________________________________________________________________________________ *** CID 1615684: Integer handling issues (INTEGER_OVERFLOW) /src/regexp.c: 1757 in cstrncmp() 1751 n1 -= mb_ptr2len(s1); 1752 MB_PTR_ADV(p); 1753 n2++; 1754 } 1755 // count the number of bytes to advance the same number of chars for s2 1756 p = s2; >>> CID 1615684: Integer handling issues (INTEGER_OVERFLOW) >>> Expression "n2--", which is equal to 18446744073709551615, where "n2" is known to be equal to 0, underflows the type that receives it, an unsigned integer 64 bits wide. 1757 while (n2-- > 0 && *p != NUL) 1758 MB_PTR_ADV(p); 1759 1760 n2 = p - s2; 1761 1762 result = MB_STRNICMP2(s1, s2, *n, n2); closes: vim/vim#15409 https://github.com/vim/vim/commit/e8feaa354e685e527198093904492f67c52c2302
| * 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)
| * build(vim-patch.sh): use 7 hex digits for runtime patch file name (#29940)zeertzjq2024-08-01
| | | | | | | | 7 digits are used in commit message, so also using this in patch file name allows its proper deletion on PR creation.
| * 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:8.2.4275: cannot use an autoload function from a package under ↵zeertzjq2024-08-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | start (#29937) Problem: Cannot use an autoload function from a package under start. Solution: Also look in the "start" package directory. (Bjorn Linse, closes vim/vim#7193) https://github.com/vim/vim/commit/223a950a85448253780da4e821a5b23dcdfad28f Nvim already does this in do_in_cached_path(), and this change has no effect in Nvim as Nvim removes DIP_START after do_in_cached_path(). Accidentally failed to mark as ported: vim-patch:8.2.1731: Vim9: cannot use += to append to empty NULL list Co-authored-by: bfredl <bjorn.linse@gmail.com>
| * 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>
| * Merge pull request #29935 from zeertzjq/vim-9.1.0450zeertzjq2024-08-01
| |\ | | | | | | vim-patch:partial:9.1.{0450,0462}
| | * vim-patch:partial:9.1.0462: eval5() and eval7 are too complexzeertzjq2024-08-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: eval5() and eval7 are too complex Solution: Refactor eval5() and eval7() in eval.c (Yegappan Lakshmanan) closes: vim/vim#14900 https://github.com/vim/vim/commit/734286e4c626f80ace27eeb252a5e384e798aebf Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| | * vim-patch:partial:9.1.0450: evalc. code too complexzeertzjq2024-08-01
| |/ | | | | | | | | | | | | | | | | | | | | | | Problem: eval.c code too complex Solution: refactor eval6() and eval9() functions into several smaller functions (Yegappan Lakshmanan) closes: vim/vim#14875 https://github.com/vim/vim/commit/51c45e89b50a4841147b9fbd7c6095ab79a10c71 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * 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