aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc
Commit message (Collapse)AuthorAge
...
| * vim-patch:9.1.0297: Patch 9.1.0296 causes too many issues (#28263)zeertzjq2024-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Patch 9.1.0296 causes too many issues (Tony Mechelynck, chdiza, CI) Solution: Back out the change for now Revert "patch 9.1.0296: regexp: engines do not handle case-folding well" This reverts commit 7a27c108e0509f3255ebdcb6558e896c223e4d23 it causes issues with syntax highlighting and breaks the FreeBSD and MacOS CI. It needs more work. fixes: vim/vim#14487 https://github.com/vim/vim/commit/c97f4d61cde24030f2f7d2318e1b409a0ccc3e43 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * vim-patch:c9ec20d94ea5 (#28267)zeertzjq2024-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): Update documentation - Add security e-mail for private bugreports - Remove mentioning of the voting feature closes: vim/vim#14483 https://github.com/vim/vim/commit/c9ec20d94ea5c1ea263e70503e82abcdd27d3463 Co-authored-by: RestorerZ <restorer@mail2k.ru> Co-authored-by: Christian Brabandt <cb@256bit.org>
| * vim-patch:9.1.0296: regexp: engines do not handle case-folding well (#28259)zeertzjq2024-04-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Regex engines do not handle case-folding well Solution: Correctly calculate byte length of characters to skip When the regexp engine compares two utf-8 codepoints case insensitively 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' so 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 The same 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. 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. fixes: vim/vim#14294 closes: vim/vim#14433 https://github.com/vim/vim/commit/7a27c108e0509f3255ebdcb6558e896c223e4d23 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * vim-patch:9.1.0283: Several small issues in doc and tests (#28249)zeertzjq2024-04-09
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Wrong doc style for pandoc syntax description, Test_diff_eob_halfpage() may fail depending on screen size, using braces in highlight.c when not necessary Solution: Fix pandoc documentation, make sure the window for the test has 7 lines, remove the braces. https://github.com/vim/vim/commit/a040019be68859f0667ae475de8d67bb755596ed Co-authored-by: Christian Brabandt <cb@256bit.org>
| * vim-patch:9.1.0276: No pandoc syntax supportChristian Clason2024-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: No pandoc syntax support Solution: Add pandoc syntax and compiler plugins (Wu, Zhenyu, Konfekt) closes: vim/vim#14389 https://github.com/vim/vim/commit/7005b7ee7f282b24378c2a844366cb8616cad5d7 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu> Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
| * vim-patch:9.1.0277: Cannot highlight the Command-line (#28244)zeertzjq2024-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot highlight the Command-line Solution: Add the MsgArea highlighting group (Shougo Matsushita) closes: vim/vim#14327 https://github.com/vim/vim/commit/be2b03c6eecea3eae5d460e3c19ee43b73b29928 Cherry-pick Test_highlight_User() from patch 8.2.1077. Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
| * test: improve test conventionsdundargoc2024-04-08
| | | | | | | | Work on https://github.com/neovim/neovim/issues/27004.
| * vim-patch:9cd9e759ab1e (#28224)zeertzjq2024-04-08
| | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): Normalise builtin-function optional parameter formatting These should generally be formatted as func([{arg}]) and referenced as {arg} in the description. closes: vim/vim#14438 https://github.com/vim/vim/commit/9cd9e759ab1e6e6adb24a23648eed41e4d94d522 Co-authored-by: Doug Kearns <dougkearns@gmail.com>
| * docs: don't mention executable() can return -1dundargoc2024-04-06
| | | | | | | | This cannot happen for neovim.
| * docs: tags for commenting mappings without "-default" suffix (#28205)zeertzjq2024-04-06
| | | | | | | | | | | | | | | | This actually won't cause "duplicate tag" errors if plugins have tags of the same name, because E154 is only given for duplicate tags in the same directory. Without those tags, trying to use :h for these mappings jumps to other places, because there are matches with higher score.
| * feat(comment): add built-in commentingEvgeni Chasnovski2024-04-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Design - Enable commenting support only through `gc` mappings for simplicity. No ability to configure, no Lua module, no user commands. Yet. - Overall implementation is a simplified version of 'mini.comment' module of 'echasnovski/mini.nvim' adapted to be a better suit for core. It basically means reducing code paths which use only specific fixed set of plugin config. All used options are default except `pad_comment_parts = false`. This means that 'commentstring' option is used as is without forcing single space inner padding. As 'tpope/vim-commentary' was considered for inclusion earlier, here is a quick summary of how this commit differs from it: - **User-facing features**. Both implement similar user-facing mappings. This commit does not include `gcu` which is essentially a `gcgc`. There are no commands, events, or configuration in this commit. - **Size**. Both have reasonably comparable number of lines of code, while this commit has more comments in tricky areas. - **Maintainability**. This commit has (purely subjectively) better readability, tests, and Lua types. - **Configurability**. This commit has no user configuration, while 'vim-commentary' has some (partially as a counter-measure to possibly modifying 'commentstring' option). - **Extra features**: - This commit supports tree-sitter by computing `'commentstring'` option under cursor, which can matter in presence of tree-sitter injected languages. - This commit comments blank lines while 'tpope/vim-commentary' does not. At the same time, blank lines are not taken into account when deciding the toggle action. - This commit has much better speed on larger chunks of lines (like above 1000). This is thanks to using `nvim_buf_set_lines()` to set all new lines at once, and not with `vim.fn.setline()`.
| * vim-patch:408281e16a36Christian Clason2024-04-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime: Remove fallback :CompilerSet definition from compiler plugins The :CompilerSet command was added in version Vim 6.4 which was released twenty years ago. Other runtime files do not support versions of that vintage so it is reasonable to remove this fallback command definition now. closes: vim/vim#14399 https://github.com/vim/vim/commit/408281e16a36c15eed10fbf0406fa8ab159fc4bf Co-authored-by: Doug Kearns <dougkearns@gmail.com>
| * feat(defaults): add :Inspect to right-click menu (#28181)zeertzjq2024-04-05
| | | | | | | | | | | | | | Ref #21393 - Move default user commands to _defaults.lua as that now contains all kinds of defaults rather than just default mappings and menus. - Remove the :aunmenu as there are no menus when _defaults.lua is run.
| * vim-patch:8.1.0815: dialog for file changed outside of Vim not tested (#28184)zeertzjq2024-04-05
| | | | | | | | | | | | | | | | | | Problem: Dialog for file changed outside of Vim not tested. Solution: Add a test. Move FileChangedShell test. Add 'L' flag to feedkeys(). https://github.com/vim/vim/commit/5e66b42aae7c67a3ef67617d4bd43052ac2b73ce Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * vim-patch:89cc03af71d9 (#28168)zeertzjq2024-04-04
| | | | | | | | | | | | | | runtime(doc): sort filetype.txt in the alphabetical order (vim/vim#14395) https://github.com/vim/vim/commit/89cc03af71d9beb839d296b78a87869e7a0a8996 Co-authored-by: K.Takata <kentkt@csc.jp>
| * feat(treesitter): add `@injection.filename`Christian Clason2024-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Injecting languages for file redirects (e.g., in bash) is not possible. Solution: Add `@injection.filename` capture that is piped through `vim.filetype.match({ filename = node_text })`; the resulting filetype (if not `nil`) is then resolved as a language (either directly or through the list maintained via `vim.treesitter.language.register()`). Note: `@injection.filename` is a non-standard capture introduced by Helix; having two editors implement it makes it likely to be upstreamed.
| * feat(lua): pass keys before mapping to vim.on_key() callback (#28098)zeertzjq2024-03-31
| | | | | | Keys before mapping (i.e. typed keys) are passed as the second argument.
| * fix(highlight): add `Nvim{Light,Dark}Gray{1,2,3,4}` colorsEvgeni Chasnovski2024-03-30
| |
| * fix(fs): allow backslash characters in unix pathsJames Trew2024-03-29
| | | | | | | | | | | | | | Backslashes are valid characters in unix style paths. Fix the conversion of backslashes to forward slashes in several `vim.fs` functions when not on Windows. On Windows, backslashes will still be converted to forward slashes.
| * docs: document setting g:clipboard to v:false (#28085)dundargoc2024-03-29
| |
| * vim-patch:9.1.0228: Two unrelated things are tested by a single test (#28093)zeertzjq2024-03-29
| | | | | | | | | | | | | | | | | | | | Problem: Two unrelated things are tested by a single test. Solution: Split it into two, restoring the old Test_brace_single_line(). Add missing cleanup to some tests. (zeertzjq) closes: vim/vim#14323 https://github.com/vim/vim/commit/ad493ef3ea9ef7f2b0badcd2298883b5ab6e4ef4
| * feat(ui): indicate margins for the area used by win_viewportbfredl2024-03-29
| | | | | | | | | | | | | | | | Problem: using win_viewport for implementing smooth scrolling in an external UI might run into problems when winbar or borders is used, as there is no indication that the entire grid is not used for scrolled buffer text. Solution: add `win_viewport_margins` event.
| * vim-patch:9.1.0215: Half-page scrolling does not support smooth-scrollingLuuk van Baal2024-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Page-wise scrolling with Ctrl-D/Ctrl-U implements it's own logic to change the topline and cursor. More logic than necessary for scrolling with Ctrl-F/Ctrl-B was removed in patch 9.1.0211. Solution: Re-use the logic from Ctrl-E/Ctrl-Y/Ctrl-F/Ctrl-B while staying backward compatible as much as possible. Restore some of the logic that determined how many lines will be scrolled (Luuk van Baal) https://github.com/vim/vim/commit/5a2e3ec9ac72b6e644fea4ebba7e632498296e2f
| * vim-patch:9.1.0211: page-wise scrolling does not support smooth-scrollingLuuk van Baal2024-03-28
| | | | | | | | | | | | | | | | | | | | | | Problem: Page-wise scrolling with Ctrl-F/Ctrl-B implements it's own logic to change the topline and cursor. In doing so, skipcol is not handled properly for 'smoothscroll', and virtual lines. Solution: Re-use the logic from Ctrl-E/Ctrl-Y while staying backward compatible as much as possible. https://github.com/vim/vim/commit/b9f5b95b7bec2414a5a96010514702d99afea18e
| * docs: fix typos (#27868)dundargoc2024-03-28
| | | | | | | | | | | | | | | | | | Co-authored-by: ite-usagi <77563904+ite-usagi@users.noreply.github.com> Co-authored-by: v-sim <56476039+v-sim@users.noreply.github.com> Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Quico Augustijn <quico.public@gmail.com> Co-authored-by: nhld <nahnera@gmail.com> Co-authored-by: francisco souza <108725+fsouza@users.noreply.github.com>
| * fix(treesitter): return correct match table in iter_captures()Lewis Russell2024-03-27
| |
| * feat(diagnostic): add support for many namespaces filtering in GetOpts (#28045)Mayrom2024-03-26
| |
| * vim-patch:9.1.0207: No autocommand when writing session file (#28048)zeertzjq2024-03-27
| | | | | | | | | | | | | | | | | | | | | | | | Problem: No autocommand when writing session file Solution: Add SessionWritePost autocommand (Colin Kennedy) fixes: vim/vim#14242 closes: vim/vim#14288 https://github.com/vim/vim/commit/e5f2280381250801a28dcff9823e6f94e7b163fc Co-authored-by: Colin Kennedy <colinvfx@gmail.com>
| * docs: remove remaining mentions of hkmap (#28038)zeertzjq2024-03-26
| |
| * refactor(lsp): simplify client trackingLewis Russell2024-03-25
| | | | | | | | | | | | | | | | | | | | | | - Remove: - uninitialized_clients - active_clients - all_buffer_active_clients - Add: - all_clients - Use `lsp.get_clients()` to get buffer clients.
| * fix(test): typingLewis Russell2024-03-25
| |
| * vim-patch:ab01adf7c65bChristian Clason2024-03-25
| | | | | | | | | | | | | | | | | | | | runtime(doc): Update options.txt closes: vim/vim#14295 https://github.com/vim/vim/commit/ab01adf7c65b4ee350b402ab3ef1e7dfa5e074f1 Co-authored-by: Song-Tianxiang <149415622+Song-Tianxiang@users.noreply.github.com>
| * vim-patch:9.1.0205: Cannot use modifiers before :-Ntabmove (#28031)zeertzjq2024-03-26
| | | | | | | | | | | | | | | | | | | | Problem: Cannot use modifiers before :-Ntabmove. Solution: Check backwards from the command instead of checking from the start of the command line. Slightly adjust docs to make them more consistent (zeertzjq). closes: vim/vim#14289 https://github.com/vim/vim/commit/076faac5378cf517baa8c331c57488d39efadec0
| * Revert "refactor(lsp): simplify client tracking"Lewis Russell2024-03-25
| | | | | | | | This reverts commit 3f238b39cfdf27657b2d9452c6ffd28f8209c95f.
| * refactor(lsp): simplify client trackingLewis Russell2024-03-25
| | | | | | | | | | | | | | | | | | | | | | - Remove: - uninitialized_clients - active_clients - all_buffer_active_clients - Add: - all_clients - Use `lsp.get_clients()` to get buffer clients.
| * vim-patch:9.1.0199: Not enough tests for the slice() function (#27991)zeertzjq2024-03-23
| | | | | | | | | | | | | | | | | | | | Problem: Not enough tests for the slice() function. Solution: Test with multibyte chars, and in both Legacy and Vim9 script. Update docs to be clearer about how it treats composing chars. (zeertzjq) closes: vim/vim#14275 https://github.com/vim/vim/commit/ad38769030b5fa86aa0e8f1f0b4266690dfad4c9
| * docs(lsp): describe semantic tokens highlight groups with more detailsEvgeni Chasnovski2024-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Description of highlight groups for LSP semantic tokens can be more up to date and useful. Right now it misses several actually defined highlight groups and presents information about Vim highlight groups they are linked to. This is both outdated (they link to tree-sitter `@` groups now) and redundant (users can see this information with `:Inspect` over the group name itself). Solution: Synchronize the list of groups with specification and provide actionable descriptions.
| * refactor(treesitter): redesign query iteratingLewis Russell2024-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: `TSNode:_rawquery()` is complicated, has known issues and the Lua and C code is awkwardly coupled (see logic with `active`). Solution: - Add `TSQueryCursor` and `TSQueryMatch` bindings. - Replace `TSNode:_rawquery()` with `TSQueryCursor:next_capture()` and `TSQueryCursor:next_match()` - Do more stuff in Lua - API for `Query:iter_captures()` and `Query:iter_matches()` remains the same. - `treesitter.c` no longer contains any logic related to predicates. - Add `match_limit` option to `iter_matches()`. Default is still 256.
| * fix(treesitter): document more standard highlight groupsChristian Clason2024-03-19
| | | | | | | | | | | | | | | | | | Problem: Not all standard treesitter groups are documented. Solution: Document them all (without relying on fallback); add default link for new `*.builtin` groups to `Special` and `@keyword.type` to `Structure`. Remove `@markup.environment.*` which only made sense for LaTeX.
| * vim-patch:78c189837ae6 (#27920)zeertzjq2024-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): Recover some missed commas and periods in starting.txt Also: - Insert some missing words; - Strive for consistency with capitalisation of words; - Improve shell alias examples. The gvim words were left alone for now, but they deserve to be treated like proper names, GVim or GUI Vim, unless these refer to executable filenames (on *nix systems). closes: vim/vim#14194 https://github.com/vim/vim/commit/78c189837ae6a03fa5fbb62eabde66e3da9253a3 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
| * fix(treesitter): revert to using iter_captures in highlighterLewis Russell2024-03-17
| | | | | | | | Fixes #27895
| * refactor(lua): type annotationsLewis Russell2024-03-16
| |
| * fix(lsp): add missing LSP semantic token highlight linksCaleb Marshall2024-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | Added the following LSP semantic token types to be linked to highlight groups by default: * @lsp.type.event * @lsp.type.keyword * @lsp.type.modifier * @lsp.type.number * @lsp.type.operator * @lsp.type.regexp * @lsp.type.string
| * vim-patch:989faa4fce65 (#27880)zeertzjq2024-03-16
| | | | | | | | | | | | | | | | runtime(doc): make :h tag-! more consistent (vim/vim#14208) - Use "on" and "off" for 'winfixbuf' option values. - Retab the table. https://github.com/vim/vim/commit/989faa4fce65a48d95fd8c9ae402672d70b8de7f
| * feat(man): allow opening pages in current window (#27861)Tomasz N2024-03-16
| | | | | | With :hide modifier, open page in current window.
| * vim-patch:9.1.0181: no overflow check for string formatting (#27863)zeertzjq2024-03-15
| | | | | | | | | | | | | | | | | | | | | | Problem: no overflow check for string formatting Solution: Check message formatting function for overflow. (Chris van Willegen) closes: vim/vim#13799 https://github.com/vim/vim/commit/c35fc03dbd47582b256776fb11f11d8ceb24f8f0 Co-authored-by: Christ van Willegen <cvwillegen@gmail.com>
| * fix(terminal): disable reflow againChristian Clason2024-03-14
| | | | | | | | | | | | | | reverts https://github.com/neovim/neovim/commit/c855eee919f2d4edc9b9fa91b277454290fbabfe This setting introduces constant CI failures on macos (see https://github.com/neovim/neovim/issues/23762).
| * vim-patch:9.1.0178: E1513 might be confusing (#27846)zeertzjq2024-03-14
| | | | | | | | | | | | | | | | | | | | | | | | Problem: E1513 might be confusing (Christoph Thoma) Solution: reword error message, fix test to not depend on the actual message fixes: vim/vim#14189 https://github.com/vim/vim/commit/0a32b8854b52381fd17a6fcc5e38a3b9e77c8923 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * vim-patch:9.1.0175: wrong window positions with 'winfix{width,height}' (#27845)Sean Dewar2024-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: winframe functions incorrectly recompute window positions if the altframe wasn't adjacent to the closed frame, which is possible if adjacent windows had 'winfix{width,height}' set. Solution: recompute for windows within the parent of the altframe and closed frame. Skip this (as before) if the altframe was top/left, but only if adjacent to the closed frame, as positions won't change in that case. Also correct the return value documentation for win_screenpos. (Sean Dewar) The issue revealed itself after removing the win_comp_pos call below winframe_restore in win_splitmove. Similarly, wrong positions could result from windows closed in other tabpages, as win_free_mem uses winframe_remove (at least until it is entered later, where enter_tabpage calls win_comp_pos). NOTE: As win_comp_pos handles only curtab, it's possible via other means for positions in non-current tabpages to be wrong (e.g: after changing 'laststatus', 'showtabline', etc.). Given enter_tabpage recomputes it, maybe it's intentional as an optimization? Should probably be documented in win_screenpos then, but I won't address that here. closes: vim/vim#14191 Nvim: don't reuse "wp" for "topleft" in winframe_remove, so the change integrates better with the call to winframe_find_altwin before it. https://github.com/vim/vim/commit/5866bc3a0f54115d5982fdc09bdbe4c45069265a
| * vim-patch:9a660d2883f9Sean Dewar2024-03-12
| | | | | | | | | | | | | | | | | | | | runtime(doc): add reference to matchbufline() at :h search() related: vim/vim#14173 https://github.com/vim/vim/commit/9a660d2883f92b3a3761c964dc14363a8f70c8d8 Co-authored-by: Christian Brabandt <cb@256bit.org>