Commit Graph

40 Commits

Author SHA1 Message Date
Daniel Hahler 4bbad54817
tests: fix non-controversial misuse of `pending` (#11247)
Ref: https://github.com/neovim/neovim/pull/11184
2019-10-18 04:46:30 +02:00
Björn Linse 4987311fb5 tests/ui: remove unnecessary screen:detach()
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.
2019-10-13 22:10:42 +02:00
Justin M. Keyes ead39d6ce6 test/uname(): always lowercase 2019-09-01 22:49:33 -07:00
Justin M. Keyes 7d20907724 test/OpenBSD: skip some tests
Temporary workaround to unblock CI for OpenBSD.
2019-09-01 22:49:33 -07:00
Justin M. Keyes 0062c65ba8 test/cmdline_spec: adjust "no-op"
(<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
2019-08-10 11:46:26 +02:00
Björn Linse 4bf05ba399 cmdline: remove invalid cmdline_show event when aborting mapping 2019-06-26 09:16:17 +02:00
Jit 0bbaef8a99 UI/cmdline: check if redraw is needed after K_EVENT, K_COMMAND #9804
fixes #8490
2019-05-26 19:52:30 +02:00
Carlo Abelli 49c51f839b ex_getln: fix statusline redraw logic #9967
fixes #9908
2019-05-02 11:38:21 +02:00
Björn Linse be8ebba325 Allow using internal popupmenu or ext_popupmenu for wildmenu
Deprecate ext_wildmenu. ext_popupmenu already contains more state (anchor
position), and will allow further expansion (info about items).
2019-03-16 19:53:21 +01:00
Jan Edmund Lazo 5c3488c937 fixup: 35 col resize to scroll screen 2018-12-01 00:15:11 -05:00
Jan Edmund Lazo 2479004c13 functionaltests: vim-patch:8.1.{550,551} fix 2018-11-30 23:35:36 -05:00
Björn Linse e598811e76 ui: disable clearing almost everywhere
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.
2018-10-22 11:59:02 +02:00
Björn Linse c8810a51a3 tests: improve robustness of immediate successes in screen tests 2018-10-15 20:13:11 +02:00
Björn Linse 43823acae2 ui: rename ext_newgrid to ext_linegrid 2018-10-01 21:24:15 +02:00
Björn Linse 74937589d0 screen.lua: extend snapshot_util() to work with extension state
Simplify handling of attributes: collect new attributes in the same pass
as screen lines are rendered, instead of using two passes.
2018-09-03 10:36:55 +02:00
Björn Linse 3d88287e30 tests: introduce screen:expect{...} form 2018-08-27 15:15:49 +02:00
Björn Linse 1adb01c120 ui: use line-based rather than char-based updates in screen.c
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.
2018-07-21 13:21:58 +02:00
Björn Linse 1efe65a155 ex_getln: don't redraw statusline on top of scrolled messages 2018-06-02 09:39:39 +02:00
raichoo 3a6b80f2f4 UI: redraw statusline when entering cmdline (#8347) 2018-05-10 14:55:07 +02:00
Björn Linse d9497053e8 ex_getln: clear cmdline_block after it's freed 2018-02-14 19:20:28 +01:00
Justin M. Keyes 3cc7ebf810 Merge #7234 'built-in expression parser' 2017-12-09 18:47:34 +01:00
Björn Linse ba7d6a9e6b ui: fix glitch with both ext_cmdline and cmd_wildmenu 2017-12-06 09:41:51 +01:00
Björn Linse 9714b9f590 tests: cleanup ui/cmdline_spec.lua 2017-12-05 13:32:02 +01:00
ZyX 53fa435a1f functests: Fix ui/cmdline test 2017-11-19 19:34:15 +03:00
Justin M. Keyes 1a93f58831 test: ui/cmdline_spec.lua: enable on Windows 2017-10-29 02:12:45 +02:00
Björn Linse 445f25998c ext_cmdline: fix inputsecret() 2017-10-26 20:29:10 +02:00
Björn Linse 91d8e26bc7 ext_cmdline: interact with cmdline window 2017-10-26 20:29:10 +02:00
Björn Linse bed0a3a842 ext_cmdline: implement redraw! 2017-10-26 20:29:08 +02:00
Björn Linse 91f94bfef8 ext_cmdline: restructure and improve tests 2017-10-26 20:28:49 +02:00
Björn Linse f2aaa4ae8b ext_cmdline: rename cmdline_char to cmdline_special_char 2017-10-26 20:28:49 +02:00
Björn Linse a68817f565 ext_cmdline: extend "function" to generic "block" mechanism 2017-10-26 20:28:49 +02:00
Björn Linse 22402fb99d ext_cmdline: add support for highlighting 2017-10-26 20:28:47 +02:00
Dongdong Zhou fb389a6b4b ext_cmdline: added indent 2017-10-26 09:35:13 +02:00
Dongdong Zhou 461ae69824 ext_cmdline: Add function block support 2017-10-26 09:35:13 +02:00
Dongdong Zhou 866dadaf75 ext_cmdline: added cmdline level
add cchar_to_string
2017-10-26 09:35:13 +02:00
Dongdong Zhou e164ba41c8 ext_cmdline: fix firstc, change cmdline_leave to cmdline_hide 2017-10-26 09:35:13 +02:00
Dongdong Zhou daec81ab51 ext_cmdline: change the content format 2017-10-26 09:35:13 +02:00
Dongdong Zhou 550651c130 ext_cmdline: use standard external ui functions 2017-10-26 09:35:12 +02:00
Dongdong Zhou b7a8a76f6e ext_cmdline: lint 2017-10-26 09:35:12 +02:00
Dongdong Zhou 26fd70bd18 ext_cmdline: add tests 2017-10-26 09:35:12 +02:00