From f79e0bfcd7f8b37417b016e0e72ee142f463424d Mon Sep 17 00:00:00 2001 From: mattn Date: Fri, 19 Feb 2010 21:50:18 +0900 Subject: [PATCH] fixed indent. --- zencoding.vim | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/zencoding.vim b/zencoding.vim index 0614958..17488b1 100644 --- a/zencoding.vim +++ b/zencoding.vim @@ -965,9 +965,9 @@ function! s:zen_toString(...) return str endfunction -function! s:zen_expand() - let line = getline('.')[:col('.')-1] - let part = matchstr(line, '\(\S*\)\s\{-}$') +function! s:zen_expand(word) + let line = getline('.')[:col('.')-2] + let part = matchstr(line, a:word ? '\(\w\+\)$' : '\(\S*\)$') let rest = getline('.')[col('.')-1:] let type = &ft let items = s:zen_parseIntoTree(part, type)['child'] @@ -983,11 +983,13 @@ function! s:zen_expand() let expand .= '|' endif let expand = substitute(expand, '${lang}', s:zen_settings['lang'], 'g') - silent! exec "normal! ".repeat("x", len(part)) - let size = len(line) - len(part) - let indent = repeat(s:zen_settings['indentation'], size) - let expand = indent . substitute(expand, "\n", "\n" . indent, 'g') . rest - let oldautoindent = &autoindent + if line[:-len(part)-1] =~ '^\s*$' + let size = len(line) - len(part) + let indent = repeat(s:zen_settings['indentation'], size) + else + let indent = '' + endif + let expand = line[:-len(part)-1] . substitute(expand, "\n", "\n" . indent, 'g') . rest let lines = split(expand, '\n') call setline(line('.'), lines[0]) if len(lines) > 1 @@ -1007,8 +1009,10 @@ function! ZenExpand(abbr, type) return expand endfunction -inoremap ZenCodingExpand =zen_expand()/\|a -imap , ZenCodingExpand +inoremap ZenCodingExpandWord =zen_expand(1)/\|a +inoremap ZenCodingExpandAbbr u=zen_expand(0)/\|a +imap . ZenCodingExpandWord +imap , ZenCodingExpandAbbr function! s:zen_mergeConfig(lhs, rhs) if type(a:lhs) == 3 && type(a:rhs) == 3