0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 9.1.0145: v:echospace not correct when 'showcmdloc' != last

Problem:  the amount of available space (v:echospace) on the command
          line is not correct when showcmdloc is drawn into the
          statusline or tabline.
Solution: only add SHOWCMD_COLS to the shown command column when
          'showcmdloc' is set to last (Sam-programs)

closes: #14108

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Sam-programs <130783534+Sam-programs@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Sam-programs
2024-02-29 17:40:29 +01:00
committed by Christian Brabandt
parent 4d55c54e30
commit 062141b1a7
4 changed files with 9 additions and 2 deletions

View File

@@ -3440,6 +3440,7 @@ did_set_showbreak(optset_T *args)
char * char *
did_set_showcmdloc(optset_T *args UNUSED) did_set_showcmdloc(optset_T *args UNUSED)
{ {
comp_col();
return did_set_opt_strings(p_sloc, p_sloc_values, FALSE); return did_set_opt_strings(p_sloc, p_sloc_values, FALSE);
} }

View File

@@ -4536,7 +4536,7 @@ comp_col(void)
if (!last_has_status) if (!last_has_status)
sc_col = ru_col; sc_col = ru_col;
} }
if (p_sc) if (p_sc && *p_sloc == 'l')
{ {
sc_col += SHOWCMD_COLS; sc_col += SHOWCMD_COLS;
if (!p_ru || last_has_status) // no need for separating space if (!p_ru || last_has_status) // no need for separating space

View File

@@ -162,8 +162,12 @@ func Test_echospace()
call assert_equal(&columns - 12, v:echospace) call assert_equal(&columns - 12, v:echospace)
set showcmd ruler set showcmd ruler
call assert_equal(&columns - 29, v:echospace) call assert_equal(&columns - 29, v:echospace)
set showcmdloc=statusline
call assert_equal(&columns - 19, v:echospace)
set showcmdloc=tabline
call assert_equal(&columns - 19, v:echospace)
set ruler& showcmd& set ruler& showcmd& showcmdloc&
endfunc endfunc
func Test_warning_scroll() func Test_warning_scroll()

View File

@@ -704,6 +704,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 */
/**/
145,
/**/ /**/
144, 144,
/**/ /**/