diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2018-07-26 20:34:13 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2018-07-27 17:11:01 +0200 |
commit | 9a584773b5a19155d11f645d3a8af107e98b2e00 (patch) | |
tree | 286ebe2b95f3785dae727644630f00febbfa39d6 /test/functional/ui/sign_spec.lua | |
parent | 5f15788dc3ac1ea7906673eacc9cf9bdb1f14212 (diff) | |
download | rneovim-9a584773b5a19155d11f645d3a8af107e98b2e00.tar.gz rneovim-9a584773b5a19155d11f645d3a8af107e98b2e00.tar.bz2 rneovim-9a584773b5a19155d11f645d3a8af107e98b2e00.zip |
screen.c: add update_window_hl to special redrawing entrypoints
The following (run as a script) used to cause a crash due to :sign using a
special redraw (not updating nvim's specific highlight data structures)
without proper redraw first, as split just flags for redraw later.
set cursorline
sign define piet text=>> texthl=Search
split
sign place 3 line=2 name=piet buffer=1
Diffstat (limited to 'test/functional/ui/sign_spec.lua')
-rw-r--r-- | test/functional/ui/sign_spec.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/functional/ui/sign_spec.lua b/test/functional/ui/sign_spec.lua index c00d99cf90..4fbb46ac34 100644 --- a/test/functional/ui/sign_spec.lua +++ b/test/functional/ui/sign_spec.lua @@ -1,6 +1,7 @@ local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') local clear, feed, command = helpers.clear, helpers.feed, helpers.command +local source = helpers.source describe('Signs', function() local screen @@ -13,6 +14,9 @@ describe('Signs', function() [0] = {bold=true, foreground=255}, [1] = {background = Screen.colors.Yellow}, [2] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.Grey}, + [3] = {background = Screen.colors.Gray90}, + [4] = {bold = true, reverse = true}, + [5] = {reverse = true}, } ) end) @@ -45,5 +49,34 @@ describe('Signs', function() | ]]) end) + + it('can be called right after :split', function() + feed('ia<cr>b<cr>c<cr><esc>gg') + -- This used to cause a crash due to :sign using a special redraw + -- (not updating nvim's specific highlight data structures) + -- without proper redraw first, as split just flags for redraw later. + source([[ + set cursorline + sign define piet text=>> texthl=Search + split + sign place 3 line=2 name=piet buffer=1 + ]]) + screen:expect([[ + {2: }{3:^a }| + {1:>>}b | + {2: }c | + {2: } | + {2: }{0:~ }| + {2: }{0:~ }| + {4:[No Name] [+] }| + {2: }{3:a }| + {1:>>}b | + {2: }c | + {2: } | + {2: }{0:~ }| + {5:[No Name] [+] }| + | + ]]) + end) end) end) |