diff --git a/autoload/zencoding/lang/haml.vim b/autoload/zencoding/lang/haml.vim index 1e1f823..e22cde2 100644 --- a/autoload/zencoding/lang/haml.vim +++ b/autoload/zencoding/lang/haml.vim @@ -138,7 +138,7 @@ function! zencoding#lang#haml#encodeImage() endfunction function! zencoding#lang#haml#parseTag(tag) - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'attrs_order': ['id', 'class'] } + let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'attrs_order': [] } let mx = '%\([a-zA-Z][a-zA-Z0-9]*\)\s*\%({\(.*\)}\)' let match = matchstr(a:tag, mx) let current.name = substitute(match, mx, '\1', 'i') @@ -153,9 +153,9 @@ function! zencoding#lang#haml#parseTag(tag) let name = attr_match[1] let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] let current.attr[name] = value + let current.attrs_order += [name] let attrs = attrs[stridx(attrs, match) + len(match):] endwhile - let current.attrs_order = keys(current.attr) return current endfunction diff --git a/autoload/zencoding/lang/html.vim b/autoload/zencoding/lang/html.vim index 56ca679..d48052f 100644 --- a/autoload/zencoding/lang/html.vim +++ b/autoload/zencoding/lang/html.vim @@ -454,7 +454,7 @@ function! zencoding#lang#html#encodeImage() endfunction function! zencoding#lang#html#parseTag(tag) - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'attrs_order': ['id', 'class'] } + let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'attrs_order': [] } let mx = '<\([a-zA-Z][a-zA-Z0-9]*\)\(\%(\s[a-zA-Z][a-zA-Z0-9]\+=\%([^"'' \t]\+\|"[^"]\{-}"\|''[^'']\{-}''\)\s*\)*\)\(/\{0,1}\)>' let match = matchstr(a:tag, mx) let current.name = substitute(match, mx, '\1', 'i') @@ -469,9 +469,9 @@ function! zencoding#lang#html#parseTag(tag) let name = attr_match[1] let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] let current.attr[name] = value + let current.attrs_order += [name] let attrs = attrs[stridx(attrs, match) + len(match):] endwhile - let current.attrs_order = keys(current.attr) return current endfunction diff --git a/autoload/zencoding/lang/slim.vim b/autoload/zencoding/lang/slim.vim index 3c22465..e8f95da 100644 --- a/autoload/zencoding/lang/slim.vim +++ b/autoload/zencoding/lang/slim.vim @@ -116,7 +116,7 @@ function! zencoding#lang#slim#encodeImage() endfunction function! zencoding#lang#slim#parseTag(tag) - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'attrs_order': ['id', 'class'] } + let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'attrs_order': [] } let mx = '\([a-zA-Z][a-zA-Z0-9]*\)\s\+\(.*\)' let match = matchstr(a:tag, mx) let current.name = substitute(match, mx, '\1', 'i') @@ -131,9 +131,9 @@ function! zencoding#lang#slim#parseTag(tag) let name = attr_match[1] let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] let current.attr[name] = value + let current.attrs_order += [name] let attrs = attrs[stridx(attrs, match) + len(match):] endwhile - let current.attrs_order = keys(current.attr) return current endfunction