mirror of
https://github.com/dhruvasagar/vim-table-mode.git
synced 2025-11-08 11:03:47 -05:00
Refactored toggleMapping
This commit is contained in:
@@ -32,90 +32,56 @@ function! s:SetBufferOptDefault(opt, val) "{{{2
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:Map(map, to, mode)
|
||||
if !hasmapto(a:map, a:mode)
|
||||
for l:mode in split(a:mode, '.\zs')
|
||||
execute l:mode . 'map <buffer>' a:to a:map
|
||||
endfor
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:UnMap(map, mode)
|
||||
if !empty(maparg(a:map, a:mode))
|
||||
for mode in split(a:mode, '.\zs')
|
||||
execute l:mode . 'unmap <buffer>' a:map
|
||||
endfor
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:ToggleMapping() "{{{2
|
||||
let separator_map = g:table_mode_separator
|
||||
" '|' is a special character, we need to map <Bar> instead
|
||||
if g:table_mode_separator ==# '|' | let separator_map = '<Bar>' | endif
|
||||
|
||||
if tablemode#IsActive()
|
||||
execute 'inoremap <silent> <buffer>' separator_map
|
||||
\ separator_map . '<Esc>:call tablemode#TableizeInsertMode()<CR>a'
|
||||
call s:Map('<Plug>(table-mode-tableize)', separator_map, 'i')
|
||||
call s:Map('<Plug>(table-mode-motion-up)', '{<Bar>', 'n')
|
||||
call s:Map('<Plug>(table-mode-motion-down)', '}<Bar>', 'n')
|
||||
call s:Map('<Plug>(table-mode-motion-left)', '[<Bar>', 'n')
|
||||
call s:Map('<Plug>(table-mode-motion-right)', ']<Bar>', 'n')
|
||||
|
||||
if !hasmapto('<Plug>(table-mode-motion-up)', 'n')
|
||||
nmap <buffer> {<Bar> <Plug>(table-mode-motion-up)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-motion-down)', 'n')
|
||||
nmap <buffer> }<Bar> <Plug>(table-mode-motion-down)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-motion-left)', 'n')
|
||||
nmap <buffer> [<Bar> <Plug>(table-mode-motion-left)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-motion-right)', 'n')
|
||||
nmap <buffer> ]<Bar> <Plug>(table-mode-motion-right)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-cell-text-object-a)', 'o')
|
||||
omap <buffer> a<Bar> <Plug>(table-mode-cell-text-object-a)
|
||||
xmap <buffer> a<Bar> <Plug>(table-mode-cell-text-object-a)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-cell-text-object-i)', 'o')
|
||||
omap <buffer> i<Bar> <Plug>(table-mode-cell-text-object-i)
|
||||
xmap <buffer> i<Bar> <Plug>(table-mode-cell-text-object-i)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-realign)', 'n')
|
||||
nmap <buffer> <Leader>tr <Plug>(table-mode-realign)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-delete-row)', 'n')
|
||||
nmap <buffer> <Leader>tdd <Plug>(table-mode-delete-row)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-delete-column)', 'n')
|
||||
nmap <buffer> <Leader>tdc <Plug>(table-mode-delete-column)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-add-formula)', 'n')
|
||||
nmap <buffer> <Leader>tfa <Plug>(table-mode-add-formula)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-eval-formula)', 'n')
|
||||
nmap <buffer> <Leader>tfe <Plug>(table-mode-eval-formula)
|
||||
endif
|
||||
if !hasmapto('<Plug>(table-mode-echo-cell)', 'n')
|
||||
nmap <buffer> <Leader>t? <Plug>(table-mode-echo-cell)
|
||||
endif
|
||||
call s:Map('<Plug>(table-mode-cell-text-object-a)', 'a<Bar>', 'ox')
|
||||
call s:Map('<Plug>(table-mode-cell-text-object-i)', 'i<Bar>', 'ox')
|
||||
|
||||
call s:Map('<Plug>(table-mode-realign)', '<Leader>tr', 'n')
|
||||
call s:Map('<Plug>(table-mode-delete-row)', '<Leader>tdd', 'n')
|
||||
call s:Map('<Plug>(table-mode-delete-column)', '<Leader>tdc', 'n')
|
||||
call s:Map('<Plug>(table-mode-add-formula)', '<Leader>tfa', 'n')
|
||||
call s:Map('<Plug>(table-mode-eval-formula)', '<Leader>tfe', 'n')
|
||||
call s:Map('<Plug>(table-mode-echo-cell)', '<Leader>t?', 'n')
|
||||
else
|
||||
if !empty(maparg(separator_map, 'i'))
|
||||
execute "iunmap <silent> <buffer> " . separator_map
|
||||
endif
|
||||
if !empty(maparg('{<Bar>', 'n'))
|
||||
nunmap <buffer> {<Bar>
|
||||
endif
|
||||
if !empty(maparg('}<Bar>', 'n'))
|
||||
nunmap <buffer> }<Bar>
|
||||
endif
|
||||
if !empty(maparg('[<Bar>', 'n'))
|
||||
nunmap <buffer> [<Bar>
|
||||
endif
|
||||
if !empty(maparg(']<Bar>', 'n'))
|
||||
nunmap <buffer> ]<Bar>
|
||||
endif
|
||||
if !empty(maparg('a<Bar>', 'o'))
|
||||
ounmap <buffer> a<Bar>
|
||||
endif
|
||||
if !empty(maparg('i<Bar>', 'o'))
|
||||
ounmap <buffer> i<Bar>
|
||||
endif
|
||||
if !empty(maparg('<Leader>tdd', 'n'))
|
||||
nunmap <buffer> <Leader>tdd
|
||||
endif
|
||||
if !empty(maparg('<Leader>tdc', 'n'))
|
||||
nunmap <buffer> <Leader>tdc
|
||||
endif
|
||||
if !empty(maparg('<Leader>tfa', 'n'))
|
||||
nunmap <buffer> <Leader>tfa
|
||||
endif
|
||||
if !empty(maparg('<Leader>tfe', 'n'))
|
||||
nunmap <buffer> <Leader>tfe
|
||||
endif
|
||||
if !empty(maparg('<Leader>t?', 'n'))
|
||||
nunmap <buffer> <Leader>t?
|
||||
endif
|
||||
call s:UnMap(separator_map, 'i')
|
||||
call s:UnMap('{<Bar>', 'n')
|
||||
call s:UnMap('}<Bar>', 'n')
|
||||
call s:UnMap('[<Bar>', 'n')
|
||||
call s:UnMap(']<Bar>', 'n')
|
||||
call s:UnMap('a<Bar>', 'o')
|
||||
call s:UnMap('i<Bar>', 'o')
|
||||
call s:UnMap('<Leader>tdd', 'n')
|
||||
call s:UnMap('<Leader>tdc', 'n')
|
||||
call s:UnMap('<Leader>tfa', 'n')
|
||||
call s:UnMap('<Leader>tfe', 'n')
|
||||
call s:UnMap('<Leader>t?', 'n')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -92,6 +92,10 @@ command! TableAddFormula call tablemode#spreadsheet#formula#Add()
|
||||
command! TableModeRealign call tablemode#table#Realign('.')
|
||||
command! TableEvalFormulaLine call tablemode#spreadsheet#formula#EvaluateFormulaLine()
|
||||
|
||||
" '|' is a special character, we need to map <Bar> instead
|
||||
if g:table_mode_separator ==# '|' | let separator_map = '<Bar>' | endif
|
||||
execute 'inoremap <silent> <Plug>(table-mode-tableize)' separator_map . '<Esc>:call tablemode#TableizeInsertMode()<CR>a'
|
||||
|
||||
nnoremap <silent> <Plug>(table-mode-tableize) :Tableize<CR>
|
||||
xnoremap <silent> <Plug>(table-mode-tableize) :Tableize<CR>
|
||||
xnoremap <silent> <Plug>(table-mode-tableize-delimiter) :<C-U>call tablemode#TableizeByDelimiter()<CR>
|
||||
|
||||
Reference in New Issue
Block a user