mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.2.2903: cursor position wrong on wrapped line with 'signcolumn'
Problem: Cursor position wrong on wrapped line with 'signcolumn'. Solution: Don't add space for showbreak twice. (Christian Brabandt, closes #8262)
This commit is contained in:
@@ -1981,6 +1981,12 @@ win_line(
|
|||||||
// TODO: is passing p for start of the line OK?
|
// TODO: is passing p for start of the line OK?
|
||||||
n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol,
|
n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol,
|
||||||
NULL) - 1;
|
NULL) - 1;
|
||||||
|
|
||||||
|
// We have just drawn the showbreak value, no need to add
|
||||||
|
// space for it again
|
||||||
|
if (vcol == vcol_sbr)
|
||||||
|
n_extra -= MB_CHARLEN(get_showbreak_value(wp));
|
||||||
|
|
||||||
if (c == TAB && n_extra + col > wp->w_width)
|
if (c == TAB && n_extra + col > wp->w_width)
|
||||||
# ifdef FEAT_VARTABS
|
# ifdef FEAT_VARTABS
|
||||||
n_extra = tabstop_padding(vcol, wp->w_buffer->b_p_ts,
|
n_extra = tabstop_padding(vcol, wp->w_buffer->b_p_ts,
|
||||||
|
@@ -334,4 +334,21 @@ func Test_fold_fillchars()
|
|||||||
set fillchars& fdc& foldmethod& foldenable&
|
set fillchars& fdc& foldmethod& foldenable&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_display_linebreak_breakat()
|
||||||
|
new
|
||||||
|
vert resize 25
|
||||||
|
let _breakat = &breakat
|
||||||
|
setl signcolumn=yes linebreak breakat=) showbreak=+\
|
||||||
|
call setline(1, repeat('x', winwidth(0) - 2) .. ')abc')
|
||||||
|
let lines = ScreenLines([1, 2], 25)
|
||||||
|
let expected = [
|
||||||
|
\ ' xxxxxxxxxxxxxxxxxxxxxxx',
|
||||||
|
\ ' + )abc '
|
||||||
|
\ ]
|
||||||
|
call assert_equal(expected, lines)
|
||||||
|
%bw!
|
||||||
|
let &breakat=_breakat
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2903,
|
||||||
/**/
|
/**/
|
||||||
2902,
|
2902,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user