aboutsummaryrefslogtreecommitdiff
path: root/test/functional
Commit message (Collapse)AuthorAge
...
* | refactor: remove longdundargoc2023-09-29
| | | | | | | | | | long is 32-bits even on 64-bit windows which makes the type suboptimal for a codebase meant to be cross-platform.
* | test: decoration provider with wrapped lines (#25404)zeertzjq2023-09-28
| |
* | feat: NVIM_APPNAME supports relative paths #25233Rory Nesbitt2023-09-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: NVIM_APPNAME does not allow path separators in the name, so relative paths can't be used: NVIM_APPNAME="neovim-configs/first-config" nvim NVIM_APPNAME="neovim-configs/second-config" nvim Solution: Let NVIM_APPNAME be a relative path. Absolute paths are not supported. fix #23056 fix #24966
* | Merge pull request #25374 from bfredl/batchupdatebfredl2023-09-27
|\ \ | | | | | | refactor(grid): use batched updates for more things
| * | refactor(grid): use batched updates for statusline and rulerbfredl2023-09-27
| | |
* | | vim-patch:8.2.3517: TextChanged does not trigger after TextChangedI (#25384)zeertzjq2023-09-27
| |/ |/| | | | | | | | | | | | | | | Problem: TextChanged does not trigger after TextChangedI. Solution: Store the tick separately for TextChangedI. (Christian Brabandt, closes vim/vim#8968, closes vim/vim#8932) https://github.com/vim/vim/commit/db3b44640d69ab27270691a3cab8d83cc93a0861 Co-authored-by: Christian Brabandt <cb@256bit.org>
* | fix(extmarks): draw TAB in virt_text properly with 'rl' (#25381)zeertzjq2023-09-27
| |
* | refactor(tutor): cleanupJustin M. Keyes2023-09-26
| |
* | fix(tutor): Tutor steps don't work on Windows #25251Leonardo Mello2023-09-26
| | | | | | | | | | | | | | | | | | Problem: Some steps in :Tutor don't work on Windows. Solution: Add support for `{unix:...,win:...}` format and transform the Tutor contents depending on the platform. Fix https://github.com/neovim/neovim/issues/24166
* | Merge pull request #25229 from glepnir/20323bfredl2023-09-26
|\ \ | |/ |/| fix(highlight): add force in nvim_set_hl
| * fix(highlight): add force in nvim_set_hlglepnir2023-09-26
| |
* | fix(api): handle NUL in nvim_err_write() and nvim_out_write() (#25354)zeertzjq2023-09-25
| |
* | fix(exception): remember whether message is multiline (#25351)zeertzjq2023-09-25
| |
* | fix(ui): "resize -1" with cmdheight=0 #24758nwounkn2023-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Crash from: set cmdheight=0 redrawdebug=invalid resize -1 Solution: Do not invalidate first `p_ch` `msg_grid` rows in `update_screen` when scrolling the screen down after displaying a message, because they may be used later for drawing cmdline. Fixes #22154
* | test: only trim trailing spaces in swapfile tests (#25341)zeertzjq2023-09-24
| |
* | fix(startup): stop TUI properly when quitting at swap dialog (#25337)zeertzjq2023-09-24
| |
* | fix(api, lua): handle setting v: variables properly (#25325)zeertzjq2023-09-24
| |
* | fix(ui): always use stl/stlnc fillchars when drawing statusline (#25267)tj-moody2023-09-24
| |
* | test(tui_spec): small consistency fixes (#25332)zeertzjq2023-09-24
| | | | | | | | | | - Make indent consistent. - Remove outdated "Only single integration test" comment. - Don't use setup() as function name as it's used by busted.
* | fix(float): fix some other crashes with :unhide or :all (#25328)zeertzjq2023-09-23
| |
* | fix(lua): show error message when failing to set variable (#25321)zeertzjq2023-09-23
| |
* | fix(unhide): close floating windows first (#25318)zeertzjq2023-09-23
| |
* | fix(tui): make :cquit work properly with remote TUI (#25313)zeertzjq2023-09-23
| |
* | fix(languagetree): don't treat unparsed nodes as occupying full rangeL Lllvvuu2023-09-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is incorrect in the following scenario: 1. The language tree is Lua > Vim > Lua. 2. An edit simultaneously wipes out the `_regions` of all nodes, while taking the Vim injection off-screen. 3. The Vim injection is not re-parsed, so the child Lua `_regions` is still `nil`. 4. The child Lua is assumed, incorrectly, to occupy the whole document. 5. This causes the injections to be parsed again, resulting in Lua > Vim > Lua > Vim. 6. Now, by the same process, Vim ends up with its range assumed over the whole document. Now the parse is broken and results in broken highlighting and poor performance. It should be fine to instead treat an unparsed node as occupying nothing (i.e. effectively non-existent). Since, either: - The parent was just parsed, hence defining `_regions` - The parent was not just parsed, in which case this node doesn't need to be parsed either. Also, the name `has_regions` is confusing; it seems to simply mean the opposite of "root" or "full_document". However, this PR does not touch it.
* | fix(api): get virtual text with multiple hl properly (#25307)zeertzjq2023-09-22
| |
* | fix(ui): handle virtual text with multiple hl in more cases (#25304)zeertzjq2023-09-22
| |
* | fix(extmarks): inline virt_text support multiple hl groups (#25303)zeertzjq2023-09-22
| |
* | fix(lsp): handle absence of a trailing newline #25194Sergey Slipchenko2023-09-21
| | | | | | | | | | | | | | | | | | | | | | | | Fixes #24339 rust-analyzer sends "Invalid offset" error in such cases. Some other servers handle it specially. LSP spec mentions that "A range is comparable to a selection in an editor". Most editors don't handle trailing newlines the same way Neovim/Vim does, it's clearly visible if it's present or not. With that in mind it's understandable why sending end position as simply the start of the line after the last one is considered invalid in such cases.
* | Merge pull request #25270 from bfredl/indeterminismbfredl2023-09-21
|\ \ | | | | | | fix(test): fix "indeterminism" warnings in UI tests
| * | fix(test): fix "indeterminism" warnings in UI testsbfredl2023-09-20
| | |
* | | fix(mouse): click on empty line with 'foldcolumn'zeertzjq2023-09-21
| | |
* | | test(ui/float_spec): click in bordered float sets correct curswantzeertzjq2023-09-21
| | |
* | | vim-patch:9.0.1919: Wrong curswant when clicking on empty line or with vsplitszeertzjq2023-09-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Wrong curswant when clicking on empty line or with vsplits. Solution: Don't check for ScreenCols[] before the start of the window and handle empty line properly. closes: vim/vim#13132 https://github.com/vim/vim/commit/03cd697d635f1b0e7ffe21cf8244a8fb755f2ddb
* | | fix(statuscolumn): update number hl for each screen line (#25277)zeertzjq2023-09-21
| | |
* | | fix(extmarks): account for rightleft when drawing virt text (#25262)Ibby2023-09-20
| | | | | | | | | Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* | | fix(extmarks): fix win_col virt_text drawn on wrong screen line (#25264)zeertzjq2023-09-20
|/ /
* | Merge pull request #25096 from glepnir/float_winnewbfredl2023-09-20
|\ \ | | | | | | fix(float): trigger winnew event when float window create
| * | fix(float): trigger winnew event when float window createglepnir2023-09-19
| |/
* | Merge pull request #25155 from glepnir/fix_winhlbfredl2023-09-20
|\ \ | | | | | | fix(highlight): winhl receive wrong argument
| * | fix(highlight): winhl receive wrong argumentglepnir2023-09-19
| | |
* | | test(lsp): add normalize_markdown testsMaria José Solano2023-09-20
| | |
* | | feat(lsp): use treesitter for stylize markdownMaria José Solano2023-09-19
| | |
* | | fix(float): make "fixed" work with relative=win (#25243)zeertzjq2023-09-19
| | |
* | | Merge pull request #25214 from bfredl/glyphcachebfredl2023-09-19
|\ \ \ | | | | | | | | refactor(grid): change schar_T representation to be more compact
| * | | refactor(grid): change schar_T representation to be more compactbfredl2023-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, a screen cell would occupy 28+4=32 bytes per cell as we always made space for up to MAX_MCO+1 codepoints in a cell. As an example, even a pretty modest 50*80 screen would consume 50*80*2*32 = 256000, i e a quarter megabyte With the factor of two due to the TUI side buffer, and even more when using msg_grid and/or ext_multigrid. This instead stores a 4-byte union of either: - a valid UTF-8 sequence up to 4 bytes - an escape char which is invalid UTF-8 (0xFF) plus a 24-bit index to a glyph cache This avoids allocating space for huge composed glyphs _upfront_, while still keeping rendering such glyphs reasonably fast (1 hash table lookup + one plain index lookup). If the same large glyphs are using repeatedly on the screen, this is still a net reduction of memory/cache consumption. The only case which really gets worse is if you blast the screen full with crazy emojis and zalgo text and even this case only leads to 4 extra bytes per char. When only <= 4-byte glyphs are used, plus the 4-byte attribute code, i e 8 bytes in total there is a factor of four reduction of memory use. Memory which will be quite hot in cache as the screen buffer is scanned over in win_line() buffer text drawing A slight complication is that the representation depends on host byte order. I've tested this manually by compling and running this in qemu-s390x and it works fine. We might add a qemu based solution to CI at some point.
* | | | Merge pull request #25148 from glepnir/fixed_optbfredl2023-09-19
|\ \ \ \ | |/ / / |/| | | fix(float): add fixed option
| * | | fix(float): add fixd optionglepnir2023-09-18
| |/ /
* | | test(tui_spec): update cursor_address test for wrap flag (#25228)zeertzjq2023-09-18
| | |
* | | test(ui/fold_spec): more testing for clicking on 'foldcolumn' (#25225)zeertzjq2023-09-18
| | |
* | | test(ui/fold_spec): click on multibyte "foldclosed" (#25216)zeertzjq2023-09-17
| |/ |/|