Fix #252 improve optional placeholder behavior
This commit is contained in:
parent
58a8296b2a
commit
4734238921
@ -188,7 +188,7 @@ function! s:trigger(function) "{{{
|
||||
" Get selected text.
|
||||
let neosnippet = neosnippet#variables#current_neosnippet()
|
||||
let neosnippet.trigger = 1
|
||||
if mode() ==# 's' && neosnippet.selected_text =~ '^#:'
|
||||
if mode() ==# 's' && neosnippet.optional_tabstop
|
||||
let expr .= "\<C-o>\"_d"
|
||||
endif
|
||||
|
||||
|
@ -33,6 +33,7 @@ function! neosnippet#variables#current_neosnippet() "{{{
|
||||
\ 'selected_text' : '',
|
||||
\ 'target' : '',
|
||||
\ 'trigger' : 0,
|
||||
\ 'optional_tabstop' : 0,
|
||||
\}
|
||||
endif
|
||||
|
||||
|
@ -289,11 +289,15 @@ function! s:expand_placeholder(start, end, holder_cnt, line, ...) "{{{
|
||||
let default = substitute(
|
||||
\ matchstr(current_line, default_pattern),
|
||||
\ '\\\ze[^\\]', '', 'g')
|
||||
let neosnippet.optional_tabstop = (default =~ '^#:')
|
||||
if !is_select && default =~ '^#:'
|
||||
" Delete comments.
|
||||
let default = ''
|
||||
endif
|
||||
|
||||
" Remove optional marker
|
||||
let default = substitute(default, '^#:', '', '')
|
||||
|
||||
let is_target = (default =~ '^TARGET\>' && neosnippet.target != '')
|
||||
let default = substitute(default, '^TARGET:\?', neosnippet.target, '')
|
||||
|
||||
|
@ -453,7 +453,7 @@ available providing different functionality.
|
||||
|
||||
The structure of a placeholder can be:
|
||||
|
||||
- ${number:placeholder text}
|
||||
- ${number:default placeholder text}
|
||||
|
||||
The placeholder starts with a dollar sign "$". The number of a
|
||||
placeholder and the placeholder text are separated by a colon ":".
|
||||
@ -472,7 +472,7 @@ The structure of a placeholder can be:
|
||||
endif
|
||||
<
|
||||
|
||||
- ${number:#:placeholder text}
|
||||
- ${number:#:optional placeholder text}
|
||||
|
||||
In this kind of placeholder the number is followed by the hash
|
||||
character "#". If you jump over this placeholder and do not insert
|
||||
|
Loading…
Reference in New Issue
Block a user