Fix #291 expand completed_snippet when expand key mapping

This commit is contained in:
Shougo Matsushita 2016-11-04 18:19:34 +09:00
parent a1508f8872
commit 9132237f3c
4 changed files with 38 additions and 47 deletions

View File

@ -26,23 +26,6 @@
let s:save_cpo = &cpo let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! neosnippet#handlers#_complete_done() abort "{{{
if empty(v:completed_item)
\ || !g:neosnippet#enable_completed_snippet
\ || s:is_auto_pairs()
return
endif
let snippet = neosnippet#parser#_get_completed_snippet(
\ v:completed_item, neosnippet#util#get_next_text())
if snippet == ''
return
endif
let [cur_text, col, _] = neosnippet#mappings#_pre_trigger()
call neosnippet#view#_insert(snippet, {}, cur_text, col)
endfunction"}}}
function! neosnippet#handlers#_cursor_moved() abort "{{{ function! neosnippet#handlers#_cursor_moved() abort "{{{
let expand_stack = neosnippet#variables#expand_stack() let expand_stack = neosnippet#variables#expand_stack()
@ -87,10 +70,6 @@ function! neosnippet#handlers#_restore_unnamed_register() abort "{{{
endif endif
endfunction"}}} endfunction"}}}
function! s:is_auto_pairs() abort "{{{
return get(g:, 'neopairs#enable', 0)
endfunction"}}}
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo

View File

@ -66,11 +66,6 @@ function! s:initialize_others() abort "{{{
\ call neosnippet#handlers#_all_clear_markers() \ call neosnippet#handlers#_all_clear_markers()
endif endif
if exists('v:completed_item')
autocmd neosnippet CompleteDone *
\ call neosnippet#handlers#_complete_done()
endif
if exists('##TextChanged') && exists('##TextChangedI') if exists('##TextChanged') && exists('##TextChangedI')
autocmd neosnippet TextChanged,TextChangedI * autocmd neosnippet TextChanged,TextChangedI *
\ call neosnippet#handlers#_restore_unnamed_register() \ call neosnippet#handlers#_restore_unnamed_register()

View File

@ -31,7 +31,8 @@ function! neosnippet#mappings#expandable_or_jumpable() abort "{{{
endfunction"}}} endfunction"}}}
function! neosnippet#mappings#expandable() abort "{{{ function! neosnippet#mappings#expandable() abort "{{{
" Check snippet trigger. " Check snippet trigger.
return neosnippet#helpers#get_cursor_snippet( return neosnippet#mappings#completed_expandable()
\ || neosnippet#helpers#get_cursor_snippet(
\ neosnippet#helpers#get_snippets('i'), \ neosnippet#helpers#get_snippets('i'),
\ neosnippet#util#get_cur_text()) != '' \ neosnippet#util#get_cur_text()) != ''
endfunction"}}} endfunction"}}}
@ -40,6 +41,20 @@ function! neosnippet#mappings#jumpable() abort "{{{
return search(neosnippet#get_placeholder_marker_pattern(). '\|' return search(neosnippet#get_placeholder_marker_pattern(). '\|'
\ .neosnippet#get_sync_placeholder_marker_pattern(), 'nw') > 0 \ .neosnippet#get_sync_placeholder_marker_pattern(), 'nw') > 0
endfunction"}}} endfunction"}}}
function! neosnippet#mappings#completed_expandable() abort "{{{
if !s:enabled_completed_snippet()
return 0
endif
let snippet = neosnippet#parser#_get_completed_snippet(
\ v:completed_item, neosnippet#util#get_next_text())
return snippet != ''
endfunction"}}}
function! s:enabled_completed_snippet() abort "{{{
return exists('v:completed_item')
\ && !empty(v:completed_item)
\ && g:neosnippet#enable_completed_snippet
endfunction"}}}
function! neosnippet#mappings#_clear_select_mode_mappings() abort "{{{ function! neosnippet#mappings#_clear_select_mode_mappings() abort "{{{
if !g:neosnippet#disable_select_mode_mappings if !g:neosnippet#disable_select_mode_mappings
@ -153,37 +168,41 @@ function! neosnippet#mappings#_expand(trigger) abort "{{{
endfunction"}}} endfunction"}}}
function! s:snippets_expand(cur_text, col) abort "{{{ function! s:snippets_expand(cur_text, col) abort "{{{
if s:enabled_completed_snippet()
let snippet = neosnippet#parser#_get_completed_snippet(
\ v:completed_item, neosnippet#util#get_next_text())
if snippet != ''
call neosnippet#view#_insert(snippet, {}, a:cur_text, a:col)
return 0
endif
endif
let cur_word = neosnippet#helpers#get_cursor_snippet( let cur_word = neosnippet#helpers#get_cursor_snippet(
\ neosnippet#helpers#get_snippets('i'), \ neosnippet#helpers#get_snippets('i'),
\ a:cur_text) \ a:cur_text)
call neosnippet#view#_expand(
\ neosnippet#util#get_cur_text(), a:col, cur_word)
endfunction"}}}
function! s:snippets_expand_or_jump(cur_text, col) abort "{{{
let cur_word = neosnippet#helpers#get_cursor_snippet(
\ neosnippet#helpers#get_snippets('i'), a:cur_text)
if cur_word != '' if cur_word != ''
" Found snippet trigger. " Found snippet trigger.
call neosnippet#view#_expand( call neosnippet#view#_expand(
\ neosnippet#util#get_cur_text(), a:col, cur_word) \ neosnippet#util#get_cur_text(), a:col, cur_word)
else return 0
endif
return 1
endfunction"}}}
function! s:snippets_expand_or_jump(cur_text, col) abort "{{{
if s:snippets_expand(a:cur_text, a:col)
call neosnippet#view#_jump('', a:col) call neosnippet#view#_jump('', a:col)
endif endif
endfunction"}}} endfunction"}}}
function! s:snippets_jump_or_expand(cur_text, col) abort "{{{ function! s:snippets_jump_or_expand(cur_text, col) abort "{{{
let cur_word = neosnippet#helpers#get_cursor_snippet(
\ neosnippet#helpers#get_snippets('i'), a:cur_text)
if search(neosnippet#get_placeholder_marker_pattern(). '\|' if search(neosnippet#get_placeholder_marker_pattern(). '\|'
\ .neosnippet#get_sync_placeholder_marker_pattern(), 'nw') > 0 \ .neosnippet#get_sync_placeholder_marker_pattern(), 'nw') > 0
" Found snippet placeholder. " Found snippet placeholder.
call neosnippet#view#_jump('', a:col) call neosnippet#view#_jump('', a:col)
else else
call neosnippet#view#_expand( return s:snippets_expand(a:cur_text, a:col)
\ neosnippet#util#get_cur_text(), a:col, cur_word)
endif endif
endfunction"}}} endfunction"}}}

View File

@ -230,10 +230,8 @@ g:neosnippet#enable_conceal_markers
*g:neosnippet#enable_completed_snippet* *g:neosnippet#enable_completed_snippet*
g:neosnippet#enable_completed_snippet g:neosnippet#enable_completed_snippet
If this variable is not 0, neosnippet will expand the function If this variable is not 0, neosnippet can expand the function
prototype when |CompleteDone| autocmd. prototype.
Note: It is disabled if you have installed
|neopairs.vim| plugin.
The default value is 0. The default value is 0.