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:
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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)
|
||||||
|
10
src/testdir/dumps/Test_relnr_colors_1.dump
Normal file
10
src/testdir/dumps/Test_relnr_colors_1.dump
Normal 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|%|
|
10
src/testdir/dumps/Test_relnr_colors_2.dump
Normal file
10
src/testdir/dumps/Test_relnr_colors_2.dump
Normal 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|%|
|
10
src/testdir/dumps/Test_relnr_colors_3.dump
Normal file
10
src/testdir/dumps/Test_relnr_colors_3.dump
Normal 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|%|
|
10
src/testdir/dumps/Test_relnr_colors_4.dump
Normal file
10
src/testdir/dumps/Test_relnr_colors_4.dump
Normal 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|%|
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -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'}
|
||||||
|
Reference in New Issue
Block a user