1
0
forked from aniani/vim

patch 8.1.2229: cannot color number column above/below cursor differently

Problem:    Cannot color number column above/below cursor differently.
Solution:   Add LineNrAbove and LineNrBelow. (Shaun Brady, closes #624)
This commit is contained in:
Bram Moolenaar
2019-10-27 22:54:58 +01:00
parent 38ba4dce4a
commit efae76ab1a
11 changed files with 102 additions and 3 deletions

View File

@@ -3923,6 +3923,7 @@ A jump table for the options with a short description can be found at |Q_op|.
"8:SpecialKey,~:EndOfBuffer,@:NonText, "8:SpecialKey,~:EndOfBuffer,@:NonText,
d:Directory,e:ErrorMsg,i:IncSearch, d:Directory,e:ErrorMsg,i:IncSearch,
l:Search,m:MoreMsg,M:ModeMsg,n:LineNr, l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,
a:LineNrAbove,b:LineNrBelow,
N:CursorLineNr,r:Question,s:StatusLine, N:CursorLineNr,r:Question,s:StatusLine,
S:StatusLineNC,c:VertSplit,t:Title, S:StatusLineNC,c:VertSplit,t:Title,
v:Visual,V:VisualNOS,w:WarningMsg, v:Visual,V:VisualNOS,w:WarningMsg,
@@ -3954,6 +3955,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|hl-ModeMsg| M Mode (e.g., "-- INSERT --") |hl-ModeMsg| M Mode (e.g., "-- INSERT --")
|hl-LineNr| n line number for ":number" and ":#" commands, and |hl-LineNr| n line number for ":number" and ":#" commands, and
when 'number' or 'relativenumber' option is set. when 'number' or 'relativenumber' option is set.
|hl-LineNrAbove| a line number above the cursor for when the
'relativenumber' option is set.
|hl-LineNrBelow| b line number below the cursor for when the
'relativenumber' option is set.
|hl-CursorLineNr| N like n for when 'cursorline' or 'relativenumber' is |hl-CursorLineNr| N like n for when 'cursorline' or 'relativenumber' is
set. set.
|hl-Question| r |hit-enter| prompt and yes/no questions |hl-Question| r |hit-enter| prompt and yes/no questions

View File

@@ -5071,6 +5071,12 @@ IncSearch 'incsearch' highlighting; also used for the text replaced with
*hl-LineNr* *hl-LineNr*
LineNr Line number for ":number" and ":#" commands, and when 'number' LineNr Line number for ":number" and ":#" commands, and when 'number'
or 'relativenumber' option is set. or 'relativenumber' option is set.
*hl-LineNrAbove*
LineNrAbove Line number for when the 'relativenumber'
option is set, above the cursor line.
*hl-LineNrBelow*
LineNrBelow Line number for when the 'relativenumber'
option is set, below the cursor line.
*hl-CursorLineNr* *hl-CursorLineNr*
CursorLineNr Like LineNr when 'cursorline' is set and 'cursorlineopt' is CursorLineNr Like LineNr when 'cursorline' is set and 'cursorlineopt' is
set to "number" or "both", or 'relativenumber' is set, for set to "number" or "both", or 'relativenumber' is set, for

View File

@@ -1127,6 +1127,16 @@ win_line(
|| wp->w_p_culopt_flags & CULOPT_LINE)) || wp->w_p_culopt_flags & CULOPT_LINE))
char_attr = hl_combine_attr(wcr_attr, HL_ATTR(HLF_CLN)); char_attr = hl_combine_attr(wcr_attr, HL_ATTR(HLF_CLN));
#endif #endif
if (wp->w_p_rnu && lnum < wp->w_cursor.lnum
&& HL_ATTR(HLF_LNA) != 0)
// Use LineNrAbove
char_attr = hl_combine_attr(wcr_attr,
HL_ATTR(HLF_LNA));
if (wp->w_p_rnu && lnum > wp->w_cursor.lnum
&& HL_ATTR(HLF_LNB) != 0)
// Use LineNrBelow
char_attr = hl_combine_attr(wcr_attr,
HL_ATTR(HLF_LNB));
} }
} }
} }

View File

@@ -289,7 +289,7 @@ struct vimoption
# define ISP_LATIN1 (char_u *)"@,161-255" # define ISP_LATIN1 (char_u *)"@,161-255"
#endif #endif
# define HIGHLIGHT_INIT "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,L:SpellLocal,+:Pmenu,=:PmenuSel,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,m:MoreMsg,M:ModeMsg,n:LineNr,a:LineNrAbove,b:LineNrBelow,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,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm,Z:StatusLineTermNC"
// Default python version for pyx* commands // Default python version for pyx* commands
#if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3) #if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3)

View File

@@ -0,0 +1,10 @@
| +0#ff404010#ffffff0@1|4| |1+0#0000000&|0|6| @42
| +0#ff404010&@1|3| |1+0#0000000&|0|7| @42
| +0#ff404010&@1|2| |1+0#0000000&|0|8| @42
| +0#ff404010&@1|1| |1+0#0000000&|0|9| @42
|1+0#ff404010&@2| >1+0#0000000&@1|0| @42
| +0#ff404010&@1|1| |1+0#0000000&@2| @42
| +0#ff404010&@1|2| |1+0#0000000&@1|2| @42
| +0#ff404010&@1|3| |1+0#0000000&@1|3| @42
| +0#ff404010&@1|4| |1+0#0000000&@1|4| @42
@32|1@2|,|1| @8|5@1|%|

View File

@@ -0,0 +1,10 @@
| +0#4040ff13#ffffff0@1|4| |1+0#0000000&|0|6| @42
| +0#4040ff13&@1|3| |1+0#0000000&|0|7| @42
| +0#4040ff13&@1|2| |1+0#0000000&|0|8| @42
| +0#4040ff13&@1|1| |1+0#0000000&|0|9| @42
|1+0#ff404010&@2| >1+0#0000000&@1|0| @42
| +0#ff404010&@1|1| |1+0#0000000&@2| @42
| +0#ff404010&@1|2| |1+0#0000000&@1|2| @42
| +0#ff404010&@1|3| |1+0#0000000&@1|3| @42
| +0#ff404010&@1|4| |1+0#0000000&@1|4| @42
|:|h|i| |L|i|n|e|N|r|A|b|o|v|e| |c|t|e|r|m|f|g|=|b|l|u|e| @3|1@2|,|1| @8|5@1|%|

View File

@@ -0,0 +1,10 @@
| +0#4040ff13#ffffff0@1|4| |1+0#0000000&|0|6| @42
| +0#4040ff13&@1|3| |1+0#0000000&|0|7| @42
| +0#4040ff13&@1|2| |1+0#0000000&|0|8| @42
| +0#4040ff13&@1|1| |1+0#0000000&|0|9| @42
|1+0#ff404010&@2| >1+0#0000000&@1|0| @42
| +0#40ff4011&@1|1| |1+0#0000000&@2| @42
| +0#40ff4011&@1|2| |1+0#0000000&@1|2| @42
| +0#40ff4011&@1|3| |1+0#0000000&@1|3| @42
| +0#40ff4011&@1|4| |1+0#0000000&@1|4| @42
|:|h|i| |L|i|n|e|N|r|B|e|l|o|w| |c|t|e|r|m|f|g|=|g|r|e@1|n| @2|1@2|,|1| @8|5@1|%|

View File

@@ -0,0 +1,10 @@
| +0#ff404010#ffffff0@1|4| |1+0#0000000&|0|6| @42
| +0#ff404010&@1|3| |1+0#0000000&|0|7| @42
| +0#ff404010&@1|2| |1+0#0000000&|0|8| @42
| +0#ff404010&@1|1| |1+0#0000000&|0|9| @42
|1+0#ff404010&@2| >1+0#0000000&@1|0| @42
| +0#40ff4011&@1|1| |1+0#0000000&@2| @42
| +0#40ff4011&@1|2| |1+0#0000000&@1|2| @42
| +0#40ff4011&@1|3| |1+0#0000000&@1|3| @42
| +0#40ff4011&@1|4| |1+0#0000000&@1|4| @42
|:|h|i| |c|l|e|a|r| |L|i|n|e|N|r|A|b|o|v|e| @10|1@2|,|1| @8|5@1|%|

View File

@@ -1,7 +1,10 @@
" Test for 'number' and 'relativenumber' " Test for 'number' and 'relativenumber'
source check.vim
source view_util.vim source view_util.vim
source screendump.vim
func s:screen_lines(start, end) abort func s:screen_lines(start, end) abort
return ScreenLines([a:start, a:end], 8) return ScreenLines([a:start, a:end], 8)
endfunc endfunc
@@ -263,3 +266,34 @@ func Test_relativenumber_uninitialised()
redraw redraw
bwipe! bwipe!
endfunc endfunc
func Test_relativenumber_colors()
CheckScreendump
let lines =<< trim [CODE]
call setline(1, range(200))
111
set number relativenumber
hi LineNr ctermfg=red
[CODE]
call writefile(lines, 'XTest_relnr')
" Check that the balloon shows up after a mouse move
let buf = RunVimInTerminal('-S XTest_relnr', {'rows': 10, 'cols': 50})
call term_wait(buf, 100)
" Default colors
call VerifyScreenDump(buf, 'Test_relnr_colors_1', {})
call term_sendkeys(buf, ":hi LineNrAbove ctermfg=blue\<CR>")
call VerifyScreenDump(buf, 'Test_relnr_colors_2', {})
call term_sendkeys(buf, ":hi LineNrBelow ctermfg=green\<CR>")
call VerifyScreenDump(buf, 'Test_relnr_colors_3', {})
call term_sendkeys(buf, ":hi clear LineNrAbove\<CR>")
call VerifyScreenDump(buf, 'Test_relnr_colors_4', {})
" clean up
call StopVimInTerminal(buf)
call delete('XTest_relnr')
endfunc

View File

@@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2229,
/**/ /**/
2228, 2228,
/**/ /**/

View File

@@ -1382,6 +1382,8 @@ typedef enum
, HLF_M // "--More--" message , HLF_M // "--More--" message
, HLF_CM // Mode (e.g., "-- INSERT --") , HLF_CM // Mode (e.g., "-- INSERT --")
, HLF_N // line number for ":number" and ":#" commands , HLF_N // line number for ":number" and ":#" commands
, HLF_LNA // LineNrAbove
, HLF_LNB // LineNrBelow
, HLF_CLN // current line number , HLF_CLN // current line number
, HLF_R // return to continue message and yes/no questions , HLF_R // return to continue message and yes/no questions
, HLF_S // status lines , HLF_S // status lines
@@ -1423,8 +1425,8 @@ 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', 'h', 'i', 'l', 'm', 'M', \ #define HL_FLAGS {'8', '~', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
'n', 'N', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \ 'n', 'a', 'b', 'N', 'r', 's', 'S', 'c', 't', 'v', 'V', \
'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \ 'w', 'W', 'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
'B', 'P', 'R', 'L', \ 'B', 'P', 'R', 'L', \
'+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o', 'q', \ '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o', 'q', \
'z', 'Z'} 'z', 'Z'}