summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/message.c43
-rw-r--r--src/optiondefs.h2
-rw-r--r--src/testdir/test_highlight.vim9
-rw-r--r--src/version.c2
-rw-r--r--src/vim.h3
5 files changed, 45 insertions, 14 deletions
diff --git a/src/message.c b/src/message.c
index 80d6a18b51..03c7072a71 100644
--- a/src/message.c
+++ b/src/message.c
@@ -1637,6 +1637,9 @@ msg_outtrans_len_attr(char_u *msgstr, int len, int attr)
// Only quit when got_int was set in here.
got_int = FALSE;
+ if (attr == 0)
+ attr = HL_ATTR(HLF_MSG);
+
// if MSG_HIST flag set, add message to history
if (attr & MSG_HIST)
{
@@ -2230,6 +2233,9 @@ msg_puts_attr_len(char *str, int maxlen, int attr)
if (msg_silent != 0)
return;
+ if (attr == 0)
+ attr = HL_ATTR(HLF_MSG);
+
// if MSG_HIST flag set, add message to history
if ((attr & MSG_HIST) && maxlen < 0)
{
@@ -2678,13 +2684,15 @@ msg_scroll_up(void)
// Scrolling up doesn't result in the right background. Set the
// background here. It's not efficient, but avoids that we have to do
// it all over the code.
- screen_fill((int)Rows - 1, (int)Rows, 0, (int)Columns, ' ', ' ', 0);
+ screen_fill((int)Rows - 1, (int)Rows, 0, (int)Columns,
+ ' ', ' ', HL_ATTR(HLF_MSG));
// Also clear the last char of the last but one line if it was not
// cleared before to avoid a scroll-up.
if (ScreenAttrs[LineOffset[Rows - 2] + Columns - 1] == (sattr_T)-1)
screen_fill((int)Rows - 2, (int)Rows - 1,
- (int)Columns - 1, (int)Columns, ' ', ' ', 0);
+ (int)Columns - 1, (int)Columns,
+ ' ', ' ', HL_ATTR(HLF_MSG));
}
}
@@ -2963,7 +2971,8 @@ disp_sb_line(int row, msgchunk_T *smp, int clear_to_eol)
// If clearing the screen did not work (e.g. because of a background
// color and t_ut isn't set) clear until the last column here.
if (clear_to_eol)
- screen_fill(row, row + 1, msg_col, (int)Columns, ' ', ' ', 0);
+ screen_fill(row, row + 1, msg_col, (int)Columns,
+ ' ', ' ', HL_ATTR(HLF_MSG));
if (mp->sb_eol || mp->sb_next == NULL)
break;
@@ -3131,6 +3140,9 @@ do_more_prompt(int typed_char)
msgchunk_T *mp_last = NULL;
msgchunk_T *mp;
int i;
+ int msg_attr;
+
+ msg_attr = HL_ATTR(HLF_MSG);
// We get called recursively when a timer callback outputs a message. In
// that case don't show another prompt. Also when at the hit-Enter prompt
@@ -3340,8 +3352,8 @@ do_more_prompt(int typed_char)
// scroll up, display line at bottom
msg_scroll_up();
inc_msg_scrolled();
- screen_fill((int)Rows - 2, (int)Rows - 1, 0,
- (int)Columns, ' ', ' ', 0);
+ screen_fill((int)Rows - 2, (int)Rows - 1, 0, (int)Columns,
+ ' ', ' ', msg_attr);
mp_last = disp_sb_line((int)Rows - 2, mp_last, FALSE);
--toscroll;
}
@@ -3350,8 +3362,8 @@ do_more_prompt(int typed_char)
if (toscroll <= 0)
{
// displayed the requested text, more prompt again
- screen_fill((int)Rows - 1, (int)Rows, 0,
- (int)Columns, ' ', ' ', 0);
+ screen_fill((int)Rows - 1, (int)Rows, 0, (int)Columns,
+ ' ', ' ', msg_attr);
msg_moremsg(FALSE);
continue;
}
@@ -3364,7 +3376,7 @@ do_more_prompt(int typed_char)
}
// clear the --more-- message
- screen_fill((int)Rows - 1, (int)Rows, 0, (int)Columns, ' ', ' ', 0);
+ screen_fill((int)Rows - 1, (int)Rows, 0, (int)Columns, ' ', ' ', msg_attr);
State = oldState;
setmouse();
if (quit_more)
@@ -3710,18 +3722,25 @@ msg_clr_eos_force(void)
}
else
{
+ int msg_attr;
+
+ msg_attr = HL_ATTR(HLF_MSG);
+
#ifdef FEAT_RIGHTLEFT
if (cmdmsg_rl)
{
- screen_fill(msg_row, msg_row + 1, 0, msg_col + 1, ' ', ' ', 0);
- screen_fill(msg_row + 1, (int)Rows, 0, (int)Columns, ' ', ' ', 0);
+ screen_fill(msg_row, msg_row + 1, 0, msg_col + 1,
+ ' ', ' ', msg_attr);
+ screen_fill(msg_row + 1, (int)Rows, 0, (int)Columns,
+ ' ', ' ', msg_attr);
}
else
#endif
{
screen_fill(msg_row, msg_row + 1, msg_col, (int)Columns,
- ' ', ' ', 0);
- screen_fill(msg_row + 1, (int)Rows, 0, (int)Columns, ' ', ' ', 0);
+ ' ', ' ', msg_attr);
+ screen_fill(msg_row + 1, (int)Rows, 0, (int)Columns,
+ ' ', ' ', msg_attr);
}
}
}
diff --git a/src/optiondefs.h b/src/optiondefs.h
index 4ee2e20de3..98e23c648f 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -300,7 +300,7 @@ struct vimoption
# define ISP_LATIN1 (char_u *)"@,161-255"
#endif
-# define HIGHLIGHT_INIT "8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,y:CurSearch,m:MoreMsg,M:ModeMsg,n:LineNr,a:LineNrAbove,b:LineNrBelow,N:CursorLineNr,G:CursorLineSign,O:CursorLineFold,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,[:PmenuKind,]:PmenuKindSel,{:PmenuExtra,}:PmenuExtraSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm,Z:StatusLineTermNC"
+# define HIGHLIGHT_INIT "8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,y:CurSearch,m:MoreMsg,M:ModeMsg,n:LineNr,a:LineNrAbove,b:LineNrBelow,N:CursorLineNr,G:CursorLineSign,O:CursorLineFold,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,[:PmenuKind,]:PmenuKindSel,{:PmenuExtra,}:PmenuExtraSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm,Z:StatusLineTermNC,g:MsgArea"
// Default python version for pyx* commands
#if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3)
diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim
index d6c9f5005e..9bc5f12455 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -856,6 +856,15 @@ func Test_highlight_User()
hi clear
endfunc
+" Test for MsgArea highlighting
+func Test_highlight_MsgArea()
+ CheckNotGui
+ hi MsgArea ctermfg=20
+ redraw!
+ call assert_equal('20', synIDattr(synIDtrans(hlID('MsgArea')), 'fg'))
+ hi clear
+endfunc
+
" Test for using RGB color values in a highlight group
func Test_xxlast_highlight_RGB_color()
CheckCanRunGui
diff --git a/src/version.c b/src/version.c
index bd9f072e77..25b0399850 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 277,
+/**/
276,
/**/
275,
diff --git a/src/vim.h b/src/vim.h
index cb5accd144..7c4f989ff1 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1515,6 +1515,7 @@ typedef enum
, HLF_QFL // quickfix window line currently selected
, HLF_ST // status lines of terminal windows
, HLF_STNC // status lines of not-current terminal windows
+ , HLF_MSG // message area
, HLF_COUNT // MUST be the last one
} hlf_T;
@@ -1526,7 +1527,7 @@ typedef enum
'B', 'P', 'R', 'L', \
'+', '=', '[', ']', '{', '}', 'x', 'X', \
'*', '#', '_', '!', '.', 'o', 'q', \
- 'z', 'Z'}
+ 'z', 'Z', 'g'}
/*
* Boolean constants