From 232d2e8def42e62731f1554eaf256c0166d193bb Mon Sep 17 00:00:00 2001 From: Shougo Matsushita Date: Sat, 6 Feb 2016 11:50:02 +0900 Subject: [PATCH] Fix completed snippet behavior --- autoload/neosnippet.vim | 2 +- autoload/neosnippet/parser.vim | 5 +++++ test/functions.vim | 10 +++++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/autoload/neosnippet.vim b/autoload/neosnippet.vim index c38d8ed..98591ca 100644 --- a/autoload/neosnippet.vim +++ b/autoload/neosnippet.vim @@ -50,7 +50,7 @@ call neosnippet#util#set_default( \ 'g:neosnippet#completed_pairs', {}) call neosnippet#util#set_default( \ 'g:neosnippet#_completed_pairs', - \ {'_':{ '(' : ')', '{' : '}', '"' : '"' }}) + \ {'_':{ '(' : ')', '{' : '}', '"' : '"', '[' : ']' }}) "}}} function! neosnippet#expandable_or_jumpable() "{{{ diff --git a/autoload/neosnippet/parser.vim b/autoload/neosnippet/parser.vim index 4b79a52..e939a19 100644 --- a/autoload/neosnippet/parser.vim +++ b/autoload/neosnippet/parser.vim @@ -381,6 +381,11 @@ function! neosnippet#parser#_get_completed_snippet(completed_item, next_text) "{ endfor let snippet .= args + if key != '(' && snippet == '' + let snippet .= '${' . cnt . '}' + let cnt += 1 + endif + let snippet .= pair let snippet .= '${' . cnt . '}' diff --git a/test/functions.vim b/test/functions.vim index 32aedb7..828f8ea 100644 --- a/test/functions.vim +++ b/test/functions.vim @@ -78,11 +78,6 @@ function! s:suite.get_completed_snippet() \ 'menu' : '', 'info' : '' \ }, ''), '${1:#:hoge}${2:#:, ...})${3}') - call s:assert.equals(neosnippet#parser#_get_completed_snippet({ - \ 'word' : 'foo{', 'abbr' : 'foo{}', - \ 'menu' : '', 'info' : '' - \ }, ''), '}${1}') - call s:assert.equals(neosnippet#parser#_get_completed_snippet({ \ 'word' : 'foo{', 'abbr' : 'foo{', \ 'menu' : '', 'info' : '' @@ -128,5 +123,10 @@ function! s:suite.get_completed_snippet() \ 'word' : 'forEach', 'abbr' : 'forEach(BiConsumer)', \ 'menu' : '', 'info' : '' \ }, ''), '(${1:#:BiConsumer<>})${2}') + + call s:assert.equals(neosnippet#parser#_get_completed_snippet({ + \ 'word' : 'for[', 'abbr' : '', + \ 'menu' : '', 'info' : '' + \ }, ''), '${1}]${2}') endfunction