diff options
author | mattn <mattn.jp@gmail.com> | 2012-04-15 23:05:26 +0900 |
---|---|---|
committer | mattn <mattn.jp@gmail.com> | 2012-04-15 23:05:26 +0900 |
commit | 2328c985fcfeb67ae20c8d937b04e0f3254608c8 (patch) | |
tree | 1a4c90f4d1ac4ac29ac52c3696871a60ef4fed89 /autoload | |
parent | 1f40c1ff7b2d85da0f54832b925a60149aa7f6d2 (diff) | |
download | vim-sonictemplate-2328c985fcfeb67ae20c8d937b04e0f3254608c8.tar.gz vim-sonictemplate-2328c985fcfeb67ae20c8d937b04e0f3254608c8.tar.bz2 vim-sonictemplate-2328c985fcfeb67ae20c8d937b04e0f3254608c8.zip |
user can override default template.
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/sonictemplate.vim | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/autoload/sonictemplate.vim b/autoload/sonictemplate.vim index 04bfd22..fef7d6f 100644 --- a/autoload/sonictemplate.vim +++ b/autoload/sonictemplate.vim @@ -1,7 +1,7 @@ "============================================================================= " sonictemplate.vim " Author: Yasuhiro Matsumoto <mattn.jp@gmail.com> -" Last Change: 13-Apr-2012. +" Last Change: 15-Apr-2012. let s:save_cpo = &cpo set cpo&vim @@ -26,18 +26,24 @@ endfunction function! sonictemplate#complete(lead, cmdline, curpos) abort let ft = &ft - let candidate = [] + let tmp = [] for tmpldir in s:tmpldir - let candidate += map(split(globpath(join([tmpldir, ft], '/'), (search('[^ \t]', 'wn') ? 'snip-' : 'base-') . a:lead . '*.*'), "\n"), 'fnamemodify(v:val, ":t:r")[5:]') + let tmp += map(split(globpath(join([tmpldir, ft], '/'), (search('[^ \t]', 'wn') ? 'snip-' : 'base-') . a:lead . '*.*'), "\n"), 'fnamemodify(v:val, ":t:r")[5:]') endfor - if len(candidate) == 0 + if len(tmp) == 0 let ft = tolower(synIDattr(synID(line("."), col("."), 1), "name")) if len(ft) > 0 for tmpldir in s:tmpldir - let candidate += map(split(globpath(join([tmpldir, ft], '/'), (search('[^ \t]', 'wn') ? 'snip-' : 'base-') . a:lead . '*.*'), "\n"), 'fnamemodify(v:val, ":t:r")[5:]') + let tmp += map(split(globpath(join([tmpldir, ft], '/'), (search('[^ \t]', 'wn') ? 'snip-' : 'base-') . a:lead . '*.*'), "\n"), 'fnamemodify(v:val, ":t:r")[5:]') endfor endif endif + let candidate = [] + for c in tmp + if index(candidate, c) == -1 + call add(candidate, c) + endif + endfor return candidate endfunction |