More neovim config changes
diff --git a/modules/neovim/coc/keybinds.vim b/modules/neovim/coc/keybinds.vim
index ae7e174..bbc1694 100644
--- a/modules/neovim/coc/keybinds.vim
+++ b/modules/neovim/coc/keybinds.vim
@@ -11,25 +11,47 @@
let g:UltiSnipsExpandTrigger="<NUL>"
let g:UltiSnipsJumpForwardTrigger="<NUL>"
let g:UltiSnipsJumpBackwardTrigger="<NUL>"
-inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<CR>"
+inoremap <silent><expr> <CR> coc#pum#visible() ? "\<C-g>u" . coc#pum#confirm() :
+ \ coc#jumpable() ? "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+ \ "\<Plug>(PearTreeExpand)"
inoremap <silent><expr> <Tab> coc#pum#visible() ? coc#pum#next(0) :
- \ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
- \ CheckBackSpace() ? "\<TAB>" :
- \ coc#refresh()
+ \ coc#expandableOrJumpable() ? "\<C-g>u\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
+ \ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : (CheckBackSpace() ? "\<TAB>" :
+ \ coc#refresh()))
function! CheckBackSpace() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
-let g:coc_snippet_next = '<tab>'
-inoremap <silent><expr> <S-Tab> coc#pum#visible() ? coc#pum#prev(0) : "\<S-Tab>"
+inoremap <silent><expr> <S-Tab> coc#pum#visible() ? coc#pum#prev(0) :
+ \ coc#jumpable() ? "\<C-g>u<Esc>:call coc#snippet#prev()\<CR>" :
+ \ "\<S-Tab>"
xnoremap <silent> <Tab> <Plug>(coc-snippets-select)
+nnoremap <silent><expr> <CR> coc#jumpable() ?
+ \ ":call coc#snippet#next()\<CR>" :
+ \ "\<CR>"
-snoremap <nowait><silent> <Tab> <Esc>:call UltiSnips#JumpForwards()<cr>
-snoremap <nowait><silent> <S-Tab> <Esc>:call UltiSnips#JumpForwards()<cr>
+nnoremap <silent><expr> <Tab> coc#jumpable() ?
+ \ ":call coc#snippet#next()\<CR>" :
+ \ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : "\<Tab>")
+nnoremap <silent><expr> <S-Tab> coc#jumpable() ?
+ \ ":call coc#snippet#prev()\<CR>" :
+ \ "\<S-Tab>"
+
+snoremap <silent><expr> <CR> coc#jumpable() ?
+ \ "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+ \ "\<CR>"
+
+snoremap <silent><expr> <Tab> coc#jumpable() ?
+ \ "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+ \ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : "\<Tab>")
+
+snoremap <silent><expr> <S-Tab> coc#jumpable() ?
+ \ "\<C-g>u<Esc>:call coc#snippet#prev()\<CR>" :
+ \ "\<S-Tab>"
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
@@ -42,6 +64,3 @@
nnoremap <silent> K :call <SID>show_documentation()<CR>
command Snippets CocFzfList snippets
-
-autocmd FileType tex let b:coc_pairs = [["$", "$"]]
-autocmd FileType markdown let b:coc_pairs = [["$", "$"]]