forked from VimPlug/emmet-vim
Added list to keep order of added attributes
Preloads this list with 'id' and 'class' to always sort those first As attributes are parsed, append the names to the list. Change toString function to loop over attribute list instead of keys.
This commit is contained in:
1 parent
6a84397073
commit
594ca8e767
1 file changed
+5
-2
@@ -92,7 +92,7 @@ function! zencoding#lang#html#parseIntoTree(abbr, type)
|
||||
if multiplier <= 0 | let multiplier = 1 | endif
|
||||
|
||||
" make default node
|
||||
let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0 }
|
||||
let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0, 'attrs_order': ['id', 'class'] }
|
||||
let current.name = tag_name
|
||||
|
||||
let current.important = important
|
||||
@@ -182,6 +182,7 @@ function! zencoding#lang#html#parseIntoTree(abbr, type)
|
||||
let val = val[1:-2]
|
||||
endif
|
||||
let current.attr[key] = val
|
||||
let current.attrs_order = current.attrs_order + [key]
|
||||
let atts = atts[stridx(atts, amat) + len(amat):]
|
||||
endwhile
|
||||
endif
|
||||
@@ -317,7 +318,8 @@ function! zencoding#lang#html#toString(settings, current, type, inline, filters,
|
||||
endif
|
||||
if len(current_name) > 0
|
||||
let str .= '<' . current_name
|
||||
for attr in keys(current.attr)
|
||||
for attr in current.attrs_order
|
||||
if (has_key(current.attr, attr))
|
||||
let val = current.attr[attr]
|
||||
if dollar_expr
|
||||
while val =~ '\$\([^#{]\|$\)'
|
||||
@@ -330,6 +332,7 @@ function! zencoding#lang#html#toString(settings, current, type, inline, filters,
|
||||
if attr == 'id' | let comment .= '#' . val | endif
|
||||
if attr == 'class' | let comment .= '.' . val | endif
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
if len(comment) > 0
|
||||
let str = "<!-- " . comment . " -->\n" . str
|
||||
|
||||
Reference in new issue
Block a user