aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/cmdline_spec.lua
Commit message (Collapse)AuthorAge
* refactor(grid): implement rightleftcmd as a post-processing stepbfredl2023-11-03
| | | | | | | Previously, 'rightleftcmd' was implemented by having all code which would affect msg_col or output screen cells be conditional on `cmdmsg_rl`. This change removes all that and instead implements rightleft as a mirroring post-processing step.
* 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
* fix(test): fix "indeterminism" warnings in UI testsbfredl2023-09-20
|
* vim-patch:9.0.0579: using freed memory when 'tagfunc' wipes out buffer (#24838)zeertzjq2023-08-22
| | | | | | | | | | | Problem: Using freed memory when 'tagfunc' wipes out buffer that holds 'complete'. Solution: Make a copy of the option. Make sure cursor position is valid. https://github.com/vim/vim/commit/0ff01835a40f549c5c4a550502f62a2ac9ac447c Cherry-pick a cmdwin change from patch 9.0.0500. Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:9.0.1726: incorrect heights in win_size_restore() (#24765)Sean Dewar2023-08-17
| | | | | | | | | Problem: incorrect heights in win_size_restore() Solution: avoid restoring incorrect heights in win_size_restore() https://github.com/vim/vim/commit/876f5fb570d8401aa4c58af4a5da91f10520aa9d I already merged this prior, so just replace the new test with the old one, but add a test case for the global statusline.
* fix(window): prevent win_size_restore from changing cmdheightSean Dewar2023-07-26
| | | | | | | | | | | | | | | | | | | | | Currently it only skips if `Rows` changed, but it's possible for the height of the usable area for windows to change (e.g: via `&ch`, `&stal` or `&ls`), which can cause the value of `&cmdheight` to change when the sizes are restored. This is a Vim bug, so I've submitted a PR there too. No telling when it'll be merged though, given the current lack of activity there. `ROWS_AVAIL` is convenient here, but also subtracts the `global_stl_height()`. Not ideal, as we also care about the height of the last statusline for other values of `&ls`. Meh. Introduce `last_stl_height` for getting the height of the last statusline and use it in `win_size_save/restore` and `last_status` (means `last_status_rec`'s `statusline` argument will now be true if `&ls` is 3, but that does not change the behaviour). Also corrects the logic in `comp_col` to not assume there's a last statusline if `&ls` is 1 and the last window is floating.
* fix(cmdline): don't redraw 'tabline' in Ex mode (#24123)zeertzjq2023-06-23
| | | | | | | | Redrawing of 'statusline' and 'winbar' are actually already inhibited by RedawingDisabled in Ex mode. In Vim there is a check for `msg_scrolled == 0` (which is false in Ex mode) since Vim doesn't have msgsep. Add a `!exmode_active` check here in Nvim instead.
* feat(ui): add scroll_delta to win_viewport event #19270Matthias Deiml2023-03-12
| | | | | | | | | | scroll_delta contains how much the top line of a window moved since the last time win_viewport was emitted. It is expected to be used to implement smooth scrolling. For this purpose it only counts "virtual" or "displayed" so folds should count as one line. Because of this it adds extra information that cannot be computed from the topline parameter. Fixes #19227
* test: avoid consecutive mouse input at different positions (#21781)zeertzjq2023-01-13
| | | | The seconds call's position may override the first call if the first call isn't processed yet, defeating the purpose of the first call.
* fix(ui): command line issues with external messages (#21709)luukvbaal2023-01-13
| | | | * fix: don't truncate external messages * fix: avoid resizing command line with external messages
* test: add test cases for command line issuesLuuk van Baal2022-12-31
|
* fix(showcmd): assert failure with cmdheight=0 (#21536)zeertzjq2022-12-26
|
* test: simplify platform detection (#21020)dundargoc2022-11-22
| | | | | Extend the capabilities of is_os to detect more platforms such as freebsd and openbsd. Also remove `iswin()` helper function as it can be replaced by `is_os("win")`.
* feat(messages)!: graduate the 'msgsep' featurebfredl2022-10-05
| | | | | | | The old behaviour (e.g. via `set display-=msgsep`) will not be available. Assuming that messages always are being drawn on msg_grid (or not drawn at all, and forwarded to `ext_messages` enabled UI) will allows some simplifcations and enhancements moving forward.
* fix(window): fix equalization with cmdheight=0 (#20369)zeertzjq2022-09-28
|
* fix(ui): allow redrawing statusline when msgsep is used (#20337)zeertzjq2022-09-26
|
* fix(cmdline): don't send invalid cursor with incsearch and cmdheight=0bfredl2022-09-26
| | | | fixes #20306
* fix(messages): validate msg_grid before silent! message with cmdheight=0bfredl2022-09-26
| | | | fixes #20316
* fix(redraw): avoid unnecessary redraws and glitches with floats+messagesbfredl2022-09-22
| | | | | fixes #20106 fixes #20229
* feat(ui): use msg_grid based implementation for cmdheight=0bfredl2022-09-15
|
* cmdheight=0: fix bugs part2 (#19185)Shougo2022-07-31
|
* fix(cmdline): trigger CmdlineEnter and ModeChanged earlier (#19474)zeertzjq2022-07-26
| | | | Match Vim's ordering in code. These tests are unrelated to ext_cmdline. Move them out of that block.
* cmdheight=0: fix bugs #18961Shougo2022-06-30
| | | | | | | | | | | | Continue of #16251 Fix #18953 Fix #18960 Fix #18958 Fix #18955 Fix #18970 Fix #18983 Fix #18995 Fix #19112
* fix(ui): do not call showmode() when setting window height (#18969)zeertzjq2022-06-15
|
* feat: cmdheight=0 #16251Shougo2022-06-13
| | | | | | | | | Fix https://github.com/neovim/neovim/issues/1004 Limitation: All outputs need hit-enter prompt. Related: https://github.com/neovim/neovim/pull/6732 https://github.com/neovim/neovim/pull/4382
* fix(ui): inccomand performance degradationKillTheMule2022-04-05
| | | | It was broken since the introduction of the macro.
* fixup! fix(highlight): remove syncolor.vimGregory Anders2021-07-28
|
* test/ui/cmdline: set notimeout to remove indeterminism (#14338)Jan Edmund Lazo2021-04-10
|
* screen: fix problem with p_cherw72021-04-03
| | | | | When the screen is resized, p_ch is not re-set to the appropriate value. As a result, access to invalid addresses was occurring.
* vim-patch:8.2.0131: command line is not cleared when switching tabsJan Edmund Lazo2020-10-29
| | | | | | | | Problem: Command line is not cleared when switching tabs and the command line height differs. Solution: Set the "clear_cmdline" flag when needed. (Naruhiko Nishino, closes vim/vim#5495) https://github.com/vim/vim/commit/479950f6c9aee4806f28a2b2fe5471e18a034cff
* vim-patch:8.2.0841: 'verbose' value 16 causes duplicate outputJan Edmund Lazo2020-10-03
| | | | | | | Problem: 'verbose' value 16 causes duplicate output. Solution: Combine levels 15 and 16 into one message. (Christian Brabandt, closes vim/vim#6153) https://github.com/vim/vim/commit/823654bc06c847af20967d41db32d592aba416cb
* doc: fix typosBrian Wignall2019-11-27
| | | | close #11459
* tests: fix non-controversial misuse of `pending` (#11247)Daniel Hahler2019-10-18
| | | Ref: https://github.com/neovim/neovim/pull/11184
* tests/ui: remove unnecessary screen:detach()Björn Linse2019-10-13
| | | | | | | | | | | | | It is perfectly fine and expected to detach from the screen just by the UI disconnecting from nvim or exiting nvim. Just keep detach() in screen_basic_spec, to get some coverage of the detach method itself. This avoids hang on failure in many situations (though one could argue that detach() should be "fast", or at least "as fast as resize", which works in press-return already). Never use detach() just to change the size of the screen, try_resize() method exists for that specifically.
* test/uname(): always lowercaseJustin M. Keyes2019-09-01
|
* test/OpenBSD: skip some testsJustin M. Keyes2019-09-01
| | | | Temporary workaround to unblock CI for OpenBSD.
* test/cmdline_spec: adjust "no-op"Justin M. Keyes2019-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (<Cmd>0<cr> is not really a no-op, it moves the cursor.) Attempt to avoid flaky test: test/functional/ui/cmdline_spec.lua @ 830 Failure message: ./test/functional/ui/screen.lua:579: Row 2 did not match. Expected: | | |*{1:~ }| |{3: }| |:012345678901234567890123| |456789^ | Actual: | | |*{3: }| |:012345678901234567890123| |:012345678901234567890123| |456789^ | ./test/functional/ui/screen.lua:579: in function '_wait' ./test/functional/ui/screen.lua:367: in function 'expect' test/functional/ui/cmdline_spec.lua:841: in function <test/functional/ui/cmdline_spec.lua:830> ref https://github.com/neovim/neovim/pull/10171#issuecomment-520134344 ref #10171
* cmdline: remove invalid cmdline_show event when aborting mappingBjörn Linse2019-06-26
|
* UI/cmdline: check if redraw is needed after K_EVENT, K_COMMAND #9804Jit2019-05-26
| | | fixes #8490
* ex_getln: fix statusline redraw logic #9967Carlo Abelli2019-05-02
| | | fixes #9908
* Allow using internal popupmenu or ext_popupmenu for wildmenuBjörn Linse2019-03-16
| | | | | Deprecate ext_wildmenu. ext_popupmenu already contains more state (anchor position), and will allow further expansion (info about items).
* fixup: 35 col resize to scroll screenJan Edmund Lazo2018-12-01
|
* functionaltests: vim-patch:8.1.{550,551} fixJan Edmund Lazo2018-11-30
|
* ui: disable clearing almost everywhereBjörn Linse2018-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid clearing the screen in most situations. NOT_VALID should be equivalent to CLEAR unless some external force messed up the terminal, for these situations <c-l> and :mode will still clear the screen. Also eliminate some obsolete code in screen.c, that dealt with that in vim drawing window 1 can mess up window 2, but this never happens in nvim. But what about slow terminals? There is two common meanings in which a terminal is said to be "slow": Most commonly (and in the sense of vim:s nottyfast) it means low bandwidth for sending bytes from nvim to the terminal. If the screen is very similar before and after the update_screen(CLEAR) this change should reduce bandwidth. If the screen is quite different, but there is no new regions of contiguous whitespace, clearing doesn't reduce bandwidth significantly. If the new screen contains a lot of whitespace, it will depend of if vsplits are used or not: as long as there is no vsplits, ce is used to cheaply clear the rest of the line, so full-screen clear is not needed to reduce bandwith. However a left vsplit currently needs to be padded with whitespace all the way to the separator. It is possible ec (clear N chars) can be used to reduce bandwidth here if this is a problem. (All of this assumes that one doesn't set Normal guibg=... on a non-BCE terminal, if you do you are doomed regardless of this change). Slow can also mean that drawing pixels on the screen is slow. E-ink screens is a recent example. Avoiding clearing and redrawing the unchanged part of the screen will always improve performance in these cases.
* tests: improve robustness of immediate successes in screen testsBjörn Linse2018-10-15
|
* ui: rename ext_newgrid to ext_linegridBjörn Linse2018-10-01
|
* screen.lua: extend snapshot_util() to work with extension stateBjörn Linse2018-09-03
| | | | | Simplify handling of attributes: collect new attributes in the same pass as screen lines are rendered, instead of using two passes.
* tests: introduce screen:expect{...} formBjörn Linse2018-08-27
|
* ui: use line-based rather than char-based updates in screen.cBjörn Linse2018-07-21
| | | | | | | | | | | | | Add ext_newgrid and ext_hlstate extensions. These use predefined highlights and line-segment based updates, for efficiency and simplicity.. The ext_hlstate extension in addition allows semantic identification of builtin and syntax highlights. Reimplement the old char-based updates in the remote UI layer, for compatibility. For the moment, this is still the default. The bulitin TUI uses the new line-based protocol. cmdline uses curwin cursor position when ext_cmdline is active.
* ex_getln: don't redraw statusline on top of scrolled messagesBjörn Linse2018-06-02
|