aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2014-09-03 13:51:10 +0900
committermattn <mattn.jp@gmail.com>2014-09-03 13:51:10 +0900
commit09b140cff98f5cf64c30bdc4c278b069347b63f9 (patch)
treeace1ba8e2a5f200680af71d032a1f3a9884488cd
parentfb01d0141e6491ae67064014ce5fd47556fcb609 (diff)
downloadvim-sonictemplate-09b140cff98f5cf64c30bdc4c278b069347b63f9.tar.gz
vim-sonictemplate-09b140cff98f5cf64c30bdc4c278b069347b63f9.tar.bz2
vim-sonictemplate-09b140cff98f5cf64c30bdc4c278b069347b63f9.zip
Possible to separate default values
-rw-r--r--autoload/sonictemplate.vim12
1 files 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