Skip to content

Commit

Permalink
patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' an…
Browse files Browse the repository at this point in the history
…d 'rnu'

Problem:    Line number not visisble with 'smoothscroll', 'nu' and 'rnu'.
Solution:   Put the ">>>" after the line number instead of on top.
  • Loading branch information
brammool committed Oct 15, 2022
1 parent 4ccaedf commit eb4de62
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/drawline.c
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,8 @@ handle_lnum_col(
#ifdef FEAT_PROP_POPUP
+ wlv->text_prop_above_count
#endif
&& (wp->w_skipcol == 0 || wlv->row > wp->w_winrow))
&& (wp->w_skipcol == 0 || wlv->row > wp->w_winrow
|| (wp->w_p_nu && wp->w_p_rnu)))
{
long num;
char *fmt = "%*ld ";
Expand Down Expand Up @@ -770,8 +771,18 @@ wlv_screen_line(win_T *wp, winlinevars_T *wlv, int negative_width)
)
{
int off = (int)(current_ScreenLine - ScreenLines);
int skip = 0;

for (int i = 0; i < 3; ++i)
if (wp->w_p_nu && wp->w_p_rnu)
// Do not overwrite the line number, change "123 text" to
// "123>>>xt".
while (skip < wp->w_width && VIM_ISDIGIT(ScreenLines[off]))
{
++off;
++skip;
}

for (int i = 0; i < 3 && i + skip < wp->w_width; ++i)
{
ScreenLines[off] = '<';
if (enc_utf8)
Expand Down
12 changes: 12 additions & 0 deletions src/testdir/dumps/Test_smooth_number_7.dump
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
|2+0#af5f00255#ffffff0|<+0#4040ff13&@2|o+0#0000000&|n|g| |t|e|x|t| |v|e|r|y| |l|o|n|g| |t|e|x|t| |v|e|r|y| |l|o|n>g| |t|e
| +0#af5f00255&@3|x+0#0000000&|t| |v|e|r|y| |l|o|n|g| |t|e|x|t| |v|e|r|y| |l|o|n|g| |t|e|x|t| |v|e|r
| +0#af5f00255&@3|y+0#0000000&| |l|o|n|g| |t|e|x|t| |v|e|r|y| |l|o|n|g| |t|e|x|t| |v|e|r|y| |l|o|n|g
| +0#af5f00255&@3| +0#0000000&|t|e|x|t| |v|e|r|y| |l|o|n|g| |t|e|x|t| |v|e|r|y| |l|o|n|g| |t|e|x|t|
| +0#af5f00255&@1|1| |t+0#0000000&|h|r|e@1| @30
|~+0#4040ff13&| @38
|~| @38
|~| @38
|~| @38
|~| @38
|~| @38
|-+0#0000000&@1|N|o|.@2|e|r|-@1| @10|2|,|7|3| @9|B|o|t|
14 changes: 14 additions & 0 deletions src/testdir/test_scroll_opt.vim
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,17 @@ func Test_smoothscroll_number()
set smoothscroll
set number cpo+=n
:3

def g:DoRel()
set number relativenumber scrolloff=0
:%del
setline(1, [
'one',
'very long text '->repeat(12),
'three',
])
exe "normal 2Gzt\<C-E>"
enddef
END
call writefile(lines, 'XSmoothNumber', 'D')
let buf = RunVimInTerminal('-S XSmoothNumber', #{rows: 12, cols: 40})
Expand All @@ -138,6 +149,9 @@ func Test_smoothscroll_number()
call term_sendkeys(buf, "\<C-Y>")
call VerifyScreenDump(buf, 'Test_smooth_number_6', {})

call term_sendkeys(buf, ":call DoRel()\<CR>")
call VerifyScreenDump(buf, 'Test_smooth_number_7', {})

call StopVimInTerminal(buf)
endfunc

Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -695,6 +695,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
757,
/**/
756,
/**/
Expand Down

0 comments on commit eb4de62

Please sign in to comment.