mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
[release-0.4] screen: missing redraw/highlight for ruler in message area
This commit is contained in:
parent
b781f2b072
commit
e0622b4c65
@ -5103,6 +5103,8 @@ win_redr_custom (
|
||||
win_T *ewp;
|
||||
int p_crb_save;
|
||||
|
||||
ScreenGrid *grid = &default_grid;
|
||||
|
||||
/* There is a tiny chance that this gets called recursively: When
|
||||
* redrawing a status line triggers redrawing the ruler or tabline.
|
||||
* Avoid trouble by not allowing recursion. */
|
||||
@ -5142,10 +5144,11 @@ win_redr_custom (
|
||||
}
|
||||
maxwidth = wp->w_width - col;
|
||||
if (!wp->w_status_height) {
|
||||
grid = &msg_grid_adj;
|
||||
row = Rows - 1;
|
||||
maxwidth--; // writing in last column may cause scrolling
|
||||
fillchar = ' ';
|
||||
attr = 0;
|
||||
attr = HL_ATTR(HLF_MSG);
|
||||
}
|
||||
|
||||
use_sandbox = was_set_insecurely((char_u *)"rulerformat", 0);
|
||||
@ -5195,13 +5198,13 @@ win_redr_custom (
|
||||
/*
|
||||
* Draw each snippet with the specified highlighting.
|
||||
*/
|
||||
grid_puts_line_start(&default_grid, row);
|
||||
grid_puts_line_start(grid, row);
|
||||
|
||||
curattr = attr;
|
||||
p = buf;
|
||||
for (n = 0; hltab[n].start != NULL; n++) {
|
||||
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);
|
||||
p = hltab[n].start;
|
||||
|
||||
@ -5215,7 +5218,7 @@ win_redr_custom (
|
||||
curattr = highlight_user[hltab[n].userhl - 1];
|
||||
}
|
||||
// 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);
|
||||
|
||||
grid_puts_line_flush(false);
|
||||
@ -7060,7 +7063,7 @@ static void win_redr_ruler(win_T *wp, int always)
|
||||
} else {
|
||||
row = Rows - 1;
|
||||
fillchar = ' ';
|
||||
attr = 0;
|
||||
attr = HL_ATTR(HLF_MSG);
|
||||
width = Columns;
|
||||
off = 0;
|
||||
}
|
||||
|
@ -810,6 +810,7 @@ describe('ui/builtin messages', function()
|
||||
[4] = {bold = true, foreground = Screen.colors.SeaGreen4},
|
||||
[5] = {foreground = Screen.colors.Blue1},
|
||||
[6] = {bold = true, foreground = Screen.colors.Magenta},
|
||||
[7] = {background = Screen.colors.Grey20},
|
||||
})
|
||||
end)
|
||||
|
||||
@ -902,6 +903,41 @@ vimComment xxx match /\s"[^\-:.%#=*].*$/ms=s+1,lc=1 excludenl contains=@vim
|
||||
meths.command_output('syntax list vimComment'))
|
||||
-- luacheck: pop
|
||||
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)
|
||||
|
||||
describe('ui/ext_messages', function()
|
||||
|
Loading…
Reference in New Issue
Block a user