mirror of
https://github.com/mattn/emmet-vim.git
synced 2026-02-22 08:28:27 +08:00
wip
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
function! emmet#lang#css#findTokens(str)
|
||||
function! emmet#lang#css#findTokens(str) abort
|
||||
return substitute(substitute(a:str, '^.*[;{]\s*', '', ''), '}\s*$', '', '')
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||
function! emmet#lang#css#parseIntoTree(abbr, type) abort
|
||||
let abbr = a:abbr
|
||||
let type = a:type
|
||||
let prefix = 0
|
||||
@@ -17,8 +17,8 @@ function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||
|
||||
" emmet
|
||||
let tokens = split(abbr, '+\ze[^+)!]')
|
||||
let block = emmet#util#searchRegion("{", "}")
|
||||
if abbr !~ '^@' && emmet#getBaseType(type) == 'css' && type != 'sass' && block[0] == [0,0] && block[1] == [0,0]
|
||||
let block = emmet#util#searchRegion('{', '}')
|
||||
if abbr !~# '^@' && emmet#getBaseType(type) ==# 'css' && type !=# 'sass' && block[0] ==# [0,0] && block[1] ==# [0,0]
|
||||
let current = emmet#newNode()
|
||||
let current.snippet = abbr . " {\n" . indent . "${cursor}\n}"
|
||||
let current.name = ''
|
||||
@@ -29,7 +29,7 @@ function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||
let prop = matchlist(token, '^\(-\{0,1}[a-zA-Z]\+\|[a-zA-Z0-9]\++\{0,1}\|([a-zA-Z0-9]\++\{0,1})\)\(\%([0-9.-]\+[pe]\{0,1}-\{0,1}\|-auto\)*\)$')
|
||||
if len(prop)
|
||||
let token = substitute(prop[1], '^(\(.*\))', '\1', '')
|
||||
if token =~ '^-'
|
||||
if token =~# '^-'
|
||||
let prefix = 1
|
||||
let token = token[1:]
|
||||
endif
|
||||
@@ -38,18 +38,18 @@ function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||
if len(value) > 0
|
||||
let value .= ' '
|
||||
endif
|
||||
if token =~ '^[z]'
|
||||
if token =~# '^[z]'
|
||||
" TODO
|
||||
let value .= substitute(v, '[^0-9.]*$', '', '')
|
||||
elseif v =~ 'p$'
|
||||
elseif v =~# 'p$'
|
||||
let value .= substitute(v, 'p$', '%', '')
|
||||
elseif v =~ 'e$'
|
||||
elseif v =~# 'e$'
|
||||
let value .= substitute(v, 'e$', 'em', '')
|
||||
elseif v =~ '\.'
|
||||
elseif v =~# '\.'
|
||||
let value .= v . 'em'
|
||||
elseif v == 'auto'
|
||||
elseif v ==# 'auto'
|
||||
let value .= v
|
||||
elseif v == '0'
|
||||
elseif v ==# '0'
|
||||
let value .= '0'
|
||||
else
|
||||
let value .= v . 'px'
|
||||
@@ -58,7 +58,7 @@ function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||
endif
|
||||
|
||||
let tag_name = token
|
||||
if tag_name =~ '.!$'
|
||||
if tag_name =~# '.!$'
|
||||
let tag_name = tag_name[:-2]
|
||||
let important = 1
|
||||
else
|
||||
@@ -150,7 +150,7 @@ function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||
call add(root.child, deepcopy(current))
|
||||
let current.snippet = snippet
|
||||
call add(root.child, current)
|
||||
elseif token =~ '^c#\([0-9a-fA-F]\{3}\|[0-9a-fA-F]\{6}\)\(\.[0-9]\+\)\?'
|
||||
elseif token =~# '^c#\([0-9a-fA-F]\{3}\|[0-9a-fA-F]\{6}\)\(\.[0-9]\+\)\?'
|
||||
let cs = split(token, '\.')
|
||||
let current.name = ''
|
||||
let [r,g,b] = [0,0,0]
|
||||
@@ -171,7 +171,7 @@ function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||
let current.snippet = printf('color:rgb(%d, %d, %d, %s);', r, g, b, string(str2float('0.'.cs[1])))
|
||||
endif
|
||||
call add(root.child, current)
|
||||
elseif token =~ '^c#'
|
||||
elseif token =~# '^c#'
|
||||
let current.name = ''
|
||||
let current.snippet = 'color:\${cursor};'
|
||||
call add(root.child, current)
|
||||
@@ -183,7 +183,7 @@ function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||
return root
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#toString(settings, current, type, inline, filters, itemno, indent)
|
||||
function! emmet#lang#css#toString(settings, current, type, inline, filters, itemno, indent) abort
|
||||
let current = a:current
|
||||
let value = current.value[1:-2]
|
||||
if emmet#useFilter(a:filters, 'fc')
|
||||
@@ -197,7 +197,7 @@ function! emmet#lang#css#toString(settings, current, type, inline, filters, item
|
||||
return value
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#imageSize()
|
||||
function! emmet#lang#css#imageSize() abort
|
||||
let img_region = emmet#util#searchRegion('{', '}')
|
||||
if !emmet#util#regionIsValid(img_region) || !emmet#util#cursorInRegion(img_region)
|
||||
return
|
||||
@@ -205,9 +205,9 @@ function! emmet#lang#css#imageSize()
|
||||
let content = emmet#util#getContent(img_region)
|
||||
let fn = matchstr(content, '\<url(\zs[^)]\+\ze)')
|
||||
let fn = substitute(fn, '[''" \t]', '', 'g')
|
||||
if fn =~ '^\s*$'
|
||||
if fn =~# '^\s*$'
|
||||
return
|
||||
elseif fn !~ '^\(/\|http\)'
|
||||
elseif fn !~# '^\(/\|http\)'
|
||||
let fn = simplify(expand('%:h') . '/' . fn)
|
||||
endif
|
||||
let [width, height] = emmet#util#getImageSize(fn)
|
||||
@@ -215,12 +215,12 @@ function! emmet#lang#css#imageSize()
|
||||
return
|
||||
endif
|
||||
let indent = emmet#getIndentation('css')
|
||||
if content =~ '.*\<width\s*:[^;]*;.*'
|
||||
if content =~# '.*\<width\s*:[^;]*;.*'
|
||||
let content = substitute(content, '\<width\s*:[^;]*;', 'width: ' . width . 'px;', '')
|
||||
else
|
||||
let content = substitute(content, '}', indent . 'width: ' . width . "px;\n}", '')
|
||||
endif
|
||||
if content =~ '.*\<height\s*:[^;]*;.*'
|
||||
if content =~# '.*\<height\s*:[^;]*;.*'
|
||||
let content = substitute(content, '\<height\s*:[^;]*;', 'height: ' . height . 'px;', '')
|
||||
else
|
||||
let content = substitute(content, '}', indent . 'height: ' . height . "px;\n}", '')
|
||||
@@ -228,17 +228,17 @@ function! emmet#lang#css#imageSize()
|
||||
call emmet#util#setContent(img_region, content)
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#encodeImage()
|
||||
function! emmet#lang#css#encodeImage() abort
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#parseTag(tag)
|
||||
function! emmet#lang#css#parseTag(tag) abort
|
||||
return {}
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#toggleComment()
|
||||
function! emmet#lang#css#toggleComment() abort
|
||||
let line = getline('.')
|
||||
let mx = '^\(\s*\)/\*\s*\(.*\)\s*\*/\s*$'
|
||||
if line =~ '{\s*$'
|
||||
if line =~# '{\s*$'
|
||||
let block = emmet#util#searchRegion('/\*', '\*/\zs')
|
||||
if emmet#util#regionIsValid(block)
|
||||
let content = emmet#util#getContent(block)
|
||||
@@ -251,7 +251,7 @@ function! emmet#lang#css#toggleComment()
|
||||
endif
|
||||
endif
|
||||
else
|
||||
if line =~ mx
|
||||
if line =~# mx
|
||||
let space = substitute(matchstr(line, mx), mx, '\1', '')
|
||||
let line = substitute(matchstr(line, mx), mx, '\2', '')
|
||||
let line = space . substitute(line, '^\s*\|\s*$', '\1', 'g')
|
||||
@@ -263,7 +263,7 @@ function! emmet#lang#css#toggleComment()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#balanceTag(flag) range
|
||||
function! emmet#lang#css#balanceTag(flag) range abort
|
||||
if a:flag == -2 || a:flag == 2
|
||||
let curpos = [0, line("'<"), col("'<"), 0]
|
||||
else
|
||||
@@ -281,7 +281,7 @@ function! emmet#lang#css#balanceTag(flag) range
|
||||
else
|
||||
if a:flag > 0
|
||||
let content = emmet#util#getContent(block)
|
||||
if content !~ '^{.*}$'
|
||||
if content !~# '^{.*}$'
|
||||
let block = emmet#util#searchRegion('{', '}')
|
||||
if emmet#util#regionIsValid(block)
|
||||
call emmet#util#selectRegion(block)
|
||||
@@ -301,17 +301,17 @@ function! emmet#lang#css#balanceTag(flag) range
|
||||
endif
|
||||
endif
|
||||
if a:flag == -2 || a:flag == 2
|
||||
silent! exe "normal! gv"
|
||||
silent! exe 'normal! gv'
|
||||
else
|
||||
call setpos('.', curpos)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#moveNextPrevItem(flag)
|
||||
function! emmet#lang#css#moveNextPrevItem(flag) abort
|
||||
return emmet#lang#css#moveNextPrev(a:flag)
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#moveNextPrev(flag)
|
||||
function! emmet#lang#css#moveNextPrev(flag) abort
|
||||
let pos = search('""\|()\|\(:\s*\zs$\)', a:flag ? 'Wbp' : 'Wp')
|
||||
if pos == 2
|
||||
startinsert!
|
||||
@@ -321,10 +321,10 @@ function! emmet#lang#css#moveNextPrev(flag)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#splitJoinTag()
|
||||
function! emmet#lang#css#splitJoinTag() abort
|
||||
" nothing to do
|
||||
endfunction
|
||||
|
||||
function! emmet#lang#css#removeTag()
|
||||
function! emmet#lang#css#removeTag() abort
|
||||
" nothing to do
|
||||
endfunction
|
||||
|
||||
Reference in New Issue
Block a user