Fixes basedirect/basevalue ex: ul>li.item$@-*5 Should be count down from 5 to 1.

This commit is contained in:
mattn
2013-08-20 09:44:29 +09:00
parent f2fc51391c
commit 056b49c2bd
2 changed files with 19 additions and 11 deletions

View File

@@ -1,7 +1,7 @@
"=============================================================================
" emmet.vim
" Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
" Last Change: 19-Aug-2013.
" Last Change: 20-Aug-2013.
let s:save_cpo = &cpo
set cpo&vim
@@ -131,17 +131,23 @@ function! emmet#mergeConfig(lhs, rhs)
endfunction
function! emmet#newNode()
return { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'basevalue': 0, 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0, 'attrs_order': ['id', 'class'] }
return { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'basevalue': 0, 'basedirect': 1, 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0, 'attrs_order': ['id', 'class'] }
endfunction
function! s:itemno(itemno, current)
let current = a:current
if current.basevalue == 0
return a:itemno
elseif current.basevalue > 0
return current.basevalue - 1 + a:itemno
elseif current.basevalue < 0
return current.multiplier - current.basevalue - 2 - a:itemno
if current.basedirect > 0
if current.basevalue == 0
return a:itemno
else
return current.basevalue - 1 + a:itemno
endif
else
if current.basevalue == 0
return current.multiplier - 1 - a:itemno
else
return current.multiplier + current.basevalue - 2 - a:itemno
endif
endif
endfunction

View File

@@ -9,8 +9,8 @@ let s:mx = '\([+>]\|[<^]\+\)\{-}\s*'
\ .'\)*'
\ .'\)'
\ .'\%(\({\%([^$}]\+\|\$#\|\${\w\+}\|\$\+\)*}\)\)\{0,1}'
\ .'\%(\(@-\{0,1}[0-9]\+\)\{0,1}\*\([0-9]\+\)\)\{0,1}'
\ .'\(\%()\%(\(@-\{0,1}[0-9]\+\)\{0,1}\*[0-9]\+\)\{0,1}\)*\)'
\ .'\%(\(@-\{0,1}[0-9]*\)\{0,1}\*\([0-9]\+\)\)\{0,1}'
\ .'\(\%()\%(\(@-\{0,1}[0-9]*\)\{0,1}\*[0-9]\+\)\{0,1}\)*\)'
function! emmet#lang#html#findTokens(str)
let str = a:str
@@ -90,7 +90,8 @@ function! emmet#lang#html#parseIntoTree(abbr, type)
let attributes = tag_name . attributes
let tag_name = 'div'
endif
let basevalue = 0 + basevalue[1:]
let basedirect = basevalue[1] == '-' ? -1 : 1
let basevalue = 0 + abs(basevalue[1:])
if multiplier <= 0 | let multiplier = 1 | endif
" make default node
@@ -218,6 +219,7 @@ function! emmet#lang#html#parseIntoTree(abbr, type)
else
let current.value = value
endif
let current.basedirect = basedirect
let current.basevalue = basevalue
let current.multiplier = multiplier