From 7d2f0ea6995c7cd8e877dbb3e5e290c76f1f255d Mon Sep 17 00:00:00 2001 From: mattn Date: Fri, 19 Feb 2010 17:42:26 +0900 Subject: [PATCH] fixed behavior in 'a+b'. --- zencoding.vim | 24 +++++++++++++++--------- zencoding.vim.vimup | 6 ++++-- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/zencoding.vim b/zencoding.vim index 98d7b73..0253a49 100644 --- a/zencoding.vim +++ b/zencoding.vim @@ -2,7 +2,7 @@ " File: zencoding.vim " Author: Yasuhiro Matsumoto " 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 ZenCodingExpand =zen_expand()/\|a @@ -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: diff --git a/zencoding.vim.vimup b/zencoding.vim.vimup index a184535..79d0933 100644 --- a/zencoding.vim.vimup +++ b/zencoding.vim.vimup @@ -2,7 +2,7 @@ script_name: ZenCoding.vim script_id: '2981' script_type: utility script_package: zencoding.vim -script_version: '0.6' +script_version: '0.7' required_vim_version: '7.0' summary: vim plugins for HTML and CSS hi-speed coding. @@ -67,8 +67,10 @@ install_details: | copy zencoding.vim to your plugin directory. versions: +- '0.7': | + This is an upgrade for ZenCoding.vim: fixed behavior in 'a+b'. - '0.6': | - This is an upgrade for ZenCoding.vim: fixed strange behaviour about 'b_' + This is an upgrade for ZenCoding.vim: fixed strange behaviour about 'b_'. - '0.5': | This is an upgrade for ZenCoding.vim: recover rest part in line. - '0.4': |