Fix #368 select commas

This commit is contained in:
Shougo Matsushita 2017-01-09 18:19:16 +09:00
parent 61ffe8ba5a
commit 13c51ee885
2 changed files with 5 additions and 11 deletions

View File

@ -359,11 +359,8 @@ function! neosnippet#parser#_get_completed_snippet(completed_item, cur_text, nex
for arg in split(substitute( for arg in split(substitute(
\ neosnippet#parser#_get_in_paren('<', '>', abbr), \ neosnippet#parser#_get_in_paren('<', '>', abbr),
\ '<\zs.\{-}\ze>', '', 'g'), '[^[]\zs\s*,\s*') \ '<\zs.\{-}\ze>', '', 'g'), '[^[]\zs\s*,\s*')
if args != '' && arg !=# '...'
let args .= ', '
endif
let args .= printf('${%d:#:%s%s}', let args .= printf('${%d:#:%s%s}',
\ cnt, ((args != '' && arg ==# '...') ? ', ' : ''), \ cnt, ((args != '') ? ', ' : ''),
\ escape(arg, '{}')) \ escape(arg, '{}'))
let cnt += 1 let cnt += 1
endfor endfor
@ -385,11 +382,8 @@ function! neosnippet#parser#_get_completed_snippet(completed_item, cur_text, nex
continue continue
endif endif
if args != '' && arg !=# '...'
let args .= ', '
endif
let args .= printf('${%d:#:%s%s}', let args .= printf('${%d:#:%s%s}',
\ cnt, ((args != '' && arg ==# '...') ? ', ' : ''), \ cnt, ((args != '') ? ', ' : ''),
\ escape(arg, '{}')) \ escape(arg, '{}'))
let cnt += 1 let cnt += 1
endfor endfor

View File

@ -65,12 +65,12 @@ function! s:suite.get_completed_snippet() abort
call s:assert.equals(neosnippet#parser#_get_completed_snippet({ call s:assert.equals(neosnippet#parser#_get_completed_snippet({
\ 'word' : 'foo(', 'abbr' : 'foo(hoge, piyo)', \ 'word' : 'foo(', 'abbr' : 'foo(hoge, piyo)',
\ 'menu' : '', 'info' : '' \ 'menu' : '', 'info' : ''
\ }, 'foo(', ''), '${1:#:hoge}, ${2:#:piyo})${3}') \ }, 'foo(', ''), '${1:#:hoge}${2:#:, piyo})${3}')
call s:assert.equals(neosnippet#parser#_get_completed_snippet({ call s:assert.equals(neosnippet#parser#_get_completed_snippet({
\ 'word' : 'foo(', 'abbr' : 'foo(hoge, piyo(foobar))', \ 'word' : 'foo(', 'abbr' : 'foo(hoge, piyo(foobar))',
\ 'menu' : '', 'info' : '' \ 'menu' : '', 'info' : ''
\ }, 'foo(', ''), '${1:#:hoge}, ${2:#:piyo()})${3}') \ }, 'foo(', ''), '${1:#:hoge}${2:#:, piyo()})${3}')
call s:assert.equals(neosnippet#parser#_get_completed_snippet({ call s:assert.equals(neosnippet#parser#_get_completed_snippet({
\ 'word' : 'foo(', 'abbr' : 'foo(hoge[, abc])', \ 'word' : 'foo(', 'abbr' : 'foo(hoge[, abc])',
@ -100,7 +100,7 @@ function! s:suite.get_completed_snippet() abort
call s:assert.equals(neosnippet#parser#_get_completed_snippet({ call s:assert.equals(neosnippet#parser#_get_completed_snippet({
\ 'word' : 'Dictionary', 'abbr' : 'Dictionary<Key, Value>(foo)', \ 'word' : 'Dictionary', 'abbr' : 'Dictionary<Key, Value>(foo)',
\ 'menu' : '', 'info' : '' \ 'menu' : '', 'info' : ''
\ }, 'Dictionary', ''), '<${1:#:Key}, ${2:#:Value}>(${3:#:foo})${4}') \ }, 'Dictionary', ''), '<${1:#:Key}${2:#:, Value}>(${3:#:foo})${4}')
call s:assert.equals(neosnippet#parser#_get_completed_snippet({ call s:assert.equals(neosnippet#parser#_get_completed_snippet({
\ 'word' : 'Dictionary(', \ 'word' : 'Dictionary(',