diff options
author | mattn <mattn.jp@gmail.com> | 2014-09-03 13:51:10 +0900 |
---|---|---|
committer | mattn <mattn.jp@gmail.com> | 2014-09-03 13:51:10 +0900 |
commit | 09b140cff98f5cf64c30bdc4c278b069347b63f9 (patch) | |
tree | ace1ba8e2a5f200680af71d032a1f3a9884488cd /autoload | |
parent | fb01d0141e6491ae67064014ce5fd47556fcb609 (diff) | |
download | vim-sonictemplate-09b140cff98f5cf64c30bdc4c278b069347b63f9.tar.gz vim-sonictemplate-09b140cff98f5cf64c30bdc4c278b069347b63f9.tar.bz2 vim-sonictemplate-09b140cff98f5cf64c30bdc4c278b069347b63f9.zip |
Possible to separate default values
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/sonictemplate.vim | 12 |
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 |