mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-23 07:20:04 +08:00
add color support in runner (#2890)
This commit is contained in:
parent
faa0a92a4a
commit
f07a54b9f0
@ -18,3 +18,79 @@ hi def link DoneSucceeded String
|
||||
hi def link DoneFailed WarningMsg
|
||||
hi def link ExitCode MoreMsg
|
||||
hi def link ExitCodeFailed WarningMsg
|
||||
let s:shellcmd_colors =
|
||||
\ [
|
||||
\ '#6c6c6c', '#ff6666', '#66ff66', '#ffd30a',
|
||||
\ '#1e95fd', '#ff13ff', '#1bc8c8', '#c0c0c0',
|
||||
\ '#383838', '#ff4444', '#44ff44', '#ffb30a',
|
||||
\ '#6699ff', '#f820ff', '#4ae2e2', '#ffffff',
|
||||
\]
|
||||
function! s:highlight_shell_cmd() abort
|
||||
|
||||
let highlight_table = {
|
||||
\ '0' : ' cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE',
|
||||
\ '1' : ' cterm=BOLD gui=BOLD',
|
||||
\ '3' : ' cterm=ITALIC gui=ITALIC',
|
||||
\ '4' : ' cterm=UNDERLINE gui=UNDERLINE',
|
||||
\ '7' : ' cterm=REVERSE gui=REVERSE',
|
||||
\ '8' : ' ctermfg=0 ctermbg=0 guifg=#000000 guibg=#000000',
|
||||
\ '9' : ' gui=UNDERCURL',
|
||||
\ '21' : ' cterm=UNDERLINE gui=UNDERLINE',
|
||||
\ '22' : ' gui=NONE',
|
||||
\ '23' : ' gui=NONE',
|
||||
\ '24' : ' gui=NONE',
|
||||
\ '25' : ' gui=NONE',
|
||||
\ '27' : ' gui=NONE',
|
||||
\ '28' : ' ctermfg=NONE ctermbg=NONE guifg=NONE guibg=NONE',
|
||||
\ '29' : ' gui=NONE',
|
||||
\ '39' : ' ctermfg=NONE guifg=NONE',
|
||||
\ '49' : ' ctermbg=NONE guibg=NONE',
|
||||
\ '90' : ' ctermfg=245 guifg=#928374',
|
||||
\ '95' : ' ctermfg=175 guifg=#d3869b',
|
||||
\}
|
||||
for color in range(30, 37)
|
||||
" Foreground color pattern.
|
||||
let highlight_table[color] = printf(' ctermfg=%d guifg=%s',
|
||||
\ color - 30, s:shellcmd_colors[color - 30])
|
||||
for color2 in [1, 3, 4, 7]
|
||||
" Type;Foreground color pattern
|
||||
let highlight_table[color2 . ';' . color] =
|
||||
\ highlight_table[color2] . highlight_table[color]
|
||||
endfor
|
||||
endfor
|
||||
for color in range(40, 47)
|
||||
" Background color pattern.
|
||||
let highlight_table[color] = printf(' ctermbg=%d guibg=%s',
|
||||
\ color - 40, s:shellcmd_colors[color - 40])
|
||||
for color2 in range(30, 37)
|
||||
" Foreground;Background color pattern.
|
||||
let highlight_table[color2 . ';' . color] =
|
||||
\ highlight_table[color2] . highlight_table[color]
|
||||
endfor
|
||||
endfor
|
||||
|
||||
syntax match SpaceVimRunner__Output_Shellcmd_Conceal
|
||||
\ contained conceal '\e\[[0-9;]*m'
|
||||
\ containedin=SpaceVimRunner__Output_Shellcmd
|
||||
|
||||
syntax match SpaceVimRunner__Output_Shellcmd_Conceal
|
||||
\ contained conceal '\e\[?1h'
|
||||
\ containedin=SpaceVimRunner__Output_Shellcmd
|
||||
|
||||
syntax match uniteSource__Output_Shellcmd_Ignore
|
||||
\ contained conceal '\e\[?\d[hl]\|\e=\r\|\r\|\e>'
|
||||
\ containedin=SpaceVimRunner__Output_Shellcmd
|
||||
|
||||
for [key, highlight] in items(highlight_table)
|
||||
let syntax_name = 'SpaceVimRunner__Output_Shellcmd_Color'
|
||||
\ . substitute(key, ';', '_', 'g')
|
||||
let syntax_command = printf('start=+\e\[0\?%sm+ end=+\ze\e[\[0*m]\|$+ ' .
|
||||
\ 'contains=SpaceVimRunner__Output_Shellcmd_Conceal ' .
|
||||
\ 'containedin=SpaceVimRunner__Output_Shellcmd oneline', key)
|
||||
|
||||
execute 'syntax region' syntax_name syntax_command
|
||||
execute 'highlight' syntax_name highlight
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
call s:highlight_shell_cmd()
|
||||
|
Loading…
Reference in New Issue
Block a user