Fix parse parenthesis

This commit is contained in:
Shougo Matsushita 2015-12-12 18:08:13 +09:00
parent 12ad06d37d
commit 43438178b0
2 changed files with 17 additions and 6 deletions

View File

@ -107,7 +107,7 @@ function! neosnippet#handlers#_get_in_paren(str) abort "{{{
continue
endif
elseif c == ')'
if level == 1
if level == 1 && s != ''
return s
else
let level -= 1

View File

@ -2,15 +2,26 @@ let s:suite = themis#suite('toml')
let s:assert = themis#helper('assert')
function! s:suite.get_in_paren()
call s:assert.equals(neosnippet#handlers#_get_in_paren('(foobar)'),
call s:assert.equals(neosnippet#handlers#_get_in_paren(
\ '(foobar)'),
\ 'foobar')
call s:assert.equals(neosnippet#handlers#_get_in_paren('(foobar, baz)'),
call s:assert.equals(neosnippet#handlers#_get_in_paren(
\ '(foobar, baz)'),
\ 'foobar, baz')
call s:assert.equals(neosnippet#handlers#_get_in_paren('(foobar, (baz))'),
call s:assert.equals(neosnippet#handlers#_get_in_paren(
\ '(foobar, (baz))'),
\ 'foobar, (baz)')
call s:assert.equals(neosnippet#handlers#_get_in_paren('foobar('),
call s:assert.equals(neosnippet#handlers#_get_in_paren(
\ 'foobar('),
\ '')
call s:assert.equals(neosnippet#handlers#_get_in_paren('foobar(fname)'),
call s:assert.equals(neosnippet#handlers#_get_in_paren(
\ 'foobar()'),
\ '')
call s:assert.equals(neosnippet#handlers#_get_in_paren(
\ 'foobar(fname)'),
\ 'fname')
call s:assert.equals(neosnippet#handlers#_get_in_paren(
\ 'wait() wait(long, int)'),
\ 'long, int')
endfunction