fixed behavior in 'a+b'.

This commit is contained in:
mattn
2010-02-19 17:42:26 +09:00
parent f36a79ae91
commit 7d2f0ea699
2 changed files with 19 additions and 11 deletions

View File

@@ -2,7 +2,7 @@
" File: zencoding.vim
" Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
" Last Change: 19-Feb-2010.
" Version: 0.6
" Version: 0.7
" WebPage: http://github.com/mattn/zencoding-vim
" Description: vim plugins for HTML and CSS hi-speed coding.
" SeeAlso: http://code.google.com/p/zen-coding/
@@ -66,7 +66,7 @@
" script type: plugin
if &cp || (exists('g:loaded_zencoding_vim') && g:loaded_zencoding_vim)
"finish
finish
endif
let g:loaded_zencoding_vim = 1
@@ -854,9 +854,6 @@ function! s:zen_parseIntoTree(abbr, type)
endif
call add(parent['child'], current)
let last = current
if len(tag_name) == 0
break
endif
if 0
echo "str=".str
echo "operator=".operator
@@ -866,6 +863,9 @@ function! s:zen_parseIntoTree(abbr, type)
echo "multiplier=".multiplier
echo "\n"
endif
if len(tag_name) == 0
break
endif
let abbr = substitute(strpart(abbr, len(match)), '^\s*', '', '')
endwhile
return root
@@ -940,7 +940,10 @@ function! s:zen_expand()
let rest = getline('.')[col('.')-1:]
let type = &ft
let items = s:zen_parseIntoTree(part, type)['child']
let expand = len(items) ? s:zen_toString(items[0], type) : ''
let expand = ''
for item in items
let expand .= s:zen_toString(item, type)
endfor
if len(expand)
let expand = substitute(expand, '|', '$cursor$', '')
let expand = substitute(expand, '|', '', 'g')
@@ -966,8 +969,11 @@ endfunction
function! ZenExpand(abbr, type)
let items = s:zen_parseIntoTree(a:abbr, a:type)['child']
if len(items) | return s:zen_toString(items[0], a:type) | endif
return ''
let expand = ''
for item in items
let expand .= s:zen_toString(item, a:type)
endfor
return expand
endfunction
inoremap <plug>ZenCodingExpand <c-r>=<sid>zen_expand()<cr><esc>/\|<cr>a<bs>
@@ -1010,6 +1016,6 @@ endif
"echo ZenExpand('req', 'perl')
"echo ZenExpand('html:4t>div#wrapper>div#header+div#contents+div#footer', '')
"echo ZenExpand('a[href=http://www.google.com/].foo#hoge', '')
"echo ZenExpand('b', '')
"echo ZenExpand('a+b', '')
" vim:set et: