diff --git a/README.md b/README.md index 53829fe..8ddfbbb 100644 --- a/README.md +++ b/README.md @@ -57,3 +57,15 @@ This plugin provides some plugins integration. #### [vim-compete](https://github.com/hrsh7th/vim-compete) - Snippet completion. + +# FAQ + +#### How to prevent snippet expansion unexpectedly? +You can use `vsnip_integ#skip_complete_done('')` + +For example, the following mapping makes to prevent snippet expansion when you press `` explicitly. + +```viml +inoremap vsnip_integ#skip_complete_done('') +``` + diff --git a/autoload/vsnip_integ.vim b/autoload/vsnip_integ.vim index 5e3f66a..268ad97 100644 --- a/autoload/vsnip_integ.vim +++ b/autoload/vsnip_integ.vim @@ -1,6 +1,6 @@ let s:TextEdit = vital#vsnip#import('VS.LSP.TextEdit') -let s:stop = v:false +let s:skip = v:false " " CompleteDone context. @@ -18,15 +18,24 @@ let s:context = { inoremap (vsnip_integ:on_complete_done_after) =on_complete_done_after() +" +" vsnip_integ#skip_complete_done +" +function! vsnip_integ#skip_complete_done(...) abort + let s:skip = v:true + call timer_start(0, { -> execute('let s:skip = v:false') }) + return get(a:000, 0, '') +endfunction + " " vsnip_integ#on_complete_done_for_lsp " " Deprecated. " function! vsnip_integ#on_complete_done_for_lsp(context) abort - if s:stop | return | endif - let s:stop = v:true - call timer_start(0, { -> execute('let s:stop = v:false') }) + if s:skip | return | endif + let s:skip = v:true + call timer_start(0, { -> execute('let s:skip = v:false') }) let s:context = { \ 'done_line': getline('.'), @@ -42,9 +51,9 @@ endfunction " vsnip_integ#on_complete_done " function! vsnip_integ#on_complete_done(completed_item) abort - if s:stop | return | endif - let s:stop = v:true - call timer_start(0, { -> execute('let s:stop = v:false') }) + if s:skip | return | endif + let s:skip = v:true + call timer_start(0, { -> execute('let s:skip = v:false') }) let l:context = s:extract_user_data(a:completed_item) if !empty(l:context) diff --git a/plugin/vsnip_integ.vim b/plugin/vsnip_integ.vim index 80e503d..701580c 100644 --- a/plugin/vsnip_integ.vim +++ b/plugin/vsnip_integ.vim @@ -11,3 +11,5 @@ augroup vsnip_integ autocmd VimEnter * call vsnip_integ#integration#attach() augroup END +inoremap (vsnip_integ_skip_complete_done) =vsnip_integ#skip_complete_done() +