mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
screen: missing redraw/highlight for ruler in message area
This commit is contained in:
parent
028d76e5d5
commit
f316916758
@ -5101,6 +5101,8 @@ win_redr_custom (
|
|||||||
win_T *ewp;
|
win_T *ewp;
|
||||||
int p_crb_save;
|
int p_crb_save;
|
||||||
|
|
||||||
|
ScreenGrid *grid = &default_grid;
|
||||||
|
|
||||||
/* There is a tiny chance that this gets called recursively: When
|
/* There is a tiny chance that this gets called recursively: When
|
||||||
* redrawing a status line triggers redrawing the ruler or tabline.
|
* redrawing a status line triggers redrawing the ruler or tabline.
|
||||||
* Avoid trouble by not allowing recursion. */
|
* Avoid trouble by not allowing recursion. */
|
||||||
@ -5140,10 +5142,11 @@ win_redr_custom (
|
|||||||
}
|
}
|
||||||
maxwidth = wp->w_width - col;
|
maxwidth = wp->w_width - col;
|
||||||
if (!wp->w_status_height) {
|
if (!wp->w_status_height) {
|
||||||
|
grid = &msg_grid_adj;
|
||||||
row = Rows - 1;
|
row = Rows - 1;
|
||||||
maxwidth--; // writing in last column may cause scrolling
|
maxwidth--; // writing in last column may cause scrolling
|
||||||
fillchar = ' ';
|
fillchar = ' ';
|
||||||
attr = 0;
|
attr = HL_ATTR(HLF_MSG);
|
||||||
}
|
}
|
||||||
|
|
||||||
use_sandbox = was_set_insecurely((char_u *)"rulerformat", 0);
|
use_sandbox = was_set_insecurely((char_u *)"rulerformat", 0);
|
||||||
@ -5193,13 +5196,13 @@ win_redr_custom (
|
|||||||
/*
|
/*
|
||||||
* Draw each snippet with the specified highlighting.
|
* Draw each snippet with the specified highlighting.
|
||||||
*/
|
*/
|
||||||
grid_puts_line_start(&default_grid, row);
|
grid_puts_line_start(grid, row);
|
||||||
|
|
||||||
curattr = attr;
|
curattr = attr;
|
||||||
p = buf;
|
p = buf;
|
||||||
for (n = 0; hltab[n].start != NULL; n++) {
|
for (n = 0; hltab[n].start != NULL; n++) {
|
||||||
int textlen = (int)(hltab[n].start - p);
|
int textlen = (int)(hltab[n].start - p);
|
||||||
grid_puts_len(&default_grid, p, textlen, row, col, curattr);
|
grid_puts_len(grid, p, textlen, row, col, curattr);
|
||||||
col += vim_strnsize(p, textlen);
|
col += vim_strnsize(p, textlen);
|
||||||
p = hltab[n].start;
|
p = hltab[n].start;
|
||||||
|
|
||||||
@ -5213,7 +5216,7 @@ win_redr_custom (
|
|||||||
curattr = highlight_user[hltab[n].userhl - 1];
|
curattr = highlight_user[hltab[n].userhl - 1];
|
||||||
}
|
}
|
||||||
// Make sure to use an empty string instead of p, if p is beyond buf + len.
|
// Make sure to use an empty string instead of p, if p is beyond buf + len.
|
||||||
grid_puts(&default_grid, p >= buf + len ? (char_u *)"" : p, row, col,
|
grid_puts(grid, p >= buf + len ? (char_u *)"" : p, row, col,
|
||||||
curattr);
|
curattr);
|
||||||
|
|
||||||
grid_puts_line_flush(false);
|
grid_puts_line_flush(false);
|
||||||
@ -7058,7 +7061,7 @@ static void win_redr_ruler(win_T *wp, int always)
|
|||||||
} else {
|
} else {
|
||||||
row = Rows - 1;
|
row = Rows - 1;
|
||||||
fillchar = ' ';
|
fillchar = ' ';
|
||||||
attr = 0;
|
attr = HL_ATTR(HLF_MSG);
|
||||||
width = Columns;
|
width = Columns;
|
||||||
off = 0;
|
off = 0;
|
||||||
}
|
}
|
||||||
|
@ -810,6 +810,7 @@ describe('ui/builtin messages', function()
|
|||||||
[4] = {bold = true, foreground = Screen.colors.SeaGreen4},
|
[4] = {bold = true, foreground = Screen.colors.SeaGreen4},
|
||||||
[5] = {foreground = Screen.colors.Blue1},
|
[5] = {foreground = Screen.colors.Blue1},
|
||||||
[6] = {bold = true, foreground = Screen.colors.Magenta},
|
[6] = {bold = true, foreground = Screen.colors.Magenta},
|
||||||
|
[7] = {background = Screen.colors.Grey20},
|
||||||
})
|
})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@ -902,6 +903,41 @@ vimComment xxx match /\s"[^\-:.%#=*].*$/ms=s+1,lc=1 excludenl contains=@vim
|
|||||||
meths.command_output('syntax list vimComment'))
|
meths.command_output('syntax list vimComment'))
|
||||||
-- luacheck: pop
|
-- luacheck: pop
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('supports ruler with laststatus=0', function()
|
||||||
|
command("set ruler laststatus=0")
|
||||||
|
screen:expect{grid=[[
|
||||||
|
^ |
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
0,0-1 All |
|
||||||
|
]]}
|
||||||
|
|
||||||
|
command("hi MsgArea guibg=#333333")
|
||||||
|
screen:expect{grid=[[
|
||||||
|
^ |
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{7: 0,0-1 All }|
|
||||||
|
]]}
|
||||||
|
|
||||||
|
command("set rulerformat=%15(%c%V\\ %p%%%)")
|
||||||
|
screen:expect{grid=[[
|
||||||
|
^ |
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{1:~ }|
|
||||||
|
{7: 0,0-1 100% }|
|
||||||
|
]]}
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('ui/ext_messages', function()
|
describe('ui/ext_messages', function()
|
||||||
|
Loading…
Reference in New Issue
Block a user