diff --git a/autoload/emmet.vim b/autoload/emmet.vim index f3a3ca8..568835e 100644 --- a/autoload/emmet.vim +++ b/autoload/emmet.vim @@ -182,17 +182,9 @@ endfunction function! s:itemno(itemno, current) abort let current = a:current if current.basedirect > 0 - if current.basevalue ==# 0 - return a:itemno - else - return current.basevalue - 1 + a:itemno - endif + return current.basevalue - 1 + a:itemno else - if current.basevalue ==# 0 - return current.multiplier - 1 - a:itemno - else - return current.multiplier + current.basevalue - 2 - a:itemno - endif + return current.multiplier + current.basevalue - 2 - a:itemno endif endfunction diff --git a/autoload/emmet/lang/html.vim b/autoload/emmet/lang/html.vim index 69928fe..27163e1 100644 --- a/autoload/emmet/lang/html.vim +++ b/autoload/emmet/lang/html.vim @@ -154,7 +154,11 @@ function! emmet#lang#html#parseIntoTree(abbr, type) abort endif let basedirect = basevalue[1] ==# '-' ? -1 : 1 - let basevalue = 0 + abs(basevalue[1:]) + if basevalue != '' + let basevalue = 0 + abs(basevalue[1:]) + else + let basevalue = 1 + endif if multiplier <= 0 | let multiplier = 1 | endif " make default node diff --git a/unittest.vim b/unittest.vim index d51f565..1f40330 100644 --- a/unittest.vim +++ b/unittest.vim @@ -679,6 +679,15 @@ finish }, ], }, + { + 'name': 'base value', + 'tests': [ + { + 'query': "ul>li#id$@0*3", + 'result': "