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