@@ -40,6 +40,51 @@ describe 'SCSS grammar', ->
4040 expect (tokens[0 ]).toEqual value : ' @' , scopes : [' source.css.scss' , ' meta.at-rule.at-root.scss' , ' keyword.control.at-rule.at-root.scss' , ' punctuation.definition.keyword.scss' ]
4141 expect (tokens[1 ]).toEqual value : ' at-root' , scopes : [' source.css.scss' , ' meta.at-rule.at-root.scss' , ' keyword.control.at-rule.at-root.scss' ]
4242
43+ describe ' @mixin' , ->
44+ it ' tokenizes solitary @mixin correctly' , ->
45+ {tokens } = grammar .tokenizeLine ' @mixin'
46+
47+ expect (tokens[0 ]).toEqual value : ' @' , scopes : [' source.css.scss' , ' meta.at-rule.mixin.scss' , ' keyword.control.at-rule.mixin.scss' , ' punctuation.definition.keyword.scss' ]
48+ expect (tokens[1 ]).toEqual value : ' mixin' , scopes : [' source.css.scss' , ' meta.at-rule.mixin.scss' , ' keyword.control.at-rule.mixin.scss' ]
49+
50+ it ' tokenizes @mixin with no arguments correctly' , ->
51+ {tokens } = grammar .tokenizeLine ' @mixin media{}'
52+
53+ expect (tokens[0 ]).toEqual value : ' @' , scopes : [' source.css.scss' , ' meta.at-rule.mixin.scss' , ' keyword.control.at-rule.mixin.scss' , ' punctuation.definition.keyword.scss' ]
54+ expect (tokens[1 ]).toEqual value : ' mixin' , scopes : [' source.css.scss' , ' meta.at-rule.mixin.scss' , ' keyword.control.at-rule.mixin.scss' ]
55+ expect (tokens[3 ]).toEqual value : ' media' , scopes : [' source.css.scss' , ' meta.at-rule.mixin.scss' , ' entity.name.function.scss' ]
56+ expect (tokens[4 ]).toEqual value : ' {' , scopes : [' source.css.scss' , ' meta.property-list.scss' , ' punctuation.section.property-list.begin.bracket.curly.scss' ]
57+
58+ it ' tokenizes @mixin with arguments correctly' , ->
59+ {tokens } = grammar .tokenizeLine ' @mixin media ($width){}'
60+
61+ expect (tokens[3 ]).toEqual value : ' media' , scopes : [' source.css.scss' , ' meta.at-rule.mixin.scss' , ' entity.name.function.scss' ]
62+ expect (tokens[5 ]).toEqual value : ' (' , scopes : [' source.css.scss' , ' meta.at-rule.mixin.scss' , ' punctuation.definition.parameters.begin.bracket.round.scss' ]
63+ expect (tokens[7 ]).toEqual value : ' )' , scopes : [' source.css.scss' , ' meta.at-rule.mixin.scss' , ' punctuation.definition.parameters.end.bracket.round.scss' ]
64+ expect (tokens[8 ]).toEqual value : ' {' , scopes : [' source.css.scss' , ' meta.property-list.scss' , ' punctuation.section.property-list.begin.bracket.curly.scss' ]
65+
66+ describe ' @namespace' , ->
67+ it ' tokenizes solitary @namespace correctly' , ->
68+ {tokens } = grammar .tokenizeLine ' @namespace'
69+
70+ expect (tokens[0 ]).toEqual value : ' @' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' keyword.control.at-rule.namespace.scss' , ' punctuation.definition.keyword.scss' ]
71+ expect (tokens[1 ]).toEqual value : ' namespace' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' keyword.control.at-rule.namespace.scss' ]
72+
73+ it ' tokenizes default namespace definition with url() correctly' , ->
74+ {tokens } = grammar .tokenizeLine ' @namespace url(XML-namespace-URL);'
75+
76+ expect (tokens[0 ]).toEqual value : ' @' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' keyword.control.at-rule.namespace.scss' , ' punctuation.definition.keyword.scss' ]
77+ expect (tokens[1 ]).toEqual value : ' namespace' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' keyword.control.at-rule.namespace.scss' ]
78+ expect (tokens[3 ]).toEqual value : ' url' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' support.function.misc.scss' ]
79+
80+ it ' tokenizes namespace prefix definition with url() correctly' , ->
81+ {tokens } = grammar .tokenizeLine ' @namespace prefix url(XML-namespace-URL);'
82+
83+ expect (tokens[0 ]).toEqual value : ' @' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' keyword.control.at-rule.namespace.scss' , ' punctuation.definition.keyword.scss' ]
84+ expect (tokens[1 ]).toEqual value : ' namespace' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' keyword.control.at-rule.namespace.scss' ]
85+ expect (tokens[3 ]).toEqual value : ' prefix' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' entity.name.namespace-prefix.scss' ]
86+ expect (tokens[5 ]).toEqual value : ' url' , scopes : [' source.css.scss' , ' meta.at-rule.namespace.scss' , ' support.function.misc.scss' ]
87+
4388 describe ' @page' , ->
4489 it ' tokenizes it correctly' , ->
4590 tokens = grammar .tokenizeLines """
0 commit comments