Only set alternative trigger name in SnipMate mode if duplicate exists
This commit is contained in:
parent
f514e3be28
commit
ceb6cdec5a
@ -138,19 +138,23 @@ function! s:parse_snippet_name(snippets_file, line, linenr, dup_check) abort
|
|||||||
\ }
|
\ }
|
||||||
|
|
||||||
" Try using the name without the description (abbr).
|
" Try using the name without the description (abbr).
|
||||||
let snippet_dict.name = matchstr(a:line, '^snippet\s\+\zs\S\+')
|
let base_name = matchstr(a:line, '^snippet\s\+\zs\S\+')
|
||||||
|
let snippet_dict.name = base_name
|
||||||
|
|
||||||
" Fall back to using the name and description (abbr) combined.
|
" Fall back to using the name with integer counter,
|
||||||
|
" but only if the name is a duplicate.
|
||||||
" SnipMate snippets may have duplicate names, but different
|
" SnipMate snippets may have duplicate names, but different
|
||||||
" descriptions (abbrs).
|
" descriptions (abbrs).
|
||||||
let description = matchstr(a:line, '^snippet\s\+\S\+\s\+\zs.*$')
|
let description = matchstr(a:line, '^snippet\s\+\S\+\s\+\zs.*$')
|
||||||
if g:neosnippet#enable_snipmate_compatibility
|
if g:neosnippet#enable_snipmate_compatibility
|
||||||
\ && description != '' && description !=# snippet_dict.name
|
\ && description != '' && description !=# snippet_dict.name
|
||||||
|
\ && has_key(a:dup_check, snippet_dict.name)
|
||||||
" Convert description.
|
" Convert description.
|
||||||
let snippet_dict.name .= '_' .
|
let i = 0
|
||||||
\ substitute(substitute(
|
while has_key(a:dup_check, snippet_dict.name)
|
||||||
\ substitute(description, '\a\zs\a\+', '', 'g'),
|
let snippet_dict.name = base_name . '__' . i
|
||||||
\ '\W\+', '_', 'g'), '_\+$', '', '')
|
let i += 1
|
||||||
|
endwhile
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Collect the description (abbr) of the snippet, if set on snippet line.
|
" Collect the description (abbr) of the snippet, if set on snippet line.
|
||||||
|
Loading…
Reference in New Issue
Block a user