aboutsummaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2012-04-15 23:05:26 +0900
committermattn <mattn.jp@gmail.com>2012-04-15 23:05:26 +0900
commit2328c985fcfeb67ae20c8d937b04e0f3254608c8 (patch)
tree1a4c90f4d1ac4ac29ac52c3696871a60ef4fed89 /autoload
parent1f40c1ff7b2d85da0f54832b925a60149aa7f6d2 (diff)
downloadvim-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.vim16
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