Fix #252 improve optional placeholder behavior
This commit is contained in:
@@ -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, '')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user