mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 14:38:32 +00:00
Add EndOfBuffer hl group for ~ lines after the last line in buffers
This makes it possible to highlight the lines starting with ~ at the end of buffers and other elements highlighted using NonText. As proposed by mhinz at https://groups.google.com/forum/#!topic/vim_dev/p3de1iU1GXI/discussion
This commit is contained in:

committed by
Justin M. Keyes

parent
84ca5f973d
commit
4d70aae770
@@ -405,7 +405,8 @@ EXTERN int no_check_timestamps INIT(= 0); /* Don't check timestamps */
|
||||
typedef enum {
|
||||
HLF_8 = 0 /* Meta & special keys listed with ":map", text that is
|
||||
displayed different from what it is */
|
||||
, HLF_AT /* @ and ~ characters at end of screen, characters that
|
||||
, HLF_EOB // after the last line in the buffer
|
||||
, HLF_AT /* @ characters at end of screen, characters that
|
||||
don't really exist in the text */
|
||||
, HLF_D /* directories in CTRL-D listing */
|
||||
, HLF_E /* error messages */
|
||||
@@ -451,10 +452,10 @@ typedef enum {
|
||||
|
||||
/* The HL_FLAGS must be in the same order as the HLF_ enums!
|
||||
* When changing this also adjust the default for 'highlight'. */
|
||||
#define HL_FLAGS {'8', '@', 'd', 'e', 'i', 'l', 'm', 'M', 'n', 'N', 'r', 's', \
|
||||
'S', 'c', 't', 'v', 'V', 'w', 'W', 'f', 'F', 'A', 'C', 'D', \
|
||||
'T', '-', '>', 'B', 'P', 'R', 'L', '+', '=', 'x', 'X', '*', \
|
||||
'#', '_', '!', '.', 'o'}
|
||||
#define HL_FLAGS {'8', '~', '@', 'd', 'e', 'i', 'l', 'm', 'M', 'n', 'N', 'r', \
|
||||
's', 'S', 'c', 't', 'v', 'V', 'w', 'W', 'f', 'F', 'A', 'C', \
|
||||
'D', 'T', '-', '>', 'B', 'P', 'R', 'L', '+', '=', 'x', 'X', \
|
||||
'*', '#', '_', '!', '.', 'o'}
|
||||
|
||||
EXTERN int highlight_attr[HLF_COUNT]; /* Highl. attr for each context. */
|
||||
# define USER_HIGHLIGHT
|
||||
|
@@ -365,8 +365,8 @@ typedef struct vimoption {
|
||||
# define ISP_LATIN1 (char_u *)"@,161-255"
|
||||
|
||||
#define HIGHLIGHT_INIT \
|
||||
"8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search," \
|
||||
"m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine," \
|
||||
"8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch," \
|
||||
"l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,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," \
|
||||
|
@@ -1651,7 +1651,7 @@ static void win_update(win_T *wp)
|
||||
|
||||
/* make sure the rest of the screen is blank */
|
||||
/* put '~'s on rows that aren't part of the file. */
|
||||
win_draw_end(wp, '~', ' ', row, wp->w_height, HLF_AT);
|
||||
win_draw_end(wp, '~', ' ', row, wp->w_height, HLF_EOB);
|
||||
}
|
||||
|
||||
/* Reset the type of redrawing required, the window has been updated. */
|
||||
|
@@ -5781,6 +5781,7 @@ static char *(highlight_init_both[]) =
|
||||
"StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold"),
|
||||
CENT("StatusLineNC term=reverse cterm=reverse",
|
||||
"StatusLineNC term=reverse cterm=reverse gui=reverse"),
|
||||
"default link EndOfBuffer NonText",
|
||||
CENT("VertSplit term=reverse cterm=reverse",
|
||||
"VertSplit term=reverse cterm=reverse gui=reverse"),
|
||||
CENT("DiffText term=reverse cterm=bold ctermbg=Red",
|
||||
|
Reference in New Issue
Block a user