From fb7c68116c686e816e6027d93b7eae9473bf6873 Mon Sep 17 00:00:00 2001 From: kmnk Date: Thu, 8 Mar 2012 08:15:32 +0900 Subject: put a high priority on pre defined template --- autoload/unite/sources/sonictemplate.vim | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/autoload/unite/sources/sonictemplate.vim b/autoload/unite/sources/sonictemplate.vim index 1b07584..dea3092 100644 --- a/autoload/unite/sources/sonictemplate.vim +++ b/autoload/unite/sources/sonictemplate.vim @@ -17,15 +17,30 @@ let s:source = { function! s:source.gather_candidates(args, context)"{{{ call unite#print_message('[sonictemplate]') - return map(sonictemplate#templates(), '{ -\ "word" : s:to_template_name(v:val), -\ "source" : s:source.name, -\ "kind" : s:source.name, -\ "action__mode" : len(a:args) > 0 ? args[0] : "n" -\ }') + return map( +\ s:uniq(map(sonictemplate#templates(), 's:to_template_name(v:val)')), '{ +\ "word" : v:val, +\ "source" : s:source.name, +\ "kind" : s:source.name, +\ "action__mode" : len(a:args) > 0 ? args[0] : "n" +\ }' +\ ) endfunction"}}} " local functions {{{ +function! s:uniq(list) + let has = {} + let uniq_list = [] + for i in a:list + if exists(printf("has['%s']", i)) + continue + endif + let has[i] = 1 + call add(uniq_list, i) + endfor + return uniq_list +endfunction + function! s:to_template_name(path) return substitute(fnamemodify(a:path, ':t:r'), '^\%(base\|snip\)-', '', '') endfunction -- cgit v1.2.3-54-g00ecf