aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* | docs: include backtrace for bug-crash #27065Jongwook Choi2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | Github Issue template: - Add pointers to |dev-tools-backtrace|. - Add pointers to CONTRIBUTING.md (Reporting Problems), which includes additional helpful instructions for issue reporting. - Search existing issues: include label `bug-crash` as well as `bug`. CONTRIBUTING.md: - Fix broken link on "stacktrace" after moving to help from wiki.
* | build(docs): separate lint job to validate vimdoc #27227Jongwook Choi2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Separate the lint job (`make lintdoc`) to validate runtime/doc, it is no longer as a part of functionaltest (help_spec). Build (cmake) and CI: - `make lintdoc`: validate vimdoc files and test-generate HTML docs. CI will run this as a part of the "docs" workflow. - `scripts/lintdoc.lua` is added as an entry point (executable script) for validating vimdoc files. scripts/gen_help_html.lua: - Move the tests for validating docs and generating HTMLs from `help_spec.lua` to `gen_help_html`. Added: - `gen_help_html.run_validate()`. - `gen_help_html.test_gen()`. - Do not hard-code `help_dir` to `build/runtime/doc`, but resolve from `$VIMRUNTIME`. Therefore, the `make lintdoc` job will check doc files on `./runtime/doc`, not on `./build/runtime/doc`. - Add type annotations for gen_help_html.
* | docs: explain why TUI is reinitialized on resume (#27177)Gregory Anders2024-01-28
| |
* | test(lua/snippet_spec): wait for completion menu (#27243)zeertzjq2024-01-28
| | | | | | | | This fixes the flakiness caused by typing a completion menu key when the completion menu hasn't showed up.
* | test(tui): add & improve tests for terminal queries (#27219)Gregory Anders2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problems: 1. The test case for querying truecolor support did not check which capabilities were queried 2. The test case for querying truecolor support checked `&termguicolors` in the Nvim test runner, not the child Nvim in the the embedded terminal 3. The test case for querying truecolor support did not actually respond to the XTGETTCAP requests. `'termguicolors'` is still enabled even without responding to this query because libvterm understands and responds to the DECRQSS request, but it is still good to respond to the query explicitly instead of depending on hidden libvterm behavior 4. No test case exists at all for OSC 52 Solution: Fix all of the problems listed above.
* | Merge pull request #24704 from seandewar/cmdwin-madnessSean Dewar2024-01-28
|\ \ | | | | | | vim-patch:9.1.{0047,0048,0049}: fun cmdwin fixes
| * | vim-patch:9.1.0049: Make "[Command Line]" a special buffer nameSean Dewar2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: E95 is possible if a buffer called "[Command Line]" already exists when opening the cmdwin. This can also happen if the cmdwin's buffer could not be deleted when closing. Solution: Un-name the cmdwin buffer, and give it a special name instead, similar to what's done for quickfix buffers and for unnamed prompt and scratch buffers. As a result, BufFilePre/Post are no longer fired when opening the cmdwin. Add a "command" key to the dictionary returned by getbufinfo() to differentiate the cmdwin buffer instead. (Sean Dewar) Cherry-pick test_normal changes from v9.0.0954. https://github.com/vim/vim/commit/1fb41032060df09ca2640dc49541f11062f6dfaa
| * | vim-patch:9.1.0048: Abort opening cmdwin if autocmds screw things upSean Dewar2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Autocmds triggered from opening the cmdwin (in win_split and do_ecmd) can cause issues such as E199, as the current checks are insufficient. Solution: Commands executed from the cmdwin apply to the old curwin/buf, so they should be kept in a "suspended" state; abort if they've changed. Also abort if cmdwin/buf was tampered with, and check that curwin is correct. Try to clean up the cmdwin buffer (only if hidden and non-current to simplify things; the same approach is used when closing cmdwin normally), and add a beep. (Sean Dewar) Rename the old Test_cmdwin_interrupted() like in the patch (can be moved to test_cmdwin.vim when v9.0.0027 is ported). Move the error message to `e_active_window_or_buffer_changed_or_deleted`. https://github.com/vim/vim/commit/43b395ec2e7d24a067d7cb00109818b64da144a5
| * | vim-patch:9.1.0047: issues with temp curwin/buf while cmdwin is openSean Dewar2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Things that temporarily change/restore curwin/buf (e.g: win_execute, some autocmds) may break assumptions that curwin/buf is the cmdwin when "cmdwin_type != 0", causing issues. Solution: Expose the cmdwin's real win/buf and check that instead. Also try to ensure these variables are NULL if "cmdwin_type == 0", allowing them to be used directly in most cases without checking cmdwin_type. (Sean Dewar) Reset and save `cmdwin_old_curwin` in a similar fashion. Apply suitable changes for API functions and add Lua tests. https://github.com/vim/vim/commit/988f74311c26ea9917e84fbae608de226dba7e5f
* | | Merge pull request #27221 from BugLight/fix-coverity-found-bugszeertzjq2024-01-28
|\ \ \ | |/ / |/| | Fix bugs found by coverity
| * | fix(coverity/471380): null dereference in get_local_additions()Daniil Zhukov2024-01-27
| | | | | | | | | | | | | | | | | | | | | | | | strrchr returns null pointer if '.' is not present in file name. Notice that filenames are filtered to match "doc/*.??[tx]" pattern earlier so we shouldn't expect null pointer here. However later in code strrchr return value is checked so it seems better and more consistent to do the same here too.
| * | fix(coverity/348240): memory leak in put_view()Daniil Zhukov2024-01-26
| | |
* | | docs(lua): update ":{range}lua" docs + error message #27231Justin M. Keyes2024-01-27
| | | | | | | | | | | | | | | - `:lua (no file)` is misleading because `:lua` never takes a file arg, unlike `:source`. - Update various related docs.
* | | vim-patch:0cc6108fea21Christian Clason2024-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(ant): Update syntax file (vim/vim#13926) Remove invalid display option from syn-keyword commands. Take over maintenance of this file. https://github.com/vim/vim/commit/0cc6108fea216f597e38d1a88463fa6f28aded61 Co-authored-by: dkearns <dougkearns@gmail.com>
* | | fix(decor): check decor kind before accessing union field (#27205)Gregory Anders2024-01-27
| |/ |/| | | | | | | | | The data.sh.url field is valid only when item.kind is kDecorKindHighlight. The `if` block just before this line already does that check (as well as checking `active`) so move the access of `data.sh.url` into that block.
* | vim-patch:772f8f542513Christian Clason2024-01-27
| | | | | | | | | | | | | | | | runtime(hurl): add hurl filetype plugin(vim/vim#13921) https://github.com/vim/vim/commit/772f8f5425132b133a1d0fb22b35c13b4e027b42 Co-authored-by: Melker Ulander <melker.ulander@pm.me>
* | fix(events): check for WinResized/WinScrolled in terminal mode (#27226)zeertzjq2024-01-27
| |
* | fix(api): limit depth of nvim_cmd (#27225)zeertzjq2024-01-27
| |
* | test(tui_spec): get &background from child session directly (#27224)zeertzjq2024-01-27
| |
* | feat(ex_cmds): ranged :lua #27167luukvbaal2024-01-26
| | | | | | | | | | | | :{range}lua executes the specified lines in the current buffer as Lua code, regardless of its extension or 'filetype'. Close #27103
* | revert: "feat(treesitter): add foldtext with treesitter highlighting"Till Bungert2024-01-27
|/ | | This reverts commit 9ce1623 in favor of #20750.
* fix(osc52): do not use 'vim.iter' (#27218)Evgeni Chasnovski2024-01-26
| | | | | Problem: Using 'vim.iter' loads it during startup. Solution: Do not use 'vim.iter'.
* feat: improve return type annotations for vim.api.*Lewis Russell2024-01-26
|
* fix(extmarks): do not remove decor from invalid old marksLuuk van Baal2024-01-26
|
* fix(colorscheme): typoJaehwang Jung2024-01-26
|
* ci: update notes.mdJunghyeon Park2024-01-26
| | | | | Change the link to point to INSTALL.md. The contents were moved in https://github.com/neovim/neovim/pull/26533
* vim-patch:046a0f75d025Christian Clason2024-01-26
| | | | | | | | | | | runtime(mail): fix vim/vim#13913 (vim/vim#13917) switch to the DFA engine for the emoji collaction range https://github.com/vim/vim/commit/046a0f75d025783a141b85b9e85a34559fd8cf63 Co-authored-by: gi1242 <gi1242+github@gmail.com> Co-authored-by: GI <gi1242+vim@gmail.com>
* vim-patch:9.1.0058: Cannot map Super Keys in GTK UI (#27204)zeertzjq2024-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot map Super Keys in GTK UI (Casey Tucker) Solution: Enable Super Key mappings in GTK using <D-Key> (Casey Tucker) As a developer who works in both Mac and Linux using the same keyboard, it can be frustrating having to remember different key combinations or having to rely on system utilities to remap keys. This change allows `<D-z>` `<D-x>` `<D-c>` `<D-v>` etc. to be recognized by the `map` commands, along with the `<D-S-...>` shifted variants. ```vimrc if has('gui_gtk') nnoremap <D-z> u nnoremap <D-S-Z> <C-r> vnoremap <D-x> "+d vnoremap <D-c> "+y cnoremap <D-v> <C-R>+ inoremap <D-v> <C-o>"+gP nnoremap <D-v> "+P vnoremap <D-v> "-d"+P nnoremap <D-s> :w<CR> inoremap <D-s> <C-o>:w<CR> nnoremap <D-w> :q<CR> nnoremap <D-q> :qa<CR> nnoremap <D-t> :tabe<CR> nnoremap <D-S-T> :vs#<CR><C-w>T nnoremap <D-a> ggVG vnoremap <D-a> <ESC>ggVG inoremap <D-a> <ESC>ggVG nnoremap <D-f> / nnoremap <D-g> n nnoremap <D-S-G> N vnoremap <D-x> "+x endif ``` closes: vim/vim#12698 https://github.com/vim/vim/commit/92e90a1e102825aa9149262cacfc991264db05df Co-authored-by: Casey Tucker <dctucker@hotmail.com>
* Merge pull request #27201 from zeertzjq/vim-9.1.0054zeertzjq2024-01-26
|\ | | | | vim-patch:9.1.{0054,0056}
| * vim-patch:9.1.0056: wrong number of trailing spaces inserted after blockwise putzeertzjq2024-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Incorrect number of trailing spaces inserted for multibyte characters when pasting a blockwise register in blockwise visual mode (VanaIgr) Solution: Skip over trailing UTF-8 bytes when computing the number of trailing spaces (VanaIgr) When pasting in blockwise visual mode, and the register type is <CTRL-V>, Vim aligns the text after the replaced area by inserting spaces after pasted lines that are shorter than the longest line. When a shorter line contains multibyte characters, each trailing UTF-8 byte's width is counted in addition to the width of the character itself. Each trailing byte counts as being 4 cells wide (since it would be displayed as <xx>). closes: vim/vim#13909 https://github.com/vim/vim/commit/6638ec8afa9875ff565020536954c424d5f6f27d Co-authored-by: VanaIgr <vanaigranov@gmail.com>
| * vim-patch:9.1.0054: 'linebreak' may still apply to leading whitespacezeertzjq2024-01-26
|/ | | | | | | | | | | | | | Problem: 'linebreak' may still apply to leading whitespace (VanaIgr) Solution: Compare pointers instead of virtual columns. (zeertzjq) related: #27180 closes: vim/vim#13915 https://github.com/vim/vim/commit/703f9bc943a29d947869b5cb0370be2ac42d5ac9 Co-authored-by: VanaIgr <vanaigranov@gmail.com>
* fixup: raise TS min versionChristian Clason2024-01-25
|
* build(deps): bump tree-sitter to v0.20.9Christian Clason2024-01-25
|
* vim-patch:9.1.0055: formatting long lines is slow (#27199)zeertzjq2024-01-26
| | | | | | | | | | | | | | | | | Problem: formatting long lines is slow (kawaii-Code) Solution: optimize gq (internal_format) for long lines (kawaii-Code) Implemented two workarounds that significantly reduce the amount of pointless calls. Ideally the algorithm would be rewritten not to be n^2, but it's too complicated with too many corner cases. closes: vim/vim#13914 https://github.com/vim/vim/commit/78019df645400796831670ec166e7e3b55ae8310 Co-authored-by: kawaii-Code <nia.personal.0@gmail.com>
* feat(colorscheme): update treesitter groupsEvgeni Chasnovski2024-01-25
| | | | | | | | | | | | Problem: Currently default color scheme defines most of treesitter highlight groups. This might be an issue for users defining their own color scheme as it breaks the "fallback property" for some of groups. Solution: Define less default treesitter groups; just enough for default color scheme to be useful. That is: - All first level groups (`@character`, `@string`, etc.). - All `@xxx.builtin` groups as a most common subgroup. - Some special cases (links/URLs, `@diff.xxx`, etc.).
* fix(colorscheme): use explicit normal foreground in syntax groupsEvgeni Chasnovski2024-01-25
| | | | | | | | | | | | Problem: Some core syntax highlight groups are cleared with intention to always be shown without additional highlighting. This doesn't always work as intended, especially with fallback mechanism of @-groups. Example: `Statement`/`Keyword` group shown in help code blocks (`@markup.raw`) is shown as bold (from `Statement`) cyan (from `@markup.raw`) instead of bold grey. Solution: Explicitly use normal grey foreground in syntax groups where it was previously implicitly assumed.
* fix(runtime): update 'vim' color scheme to use new tree-sitter groupsEvgeni Chasnovski2024-01-25
|
* build(deps): bump tree-sitter-bash to v0.20.4Christian Clason2024-01-25
|
* build(deps): bump luajit to HEAD - 343ce0edaChristian Clason2024-01-25
|
* refactor: IWYU (#27186)zeertzjq2024-01-25
|
* docs: various fixes (#27063)dundargoc2024-01-25
| | | | | | Co-authored-by: lmenou <menl94629@gmail.com> Co-authored-by: altermo <107814000+altermo@users.noreply.github.com> Co-authored-by: VanaIgr <vanaigranov@gmail.com> Co-authored-by: Gregory Anders <greg@gpanders.com>
* feat(ui): add support for OSC 8 hyperlinks (#27109)Gregory Anders2024-01-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extmarks can contain URLs which can then be drawn in any supporting UI. In the TUI, for example, URLs are "drawn" by emitting the OSC 8 control sequence to the TTY. On terminals which support the OSC 8 sequence this will create clickable hyperlinks. URLs are treated as inline highlights in the decoration subsystem, so are included in the `DecorSignHighlight` structure. However, unlike other inline highlights they use allocated memory which must be freed, so they set the `ext` flag in `DecorInline` so that their lifetimes are managed along with other allocated memory like virtual text. The decoration subsystem then adds the URLs as a new highlight attribute. The highlight subsystem maintains a set of unique URLs to avoid duplicating allocations for the same string. To attach a URL to an existing highlight attribute we call `hl_add_url` which finds the URL in the set (allocating and adding it if it does not exist) and sets the `url` highlight attribute to the index of the URL in the set (using an index helps keep the size of the `HlAttrs` struct small). This has the potential to lead to an increase in highlight attributes if a URL is used over a range that contains many different highlight attributes, because now each existing attribute must be combined with the URL. In practice, however, URLs typically span a range containing a single highlight (e.g. link text in Markdown), so this is likely just a pathological edge case. When a new highlight attribute is defined with a URL it is copied to all attached UIs with the `hl_attr_define` UI event. The TUI manages its own set of URLs (just like the highlight subsystem) to minimize allocations. The TUI keeps track of which URL is "active" for the cell it is printing. If no URL is active and a cell containing a URL is printed, the opening OSC 8 sequence is emitted and that URL becomes the actively tracked URL. If the cursor is moved while in the middle of a URL span, we emit the terminating OSC sequence to prevent the hyperlink from spanning multiple lines. This does not support nested hyperlinks, but that is a rare (and, frankly, bizarre) use case. If a valid use case for nested hyperlinks ever presents itself we can address that issue then.
* vim-patch:a262d3f41bc5Christian Clason2024-01-24
| | | | | | | | | | | | runtime(netrw): Don't change global options (vim/vim#13910) Originally reported at: https://github.com/vim-jp/issues/issues/1428 'isk' was unintentionally changed by netrw, regression introduced in Commit: 71badf9547e8f89571b9a095183671cbb333d528 https://github.com/vim/vim/commit/a262d3f41bc51be697ddebbf04f186e7d193fd6f Co-authored-by: K.Takata <kentkt@csc.jp>
* vim-patch:e1ddc2d5875dChristian Clason2024-01-24
| | | | | | | | | | | | runtime(fortran): update syntax and documentation (vim/vim#13912) * runtime (doc): update Fortran section * runtime(syntax): Complete support for Fortran 2023. Minor improvements. https://github.com/vim/vim/commit/e1ddc2d5875d820b5dcb1423428ce4a01cce3fda Co-authored-by: Ajit-Thakkar <142174202+Ajit-Thakkar@users.noreply.github.com>
* refactor: rewrite ruby provider in luadundargoc2024-01-24
|
* build: various build improvementsdundargoc2024-01-24
| | | | | | | | | | | | | | | | | | - remove "ran-" prefix from touch files as it's redundant since the they're already in the directory named `touches`. - Include `contrib` when formatting with `make formatlua`. - Use TARGET_FILE generator expression instead of assuming the executable location. - reuse logic that determines whether to use lua or luajit. - add translations to the `nvim` target. Makefile improvements: - rename variable `CMAKE_PRG` to `CMAKE` to make it more consistent with the builtin `MAKE` variable. - stop propagating flags to generator. Users should use cmake for non-standard use cases. - remove `+` prefix from targets. If the user for whatever reason wants to dry-run a target then they should be able to.
* fix(treesitter): avoid # of nil in _query_linterDaniel Kongsgaard2024-01-24
|
* refactor: rewrite perl provider in luadundargoc2024-01-24
|
* fix(spell): always accept ':' as filename char in 'spellfile' (#27172)zeertzjq2024-01-24
| | | Follow-up to #25236
* vim-patch:ca0e9823a1dfChristian Clason2024-01-24
| | | | | | | | | | runtime(c): Highlight user defined functions closes: vim/vim#13763 https://github.com/vim/vim/commit/ca0e9823a1dfd71a17c0f08cb7973d413bf98999 Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>