From 466c18b8185c44f4fbf67ae91a2ffe27c1919306 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 24 Aug 2023 07:19:18 +0800 Subject: 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 --- test/old/testdir/test_breakindent.vim | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'test/old/testdir') diff --git a/test/old/testdir/test_breakindent.vim b/test/old/testdir/test_breakindent.vim index 8d64c0dc90..3ce7d1386b 100644 --- a/test/old/testdir/test_breakindent.vim +++ b/test/old/testdir/test_breakindent.vim @@ -937,7 +937,9 @@ func Test_cursor_position_with_showbreak() let lines =<< trim END vim9script &signcolumn = 'yes' - &showbreak = '+ ' + &showbreak = '++' + &breakindent = true + &breakindentopt = 'shift:2' var leftcol: number = win_getid()->getwininfo()->get(0, {})->get('textoff') repeat('x', &columns - leftcol - 1)->setline(1) 'second line'->setline(2) @@ -946,7 +948,13 @@ func Test_cursor_position_with_showbreak() let buf = RunVimInTerminal('-S XscriptShowbreak', #{rows: 6}) call term_sendkeys(buf, "AX") - call VerifyScreenDump(buf, 'Test_cursor_position_with_showbreak', {}) + call VerifyScreenDump(buf, 'Test_cursor_position_with_showbreak_1', {}) + " No line wraps, so changing 'showbreak' should lead to the same screen. + call term_sendkeys(buf, "\\:setlocal showbreak=+\") + call VerifyScreenDump(buf, 'Test_cursor_position_with_showbreak_1', {}) + " The first line now wraps because of "eol" in 'listchars'. + call term_sendkeys(buf, "\\:setlocal list\") + call VerifyScreenDump(buf, 'Test_cursor_position_with_showbreak_2', {}) call StopVimInTerminal(buf) endfunc -- cgit