From 09b140cff98f5cf64c30bdc4c278b069347b63f9 Mon Sep 17 00:00:00 2001 From: mattn Date: Wed, 3 Sep 2014 13:51:10 +0900 Subject: Possible to separate default values --- autoload/sonictemplate.vim | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/autoload/sonictemplate.vim b/autoload/sonictemplate.vim index 3f00664..238ce6d 100644 --- a/autoload/sonictemplate.vim +++ b/autoload/sonictemplate.vim @@ -220,9 +220,17 @@ function! sonictemplate#apply(name, mode, ...) abort endif let tmp = tmp[stridx(tmp, match) + len(match):] endwhile + let gvars = has_key(g:, 'sonictemplate_vars') && type(g:sonictemplate_vars) == 4 ? g:sonictemplate_vars : {} for var in vars - if has_key(g:, 'sonictemplate_vars') && type(g:sonictemplate_vars) == 4 && has_key(g:sonictemplate_vars, var) - let val = g:sonictemplate_vars[var] + if exists('V') + unlet V + endif + if has_key(gvars, &ft) && type(gvars[&ft]) == 4 && has_key(gvars[&ft], var) + let V = gvars[&ft][var] + if type(V) == 1 | let val = V | else | let val = string(V) | endif + elseif has_key(gvars, '_') && type(gvars['_']) == 4 && has_key(gvars['_'], var) + let V = gvars['_'][var] + if type(V) == 1 | let val = V | else | let val = string(V) | endif else let val = input(var . ": ") endif -- cgit v1.2.3-54-g00ecf