forked from VimPlug/emmet-vim
@@ -196,6 +196,18 @@ function! s:itemno(itemno, current) abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:localvar(current, key) abort
|
||||
let val = ''
|
||||
let cur = a:current
|
||||
while !empty(cur)
|
||||
if has_key(cur, 'variables') && has_key(cur.variables, a:key)
|
||||
return cur.variables[a:key]
|
||||
endif
|
||||
let cur = cur.parent
|
||||
endwhile
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! emmet#toString(...) abort
|
||||
let current = a:1
|
||||
if a:0 > 1
|
||||
@@ -291,6 +303,7 @@ function! emmet#toString(...) abort
|
||||
let inner = current.value[1:-2]
|
||||
endif
|
||||
let inner = substitute(inner, "\n", "\n" . indent, 'g')
|
||||
let str = substitute(str, '\${\(\w\+\)}', '\=s:localvar(current, submatch(1))', '')
|
||||
let str = substitute(str, '\${child}', inner, '')
|
||||
endif
|
||||
let itemno = itemno + 1
|
||||
|
||||
@@ -94,6 +94,7 @@ function! emmet#lang#html#parseIntoTree(abbr, type) abort
|
||||
let abbr = rabbr
|
||||
|
||||
let root = emmet#newNode()
|
||||
let root['variables'] = {}
|
||||
let parent = root
|
||||
let last = root
|
||||
let pos = []
|
||||
@@ -257,9 +258,11 @@ function! emmet#lang#html#parseIntoTree(abbr, type) abort
|
||||
endif
|
||||
if item[0] ==# '#'
|
||||
let current.attr.id = item[1:]
|
||||
let root['variables']['id'] = current.attr.id
|
||||
endif
|
||||
if item[0] ==# '.'
|
||||
let current.attr.class = substitute(item[1:], '\.', ' ', 'g')
|
||||
let root['variables']['class'] = current.attr.class
|
||||
endif
|
||||
if item[0] ==# '['
|
||||
let atts = item[1:-2]
|
||||
|
||||
Reference in New Issue
Block a user