mirror of
https://github.com/neovim/neovim.git
synced 2024-12-22 04:05:09 -07:00
vim-patch:8.2.4091: virtcol is recomputed for statusline unnecessarily
Problem: Virtcol is recomputed for statusline unnecessarily.
Solution: Just use "w_virtcol". (closes vim/vim#9523)
0f112052ac
This commit is contained in:
parent
574a582202
commit
147f65373e
@ -4001,14 +4001,7 @@ int build_stl_str_hl(win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use
|
||||
|
||||
case STL_VIRTCOL:
|
||||
case STL_VIRTCOL_ALT: {
|
||||
// In list mode virtcol needs to be recomputed
|
||||
colnr_T virtcol = wp->w_virtcol;
|
||||
if (wp->w_p_list && wp->w_p_lcs_chars.tab1 == NUL) {
|
||||
wp->w_p_list = false;
|
||||
getvcol(wp, &wp->w_cursor, NULL, &virtcol, NULL);
|
||||
wp->w_p_list = true;
|
||||
}
|
||||
virtcol++;
|
||||
colnr_T virtcol = wp->w_virtcol + 1;
|
||||
// Don't display %V if it's the same as %c.
|
||||
if (opt == STL_VIRTCOL_ALT
|
||||
&& (virtcol == (colnr_T)(!(State & INSERT) && empty_line
|
||||
|
@ -186,7 +186,16 @@ func Test_statusline()
|
||||
set virtualedit=all
|
||||
norm 10|
|
||||
call assert_match('^10,-10\s*$', s:get_statusline())
|
||||
set list
|
||||
call assert_match('^10,-10\s*$', s:get_statusline())
|
||||
set virtualedit&
|
||||
exe "norm A\<Tab>\<Tab>a\<Esc>"
|
||||
" In list mode a <Tab> is shown as "^I", which is 2-wide.
|
||||
call assert_match('^9,-9\s*$', s:get_statusline())
|
||||
set list&
|
||||
" Now the second <Tab> ends at the 16th screen column.
|
||||
call assert_match('^17,-17\s*$', s:get_statusline())
|
||||
undo
|
||||
|
||||
" %w: Preview window flag, text is "[Preview]".
|
||||
" %W: Preview window flag, text is ",PRV".
|
||||
|
Loading…
Reference in New Issue
Block a user