aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/highlight_spec.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-04-01 19:46:17 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-04-01 19:53:40 +0800
commit139828cc7ee807cb6680c87bb2cec1aa90e8b4fd (patch)
treeec777a018e90bc23b8b2e89e4d223a90e4bd0430 /test/functional/ui/highlight_spec.lua
parent377e87521157947c384d470a63927719b8c73ad7 (diff)
downloadrneovim-139828cc7ee807cb6680c87bb2cec1aa90e8b4fd.tar.gz
rneovim-139828cc7ee807cb6680c87bb2cec1aa90e8b4fd.tar.bz2
rneovim-139828cc7ee807cb6680c87bb2cec1aa90e8b4fd.zip
vim-patch:8.2.4660: cursorcolumn is sometimes not correct
Problem: Cursorcolumn is sometimes not correct. Solution: Recompute the cursor column when entering Insert mode and the cursor is on a character wider than a screen cell. https://github.com/vim/vim/commit/782c6744b49b30d9460ed00d4773666e42e07163
Diffstat (limited to 'test/functional/ui/highlight_spec.lua')
-rw-r--r--test/functional/ui/highlight_spec.lua40
1 files changed, 37 insertions, 3 deletions
diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua
index bf52d9f9b4..4b63b09a5b 100644
--- a/test/functional/ui/highlight_spec.lua
+++ b/test/functional/ui/highlight_spec.lua
@@ -1306,14 +1306,48 @@ describe('CursorLine and CursorLineNr highlights', function()
end)
describe('CursorColumn highlight', function()
- before_each(clear)
- it('is updated if cursor is moved from timer', function()
- local screen = Screen.new(50, 8)
+ local screen
+ before_each(function()
+ clear()
+ screen = Screen.new(50, 8)
screen:set_default_attr_ids({
[1] = {background = Screen.colors.Gray90}, -- CursorColumn
[2] = {bold = true, foreground = Screen.colors.Blue1}, -- NonText
+ [3] = {bold = true}, -- ModeMsg
})
screen:attach()
+ end)
+
+ it('is updated when pressing "i" on a TAB character', function()
+ exec([[
+ call setline(1, ['123456789', "a\tb"])
+ set cursorcolumn
+ call cursor(2, 2)
+ ]])
+ screen:expect([[
+ 1234567{1:8}9 |
+ a ^ b |
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ |
+ ]])
+ feed('i')
+ screen:expect([[
+ 1{1:2}3456789 |
+ a^ b |
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {3:-- INSERT --} |
+ ]])
+ end)
+
+ it('is updated if cursor is moved from timer', function()
exec([[
call setline(1, ['aaaaa', 'bbbbb', 'ccccc', 'ddddd'])
set cursorcolumn