1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 22:40:05 +08:00
SpaceVim/bundle/gina.vim/autoload/vital/_gina/Vim/Buffer/ANSI.vim

74 lines
3.0 KiB
VimL
Raw Normal View History

" ___vital___
" NOTE: lines between '" ___vital___' is generated by :Vitalize.
" Do not modify the code nor insert new lines before '" ___vital___'
function! s:_SID() abort
return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze__SID$')
endfunction
execute join(['function! vital#_gina#Vim#Buffer#ANSI#import() abort', printf("return map({'_vital_created': '', 'define_syntax': ''}, \"vital#_gina#function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
delfunction s:_SID
" ___vital___
function! s:_vital_created(module) abort
let s:COLORS = {
\ '\%(30\|0;30\|30;0\)': 'AnsiColor0',
\ '\%(31\|0;31\|31;0\)': 'AnsiColor1',
\ '\%(32\|0;32\|32;0\)': 'AnsiColor2',
\ '\%(33\|0;33\|33;0\)': 'AnsiColor3',
\ '\%(34\|0;34\|34;0\)': 'AnsiColor4',
\ '\%(35\|0;35\|35;0\)': 'AnsiColor5',
\ '\%(36\|0;36\|36;0\)': 'AnsiColor6',
\ '\%(37\|0;37\|37;0\)': 'AnsiColor7',
\ '\%(1;30\|30;1\)': 'AnsiColor8',
\ '\%(1;31\|31;1\)': 'AnsiColor9',
\ '\%(1;32\|32;1\)': 'AnsiColor10',
\ '\%(1;33\|33;1\)': 'AnsiColor11',
\ '\%(1;34\|34;1\)': 'AnsiColor12',
\ '\%(1;35\|35;1\)': 'AnsiColor13',
\ '\%(1;36\|36;1\)': 'AnsiColor14',
\ '\%(1;37\|37;1\)': 'AnsiColor15',
\}
call s:_define_highlight()
endfunction
function! s:_define_highlight() abort
" Ref: https://github.com/w0ng/vim-hybrid
highlight default AnsiColor0 ctermfg=0 guifg=#282A2E
highlight default AnsiColor1 ctermfg=1 guifg=#A54242
highlight default AnsiColor2 ctermfg=2 guifg=#8C9440
highlight default AnsiColor3 ctermfg=3 guifg=#DE935F
highlight default AnsiColor4 ctermfg=4 guifg=#5F819D
highlight default AnsiColor5 ctermfg=5 guifg=#85678F
highlight default AnsiColor6 ctermfg=6 guifg=#5E8D87
highlight default AnsiColor7 ctermfg=7 guifg=#707880
highlight default AnsiColor8 ctermfg=8 guifg=#373B41
highlight default AnsiColor9 ctermfg=9 guifg=#CC6666
highlight default AnsiColor10 ctermfg=10 guifg=#B5BD68
highlight default AnsiColor11 ctermfg=11 guifg=#F0C674
highlight default AnsiColor12 ctermfg=12 guifg=#81A2BE
highlight default AnsiColor13 ctermfg=13 guifg=#B294BB
highlight default AnsiColor14 ctermfg=14 guifg=#8ABEB7
highlight default AnsiColor15 ctermfg=15 guifg=#C5C8C6
augroup vital_vim_buffer_ansi
autocmd! *
autocmd ColorScheme * call s:_define_highlight()
augroup END
endfunction
function! s:define_syntax(...) abort
let prefix = get(a:000, 0, '')
execute printf(
\ 'syntax match %sAnsiSuppress conceal /\e\[[0-9A-Z;]*m/',
\ prefix
\)
for [code, name] in items(s:COLORS)
execute printf(
\ 'syn region %s%s contains=%s keepend start=/\e\[%sm/ end=/\e\[[0-9A-Z;]*m/',
\ prefix, name, 'AnsiSuppress', code
\)
execute printf(
\ 'syntax cluster %sAnsiColors add=%s%s',
\ prefix, prefix, name
\)
endfor
setlocal conceallevel=3 concealcursor=nvic
endfunction