aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/breakindent_spec.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-08-24 07:19:18 +0800
committerGitHub <noreply@github.com>2023-08-24 07:19:18 +0800
commit466c18b8185c44f4fbf67ae91a2ffe27c1919306 (patch)
tree8b1aee377e20ebe2a7751240bfe7f2922e2db7f6 /test/functional/legacy/breakindent_spec.lua
parentdc45fb4655f5ce56c0bbcb179ef1c38149491d9f (diff)
downloadrneovim-466c18b8185c44f4fbf67ae91a2ffe27c1919306.tar.gz
rneovim-466c18b8185c44f4fbf67ae91a2ffe27c1919306.tar.bz2
rneovim-466c18b8185c44f4fbf67ae91a2ffe27c1919306.zip
vim-patch:9.0.1785: wrong cursor position with 'showbreak' and lcs-eol (#24852)
Problem: wrong cursor position with 'showbreak' and lcs-eol Solution: Add size of 'showbreak' before when 'listchars' "eol" is used. Also fix wrong cursor position with wrapping virtual text on empty line and 'showbreak'. closes: vim/vim#12891 https://github.com/vim/vim/commit/1193951bebcff50d88403ce17dec5d3be14f131d
Diffstat (limited to 'test/functional/legacy/breakindent_spec.lua')
-rw-r--r--test/functional/legacy/breakindent_spec.lua27
1 files changed, 18 insertions, 9 deletions
diff --git a/test/functional/legacy/breakindent_spec.lua b/test/functional/legacy/breakindent_spec.lua
index d7779684a4..ecd2d47f47 100644
--- a/test/functional/legacy/breakindent_spec.lua
+++ b/test/functional/legacy/breakindent_spec.lua
@@ -1,6 +1,7 @@
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local clear = helpers.clear
+local command = helpers.command
local exec = helpers.exec
local feed = helpers.feed
@@ -17,20 +18,15 @@ describe('breakindent', function()
})
screen:attach()
exec([[
+ set listchars=eol:$
let &signcolumn = 'yes'
- let &showbreak = '+'
+ let &showbreak = '++'
+ let &breakindent = v:true
+ let &breakindentopt = 'shift:2'
let leftcol = win_getid()->getwininfo()->get(0, {})->get('textoff')
eval repeat('x', &columns - leftcol - 1)->setline(1)
eval 'second line'->setline(2)
]])
- screen:expect([[
- {1: }^xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
- {1: }second line |
- {0:~ }|
- {0:~ }|
- {0:~ }|
- |
- ]])
feed('AX')
screen:expect([[
{1: }xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX|
@@ -40,5 +36,18 @@ describe('breakindent', function()
{0:~ }|
{2:-- INSERT --} |
]])
+ -- No line wraps, so changing 'showbreak' should lead to the same screen.
+ command('setlocal showbreak=+')
+ screen:expect_unchanged()
+ -- The first line now wraps because of "eol" in 'listchars'.
+ command('setlocal list')
+ screen:expect{grid=[[
+ {1: }xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX|
+ {1: } {0:+^$} |
+ {1: }second line{0:$} |
+ {0:~ }|
+ {0:~ }|
+ {2:-- INSERT --} |
+ ]]}
end)
end)