mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06: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:
parent
84ca5f973d
commit
4d70aae770
@ -3784,17 +3784,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
|
|
||||||
*'highlight'* *'hl'*
|
*'highlight'* *'hl'*
|
||||||
'highlight' 'hl' string (default (as a single string):
|
'highlight' 'hl' string (default (as a single string):
|
||||||
"8:SpecialKey,@:NonText,d:Directory,
|
"8:SpecialKey,~:EndOfBuffer,@:NonText,i
|
||||||
e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,
|
d:Directory,e:ErrorMsg,i:IncSearch,
|
||||||
M:ModeMsg,n:LineNr,N:CursorLineNr,
|
l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,
|
||||||
r:Question,s:StatusLine,S:StatusLineNC,
|
N:CursorLineNr,r:Question,s:StatusLine,
|
||||||
c:VertSplit, t:Title,v:Visual,
|
S:StatusLineNC,c:VertSplit,t:Title,
|
||||||
w:WarningMsg,W:WildMenu,
|
v:Visual,w:WarningMsg,W:WildMenu,f:Folded,
|
||||||
f:Folded,F:FoldColumn,A:DiffAdd,
|
F:FoldColumn,A:DiffAdd,C:DiffChange,
|
||||||
C:DiffChange,D:DiffDelete,T:DiffText,
|
D:DiffDelete,T:DiffText,>:SignColumn,
|
||||||
>:SignColumn,B:SpellBad,P:SpellCap,
|
B:SpellBad,P:SpellCap,R:SpellRare,
|
||||||
R:SpellRare,L:SpellLocal,-:Conceal,
|
L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
|
||||||
+:Pmenu,=:PmenuSel,
|
|
||||||
x:PmenuSbar,X:PmenuThumb")
|
x:PmenuSbar,X:PmenuThumb")
|
||||||
global
|
global
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
@ -3803,7 +3802,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
first character in a pair gives the occasion, the second the mode to
|
first character in a pair gives the occasion, the second the mode to
|
||||||
use for that occasion. The occasions are:
|
use for that occasion. The occasions are:
|
||||||
|hl-SpecialKey| 8 Meta and special keys listed with ":map"
|
|hl-SpecialKey| 8 Meta and special keys listed with ":map"
|
||||||
|hl-NonText| @ '~' and '@' at the end of the window and
|
|hl-EndOfBuffer| ~ lines after the last line in the buffer
|
||||||
|
|hl-NonText| @ '@' at the end of the window and
|
||||||
characters from 'showbreak'
|
characters from 'showbreak'
|
||||||
|hl-Directory| d directories in CTRL-D listing and other special
|
|hl-Directory| d directories in CTRL-D listing and other special
|
||||||
things in listings
|
things in listings
|
||||||
|
@ -4761,6 +4761,9 @@ DiffChange diff mode: Changed line |diff.txt|
|
|||||||
DiffDelete diff mode: Deleted line |diff.txt|
|
DiffDelete diff mode: Deleted line |diff.txt|
|
||||||
*hl-DiffText*
|
*hl-DiffText*
|
||||||
DiffText diff mode: Changed text within a changed line |diff.txt|
|
DiffText diff mode: Changed text within a changed line |diff.txt|
|
||||||
|
*hl-EndOfBuffer*
|
||||||
|
EndOfBuffer filler lines (~) after the end of the buffer.
|
||||||
|
By default, this is highlighted like |hl-NonText|.
|
||||||
*hl-ErrorMsg*
|
*hl-ErrorMsg*
|
||||||
ErrorMsg error messages on the command line
|
ErrorMsg error messages on the command line
|
||||||
*hl-VertSplit*
|
*hl-VertSplit*
|
||||||
@ -4789,10 +4792,10 @@ ModeMsg 'showmode' message (e.g., "-- INSERT --")
|
|||||||
*hl-MoreMsg*
|
*hl-MoreMsg*
|
||||||
MoreMsg |more-prompt|
|
MoreMsg |more-prompt|
|
||||||
*hl-NonText*
|
*hl-NonText*
|
||||||
NonText '~' and '@' at the end of the window, characters from
|
NonText '@' at the end of the window, characters from 'showbreak'
|
||||||
'showbreak' and other characters that do not really exist in
|
and other characters that do not really exist in the text
|
||||||
the text (e.g., ">" displayed when a double-wide character
|
(e.g., ">" displayed when a double-wide character doesn't
|
||||||
doesn't fit at the end of the line).
|
fit at the end of the line). See also |hl-EndOfBuffer|.
|
||||||
*hl-Normal*
|
*hl-Normal*
|
||||||
Normal normal text
|
Normal normal text
|
||||||
*hl-Pmenu*
|
*hl-Pmenu*
|
||||||
|
@ -68,7 +68,7 @@ syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePo
|
|||||||
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
|
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
|
||||||
|
|
||||||
" Default highlighting groups {{{2
|
" Default highlighting groups {{{2
|
||||||
syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
|
syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
|
||||||
syn match vimHLGroup contained "Conceal"
|
syn match vimHLGroup contained "Conceal"
|
||||||
syn case match
|
syn case match
|
||||||
|
|
||||||
|
@ -405,7 +405,8 @@ EXTERN int no_check_timestamps INIT(= 0); /* Don't check timestamps */
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
HLF_8 = 0 /* Meta & special keys listed with ":map", text that is
|
HLF_8 = 0 /* Meta & special keys listed with ":map", text that is
|
||||||
displayed different from what it 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 */
|
don't really exist in the text */
|
||||||
, HLF_D /* directories in CTRL-D listing */
|
, HLF_D /* directories in CTRL-D listing */
|
||||||
, HLF_E /* error messages */
|
, HLF_E /* error messages */
|
||||||
@ -451,10 +452,10 @@ typedef enum {
|
|||||||
|
|
||||||
/* The HL_FLAGS must be in the same order as the HLF_ enums!
|
/* The HL_FLAGS must be in the same order as the HLF_ enums!
|
||||||
* When changing this also adjust the default for 'highlight'. */
|
* When changing this also adjust the default for 'highlight'. */
|
||||||
#define HL_FLAGS {'8', '@', 'd', 'e', 'i', 'l', 'm', 'M', 'n', 'N', 'r', 's', \
|
#define HL_FLAGS {'8', '~', '@', 'd', 'e', 'i', 'l', 'm', 'M', 'n', 'N', 'r', \
|
||||||
'S', 'c', 't', 'v', 'V', 'w', 'W', 'f', 'F', 'A', 'C', 'D', \
|
's', 'S', 'c', 't', 'v', 'V', 'w', 'W', 'f', 'F', 'A', 'C', \
|
||||||
'T', '-', '>', 'B', 'P', 'R', 'L', '+', '=', 'x', 'X', '*', \
|
'D', 'T', '-', '>', 'B', 'P', 'R', 'L', '+', '=', 'x', 'X', \
|
||||||
'#', '_', '!', '.', 'o'}
|
'*', '#', '_', '!', '.', 'o'}
|
||||||
|
|
||||||
EXTERN int highlight_attr[HLF_COUNT]; /* Highl. attr for each context. */
|
EXTERN int highlight_attr[HLF_COUNT]; /* Highl. attr for each context. */
|
||||||
# define USER_HIGHLIGHT
|
# define USER_HIGHLIGHT
|
||||||
|
@ -365,8 +365,8 @@ typedef struct vimoption {
|
|||||||
# define ISP_LATIN1 (char_u *)"@,161-255"
|
# define ISP_LATIN1 (char_u *)"@,161-255"
|
||||||
|
|
||||||
#define HIGHLIGHT_INIT \
|
#define HIGHLIGHT_INIT \
|
||||||
"8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search," \
|
"8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch," \
|
||||||
"m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine," \
|
"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," \
|
"S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg," \
|
||||||
"W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete," \
|
"W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete," \
|
||||||
"T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare," \
|
"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 */
|
/* make sure the rest of the screen is blank */
|
||||||
/* put '~'s on rows that aren't part of the file. */
|
/* 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. */
|
/* 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"),
|
"StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold"),
|
||||||
CENT("StatusLineNC term=reverse cterm=reverse",
|
CENT("StatusLineNC term=reverse cterm=reverse",
|
||||||
"StatusLineNC term=reverse cterm=reverse gui=reverse"),
|
"StatusLineNC term=reverse cterm=reverse gui=reverse"),
|
||||||
|
"default link EndOfBuffer NonText",
|
||||||
CENT("VertSplit term=reverse cterm=reverse",
|
CENT("VertSplit term=reverse cterm=reverse",
|
||||||
"VertSplit term=reverse cterm=reverse gui=reverse"),
|
"VertSplit term=reverse cterm=reverse gui=reverse"),
|
||||||
CENT("DiffText term=reverse cterm=bold ctermbg=Red",
|
CENT("DiffText term=reverse cterm=bold ctermbg=Red",
|
||||||
|
Loading…
Reference in New Issue
Block a user