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 " emmet.vim
" Author: Yasuhiro Matsumoto <mattn.jp@gmail.com> " Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
" Last Change: 19-Aug-2013. " Last Change: 20-Aug-2013.
let s:save_cpo = &cpo let s:save_cpo = &cpo
set cpo&vim set cpo&vim
@@ -131,17 +131,23 @@ function! emmet#mergeConfig(lhs, rhs)
endfunction endfunction
function! emmet#newNode() 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 endfunction
function! s:itemno(itemno, current) function! s:itemno(itemno, current)
let current = a:current let current = a:current
if current.basedirect > 0
if current.basevalue == 0 if current.basevalue == 0
return a:itemno return a:itemno
elseif current.basevalue > 0 else
return current.basevalue - 1 + a:itemno return current.basevalue - 1 + a:itemno
elseif current.basevalue < 0 endif
return current.multiplier - current.basevalue - 2 - a:itemno else
if current.basevalue == 0
return current.multiplier - 1 - a:itemno
else
return current.multiplier + current.basevalue - 2 - a:itemno
endif
endif endif
endfunction endfunction

View File

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