aboutsummaryrefslogtreecommitdiff
path: root/test/functional
Commit message (Collapse)AuthorAge
...
| * fix(api): nvim_create_buf assert fails if autocmds set &swapfileSean Dewar2024-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: assertion failure in nvim_create_buf if buflist_new autocommands open a swapfile when "scratch" is set. Solution: block autocommands when setting up the buffer; fire them later instead. Note that, unlike buflist_new, I don't check if autocommands aborted script processing; the buffer is already created and configured at that point, so might as well return the handle anyway. Rather than repeat try_{start,end} and {un}block_autocmds for each relevant operation, just do it at the start and near the end. This means that, if TermResponse fires from unblock_autocmds for whatever reason, it can see the buffer in an already configured state if we didn't bail due to an error (plus it's probably a bit cleaner this way).
| * fix(api): nvim_create_buf leaks memory if buffer is loaded earlySean Dewar2024-03-19
| | | | | | | | | | | | | | Problem: memory leak in nvim_create_buf if buflist_new autocommands load the new buffer early. Solution: do not open a memfile in that case.
* | test(ui/messages_spec): unskip msg_puts_printf test on Unix CI (#27941)zeertzjq2024-03-20
|/ | | It no longer fails on Unix CI.
* fix(terminal): don't pass incomplete UTF-8 sequence to libvterm (#27922)zeertzjq2024-03-19
|
* feat(treesitter): update Vimdoc parser and queries to v2.4.0Christian Clason2024-03-19
|
* test(terminal/cursor_spec): unskip tests that pass on Windows (#27924)zeertzjq2024-03-19
| | | | | Also: - Make indent of test cases consistent. - Unskip TUI rapid resize test with ASAN as reflow is now disabled.
* test(terminal/buffer_spec): fix incorrect tests (#27923)zeertzjq2024-03-19
| | | | | The first describe() block enters terminal mode in before_each(), so feed_command() at the start of a test case writes it to the terminal instead of executing it.
* fix(pager): handle consecutive newlines properly (#27913)zeertzjq2024-03-18
|
* test(lsp): fix flaky basic_finish test (#27899)zeertzjq2024-03-18
| | | | | | | | | | Problem: As mentioned in #23002 on_setup and on_init are run concurrently. However, in basic_finish tests on_setup must attach the client before on_init finishes. The other basic_finish test isn't flaky because it makes an RPC request in on_init. Solution: Don't use on_setup in basic_finish tests.
* fix(tutor): set a value for ":syntax iskeyword" (#27833)En-En2024-03-18
| | | | | | | | | | | | Problem: "NOTE"s, inline Vim script code, and links ending in digits may not be highlighted correctly within the :Tutor. Solution: set an explicit value for ":syntax iskeyword" that includes digits. Do it after ":syntax include"s, so the included syntax/sh.vim doesn't mess with the value. Increase screen test width so all text within the conclusion section is visible. Co-authored-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
* fix(messages): allow more prompt in headless mode with UI (#27905)zeertzjq2024-03-18
| | | | | Problem: More prompt is not shown in headless mode even if there is a UI attached. Solution: Don't skip more prompt when there is a UI active.
* fix(treesitter): revert to using iter_captures in highlighterLewis Russell2024-03-17
| | | | Fixes #27895
* fix(lsp): create codelens request parameters for each buffer (#27699)Takuya Tokuda2024-03-17
|
* test: combining TermCursorNC with CursorLine/CursorColumn (#27898)zeertzjq2024-03-17
|
* fix(mouse): click after eol with conceal and virtual text (#27897)zeertzjq2024-03-17
| | | | | Problem: Wrong cursor position when clicking after end of line with 'virtualedit', conceal and virtual text. Solution: Always fill linebuf_vcol[] for the columns to clear.
* refactor(drawline): integrate terminal hl with eol loop (#27893)zeertzjq2024-03-17
| | | | | | | There is no test for using 'cursorline' in Normal mode in a terminal buffer, so add a test and fix 'cursorcolumn' remaining when entering Terminal mode. Also move synIDattr() tests to ui/highlight_spec.lua.
* fix(normal): don't check conceal when pressing 'r' (#27892)zeertzjq2024-03-17
| | | | | | | | Problem: Cursor line is unconcealed when pressing 'r' in Normal mode when 'concealcursor' contains 'n' but not 'i'. Solution: Don't check conceal when pressing 'r' in Normal mode. Vim doesn't have this problem because it doesn't call redrawWinline() in conceal_check_cursor_line() and instead sets a global variable.
* fix(drawline): check filler_todo in place of removed draw_state (#27889)zeertzjq2024-03-17
| | | | The only place it matters is the conceal wcol check, but it can avoid unnecessary computations at other places.
* 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
* Merge pull request #27877 from bfredl/pseudorandombfredl2024-03-16
|\ | | | | fix(intro): redrawing intro exposing pseudo-randomness
| * fix(intro): redrawing intro exposing pseudo-randomnessbfredl2024-03-16
| | | | | | | | | | problem: redrawing intro exposes pseudo-randomness solution: remove pseudo-randomness
* | fix(l10n): update Japanese translations (#27856)ite-usagi2024-03-16
|/
* Merge pull request #27867 from bfredl/intro_multigridbfredl2024-03-15
|\ | | | | fix(ui): startup intro message should be visible with ext_multigrid
| * fix(ui): startup intro message should be visible with ext_multigridbfredl2024-03-15
| | | | | | | | | | | | | | | | As this message is literally drawn on top of the EOB area of the first window, the simple solution is to just draw the message on top of the grid of the first window. We still want #24764 (msg_intro event) but now only for ext_messages.
* | Merge pull request #27858 from luukvbaal/nvim_set_cursorbfredl2024-03-15
|\ \ | | | | | | fix(ui): issues controlling cursor position with ext_cmdline
| * | fix(ui): ext_cmdline should not move cursor to curwinLuuk van Baal2024-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The ext_cmdline cursor position on the screen seems to rely on an implicit assumption that the event listener implements a cmdline window that is made the current window which is problematic (e.g. breaks 'incsearch' in the actual current window). Solution: Remove this assumption and allow nvim_win_set_cursor() to move the cursor on the screen to a non-current window (previous commit).
| * | fix(api): update grid cursor in nvim_win_set_cursor()Luuk van Baal2024-03-15
| | | | | | | | | | | | | | | | | | Problem: Cursor position set by nvim_win_set_cursor() is not reflected on the screen when followed by a blocking call like getchar(). Solution: Immediately update the cursor position on the grid.
* | | Merge pull request #27674 from glepnir/snippet_indentbfredl2024-03-15
|\ \ \ | |_|/ |/| | fix(snippet): correct indent with newline
| * | fix(snippet): correct indent with newlineglepnir2024-03-01
| | | | | | | | | | | | | | | | | | Problem: snippet newline use before line indent after expand. Solution: it should level + 1.
* | | vim-patch:9.1.0180: Cursor pos wrong when double-width chars are concealed ↵zeertzjq2024-03-15
| |/ |/| | | | | | | | | | | | | | | | | | | (#27862) Problem: Cursor pos wrong when double-width chars are concealed. Solution: Advance one more virtual column for a double-width char. Run some tests with both 'wrap' and 'nowrap' (zeertzjq). closes: vim/vim#14197 https://github.com/vim/vim/commit/010e1539d67442cc69a97bef6453efaf849d0db3
* | fix(highlight): don't show CursorColumn on current line (#27848)zeertzjq2024-03-15
| | | | | | | | | | | | | | | | | | | | | | | | Problem: CursorColumn highlight behavior is inconsistent with 'virtualedit' set: - If cursor is on the text, CursorColumn is not shown. - If cursor is after end of line, CursorColumn is shown. Solution: Don't shown CursorColumn on current line if cursor is after end of line. Vim doesn't have this problem because in most cases it uses the code path for drawing buffer text when CursorColumn highlight is needed.
* | Merge pull request #27852 from bfredl/persistent_introbfredl2024-03-14
|\ \ | | | | | | fix(intro): make intro explicitly stateful
| * | fix(intro): make intro explicitly statefulbfredl2024-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of randomly disappearing because some random event might have caused mid_start or bot_scroll_start to randomly take a low value, treat intro message as a _first class stateful_ thing. This means that intro message will kept being _redrawn_ as long as we are in the state it should be shown. This also includes screen resizes. you will not lose the intro message because there was a delay in detecting terminal features.
* | | Merge pull request #27854 from bfredl/boogalo_linesbfredl2024-03-14
|\ \ \ | | | | | | | | fix(api): fix set_lines viewport adjustment, but this time good
| * | | fix(api): fix set_lines viewport adjustment, but this time goodbfredl2024-03-14
| |/ / | | | | | | | | | fixes #27720
* / / 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).
* | fix(treesitter): highlight injections properlyLewis Russell2024-03-14
| | | | | | | | | | `on_line_impl` doesn't highlight single lines, so using pattern indexes to offset priority doesn't work.
* | vim-patch:9.1.0176: Cursor column wrong with 'virtualedit' and concealzeertzjq2024-03-14
| | | | | | | | | | | | | | | | | | | | Problem: Cursor column wrong with 'virtualedit' and conceal. Solution: Correct cursor column at end of line if never reached. (zeertzjq) closes: vim/vim#14190 https://github.com/vim/vim/commit/253ff4dece4e6cc4a9ff3ed935bc78f832b6fb7c
* | vim-patch:9.1.0174: 'cursorline' and 'wincolor' hl missing with conceal and wrapzeertzjq2024-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'cursorline' and 'wincolor' highlight missing with concealed and wrapped lines. Solution: Apply 'cursorline' and 'wincolor' highlight to boguscols. (zeertzjq) Since 'cursorline' and 'wincolor' highlight apply after the end of the line, it is more consistent to have them also apply to boguscols. Assigning MAXCOL to values in ScreenCols[] make mouse click behave the same with 'cursorline' and 'nocursorline', but such behavior may be incorrect, as it puts the cursor on the next screen line. That may be fixed in a future PR. closes: vim/vim#14192 https://github.com/vim/vim/commit/21b0a3df8c4abb884489dfcc0c92b1bbe058f291
* | fix(api/buffer): fix handling of viewport of non-current bufferbfredl2024-03-13
| | | | | | | | | | | | | | | | | | | | | | A lot of functions in move.c only worked for curwin, alternatively took a `wp` arg but still only work if that happens to be curwin. Refactor those that are needed for update_topline(wp) to work for any window. fixes #27723 fixes #27720
* | fix(drawline): initialize linebuf_attr to 0 instead of -1 (#27840)zeertzjq2024-03-13
| | | | | | This also obviates the end-of-line loop when there is virtual text.
* | feat(treesitter): support URLs (#27132)Gregory Anders2024-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tree-sitter queries can add URLs to a capture using the `#set!` directive, e.g. (inline_link (link_text) @text.reference (link_destination) @text.uri (#set! @text.reference "url" @text.uri)) The pattern above is included by default in the `markdown_inline` highlight query so that users with supporting terminals will see hyperlinks. For now, this creates a hyperlink for *all* Markdown URLs of the pattern [link text](link url), even if `link url` does not contain a valid protocol (e.g. if `link url` is a path to a file). We may wish to change this in the future to only linkify when the URL has a valid protocol scheme, but for now we delegate handling this to the terminal emulator. In order to support directives which reference other nodes, the highlighter must be updated to use `iter_matches` rather than `iter_captures`. The former provides the `match` table which maps capture IDs to nodes. However, this has its own challenges: - `iter_matches` does not guarantee the order in which patterns are iterated matches the order in the query file. So we must enforce ordering manually using "subpriorities" (#27131). The pattern index of each match dictates the extmark's subpriority. - When injections are used, the highlighter contains multiple trees. The pattern indices of each tree must be offset relative to the maximum pattern index from all previous trees to ensure that extmarks appear in the correct order. - The `iter_captures` implementation currently has a bug where the "match" table is only returned for the first capture within a pattern (see #27274). This bug means that `#set!` directives in a query apply only to the first capture within a pattern. Unfortunately, many queries in the wild have come to depend on this behavior. `iter_matches` does not share this flaw, so switching to `iter_matches` exposed bugs in existing highlight queries. These queries have been updated in this repo, but may still need to be updated by users. The `#set!` directive applies to the _entire_ query pattern when used without a capture argument. To make `#set!` apply only to a single capture, the capture must be given as an argument.
* | vim-patch:9.1.0167: Changing buffer in another window causes it to show ↵zeertzjq2024-03-12
| | | | | | | | | | | | | | | | | | | | | | | | matchparen (#27820) Problem: Changing buffer in another window using win_execute() causes it to show matchparen (after 9.0.0969). Solution: Delay highlighting with SafeState in BufWinEnter. (zeertzjq) closes: vim/vim#14177 https://github.com/vim/vim/commit/49ffb6b428e1e053446ec0209558a8f9d0963ae7
* | vim-patch:8.2.4944: text properties are wrong after "cc" (#27821)zeertzjq2024-03-12
| | | | | | | | | | | | | | | | | | Problem: Text properties are wrong after "cc". (Axel Forsman) Solution: Pass the deleted byte count to inserted_bytes(). (closes vim/vim#10412, closes vim/vim#7737, closes vim/vim#5763) https://github.com/vim/vim/commit/d0b1a09f44654bb5e29b09de1311845200f17d90 Co-authored-by: LemonBoy <thatlemon@gmail.com>
* | Merge pull request #27812 from luukvbaal/cmdheightbfredl2024-03-11
|\ \ | | | | | | feat(ui): allow non-zero 'cmdheight' with ext_messages
| * | feat(ui): allow non-zero 'cmdheight' with ext_messagesLuuk van Baal2024-03-11
| | | | | | | | | | | | | | | | | | | | | Problem: Arbitrary restriction on 'cmdheight' with ext_messages. The 'cmdheight'-area may be desirable for the replacing cmdline. Solution: Allow non-zero 'cmdheight' with ext_messages.
* | | test: correct order of arguments to eq() (#27816)zeertzjq2024-03-11
|/ /
* | vim-patch:9.1.0147: Cannot keep a buffer focused in a windowColin Kennedy2024-03-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot keep a buffer focused in a window (Amit Levy) Solution: Add the 'winfixbuf' window-local option (Colin Kennedy) fixes: vim/vim#6445 closes: vim/vim#13903 https://github.com/vim/vim/commit/215703563757a4464907ead6fb9edaeb7f430bea N/A patch: vim-patch:58f1e5c0893a
* | revert: "fix(window): :close crash with autocmd, floats and tabpage" (#27796)zeertzjq2024-03-10
| | | | | | | | | | | | | | | | This reverts PR #27793. On second thought, this solution may still crash, because it can leave a window with a NULL buffer if there are autocommand windows or if closing a floating window fails. It also makes close_last_window_tabpage() more complicated, so revert it.
* | fix(window): :close crash if WinClosed from float closes window (#27794)zeertzjq2024-03-10
| | | | | | | | Problem: :close crash if WinClosed from float closes window. Solution: Check if window has already been closed.