1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-03-23 17:49:57 +08:00

fix(highlight): fix Tab key binding

This commit is contained in:
wsdjeg 2022-04-08 14:28:36 +08:00
parent 2452a1e86a
commit d799b3d49d

View File

@ -47,54 +47,61 @@ endfunction
" transient_state API func: init {{{ " transient_state API func: init {{{
let s:hi_info = [ let s:hi_info = [
\ { \ {
\ 'name' : 'HiPurpleBold', \ 'name' : 'HiPurpleBold',
\ 'guibg' : '#d3869b', \ 'guibg' : '#d3869b',
\ 'guifg' : '#282828', \ 'guifg' : '#282828',
\ 'ctermbg' : '', \ 'ctermbg' : '',
\ 'ctermfg' : 175, \ 'ctermfg' : 175,
\ 'bold' : 1, \ 'bold' : 1,
\ }, \ },
\ { \ {
\ 'name' : 'HiRrangeDisplay', \ 'name' : 'HiRrangeDisplay',
\ 'guibg' : '#458588', \ 'guibg' : '#458588',
\ 'guifg' : '#282828', \ 'guifg' : '#282828',
\ 'ctermbg' : '', \ 'ctermbg' : '',
\ 'ctermfg' : 175, \ 'ctermfg' : 175,
\ 'bold' : 1, \ 'bold' : 1,
\ }, \ },
\ { \ {
\ 'name' : 'HiRrangeBuffer', \ 'name' : 'HiRrangeBuffer',
\ 'guibg' : '#689d6a', \ 'guibg' : '#689d6a',
\ 'guifg' : '#282828', \ 'guifg' : '#282828',
\ 'ctermbg' : '', \ 'ctermbg' : '',
\ 'ctermfg' : 175, \ 'ctermfg' : 175,
\ 'bold' : 1, \ 'bold' : 1,
\ }, \ },
\ { \ {
\ 'name' : 'HiRrangeFunction', \ 'name' : 'HiRrangeFunction',
\ 'guibg' : '#d38696', \ 'guibg' : '#d38696',
\ 'guifg' : '#282828', \ 'guifg' : '#282828',
\ 'ctermbg' : '', \ 'ctermbg' : '',
\ 'ctermfg' : 175, \ 'ctermfg' : 175,
\ 'bold' : 1, \ 'bold' : 1,
\ }, \ },
\ { \ {
\ 'name' : 'HiRrangeIndex', \ 'name' : 'HiRrangeIndex',
\ 'guibg' : '#3c3836', \ 'guibg' : '#3c3836',
\ 'guifg' : '#a89984', \ 'guifg' : '#a89984',
\ 'ctermbg' : 237, \ 'ctermbg' : 237,
\ 'ctermfg' : 246, \ 'ctermfg' : 246,
\ 'bold' : 1, \ 'bold' : 1,
\ }, \ },
\ { \ {
\ 'name' : 'HiBlueBold', \ 'name' : 'HiBlueBold',
\ 'guibg' : '#83a598', \ 'guibg' : '#83a598',
\ 'guifg' : '#282828', \ 'guifg' : '#282828',
\ 'ctermbg' : '', \ 'ctermbg' : '',
\ 'ctermfg' : 109, \ 'ctermfg' : 109,
\ 'bold' : 1, \ 'bold' : 1,
\ } \ },{
\ ] \ 'name' : 'HiInactive',
\ 'guibg' : '#3c3836',
\ 'guifg' : '#abb2bf',
\ 'ctermbg' : '',
\ 'ctermfg' : 145,
\ 'bold' : 1,
\ }
\ ]
function! s:hi() abort function! s:hi() abort
for info in s:hi_info for info in s:hi_info
@ -132,75 +139,75 @@ function! SpaceVim#plugins#highlight#start(...) abort
call s:state.set_title('Highlight Transient State') call s:state.set_title('Highlight Transient State')
call s:state.defind_keys( call s:state.defind_keys(
\ { \ {
\ 'layout' : 'vertical split', \ 'layout' : 'vertical split',
\ 'logo' : s:_function('s:range_logo'), \ 'logo' : s:_function('s:range_logo'),
\ 'logo_width' : 30, \ 'logo_width' : 30,
\ 'init' : s:_function('s:init'), \ 'init' : s:_function('s:init'),
\ 'left' : [ \ 'left' : [
\ { \ {
\ 'key' : 'n', \ 'key' : 'n',
\ 'desc' : 'Toggle highlight', \ 'desc' : 'Toggle highlight',
\ 'func' : s:_function('s:next_item'), \ 'func' : s:_function('s:next_item'),
\ 'cmd' : '', \ 'cmd' : '',
\ 'exit' : 0, \ 'exit' : 0,
\ }, \ },
\ { \ {
\ 'key' : "\<tab>", \ 'key' : "\<tab>",
\ 'desc' : 'Toggle highlight', \ 'desc' : 'Toggle highlight',
\ 'func' : s:_function('s:toggle_item'), \ 'func' : s:_function('s:toggle_item'),
\ 'cmd' : '', \ 'cmd' : '',
\ 'exit' : 0, \ 'exit' : 0,
\ }, \ },
\ { \ {
\ 'key' : 'r', \ 'key' : 'r',
\ 'desc' : 'change range', \ 'desc' : 'change range',
\ 'func' : '', \ 'func' : '',
\ 'cmd' : 'call call(' . string(s:_function('s:change_range')) . ', [])', \ 'cmd' : 'call call(' . string(s:_function('s:change_range')) . ', [])',
\ 'exit' : 0, \ 'exit' : 0,
\ }, \ },
\ { \ {
\ 'key' : 'e', \ 'key' : 'e',
\ 'desc' : 'iedit', \ 'desc' : 'iedit',
\ 'cmd' : '', \ 'cmd' : '',
\ 'func' : '', \ 'func' : '',
\ 'exit_cmd' : 'call call(' . string(s:_function('s:iedit')) . ', [])', \ 'exit_cmd' : 'call call(' . string(s:_function('s:iedit')) . ', [])',
\ 'exit' : 1, \ 'exit' : 1,
\ }, \ },
\ ], \ ],
\ 'right' : [ \ 'right' : [
\ { \ {
\ 'key' : ['N', 'p'], \ 'key' : ['N', 'p'],
\ 'desc' : 'Previous match', \ 'desc' : 'Previous match',
\ 'cmd' : 'call call(' . string(s:_function('s:previous_item')) . ', [])', \ 'cmd' : 'call call(' . string(s:_function('s:previous_item')) . ', [])',
\ 'func' : '', \ 'func' : '',
\ 'exit' : 0, \ 'exit' : 0,
\ }, \ },
\ { \ {
\ 'key' : 'b', \ 'key' : 'b',
\ 'desc' : 'search buffers', \ 'desc' : 'search buffers',
\ 'cmd' : '', \ 'cmd' : '',
\ 'func' : '', \ 'func' : '',
\ 'exit_cmd' : 'call call(' . string(s:_function('s:search_buffers')) . ', [])', \ 'exit_cmd' : 'call call(' . string(s:_function('s:search_buffers')) . ', [])',
\ 'exit' : 1, \ 'exit' : 1,
\ }, \ },
\ { \ {
\ 'key' : '/', \ 'key' : '/',
\ 'desc' : 'Search project', \ 'desc' : 'Search project',
\ 'cmd' : '', \ 'cmd' : '',
\ 'func' : '', \ 'func' : '',
\ 'exit_cmd' : 'call call(' . string(s:_function('s:search_project')) . ', [])', \ 'exit_cmd' : 'call call(' . string(s:_function('s:search_project')) . ', [])',
\ 'exit' : 1, \ 'exit' : 1,
\ }, \ },
\ { \ {
\ 'key' : 'R', \ 'key' : 'R',
\ 'desc' : 'Reset', \ 'desc' : 'Reset',
\ 'cmd' : '', \ 'cmd' : '',
\ 'func' : s:_function('s:reset_range'), \ 'func' : s:_function('s:reset_range'),
\ 'exit' : 0, \ 'exit' : 0,
\ }, \ },
\ ], \ ],
\ } \ }
\ ) \ )
let save_tve = &t_ve let save_tve = &t_ve
setlocal t_ve= setlocal t_ve=
if has('gui_running') if has('gui_running')
@ -305,16 +312,23 @@ endfunction
" local func: highlight symbol {{{ " local func: highlight symbol {{{
function! s:highlight() abort function! s:highlight() abort
let s:highlight_id = []
for item in s:cursor_stack for item in s:cursor_stack
call add(s:highlight_id, s:CMP.matchaddpos('HiBlueBold', [[ if item.active
\ item.lnum, call s:CMP.matchaddpos('HiBlueBold', [[
\ item.col, \ item.lnum,
\ item.len \ item.col,
\ ]])) \ item.len
\ ]])
else
call s:CMP.matchaddpos('HiInactive', [[
\ item.lnum,
\ item.col,
\ item.len
\ ]])
endif
endfor endfor
if !empty(get(s:cursor_stack, s:index, [])) if !empty(get(s:cursor_stack, s:index, [])) && s:cursor_stack[s:index].active
let s:highlight_id_c = s:CMP.matchaddpos('HiPurpleBold', [[ call s:CMP.matchaddpos('HiPurpleBold', [[
\ s:cursor_stack[s:index].lnum, \ s:cursor_stack[s:index].lnum,
\ s:cursor_stack[s:index].col, \ s:cursor_stack[s:index].col,
\ s:cursor_stack[s:index].len, \ s:cursor_stack[s:index].len,
@ -325,16 +339,13 @@ endfunction
" local func: clear highlight {{{ " local func: clear highlight {{{
function! s:clear_highlight() abort function! s:clear_highlight() abort
for id in s:highlight_id call clearmatches()
call matchdelete(id)
endfor
call matchdelete(s:highlight_id_c)
endfunction endfunction
" }}} " }}}
" key binding: Tab toggle_item {{{ " key binding: Tab toggle_item {{{
function! s:toggle_item() abort function! s:toggle_item() abort
let s:cursor_stack[s:index].active = s:cursor_stack[s:index].active ? 0 : 1
endfunction endfunction
" }}} " }}}