"============================================================================= " tab.vim --- tab key binding " Copyright (c) 2016-2023 Wang Shidong & Contributors " Author: Wang Shidong < wsdjeg@outlook.com > " URL: https://spacevim.org " License: GPLv3 "============================================================================= if g:spacevim_snippet_engine ==# 'neosnippet' function! SpaceVim#mapping#tab#i_tab() abort if getline('.')[col('.')-2] ==# '{'&& pumvisible() return "\" endif if neosnippet#expandable() && getline('.')[col('.')-2] ==# '(' && !pumvisible() return "\(neosnippet_expand)" elseif neosnippet#jumpable() \ && getline('.')[col('.')-2] ==# '(' && !pumvisible() \ && !neosnippet#expandable() return "\(neosnippet_jump)" elseif neosnippet#expandable_or_jumpable() && getline('.')[col('.')-2] !=#'(' return "\(neosnippet_expand_or_jump)" elseif pumvisible() \ || \ ( \ g:spacevim_autocomplete_method ==# 'nvim-cmp' \ && luaeval("require('cmp').visible()") \ ) return "\" elseif g:spacevim_autocomplete_method ==# 'coc' && coc#pum#visible() return coc#pum#next(1) elseif has('patch-7.4.774') \ && g:spacevim_autocomplete_method !=# 'nvim-cmp' \ && complete_parameter#jumpable(1) \ && getline('.')[col('.')-2] !=# ')' return "\(complete_parameter#goto_next_parameter)" else return "\" endif endfunction elseif g:spacevim_snippet_engine ==# 'ultisnips' function! SpaceVim#mapping#tab#expandable() abort let snippet = UltiSnips#ExpandSnippetOrJump() if g:ulti_expand_or_jump_res > 0 return snippet elseif pumvisible() return "\" elseif g:spacevim_autocomplete_method ==# 'coc' && coc#pum#visible() return coc#pum#next(1) else return "\" endif endfunction function! SpaceVim#mapping#tab#i_tab() abort if getline('.')[col('.')-2] ==# '{'&& pumvisible() return "\" endif return "\=SpaceVim#mapping#tab#expandable()\" endfunction endif " vim:set et sw=2 cc=80: