diff --git a/autoload/neosnippet.vim b/autoload/neosnippet.vim index f544e19..b34e769 100644 --- a/autoload/neosnippet.vim +++ b/autoload/neosnippet.vim @@ -52,8 +52,8 @@ endfunction"}}} function! neosnippet#jumpable() "{{{ return neosnippet#mappings#jumpable() endfunction"}}} -function! neosnippet#anonymous(snippet, ...) "{{{ - return neosnippet#mappings#_anonymous(a:snippet, get(a:000, 0, {})) +function! neosnippet#anonymous(snippet) "{{{ + return neosnippet#mappings#_anonymous(a:snippet) endfunction"}}} function! neosnippet#expand(trigger) "{{{ return neosnippet#mappings#_expand(a:trigger) diff --git a/autoload/neosnippet/mappings.vim b/autoload/neosnippet/mappings.vim index d3d67ad..f1f1719 100644 --- a/autoload/neosnippet/mappings.vim +++ b/autoload/neosnippet/mappings.vim @@ -136,34 +136,17 @@ function! neosnippet#mappings#_expand_target_trigger(trigger) "{{{ endif endfunction"}}} -function! neosnippet#mappings#_anonymous(snippet, options) "{{{ - let cur_text = neosnippet#util#get_cur_text() - let options = extend( - \ neosnippet#parser#_initialize_snippet_options(), - \ a:options) - call neosnippet#view#_insert(a:snippet, options, cur_text, col('.')) - return '' +function! neosnippet#mappings#_anonymous(snippet) "{{{ + let [cur_text, col, expr] = s:pre_trigger() + let expr .= printf("\:call neosnippet#view#_insert(%s, {}, %s, %d)\", + \ string(a:snippet), string(cur_text), col) + + return expr endfunction"}}} function! neosnippet#mappings#_expand(trigger) "{{{ - call neosnippet#init#check() + let [cur_text, col, expr] = s:pre_trigger() - let cur_text = neosnippet#util#get_cur_text() - - let col = col('.') - if mode() !=# 'i' - " Fix column. - let col += 2 - endif - - " Get selected text. - let neosnippet = neosnippet#variables#current_neosnippet() - let neosnippet.trigger = 1 - let expr = '' - if mode() ==# 's' && neosnippet.optional_tabstop - let expr .= "\\"_d" - endif - - let expr .= printf("\:call neosnippet#view#_expand(%s,%d, %s)\", + let expr .= printf("\:call neosnippet#view#_expand(%s, %d, %s)\", \ string(cur_text), col, string(a:trigger)) return expr @@ -208,6 +191,15 @@ function! s:SID_PREFIX() "{{{ endfunction"}}} function! neosnippet#mappings#_trigger(function) "{{{ + let [cur_text, col, expr] = s:pre_trigger() + + let expr .= printf("\:call %s(%s,%d)\", + \ a:function, string(cur_text), col) + + return expr +endfunction"}}} + +function! s:pre_trigger() "{{{ call neosnippet#init#check() let cur_text = neosnippet#util#get_cur_text() @@ -226,10 +218,7 @@ function! neosnippet#mappings#_trigger(function) "{{{ let expr .= "\\"_d" endif - let expr .= printf("\:call %s(%s,%d)\", - \ a:function, string(cur_text), col) - - return expr + return [cur_text, col, expr] endfunction"}}} " Plugin key-mappings. diff --git a/autoload/neosnippet/view.vim b/autoload/neosnippet/view.vim index a784a5b..acd6c59 100644 --- a/autoload/neosnippet/view.vim +++ b/autoload/neosnippet/view.vim @@ -51,6 +51,10 @@ function! neosnippet#view#_expand(cur_text, col, trigger_name) "{{{ call neosnippet#view#_insert(snippet.snip, snippet.options, cur_text, a:col) endfunction"}}} function! neosnippet#view#_insert(snippet, options, cur_text, col) "{{{ + let options = extend( + \ neosnippet#parser#_initialize_snippet_options(), + \ a:options) + let snip_word = a:snippet if snip_word =~ '\\\@(neosnippet_expand_or_jump)" : "\" < *neosnippet#anonymous()* -neosnippet#anonymous({snippet}, [{options}]) +neosnippet#anonymous({snippet}) It defines anonymous snippet. {snippet} is snippet definition. {options} is snippet option. You can expand snippet definition without defining snippet trigger. - Note: You cannot use it in |map-|. It changes the - buffer text. + Note: You can use this function with |map-|. > inoremap (( \ =neosnippet#anonymous('\left(${1}\right)${0}') + " OR + inoremap (( + \ neosnippet#anonymous('\left(${1}\right)${0}') < *neosnippet#expand()* neosnippet#expand({trigger})