forked from VimPlug/emmet-vim
Expand paren when type is css
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
"=============================================================================
|
"=============================================================================
|
||||||
" emmet.vim
|
" emmet.vim
|
||||||
" Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
|
" Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
|
||||||
" Last Change: 09-Sep-2013.
|
" Last Change: 26-Sep-2013.
|
||||||
|
|
||||||
let s:save_cpo = &cpo
|
let s:save_cpo = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
@@ -546,8 +546,13 @@ function! emmet#expandAbbr(mode, abbr) range
|
|||||||
let part = matchstr(line, '\(\S.*\)$')
|
let part = matchstr(line, '\(\S.*\)$')
|
||||||
let ftype = emmet#lang#exists(type) ? type : 'html'
|
let ftype = emmet#lang#exists(type) ? type : 'html'
|
||||||
let part = emmet#lang#{ftype}#findTokens(part)
|
let part = emmet#lang#{ftype}#findTokens(part)
|
||||||
|
let line = line[0: stridx(line, part) + len(part) - 1]
|
||||||
endif
|
endif
|
||||||
|
if col('.') == col('$')
|
||||||
|
let rest = ''
|
||||||
|
else
|
||||||
let rest = getline('.')[len(line):]
|
let rest = getline('.')[len(line):]
|
||||||
|
endif
|
||||||
let str = part
|
let str = part
|
||||||
let mx = '|\(\%(html\|haml\|slim\|e\|c\|fc\|xsl\|t\|\/[^ ]\+\)\s*,\{0,1}\s*\)*$'
|
let mx = '|\(\%(html\|haml\|slim\|e\|c\|fc\|xsl\|t\|\/[^ ]\+\)\s*,\{0,1}\s*\)*$'
|
||||||
if str =~ mx
|
if str =~ mx
|
||||||
@@ -618,7 +623,7 @@ function! emmet#expandAbbr(mode, abbr) range
|
|||||||
silent! foldopen
|
silent! foldopen
|
||||||
endif
|
endif
|
||||||
silent! exe "normal! v7h\"_s"
|
silent! exe "normal! v7h\"_s"
|
||||||
if col('.') == col('$') - 1
|
if col('.') == col('$')
|
||||||
call feedkeys('', 'n')
|
call feedkeys('', 'n')
|
||||||
endif
|
endif
|
||||||
let &selection = oldselection
|
let &selection = oldselection
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
function! emmet#lang#css#findTokens(str)
|
function! emmet#lang#css#findTokens(str)
|
||||||
return substitute(a:str, '^.*[;{]\s*', '', '')
|
return substitute(substitute(a:str, '^.*[;{]\s*', '', ''), '}\s*$', '', '')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! emmet#lang#css#parseIntoTree(abbr, type)
|
function! emmet#lang#css#parseIntoTree(abbr, type)
|
||||||
@@ -19,7 +19,7 @@ function! emmet#lang#css#parseIntoTree(abbr, type)
|
|||||||
" emmet
|
" emmet
|
||||||
let tokens = split(abbr, '+\ze[^+)!]')
|
let tokens = split(abbr, '+\ze[^+)!]')
|
||||||
let block = emmet#util#searchRegion("{", "}")
|
let block = emmet#util#searchRegion("{", "}")
|
||||||
if block[0] == [0,0] && block[1] == [0,0]
|
if type == 'css' && block[0] == [0,0] && block[1] == [0,0]
|
||||||
let current = emmet#newNode()
|
let current = emmet#newNode()
|
||||||
let current.snippet = abbr . " {\n\t${cursor}\n}"
|
let current.snippet = abbr . " {\n\t${cursor}\n}"
|
||||||
let current.name = ''
|
let current.name = ''
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
function! emmet#lang#sass#findTokens(str)
|
function! emmet#lang#sass#findTokens(str)
|
||||||
return emmet#lang#html#findTokens(a:str)
|
"let g:hoge = substitute(a:str, '^.*[;{@]\s*', '', '')
|
||||||
|
"return substitute(a:str, '^.*[;{@]\s*', '', '')
|
||||||
|
return a:str
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! emmet#lang#sass#parseIntoTree(abbr, type)
|
function! emmet#lang#sass#parseIntoTree(abbr, type)
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ endfunction
|
|||||||
function! emmet#util#searchRegion(start, end)
|
function! emmet#util#searchRegion(start, end)
|
||||||
let b = searchpairpos(a:start, '', a:end, 'bcnW')
|
let b = searchpairpos(a:start, '', a:end, 'bcnW')
|
||||||
if b == [0, 0]
|
if b == [0, 0]
|
||||||
return [searchpairpos(a:start, '', a:end, 'bnW'), searchpairpos(a:start, '\%#', a:end, 'ncW')]
|
return [searchpairpos(a:start, '', a:end, 'bnW'), searchpairpos(a:start, '\%#', a:end, 'nW')]
|
||||||
else
|
else
|
||||||
return [b, searchpairpos(a:start, '', a:end. '', 'nW')]
|
return [b, searchpairpos(a:start, '', a:end. '', 'nW')]
|
||||||
endif
|
endif
|
||||||
|
|||||||
70
unittest.vim
70
unittest.vim
@@ -612,72 +612,72 @@ finish
|
|||||||
'result': "float: left;",
|
'result': "float: left;",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "bg+$$$$",
|
'query': "{bg+$$$$}",
|
||||||
'result': "background: #FFF url($$$$) 0 0 no-repeat;",
|
'result': "{background: #FFF url($$$$) 0 0 no-repeat;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "bg+!$$$$",
|
'query': "{bg+!$$$$}",
|
||||||
'result': "background: #FFF url($$$$) 0 0 no-repeat !important;",
|
'result': "{background: #FFF url($$$$) 0 0 no-repeat !important;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "m$$$$",
|
'query': "{m$$$$}",
|
||||||
'result': "margin: $$$$;",
|
'result': "{margin: $$$$;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "m0.1p$$$$",
|
'query': "{m0.1p$$$$}",
|
||||||
'result': "margin: 0.1%;",
|
'result': "{margin: 0.1%;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "m1.0$$$$",
|
'query': "{m1.0$$$$}",
|
||||||
'result': "margin: 1.0em;",
|
'result': "{margin: 1.0em;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "m2$$$$",
|
'query': "{m2$$$$}",
|
||||||
'result': "margin: 2px;",
|
'result': "{margin: 2px;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "bdrs10$$$$",
|
'query': "{bdrs10$$$$}",
|
||||||
'result': "border-radius: 10px;",
|
'result': "{border-radius: 10px;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "-bdrs20$$$$",
|
'query': "{-bdrs20$$$$}",
|
||||||
'result': "-webkit-border-radius: 20px;\n-moz-border-radius: 20px;\nborder-radius: 20px;",
|
'result': "{-webkit-border-radius: 20px;\n-moz-border-radius: 20px;\nborder-radius: 20px;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "lg(top,#fff,#000)$$$$",
|
'query': "{lg(top,#fff,#000)$$$$}",
|
||||||
'result': "background-image: -webkit-gradient(top, 0 0, 0 100, from(#fff), to(#000));\nbackground-image: -webkit-linear-gradient(#fff, #000);\nbackground-image: -moz-linear-gradient(#fff, #000);\nbackground-image: -o-linear-gradient(#fff, #000);\nbackground-image: linear-gradient(#fff, #000);\n",
|
'result': "{background-image: -webkit-gradient(top, 0 0, 0 100, from(#fff), to(#000));\nbackground-image: -webkit-linear-gradient(#fff, #000);\nbackground-image: -moz-linear-gradient(#fff, #000);\nbackground-image: -o-linear-gradient(#fff, #000);\nbackground-image: linear-gradient(#fff, #000);\n}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "m10-5-0$$$$",
|
'query': "{m10-5-0$$$$}",
|
||||||
'result': "margin: 10px 5px 0;",
|
'result': "{margin: 10px 5px 0;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "m-10--5$$$$",
|
'query': "{m-10--5$$$$}",
|
||||||
'result': "margin: -10px -5px;",
|
'result': "{margin: -10px -5px;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "m10-auto$$$$",
|
'query': "{m10-auto$$$$}",
|
||||||
'result': "margin: 10px auto;",
|
'result': "{margin: 10px auto;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "w100p$$$$",
|
'query': "{w100p$$$$}",
|
||||||
'result': "width: 100%;",
|
'result': "{width: 100%;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "h50e$$$$",
|
'query': "{h50e$$$$}",
|
||||||
'result': "height: 50em;",
|
'result': "{height: 50em;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "(bg+)+c$$$$",
|
'query': "{(bg+)+c$$$$}",
|
||||||
'result': "background: #FFF url($$$$) 0 0 no-repeat;\ncolor: #000;",
|
'result': "{background: #FFF url($$$$) 0 0 no-repeat;\ncolor: #000;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "m0+bgi+bg++p0$$$$",
|
'query': "{m0+bgi+bg++p0$$$$}",
|
||||||
'result': "margin: 0;\nbackground-image: url($$$$);\nbackground: #FFF url() 0 0 no-repeat;\npadding: 0;",
|
'result': "{margin: 0;\nbackground-image: url($$$$);\nbackground: #FFF url() 0 0 no-repeat;\npadding: 0;}",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'query': "borle$$$$",
|
'query': "{borle$$$$}",
|
||||||
'result': "border-left: $$$$;",
|
'result': "{border-left: $$$$;}",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -852,7 +852,7 @@ finish
|
|||||||
'name': 'expand abbreviation',
|
'name': 'expand abbreviation',
|
||||||
'tests': [
|
'tests': [
|
||||||
{
|
{
|
||||||
'query': "@i",
|
'query': "@i$$$$",
|
||||||
'result': "@import url()",
|
'result': "@import url()",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user