|
@@ -0,0 +1,2054 @@
|
|
|
+/*---------------------------------------------------------------------------------------------
|
|
|
+ * Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
+ * Licensed under the MIT License. See License.txt in the project root for license information.
|
|
|
+ *--------------------------------------------------------------------------------------------*/
|
|
|
+'use strict';
|
|
|
+
|
|
|
+import {testTokenization as actualTestTokenization, ITestItem} from './testRunner';
|
|
|
+
|
|
|
+function testTokenization(_language:string|string[], tests:ITestItem[][]): void {
|
|
|
+ tests = tests.map(t => {
|
|
|
+ return t.map(t => {
|
|
|
+ return {
|
|
|
+ line: t.line.replace(/\n/g, ' '),
|
|
|
+ tokens: t.tokens
|
|
|
+ };
|
|
|
+ });
|
|
|
+ });
|
|
|
+ actualTestTokenization(_language, tests);
|
|
|
+}
|
|
|
+
|
|
|
+testTokenization('scss', [
|
|
|
+ // Nested Rules
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '#main {\n' +
|
|
|
+ ' width: 97%;\n' +
|
|
|
+ ' p, div {\n' +
|
|
|
+ ' font-size: 2em;\n' +
|
|
|
+ ' a { font-weight: bold; }\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' pre { font-size: 3em; }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* '#main' */,
|
|
|
+ { startIndex: 5, type: '' },
|
|
|
+ { startIndex: 6, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 7, type: '' },
|
|
|
+ { startIndex: 10, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 16, type: '' },
|
|
|
+ { startIndex: 17, type: 'number.scss' } /* '97%' */,
|
|
|
+ { startIndex: 20, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 21, type: '' },
|
|
|
+ { startIndex: 24, type: 'tag.scss' } /* 'p' */,
|
|
|
+ { startIndex: 25, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 26, type: '' },
|
|
|
+ { startIndex: 27, type: 'tag.scss' } /* 'div' */,
|
|
|
+ { startIndex: 30, type: '' },
|
|
|
+ { startIndex: 31, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 32, type: '' },
|
|
|
+ { startIndex: 37, type: 'attribute.name.scss' } /* 'font-size:' */,
|
|
|
+ { startIndex: 47, type: '' },
|
|
|
+ { startIndex: 48, type: 'number.scss' } /* '2em' */,
|
|
|
+ { startIndex: 51, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 52, type: '' },
|
|
|
+ { startIndex: 57, type: 'tag.scss' } /* 'a' */,
|
|
|
+ { startIndex: 58, type: '' },
|
|
|
+ { startIndex: 59, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 60, type: '' },
|
|
|
+ { startIndex: 61, type: 'attribute.name.scss' } /* 'font-weight:' */,
|
|
|
+ { startIndex: 73, type: '' },
|
|
|
+ { startIndex: 74, type: 'attribute.value.scss' } /* 'bold' */,
|
|
|
+ { startIndex: 78, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 79, type: '' },
|
|
|
+ { startIndex: 80, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 81, type: '' },
|
|
|
+ { startIndex: 84, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 85, type: '' },
|
|
|
+ { startIndex: 88, type: 'tag.scss' } /* 'pre' */,
|
|
|
+ { startIndex: 91, type: '' },
|
|
|
+ { startIndex: 92, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 93, type: '' },
|
|
|
+ { startIndex: 94, type: 'attribute.name.scss' } /* 'font-size:' */,
|
|
|
+ { startIndex: 104, type: '' },
|
|
|
+ { startIndex: 105, type: 'number.scss' } /* '3em' */,
|
|
|
+ { startIndex: 108, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 109, type: '' },
|
|
|
+ { startIndex: 110, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 111, type: '' },
|
|
|
+ { startIndex: 112, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Parent selector
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '#main {\n' +
|
|
|
+ ' color: black;\n' +
|
|
|
+ ' a {\n' +
|
|
|
+ ' font-weight: bold;\n' +
|
|
|
+ ' &:hover { color: red; }\n' +
|
|
|
+ ' }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* '#main' */,
|
|
|
+ { startIndex: 5, type: '' },
|
|
|
+ { startIndex: 6, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 7, type: '' },
|
|
|
+ { startIndex: 10, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 16, type: '' },
|
|
|
+ { startIndex: 17, type: 'attribute.value.scss' } /* 'black' */,
|
|
|
+ { startIndex: 22, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 23, type: '' },
|
|
|
+ { startIndex: 26, type: 'tag.scss' } /* 'a' */,
|
|
|
+ { startIndex: 27, type: '' },
|
|
|
+ { startIndex: 28, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 29, type: '' },
|
|
|
+ { startIndex: 34, type: 'attribute.name.scss' } /* 'font-weight:' */,
|
|
|
+ { startIndex: 46, type: '' },
|
|
|
+ { startIndex: 47, type: 'attribute.value.scss' } /* 'bold' */,
|
|
|
+ { startIndex: 51, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 52, type: '' },
|
|
|
+ { startIndex: 57, type: 'tag.scss' } /* '&:hover' */,
|
|
|
+ { startIndex: 64, type: '' },
|
|
|
+ { startIndex: 65, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 66, type: '' },
|
|
|
+ { startIndex: 67, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 73, type: '' },
|
|
|
+ { startIndex: 74, type: 'attribute.value.scss' } /* 'red' */,
|
|
|
+ { startIndex: 77, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 78, type: '' },
|
|
|
+ { startIndex: 79, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 80, type: '' },
|
|
|
+ { startIndex: 83, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 84, type: '' },
|
|
|
+ { startIndex: 85, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Nested Properties
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '.funky {\n' +
|
|
|
+ ' font: 2px/3px {\n' +
|
|
|
+ ' family: fantasy;\n' +
|
|
|
+ ' size: 30em;\n' +
|
|
|
+ ' weight: bold;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' color: black;\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* '.funky' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 8, type: '' },
|
|
|
+ { startIndex: 11, type: 'attribute.name.scss' } /* 'font:' */,
|
|
|
+ { startIndex: 16, type: '' },
|
|
|
+ { startIndex: 17, type: 'number.scss' } /* '2px' */,
|
|
|
+ { startIndex: 20, type: 'operator.scss' } /* '/' */,
|
|
|
+ { startIndex: 21, type: 'number.scss' } /* '3px' */,
|
|
|
+ { startIndex: 24, type: '' },
|
|
|
+ { startIndex: 25, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 26, type: '' },
|
|
|
+ { startIndex: 31, type: 'attribute.name.scss' } /* 'family:' */,
|
|
|
+ { startIndex: 38, type: '' },
|
|
|
+ { startIndex: 39, type: 'attribute.value.scss' } /* 'fantasy' */,
|
|
|
+ { startIndex: 46, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 47, type: '' },
|
|
|
+ { startIndex: 52, type: 'attribute.name.scss' } /* 'size:' */,
|
|
|
+ { startIndex: 57, type: '' },
|
|
|
+ { startIndex: 58, type: 'number.scss' } /* '30em' */,
|
|
|
+ { startIndex: 62, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 63, type: '' },
|
|
|
+ { startIndex: 68, type: 'attribute.name.scss' } /* 'weight:' */,
|
|
|
+ { startIndex: 75, type: '' },
|
|
|
+ { startIndex: 76, type: 'attribute.value.scss' } /* 'bold' */,
|
|
|
+ { startIndex: 80, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 81, type: '' },
|
|
|
+ { startIndex: 84, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 85, type: '' },
|
|
|
+ { startIndex: 88, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 94, type: '' },
|
|
|
+ { startIndex: 95, type: 'attribute.value.scss' } /* 'black' */,
|
|
|
+ { startIndex: 100, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 101, type: '' },
|
|
|
+ { startIndex: 102, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Nesting name conflicts
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ 'tr.default {\n' +
|
|
|
+ ' foo: { /* properti*/\n' +
|
|
|
+ ' foo : 1;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' foo: 1px; /* ru*/\n' +
|
|
|
+ ' foo.bar { /* select*/\n' +
|
|
|
+ ' foo : 1;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' foo:bar { /* select*/\n' +
|
|
|
+ ' foo : 1;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' foo: 1px; /* ru*/\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* 'tr.default' */,
|
|
|
+ { startIndex: 10, type: '' },
|
|
|
+ { startIndex: 11, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 12, type: '' },
|
|
|
+ { startIndex: 15, type: 'attribute.name.scss' } /* 'foo:' */,
|
|
|
+ { startIndex: 19, type: '' },
|
|
|
+ { startIndex: 20, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 21, type: '' },
|
|
|
+ { startIndex: 22, type: 'comment.scss' } /* '// properties' */,
|
|
|
+ { startIndex: 35, type: '' },
|
|
|
+ { startIndex: 40, type: 'attribute.name.scss' } /* 'foo :' */,
|
|
|
+ { startIndex: 45, type: '' },
|
|
|
+ { startIndex: 46, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 47, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 48, type: '' },
|
|
|
+ { startIndex: 51, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 52, type: '' },
|
|
|
+ { startIndex: 55, type: 'attribute.name.scss' } /* 'foo:' */,
|
|
|
+ { startIndex: 59, type: '' },
|
|
|
+ { startIndex: 60, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 63, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 64, type: '' },
|
|
|
+ { startIndex: 65, type: 'comment.scss' } /* '// rule' */,
|
|
|
+ { startIndex: 72, type: '' },
|
|
|
+ { startIndex: 75, type: 'tag.scss' } /* 'foo.bar' */,
|
|
|
+ { startIndex: 82, type: '' },
|
|
|
+ { startIndex: 83, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 84, type: '' },
|
|
|
+ { startIndex: 85, type: 'comment.scss' } /* '// selector' */,
|
|
|
+ { startIndex: 96, type: '' },
|
|
|
+ { startIndex: 101, type: 'attribute.name.scss' } /* 'foo :' */,
|
|
|
+ { startIndex: 106, type: '' },
|
|
|
+ { startIndex: 107, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 108, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 109, type: '' },
|
|
|
+ { startIndex: 112, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 113, type: '' },
|
|
|
+ { startIndex: 116, type: 'tag.scss' } /* 'foo:bar' */,
|
|
|
+ { startIndex: 123, type: '' },
|
|
|
+ { startIndex: 124, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 125, type: '' },
|
|
|
+ { startIndex: 126, type: 'comment.scss' } /* '// selector' */,
|
|
|
+ { startIndex: 137, type: '' },
|
|
|
+ { startIndex: 142, type: 'attribute.name.scss' } /* 'foo :' */,
|
|
|
+ { startIndex: 147, type: '' },
|
|
|
+ { startIndex: 148, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 149, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 150, type: '' },
|
|
|
+ { startIndex: 153, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 154, type: '' },
|
|
|
+ { startIndex: 157, type: 'attribute.name.scss' } /* 'foo:' */,
|
|
|
+ { startIndex: 161, type: '' },
|
|
|
+ { startIndex: 162, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 165, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 166, type: '' },
|
|
|
+ { startIndex: 167, type: 'comment.scss' } /* '// rule' */,
|
|
|
+ { startIndex: 174, type: '' },
|
|
|
+ { startIndex: 175, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Missing semicolons
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ 'tr.default {\n' +
|
|
|
+ ' foo.bar {\n' +
|
|
|
+ ' $foo: 1px\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' foo: {\n' +
|
|
|
+ ' foo : white\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' foo.bar1 {\n' +
|
|
|
+ ' @extend tr.default\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' foo.bar2 {\n' +
|
|
|
+ ' @import "compass"\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' bar: black\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* 'tr.default' */,
|
|
|
+ { startIndex: 10, type: '' },
|
|
|
+ { startIndex: 11, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 12, type: '' },
|
|
|
+ { startIndex: 15, type: 'tag.scss' } /* 'foo.bar' */,
|
|
|
+ { startIndex: 22, type: '' },
|
|
|
+ { startIndex: 23, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 24, type: '' },
|
|
|
+ { startIndex: 29, type: 'variable.decl.scss' } /* '$foo:' */,
|
|
|
+ { startIndex: 34, type: '' },
|
|
|
+ { startIndex: 35, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 38, type: '' },
|
|
|
+ { startIndex: 41, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 42, type: '' },
|
|
|
+ { startIndex: 45, type: 'attribute.name.scss' } /* 'foo:' */,
|
|
|
+ { startIndex: 49, type: '' },
|
|
|
+ { startIndex: 50, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 51, type: '' },
|
|
|
+ { startIndex: 56, type: 'attribute.name.scss' } /* 'foo :' */,
|
|
|
+ { startIndex: 61, type: '' },
|
|
|
+ { startIndex: 62, type: 'attribute.value.scss' } /* 'white' */,
|
|
|
+ { startIndex: 67, type: '' },
|
|
|
+ { startIndex: 70, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 71, type: '' },
|
|
|
+ { startIndex: 74, type: 'tag.scss' } /* 'foo.bar1' */,
|
|
|
+ { startIndex: 82, type: '' },
|
|
|
+ { startIndex: 83, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 84, type: '' },
|
|
|
+ { startIndex: 89, type: 'keyword.scss' } /* '@extend' */,
|
|
|
+ { startIndex: 96, type: '' },
|
|
|
+ { startIndex: 97, type: 'tag.scss' } /* 'tr.default' */,
|
|
|
+ { startIndex: 107, type: '' },
|
|
|
+ { startIndex: 110, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 111, type: '' },
|
|
|
+ { startIndex: 114, type: 'tag.scss' } /* 'foo.bar2' */,
|
|
|
+ { startIndex: 122, type: '' },
|
|
|
+ { startIndex: 123, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 124, type: '' },
|
|
|
+ { startIndex: 129, type: 'keyword.scss' } /* '@import' */,
|
|
|
+ { startIndex: 136, type: '' },
|
|
|
+ { startIndex: 137, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 138, type: 'string.scss' } /* 'compass' */,
|
|
|
+ { startIndex: 145, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 146, type: '' },
|
|
|
+ { startIndex: 149, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 150, type: '' },
|
|
|
+ { startIndex: 153, type: 'attribute.name.scss' } /* 'bar:' */,
|
|
|
+ { startIndex: 157, type: '' },
|
|
|
+ { startIndex: 158, type: 'attribute.value.scss' } /* 'black' */,
|
|
|
+ { startIndex: 163, type: '' },
|
|
|
+ { startIndex: 164, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Rules without whitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ 'legend {foo{a:s}margin-top:0;margin-bottom:#123;margin-top:s(1)}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* 'legend' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 8, type: 'tag.scss' } /* 'foo' */,
|
|
|
+ { startIndex: 11, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 12, type: 'attribute.name.scss' } /* 'a:' */,
|
|
|
+ { startIndex: 14, type: 'attribute.value.scss' } /* 's' */,
|
|
|
+ { startIndex: 15, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 16, type: 'attribute.name.scss' } /* 'margin-top:' */,
|
|
|
+ { startIndex: 27, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 28, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 29, type: 'attribute.name.scss' } /* 'margin-bottom:' */,
|
|
|
+ { startIndex: 43, type: 'number.hex.scss' } /* '#123' */,
|
|
|
+ { startIndex: 47, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 48, type: 'attribute.name.scss' } /* 'margin-top:' */,
|
|
|
+ { startIndex: 59, type: 'meta.scss' } /* 's(' */,
|
|
|
+ { startIndex: 61, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 62, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 63, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Extended commentswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '/* extended comment syntax */\n' +
|
|
|
+ '/* This comment is\n' +
|
|
|
+ ' * several lines long.\n' +
|
|
|
+ ' * since it uses the CSS comment syntax,\n' +
|
|
|
+ ' * it will appear in the CSS output. */\n' +
|
|
|
+ 'body { color: black; }\n' +
|
|
|
+ '\n' +
|
|
|
+ '/* These comments are only one line long eac*/\n' +
|
|
|
+ '/* They won\'t appear in the CSS outpu*/\n' +
|
|
|
+ '/* since they use the single-line comment synta*/\n' +
|
|
|
+ 'a { color: green; }',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'comment.scss' } /* '/* extended comment syntax * /' */,
|
|
|
+ { startIndex: 29, type: '' },
|
|
|
+ { startIndex: 30, type: 'comment.scss' } /* '/* This comment is' */,
|
|
|
+ { startIndex: 152, type: '' },
|
|
|
+ { startIndex: 153, type: 'tag.scss' } /* 'body' */,
|
|
|
+ { startIndex: 157, type: '' },
|
|
|
+ { startIndex: 158, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 159, type: '' },
|
|
|
+ { startIndex: 160, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 166, type: '' },
|
|
|
+ { startIndex: 167, type: 'attribute.value.scss' } /* 'black' */,
|
|
|
+ { startIndex: 172, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 173, type: '' },
|
|
|
+ { startIndex: 174, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 175, type: '' },
|
|
|
+ { startIndex: 177, type: 'comment.scss' } /* '// These comments are only one line long each.' */,
|
|
|
+ { startIndex: 223, type: '' },
|
|
|
+ { startIndex: 224, type: 'comment.scss' } /* '// They won't appear in the CSS output,' */,
|
|
|
+ { startIndex: 263, type: '' },
|
|
|
+ { startIndex: 264, type: 'comment.scss' } /* '// since they use the single-line comment syntax.' */,
|
|
|
+ { startIndex: 313, type: '' },
|
|
|
+ { startIndex: 314, type: 'tag.scss' } /* 'a' */,
|
|
|
+ { startIndex: 315, type: '' },
|
|
|
+ { startIndex: 316, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 317, type: '' },
|
|
|
+ { startIndex: 318, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 324, type: '' },
|
|
|
+ { startIndex: 325, type: 'attribute.value.scss' } /* 'green' */,
|
|
|
+ { startIndex: 330, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 331, type: '' },
|
|
|
+ { startIndex: 332, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Variable declarations and referenceswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '$width: 5em;\n' +
|
|
|
+ '$width: "Second width?" !default;\n' +
|
|
|
+ '#main {\n' +
|
|
|
+ ' $localvar: 6em;\n' +
|
|
|
+ ' width: $width;\n' +
|
|
|
+ '\n' +
|
|
|
+ ' $font-size: 12px;\n' +
|
|
|
+ ' $line-height: 30px;\n' +
|
|
|
+ ' font: #{$font-size}/#{$line-height};\n' +
|
|
|
+ '}\n' +
|
|
|
+ '$name: foo;\n' +
|
|
|
+ '$attr: border;\n' +
|
|
|
+ 'p.#{$name} {\n' +
|
|
|
+ ' #{$attr}-color: blue;\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'variable.decl.scss' } /* '$width:' */,
|
|
|
+ { startIndex: 7, type: '' },
|
|
|
+ { startIndex: 8, type: 'number.scss' } /* '5em' */,
|
|
|
+ { startIndex: 11, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 12, type: '' },
|
|
|
+ { startIndex: 13, type: 'variable.decl.scss' } /* '$width:' */,
|
|
|
+ { startIndex: 20, type: '' },
|
|
|
+ { startIndex: 21, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 22, type: 'string.scss' } /* 'Second width?' */,
|
|
|
+ { startIndex: 35, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 36, type: '' },
|
|
|
+ { startIndex: 37, type: 'literal.scss' } /* '!default' */,
|
|
|
+ { startIndex: 45, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 46, type: '' },
|
|
|
+ { startIndex: 47, type: 'tag.scss' } /* '#main' */,
|
|
|
+ { startIndex: 52, type: '' },
|
|
|
+ { startIndex: 53, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 54, type: '' },
|
|
|
+ { startIndex: 57, type: 'variable.decl.scss' } /* '$localvar:' */,
|
|
|
+ { startIndex: 67, type: '' },
|
|
|
+ { startIndex: 68, type: 'number.scss' } /* '6em' */,
|
|
|
+ { startIndex: 71, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 72, type: '' },
|
|
|
+ { startIndex: 75, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 81, type: '' },
|
|
|
+ { startIndex: 82, type: 'variable.ref.scss' } /* '$width' */,
|
|
|
+ { startIndex: 88, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 89, type: '' },
|
|
|
+ { startIndex: 93, type: 'variable.decl.scss' } /* '$font-size:' */,
|
|
|
+ { startIndex: 104, type: '' },
|
|
|
+ { startIndex: 105, type: 'number.scss' } /* '12px' */,
|
|
|
+ { startIndex: 109, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 110, type: '' },
|
|
|
+ { startIndex: 113, type: 'variable.decl.scss' } /* '$line-height:' */,
|
|
|
+ { startIndex: 126, type: '' },
|
|
|
+ { startIndex: 127, type: 'number.scss' } /* '30px' */,
|
|
|
+ { startIndex: 131, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 132, type: '' },
|
|
|
+ { startIndex: 135, type: 'attribute.name.scss' } /* 'font:' */,
|
|
|
+ { startIndex: 140, type: '' },
|
|
|
+ { startIndex: 141, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 143, type: 'variable.ref.scss' } /* '$font-size' */,
|
|
|
+ { startIndex: 153, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 154, type: 'operator.scss' } /* '/' */,
|
|
|
+ { startIndex: 155, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 157, type: 'variable.ref.scss' } /* '$line-height' */,
|
|
|
+ { startIndex: 169, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 170, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 171, type: '' },
|
|
|
+ { startIndex: 172, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 173, type: '' },
|
|
|
+ { startIndex: 174, type: 'variable.decl.scss' } /* '$name:' */,
|
|
|
+ { startIndex: 180, type: '' },
|
|
|
+ { startIndex: 181, type: 'attribute.value.scss' } /* 'foo' */,
|
|
|
+ { startIndex: 184, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 185, type: '' },
|
|
|
+ { startIndex: 186, type: 'variable.decl.scss' } /* '$attr:' */,
|
|
|
+ { startIndex: 192, type: '' },
|
|
|
+ { startIndex: 193, type: 'attribute.value.scss' } /* 'border' */,
|
|
|
+ { startIndex: 199, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 200, type: '' },
|
|
|
+ { startIndex: 201, type: 'tag.scss' } /* 'p.' */,
|
|
|
+ { startIndex: 203, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 205, type: 'variable.ref.scss' } /* '$name' */,
|
|
|
+ { startIndex: 210, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 211, type: '' },
|
|
|
+ { startIndex: 212, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 213, type: '' },
|
|
|
+ { startIndex: 216, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 218, type: 'variable.ref.scss' } /* '$attr' */,
|
|
|
+ { startIndex: 223, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 224, type: 'attribute.name.scss' } /* '-color:' */,
|
|
|
+ { startIndex: 231, type: '' },
|
|
|
+ { startIndex: 232, type: 'attribute.value.scss' } /* 'blue' */,
|
|
|
+ { startIndex: 236, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 237, type: '' },
|
|
|
+ { startIndex: 238, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Variable declaration with whitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '/* Set the color of your colum*/\n' +
|
|
|
+ '$grid-background-column-color : rgba(100, 100, 225, 0.25) !default;',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'comment.scss' } /* '// Set the color of your columns' */,
|
|
|
+ { startIndex: 32, type: '' },
|
|
|
+ { startIndex: 33, type: 'variable.decl.scss' } /* '$grid-background-column-color :' */,
|
|
|
+ { startIndex: 68, type: '' },
|
|
|
+ { startIndex: 69, type: 'meta.scss' } /* 'rgba(' */,
|
|
|
+ { startIndex: 74, type: 'number.scss' } /* '100' */,
|
|
|
+ { startIndex: 77, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 78, type: '' },
|
|
|
+ { startIndex: 79, type: 'number.scss' } /* '100' */,
|
|
|
+ { startIndex: 82, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 83, type: '' },
|
|
|
+ { startIndex: 84, type: 'number.scss' } /* '225' */,
|
|
|
+ { startIndex: 87, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 88, type: '' },
|
|
|
+ { startIndex: 89, type: 'number.scss' } /* '0.25' */,
|
|
|
+ { startIndex: 93, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 94, type: '' },
|
|
|
+ { startIndex: 97, type: 'literal.scss' } /* '!default' */,
|
|
|
+ { startIndex: 105, type: 'delimiter.scss' } /* ';' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Operationswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ 'p {\n' +
|
|
|
+ ' width: (1em + 2em) * 3;\n' +
|
|
|
+ ' color: #010203 + #040506;\n' +
|
|
|
+ ' font-family: sans- + "serif";\n' +
|
|
|
+ ' margin: 3px + 4px auto;\n' +
|
|
|
+ ' content: "I ate #{5 + 10} pies!";\n' +
|
|
|
+ ' color: hsl(0, 100%, 50%);\n' +
|
|
|
+ ' color: hsl($hue: 0, $saturation: 100%, $lightness: 50%);\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* 'p' */,
|
|
|
+ { startIndex: 1, type: '' },
|
|
|
+ { startIndex: 2, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 3, type: '' },
|
|
|
+ { startIndex: 6, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 12, type: '' },
|
|
|
+ { startIndex: 13, type: 'delimiter.parenthesis.scss' } /* '(' */,
|
|
|
+ { startIndex: 14, type: 'number.scss' } /* '1em' */,
|
|
|
+ { startIndex: 17, type: '' },
|
|
|
+ { startIndex: 18, type: 'operator.scss' } /* '+' */,
|
|
|
+ { startIndex: 19, type: '' },
|
|
|
+ { startIndex: 20, type: 'number.scss' } /* '2em' */,
|
|
|
+ { startIndex: 23, type: 'delimiter.parenthesis.scss' } /* ')' */,
|
|
|
+ { startIndex: 24, type: '' },
|
|
|
+ { startIndex: 25, type: 'operator.scss' } /* '*' */,
|
|
|
+ { startIndex: 26, type: '' },
|
|
|
+ { startIndex: 27, type: 'number.scss' } /* '3' */,
|
|
|
+ { startIndex: 28, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 29, type: '' },
|
|
|
+ { startIndex: 32, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 38, type: '' },
|
|
|
+ { startIndex: 39, type: 'number.hex.scss' } /* '#010203' */,
|
|
|
+ { startIndex: 46, type: '' },
|
|
|
+ { startIndex: 47, type: 'operator.scss' } /* '+' */,
|
|
|
+ { startIndex: 48, type: '' },
|
|
|
+ { startIndex: 49, type: 'number.hex.scss' } /* '#040506' */,
|
|
|
+ { startIndex: 56, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 57, type: '' },
|
|
|
+ { startIndex: 60, type: 'attribute.name.scss' } /* 'font-family:' */,
|
|
|
+ { startIndex: 72, type: '' },
|
|
|
+ { startIndex: 73, type: 'attribute.value.scss' } /* 'sans-' */,
|
|
|
+ { startIndex: 78, type: '' },
|
|
|
+ { startIndex: 79, type: 'operator.scss' } /* '+' */,
|
|
|
+ { startIndex: 80, type: '' },
|
|
|
+ { startIndex: 81, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 82, type: 'string.scss' } /* 'serif' */,
|
|
|
+ { startIndex: 87, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 88, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 89, type: '' },
|
|
|
+ { startIndex: 92, type: 'attribute.name.scss' } /* 'margin:' */,
|
|
|
+ { startIndex: 99, type: '' },
|
|
|
+ { startIndex: 100, type: 'number.scss' } /* '3px' */,
|
|
|
+ { startIndex: 103, type: '' },
|
|
|
+ { startIndex: 104, type: 'operator.scss' } /* '+' */,
|
|
|
+ { startIndex: 105, type: '' },
|
|
|
+ { startIndex: 106, type: 'number.scss' } /* '4px' */,
|
|
|
+ { startIndex: 109, type: '' },
|
|
|
+ { startIndex: 110, type: 'attribute.value.scss' } /* 'auto' */,
|
|
|
+ { startIndex: 114, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 115, type: '' },
|
|
|
+ { startIndex: 118, type: 'attribute.name.scss' } /* 'content:' */,
|
|
|
+ { startIndex: 126, type: '' },
|
|
|
+ { startIndex: 127, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 128, type: 'string.scss' } /* 'I ate #{5 + 10} pies!' */,
|
|
|
+ { startIndex: 149, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 150, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 151, type: '' },
|
|
|
+ { startIndex: 154, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 160, type: '' },
|
|
|
+ { startIndex: 161, type: 'meta.scss' } /* 'hsl(' */,
|
|
|
+ { startIndex: 165, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 166, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 167, type: '' },
|
|
|
+ { startIndex: 168, type: 'number.scss' } /* '100%' */,
|
|
|
+ { startIndex: 172, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 173, type: '' },
|
|
|
+ { startIndex: 174, type: 'number.scss' } /* '50%' */,
|
|
|
+ { startIndex: 177, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 178, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 179, type: '' },
|
|
|
+ { startIndex: 182, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 188, type: '' },
|
|
|
+ { startIndex: 189, type: 'meta.scss' } /* 'hsl(' */,
|
|
|
+ { startIndex: 193, type: 'attribute.name.scss' } /* '$hue:' */,
|
|
|
+ { startIndex: 198, type: '' },
|
|
|
+ { startIndex: 199, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 200, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 201, type: '' },
|
|
|
+ { startIndex: 202, type: 'attribute.name.scss' } /* '$saturation:' */,
|
|
|
+ { startIndex: 214, type: '' },
|
|
|
+ { startIndex: 215, type: 'number.scss' } /* '100%' */,
|
|
|
+ { startIndex: 219, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 220, type: '' },
|
|
|
+ { startIndex: 221, type: 'attribute.name.scss' } /* '$lightness:' */,
|
|
|
+ { startIndex: 232, type: '' },
|
|
|
+ { startIndex: 233, type: 'number.scss' } /* '50%' */,
|
|
|
+ { startIndex: 236, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 237, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 238, type: '' },
|
|
|
+ { startIndex: 239, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Functionwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '$grid-width: 40px;\n' +
|
|
|
+ '$gutter-width: 10px;\n' +
|
|
|
+ '@function grid-width($n) {\n' +
|
|
|
+ ' @return $n * $grid-width + ($n - 1) * $gutter-width;\n' +
|
|
|
+ '}\n' +
|
|
|
+ '#sidebar { width: grid-width(5); }',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'variable.decl.scss' } /* '$grid-width:' */,
|
|
|
+ { startIndex: 12, type: '' },
|
|
|
+ { startIndex: 13, type: 'number.scss' } /* '40px' */,
|
|
|
+ { startIndex: 17, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 18, type: '' },
|
|
|
+ { startIndex: 19, type: 'variable.decl.scss' } /* '$gutter-width:' */,
|
|
|
+ { startIndex: 33, type: '' },
|
|
|
+ { startIndex: 34, type: 'number.scss' } /* '10px' */,
|
|
|
+ { startIndex: 38, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 39, type: '' },
|
|
|
+ { startIndex: 40, type: 'keyword.scss' } /* '@function' */,
|
|
|
+ { startIndex: 49, type: '' },
|
|
|
+ { startIndex: 50, type: 'meta.scss' } /* 'grid-width(' */,
|
|
|
+ { startIndex: 61, type: 'variable.ref.scss' } /* '$n' */,
|
|
|
+ { startIndex: 63, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 64, type: '' },
|
|
|
+ { startIndex: 65, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 66, type: '' },
|
|
|
+ { startIndex: 69, type: 'keyword.scss' } /* '@return' */,
|
|
|
+ { startIndex: 76, type: '' },
|
|
|
+ { startIndex: 77, type: 'variable.ref.scss' } /* '$n' */,
|
|
|
+ { startIndex: 79, type: '' },
|
|
|
+ { startIndex: 80, type: 'operator.scss' } /* '*' */,
|
|
|
+ { startIndex: 81, type: '' },
|
|
|
+ { startIndex: 82, type: 'variable.ref.scss' } /* '$grid-width' */,
|
|
|
+ { startIndex: 93, type: '' },
|
|
|
+ { startIndex: 94, type: 'operator.scss' } /* '+' */,
|
|
|
+ { startIndex: 95, type: '' },
|
|
|
+ { startIndex: 96, type: 'delimiter.parenthesis.scss' } /* '(' */,
|
|
|
+ { startIndex: 97, type: 'variable.ref.scss' } /* '$n' */,
|
|
|
+ { startIndex: 99, type: '' },
|
|
|
+ { startIndex: 100, type: 'operator.scss' } /* '-' */,
|
|
|
+ { startIndex: 101, type: '' },
|
|
|
+ { startIndex: 102, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 103, type: 'delimiter.parenthesis.scss' } /* ')' */,
|
|
|
+ { startIndex: 104, type: '' },
|
|
|
+ { startIndex: 105, type: 'operator.scss' } /* '*' */,
|
|
|
+ { startIndex: 106, type: '' },
|
|
|
+ { startIndex: 107, type: 'variable.ref.scss' } /* '$gutter-width' */,
|
|
|
+ { startIndex: 120, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 121, type: '' },
|
|
|
+ { startIndex: 122, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 123, type: '' },
|
|
|
+ { startIndex: 124, type: 'tag.scss' } /* '#sidebar' */,
|
|
|
+ { startIndex: 132, type: '' },
|
|
|
+ { startIndex: 133, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 134, type: '' },
|
|
|
+ { startIndex: 135, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 141, type: '' },
|
|
|
+ { startIndex: 142, type: 'meta.scss' } /* 'grid-width(' */,
|
|
|
+ { startIndex: 153, type: 'number.scss' } /* '5' */,
|
|
|
+ { startIndex: 154, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 155, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 156, type: '' },
|
|
|
+ { startIndex: 157, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Importswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@import "foo.scss";\n' +
|
|
|
+ '$family: unquote("Droid+Sans");\n' +
|
|
|
+ '@import "rounded-corners" url("http://fonts.googleapis.com/css?family=#{$family}");\n' +
|
|
|
+ '#main {\n' +
|
|
|
+ ' @import "example";\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@import' */,
|
|
|
+ { startIndex: 7, type: '' },
|
|
|
+ { startIndex: 8, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 9, type: 'string.scss' } /* 'foo.scss' */,
|
|
|
+ { startIndex: 17, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 18, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 19, type: '' },
|
|
|
+ { startIndex: 20, type: 'variable.decl.scss' } /* '$family:' */,
|
|
|
+ { startIndex: 28, type: '' },
|
|
|
+ { startIndex: 29, type: 'meta.scss' } /* 'unquote(' */,
|
|
|
+ { startIndex: 37, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 38, type: 'string.scss' } /* 'Droid+Sans' */,
|
|
|
+ { startIndex: 48, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 49, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 50, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 51, type: '' },
|
|
|
+ { startIndex: 52, type: 'keyword.scss' } /* '@import' */,
|
|
|
+ { startIndex: 59, type: '' },
|
|
|
+ { startIndex: 60, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 61, type: 'string.scss' } /* 'rounded-corners' */,
|
|
|
+ { startIndex: 76, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 77, type: '' },
|
|
|
+ { startIndex: 78, type: 'meta.scss' } /* 'url(' */,
|
|
|
+ { startIndex: 82, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 83, type: 'string.scss' } /* 'http://fonts.googleapis.com/css?family=#{$family}' */,
|
|
|
+ { startIndex: 132, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 133, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 134, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 135, type: '' },
|
|
|
+ { startIndex: 136, type: 'tag.scss' } /* '#main' */,
|
|
|
+ { startIndex: 141, type: '' },
|
|
|
+ { startIndex: 142, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 143, type: '' },
|
|
|
+ { startIndex: 146, type: 'keyword.scss' } /* '@import' */,
|
|
|
+ { startIndex: 153, type: '' },
|
|
|
+ { startIndex: 154, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 155, type: 'string.scss' } /* 'example' */,
|
|
|
+ { startIndex: 162, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 163, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 164, type: '' },
|
|
|
+ { startIndex: 165, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Mediawhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '.sidebar {\n' +
|
|
|
+ ' width: 300px;\n' +
|
|
|
+ ' @media screen and (orientation: landscape) {\n' +
|
|
|
+ ' width: 500px;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* '.sidebar' */,
|
|
|
+ { startIndex: 8, type: '' },
|
|
|
+ { startIndex: 9, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 10, type: '' },
|
|
|
+ { startIndex: 13, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 19, type: '' },
|
|
|
+ { startIndex: 20, type: 'number.scss' } /* '300px' */,
|
|
|
+ { startIndex: 25, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 26, type: '' },
|
|
|
+ { startIndex: 29, type: 'keyword.flow.scss' } /* '@media' */,
|
|
|
+ { startIndex: 35, type: '' },
|
|
|
+ { startIndex: 36, type: 'attribute.value.scss' } /* 'screen' */,
|
|
|
+ { startIndex: 42, type: '' },
|
|
|
+ { startIndex: 43, type: 'operator.scss' } /* 'and' */,
|
|
|
+ { startIndex: 46, type: '' },
|
|
|
+ { startIndex: 47, type: 'delimiter.parenthesis.scss' } /* '(' */,
|
|
|
+ { startIndex: 48, type: 'attribute.value.scss' } /* 'orientation' */,
|
|
|
+ { startIndex: 59, type: '' },
|
|
|
+ { startIndex: 61, type: 'attribute.value.scss' } /* 'landscape' */,
|
|
|
+ { startIndex: 70, type: 'delimiter.parenthesis.scss' } /* ')' */,
|
|
|
+ { startIndex: 71, type: '' },
|
|
|
+ { startIndex: 72, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 73, type: '' },
|
|
|
+ { startIndex: 78, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 84, type: '' },
|
|
|
+ { startIndex: 85, type: 'number.scss' } /* '500px' */,
|
|
|
+ { startIndex: 90, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 91, type: '' },
|
|
|
+ { startIndex: 94, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 95, type: '' },
|
|
|
+ { startIndex: 96, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Extendwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '.error {\n' +
|
|
|
+ ' border: 1px #f00;\n' +
|
|
|
+ ' background-color: #fdd;\n' +
|
|
|
+ '}\n' +
|
|
|
+ '.seriousError {\n' +
|
|
|
+ ' @extend .error;\n' +
|
|
|
+ ' border-width: 3px;\n' +
|
|
|
+ '}\n' +
|
|
|
+ '#context a%extreme {\n' +
|
|
|
+ ' color: blue;\n' +
|
|
|
+ ' font-weight: bold;\n' +
|
|
|
+ ' font-size: 2em;\n' +
|
|
|
+ '}\n' +
|
|
|
+ '.notice {\n' +
|
|
|
+ ' @extend %extreme !optional;\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* '.error' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 8, type: '' },
|
|
|
+ { startIndex: 11, type: 'attribute.name.scss' } /* 'border:' */,
|
|
|
+ { startIndex: 18, type: '' },
|
|
|
+ { startIndex: 19, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 22, type: '' },
|
|
|
+ { startIndex: 23, type: 'number.hex.scss' } /* '#f00' */,
|
|
|
+ { startIndex: 27, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 28, type: '' },
|
|
|
+ { startIndex: 31, type: 'attribute.name.scss' } /* 'background-color:' */,
|
|
|
+ { startIndex: 48, type: '' },
|
|
|
+ { startIndex: 49, type: 'number.hex.scss' } /* '#fdd' */,
|
|
|
+ { startIndex: 53, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 54, type: '' },
|
|
|
+ { startIndex: 55, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 56, type: '' },
|
|
|
+ { startIndex: 57, type: 'tag.scss' } /* '.seriousError' */,
|
|
|
+ { startIndex: 70, type: '' },
|
|
|
+ { startIndex: 71, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 72, type: '' },
|
|
|
+ { startIndex: 75, type: 'keyword.scss' } /* '@extend' */,
|
|
|
+ { startIndex: 82, type: '' },
|
|
|
+ { startIndex: 83, type: 'tag.scss' } /* '.error' */,
|
|
|
+ { startIndex: 89, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 90, type: '' },
|
|
|
+ { startIndex: 93, type: 'attribute.name.scss' } /* 'border-width:' */,
|
|
|
+ { startIndex: 106, type: '' },
|
|
|
+ { startIndex: 107, type: 'number.scss' } /* '3px' */,
|
|
|
+ { startIndex: 110, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 111, type: '' },
|
|
|
+ { startIndex: 112, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 113, type: '' },
|
|
|
+ { startIndex: 114, type: 'tag.scss' } /* '#context' */,
|
|
|
+ { startIndex: 122, type: '' },
|
|
|
+ { startIndex: 123, type: 'tag.scss' } /* 'a%extreme' */,
|
|
|
+ { startIndex: 132, type: '' },
|
|
|
+ { startIndex: 133, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 134, type: '' },
|
|
|
+ { startIndex: 137, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 143, type: '' },
|
|
|
+ { startIndex: 144, type: 'attribute.value.scss' } /* 'blue' */,
|
|
|
+ { startIndex: 148, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 149, type: '' },
|
|
|
+ { startIndex: 152, type: 'attribute.name.scss' } /* 'font-weight:' */,
|
|
|
+ { startIndex: 164, type: '' },
|
|
|
+ { startIndex: 165, type: 'attribute.value.scss' } /* 'bold' */,
|
|
|
+ { startIndex: 169, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 170, type: '' },
|
|
|
+ { startIndex: 173, type: 'attribute.name.scss' } /* 'font-size:' */,
|
|
|
+ { startIndex: 183, type: '' },
|
|
|
+ { startIndex: 184, type: 'number.scss' } /* '2em' */,
|
|
|
+ { startIndex: 187, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 188, type: '' },
|
|
|
+ { startIndex: 189, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 190, type: '' },
|
|
|
+ { startIndex: 191, type: 'tag.scss' } /* '.notice' */,
|
|
|
+ { startIndex: 198, type: '' },
|
|
|
+ { startIndex: 199, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 200, type: '' },
|
|
|
+ { startIndex: 203, type: 'keyword.scss' } /* '@extend' */,
|
|
|
+ { startIndex: 210, type: '' },
|
|
|
+ { startIndex: 211, type: 'tag.scss' } /* '%extreme' */,
|
|
|
+ { startIndex: 219, type: '' },
|
|
|
+ { startIndex: 220, type: 'literal.scss' } /* '!optional' */,
|
|
|
+ { startIndex: 229, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 230, type: '' },
|
|
|
+ { startIndex: 231, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // @debug and @warnwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@debug 10em + 12em;\n' +
|
|
|
+ '@mixin adjust-location($x, $y) {\n' +
|
|
|
+ ' @if unitless($x) {\n' +
|
|
|
+ ' @warn "Assuming #{$x} to be in pixels";\n' +
|
|
|
+ ' $x: 1px * $x;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' @if unitless($y) {\n' +
|
|
|
+ ' @warn "Assuming #{$y} to be in pixels";\n' +
|
|
|
+ ' $y: 1px * $y;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' position: relative; left: $x; top: $y;\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@debug' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'number.scss' } /* '10em' */,
|
|
|
+ { startIndex: 11, type: '' },
|
|
|
+ { startIndex: 12, type: 'operator.scss' } /* '+' */,
|
|
|
+ { startIndex: 13, type: '' },
|
|
|
+ { startIndex: 14, type: 'number.scss' } /* '12em' */,
|
|
|
+ { startIndex: 18, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 19, type: '' },
|
|
|
+ { startIndex: 20, type: 'keyword.scss' } /* '@mixin' */,
|
|
|
+ { startIndex: 26, type: '' },
|
|
|
+ { startIndex: 27, type: 'meta.scss' } /* 'adjust-location(' */,
|
|
|
+ { startIndex: 43, type: 'variable.ref.scss' } /* '$x' */,
|
|
|
+ { startIndex: 45, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 46, type: '' },
|
|
|
+ { startIndex: 47, type: 'variable.ref.scss' } /* '$y' */,
|
|
|
+ { startIndex: 49, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 50, type: '' },
|
|
|
+ { startIndex: 51, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 52, type: '' },
|
|
|
+ { startIndex: 55, type: 'keyword.flow.scss' } /* '@if' */,
|
|
|
+ { startIndex: 58, type: '' },
|
|
|
+ { startIndex: 59, type: 'meta.scss' } /* 'unitless(' */,
|
|
|
+ { startIndex: 68, type: 'variable.ref.scss' } /* '$x' */,
|
|
|
+ { startIndex: 70, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 71, type: '' },
|
|
|
+ { startIndex: 72, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 73, type: '' },
|
|
|
+ { startIndex: 78, type: 'keyword.scss' } /* '@warn' */,
|
|
|
+ { startIndex: 83, type: '' },
|
|
|
+ { startIndex: 84, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 85, type: 'string.scss' } /* 'Assuming #{$x} to be in pixels' */,
|
|
|
+ { startIndex: 115, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 116, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 117, type: '' },
|
|
|
+ { startIndex: 122, type: 'variable.decl.scss' } /* '$x:' */,
|
|
|
+ { startIndex: 125, type: '' },
|
|
|
+ { startIndex: 126, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 129, type: '' },
|
|
|
+ { startIndex: 130, type: 'operator.scss' } /* '*' */,
|
|
|
+ { startIndex: 131, type: '' },
|
|
|
+ { startIndex: 132, type: 'variable.ref.scss' } /* '$x' */,
|
|
|
+ { startIndex: 134, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 135, type: '' },
|
|
|
+ { startIndex: 138, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 139, type: '' },
|
|
|
+ { startIndex: 142, type: 'keyword.flow.scss' } /* '@if' */,
|
|
|
+ { startIndex: 145, type: '' },
|
|
|
+ { startIndex: 146, type: 'meta.scss' } /* 'unitless(' */,
|
|
|
+ { startIndex: 155, type: 'variable.ref.scss' } /* '$y' */,
|
|
|
+ { startIndex: 157, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 158, type: '' },
|
|
|
+ { startIndex: 159, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 160, type: '' },
|
|
|
+ { startIndex: 165, type: 'keyword.scss' } /* '@warn' */,
|
|
|
+ { startIndex: 170, type: '' },
|
|
|
+ { startIndex: 171, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 172, type: 'string.scss' } /* 'Assuming #{$y} to be in pixels' */,
|
|
|
+ { startIndex: 202, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 203, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 204, type: '' },
|
|
|
+ { startIndex: 209, type: 'variable.decl.scss' } /* '$y:' */,
|
|
|
+ { startIndex: 212, type: '' },
|
|
|
+ { startIndex: 213, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 216, type: '' },
|
|
|
+ { startIndex: 217, type: 'operator.scss' } /* '*' */,
|
|
|
+ { startIndex: 218, type: '' },
|
|
|
+ { startIndex: 219, type: 'variable.ref.scss' } /* '$y' */,
|
|
|
+ { startIndex: 221, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 222, type: '' },
|
|
|
+ { startIndex: 225, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 226, type: '' },
|
|
|
+ { startIndex: 229, type: 'attribute.name.scss' } /* 'position:' */,
|
|
|
+ { startIndex: 238, type: '' },
|
|
|
+ { startIndex: 239, type: 'attribute.value.scss' } /* 'relative' */,
|
|
|
+ { startIndex: 247, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 248, type: '' },
|
|
|
+ { startIndex: 249, type: 'attribute.name.scss' } /* 'left:' */,
|
|
|
+ { startIndex: 254, type: '' },
|
|
|
+ { startIndex: 255, type: 'variable.ref.scss' } /* '$x' */,
|
|
|
+ { startIndex: 257, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 258, type: '' },
|
|
|
+ { startIndex: 259, type: 'attribute.name.scss' } /* 'top:' */,
|
|
|
+ { startIndex: 263, type: '' },
|
|
|
+ { startIndex: 264, type: 'variable.ref.scss' } /* '$y' */,
|
|
|
+ { startIndex: 266, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 267, type: '' },
|
|
|
+ { startIndex: 268, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // if statementwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ 'p {\n' +
|
|
|
+ ' @if 1 + 1 == 2 { border: 1px solid; }\n' +
|
|
|
+ ' @if 5 < 3 { border: 2px dotted; }\n' +
|
|
|
+ ' @if null { border: 3px double; }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'tag.scss' } /* 'p' */,
|
|
|
+ { startIndex: 1, type: '' },
|
|
|
+ { startIndex: 2, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 3, type: '' },
|
|
|
+ { startIndex: 6, type: 'keyword.flow.scss' } /* '@if' */,
|
|
|
+ { startIndex: 9, type: '' },
|
|
|
+ { startIndex: 10, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 11, type: '' },
|
|
|
+ { startIndex: 12, type: 'operator.scss' } /* '+' */,
|
|
|
+ { startIndex: 13, type: '' },
|
|
|
+ { startIndex: 14, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 15, type: '' },
|
|
|
+ { startIndex: 16, type: 'operator.scss' } /* '==' */,
|
|
|
+ { startIndex: 18, type: '' },
|
|
|
+ { startIndex: 19, type: 'number.scss' } /* '2' */,
|
|
|
+ { startIndex: 20, type: '' },
|
|
|
+ { startIndex: 21, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 22, type: '' },
|
|
|
+ { startIndex: 23, type: 'attribute.name.scss' } /* 'border:' */,
|
|
|
+ { startIndex: 30, type: '' },
|
|
|
+ { startIndex: 31, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 34, type: '' },
|
|
|
+ { startIndex: 35, type: 'attribute.value.scss' } /* 'solid' */,
|
|
|
+ { startIndex: 40, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 41, type: '' },
|
|
|
+ { startIndex: 43, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 44, type: '' },
|
|
|
+ { startIndex: 47, type: 'keyword.flow.scss' } /* '@if' */,
|
|
|
+ { startIndex: 50, type: '' },
|
|
|
+ { startIndex: 51, type: 'number.scss' } /* '5' */,
|
|
|
+ { startIndex: 52, type: '' },
|
|
|
+ { startIndex: 53, type: 'operator.scss' } /* '<' */,
|
|
|
+ { startIndex: 54, type: '' },
|
|
|
+ { startIndex: 55, type: 'number.scss' } /* '3' */,
|
|
|
+ { startIndex: 56, type: '' },
|
|
|
+ { startIndex: 62, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 63, type: '' },
|
|
|
+ { startIndex: 64, type: 'attribute.name.scss' } /* 'border:' */,
|
|
|
+ { startIndex: 71, type: '' },
|
|
|
+ { startIndex: 72, type: 'number.scss' } /* '2px' */,
|
|
|
+ { startIndex: 75, type: '' },
|
|
|
+ { startIndex: 76, type: 'attribute.value.scss' } /* 'dotted' */,
|
|
|
+ { startIndex: 82, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 83, type: '' },
|
|
|
+ { startIndex: 84, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 85, type: '' },
|
|
|
+ { startIndex: 88, type: 'keyword.flow.scss' } /* '@if' */,
|
|
|
+ { startIndex: 91, type: '' },
|
|
|
+ { startIndex: 92, type: 'attribute.value.scss' } /* 'null' */,
|
|
|
+ { startIndex: 96, type: '' },
|
|
|
+ { startIndex: 103, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 104, type: '' },
|
|
|
+ { startIndex: 105, type: 'attribute.name.scss' } /* 'border:' */,
|
|
|
+ { startIndex: 112, type: '' },
|
|
|
+ { startIndex: 113, type: 'number.scss' } /* '3px' */,
|
|
|
+ { startIndex: 116, type: '' },
|
|
|
+ { startIndex: 117, type: 'attribute.value.scss' } /* 'double' */,
|
|
|
+ { startIndex: 123, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 124, type: '' },
|
|
|
+ { startIndex: 125, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 126, type: '' },
|
|
|
+ { startIndex: 127, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // if-else statementwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '$type: monster;\n' +
|
|
|
+ 'p {\n' +
|
|
|
+ ' @if $type == ocean {\n' +
|
|
|
+ ' color: blue;\n' +
|
|
|
+ ' } @else if $type == matador {\n' +
|
|
|
+ ' color: red;\n' +
|
|
|
+ ' } @else {\n' +
|
|
|
+ ' color: black;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'variable.decl.scss' } /* '$type:' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'attribute.value.scss' } /* 'monster' */,
|
|
|
+ { startIndex: 14, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 15, type: '' },
|
|
|
+ { startIndex: 16, type: 'tag.scss' } /* 'p' */,
|
|
|
+ { startIndex: 17, type: '' },
|
|
|
+ { startIndex: 18, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 19, type: '' },
|
|
|
+ { startIndex: 22, type: 'keyword.flow.scss' } /* '@if' */,
|
|
|
+ { startIndex: 25, type: '' },
|
|
|
+ { startIndex: 26, type: 'variable.ref.scss' } /* '$type' */,
|
|
|
+ { startIndex: 31, type: '' },
|
|
|
+ { startIndex: 32, type: 'operator.scss' } /* '==' */,
|
|
|
+ { startIndex: 34, type: '' },
|
|
|
+ { startIndex: 35, type: 'attribute.value.scss' } /* 'ocean' */,
|
|
|
+ { startIndex: 40, type: '' },
|
|
|
+ { startIndex: 41, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 42, type: '' },
|
|
|
+ { startIndex: 47, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 53, type: '' },
|
|
|
+ { startIndex: 54, type: 'attribute.value.scss' } /* 'blue' */,
|
|
|
+ { startIndex: 58, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 59, type: '' },
|
|
|
+ { startIndex: 62, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 63, type: '' },
|
|
|
+ { startIndex: 64, type: 'keyword.flow.scss' } /* '@else' */,
|
|
|
+ { startIndex: 69, type: '' },
|
|
|
+ { startIndex: 70, type: 'keyword.flow.scss' } /* 'if' */,
|
|
|
+ { startIndex: 72, type: '' },
|
|
|
+ { startIndex: 73, type: 'variable.ref.scss' } /* '$type' */,
|
|
|
+ { startIndex: 78, type: '' },
|
|
|
+ { startIndex: 79, type: 'operator.scss' } /* '==' */,
|
|
|
+ { startIndex: 81, type: '' },
|
|
|
+ { startIndex: 82, type: 'attribute.value.scss' } /* 'matador' */,
|
|
|
+ { startIndex: 89, type: '' },
|
|
|
+ { startIndex: 90, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 91, type: '' },
|
|
|
+ { startIndex: 96, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 102, type: '' },
|
|
|
+ { startIndex: 103, type: 'attribute.value.scss' } /* 'red' */,
|
|
|
+ { startIndex: 106, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 107, type: '' },
|
|
|
+ { startIndex: 110, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 111, type: '' },
|
|
|
+ { startIndex: 112, type: 'keyword.flow.scss' } /* '@else' */,
|
|
|
+ { startIndex: 117, type: '' },
|
|
|
+ { startIndex: 118, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 119, type: '' },
|
|
|
+ { startIndex: 124, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 130, type: '' },
|
|
|
+ { startIndex: 131, type: 'attribute.value.scss' } /* 'black' */,
|
|
|
+ { startIndex: 136, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 137, type: '' },
|
|
|
+ { startIndex: 140, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 141, type: '' },
|
|
|
+ { startIndex: 142, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // for statementwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@for $i from 1 through 3 {\n' +
|
|
|
+ ' .item-#{$i} { width: 2em * $i; }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.flow.scss' } /* '@for' */,
|
|
|
+ { startIndex: 4, type: '' },
|
|
|
+ { startIndex: 5, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 7, type: '' },
|
|
|
+ { startIndex: 8, type: 'keyword.flow.scss' } /* 'from' */,
|
|
|
+ { startIndex: 12, type: '' },
|
|
|
+ { startIndex: 13, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 14, type: '' },
|
|
|
+ { startIndex: 15, type: 'keyword.flow.scss' } /* 'through' */,
|
|
|
+ { startIndex: 22, type: '' },
|
|
|
+ { startIndex: 23, type: 'number.scss' } /* '3' */,
|
|
|
+ { startIndex: 24, type: '' },
|
|
|
+ { startIndex: 25, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 26, type: '' },
|
|
|
+ { startIndex: 29, type: 'tag.scss' } /* '.item-' */,
|
|
|
+ { startIndex: 35, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 37, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 39, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 40, type: '' },
|
|
|
+ { startIndex: 41, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 42, type: '' },
|
|
|
+ { startIndex: 43, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 49, type: '' },
|
|
|
+ { startIndex: 50, type: 'number.scss' } /* '2em' */,
|
|
|
+ { startIndex: 53, type: '' },
|
|
|
+ { startIndex: 54, type: 'operator.scss' } /* '*' */,
|
|
|
+ { startIndex: 55, type: '' },
|
|
|
+ { startIndex: 56, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 58, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 59, type: '' },
|
|
|
+ { startIndex: 60, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 61, type: '' },
|
|
|
+ { startIndex: 62, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // each statementwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@each $animal in puma, sea-slug, egret, salamander {\n' +
|
|
|
+ ' .#{$animal}-icon {\n' +
|
|
|
+ ' background-image: url(\'/images/#{$animal}.png\');\n' +
|
|
|
+ ' }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.flow.scss' } /* '@each' */,
|
|
|
+ { startIndex: 5, type: '' },
|
|
|
+ { startIndex: 6, type: 'variable.ref.scss' } /* '$animal' */,
|
|
|
+ { startIndex: 13, type: '' },
|
|
|
+ { startIndex: 14, type: 'keyword.flow.scss' } /* 'in' */,
|
|
|
+ { startIndex: 16, type: '' },
|
|
|
+ { startIndex: 17, type: 'attribute.value.scss' } /* 'puma' */,
|
|
|
+ { startIndex: 21, type: 'operator.scss' } /* ',' */,
|
|
|
+ { startIndex: 22, type: '' },
|
|
|
+ { startIndex: 23, type: 'attribute.value.scss' } /* 'sea-slug' */,
|
|
|
+ { startIndex: 31, type: 'operator.scss' } /* ',' */,
|
|
|
+ { startIndex: 32, type: '' },
|
|
|
+ { startIndex: 33, type: 'attribute.value.scss' } /* 'egret' */,
|
|
|
+ { startIndex: 38, type: 'operator.scss' } /* ',' */,
|
|
|
+ { startIndex: 39, type: '' },
|
|
|
+ { startIndex: 40, type: 'attribute.value.scss' } /* 'salamander' */,
|
|
|
+ { startIndex: 50, type: '' },
|
|
|
+ { startIndex: 51, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 52, type: '' },
|
|
|
+ { startIndex: 55, type: 'tag.scss' } /* '.' */,
|
|
|
+ { startIndex: 56, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 58, type: 'variable.ref.scss' } /* '$animal' */,
|
|
|
+ { startIndex: 65, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 66, type: 'tag.scss' } /* '-icon' */,
|
|
|
+ { startIndex: 71, type: '' },
|
|
|
+ { startIndex: 72, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 73, type: '' },
|
|
|
+ { startIndex: 78, type: 'attribute.name.scss' } /* 'background-image:' */,
|
|
|
+ { startIndex: 95, type: '' },
|
|
|
+ { startIndex: 96, type: 'meta.scss' } /* 'url(' */,
|
|
|
+ { startIndex: 100, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 101, type: 'string.scss' } /* '/images/#{$animal}.png' */,
|
|
|
+ { startIndex: 123, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 124, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 125, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 126, type: '' },
|
|
|
+ { startIndex: 129, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 130, type: '' },
|
|
|
+ { startIndex: 131, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // while statementwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '$i: 6;\n' +
|
|
|
+ '@while $i > 0 {\n' +
|
|
|
+ ' .item-#{$i} { width: 2em * $i; }\n' +
|
|
|
+ ' $i: $i - 2;\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'variable.decl.scss' } /* '$i:' */,
|
|
|
+ { startIndex: 3, type: '' },
|
|
|
+ { startIndex: 4, type: 'number.scss' } /* '6' */,
|
|
|
+ { startIndex: 5, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'keyword.flow.scss' } /* '@while' */,
|
|
|
+ { startIndex: 13, type: '' },
|
|
|
+ { startIndex: 14, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 16, type: '' },
|
|
|
+ { startIndex: 17, type: 'operator.scss' } /* '>' */,
|
|
|
+ { startIndex: 18, type: '' },
|
|
|
+ { startIndex: 19, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 20, type: '' },
|
|
|
+ { startIndex: 21, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 22, type: '' },
|
|
|
+ { startIndex: 25, type: 'tag.scss' } /* '.item-' */,
|
|
|
+ { startIndex: 31, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 33, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 35, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 36, type: '' },
|
|
|
+ { startIndex: 37, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 38, type: '' },
|
|
|
+ { startIndex: 39, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 45, type: '' },
|
|
|
+ { startIndex: 46, type: 'number.scss' } /* '2em' */,
|
|
|
+ { startIndex: 49, type: '' },
|
|
|
+ { startIndex: 50, type: 'operator.scss' } /* '*' */,
|
|
|
+ { startIndex: 51, type: '' },
|
|
|
+ { startIndex: 52, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 54, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 55, type: '' },
|
|
|
+ { startIndex: 56, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 57, type: '' },
|
|
|
+ { startIndex: 60, type: 'variable.decl.scss' } /* '$i:' */,
|
|
|
+ { startIndex: 63, type: '' },
|
|
|
+ { startIndex: 64, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 66, type: '' },
|
|
|
+ { startIndex: 67, type: 'operator.scss' } /* '-' */,
|
|
|
+ { startIndex: 68, type: '' },
|
|
|
+ { startIndex: 69, type: 'number.scss' } /* '2' */,
|
|
|
+ { startIndex: 70, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 71, type: '' },
|
|
|
+ { startIndex: 72, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Function with control statements nestedwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@function foo($total, $a) {\n' +
|
|
|
+ ' @for $i from 0 to $total {\n' +
|
|
|
+ ' @if (unit($a) == "%") and ($i == ($total - 1)) {\n' +
|
|
|
+ ' $z: 100%;\n' +
|
|
|
+ ' @return \'1\';\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' @return $grid;\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@function' */,
|
|
|
+ { startIndex: 9, type: '' },
|
|
|
+ { startIndex: 10, type: 'meta.scss' } /* 'foo(' */,
|
|
|
+ { startIndex: 14, type: 'variable.ref.scss' } /* '$total' */,
|
|
|
+ { startIndex: 20, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 21, type: '' },
|
|
|
+ { startIndex: 22, type: 'variable.ref.scss' } /* '$a' */,
|
|
|
+ { startIndex: 24, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 25, type: '' },
|
|
|
+ { startIndex: 26, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 27, type: '' },
|
|
|
+ { startIndex: 30, type: 'keyword.flow.scss' } /* '@for' */,
|
|
|
+ { startIndex: 34, type: '' },
|
|
|
+ { startIndex: 35, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 37, type: '' },
|
|
|
+ { startIndex: 38, type: 'keyword.flow.scss' } /* 'from' */,
|
|
|
+ { startIndex: 42, type: '' },
|
|
|
+ { startIndex: 43, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 44, type: '' },
|
|
|
+ { startIndex: 45, type: 'keyword.flow.scss' } /* 'to' */,
|
|
|
+ { startIndex: 47, type: '' },
|
|
|
+ { startIndex: 48, type: 'variable.ref.scss' } /* '$total' */,
|
|
|
+ { startIndex: 54, type: '' },
|
|
|
+ { startIndex: 55, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 56, type: '' },
|
|
|
+ { startIndex: 61, type: 'keyword.flow.scss' } /* '@if' */,
|
|
|
+ { startIndex: 64, type: '' },
|
|
|
+ { startIndex: 65, type: 'delimiter.parenthesis.scss' } /* '(' */,
|
|
|
+ { startIndex: 66, type: 'meta.scss' } /* 'unit(' */,
|
|
|
+ { startIndex: 71, type: 'variable.ref.scss' } /* '$a' */,
|
|
|
+ { startIndex: 73, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 74, type: '' },
|
|
|
+ { startIndex: 75, type: 'operator.scss' } /* '==' */,
|
|
|
+ { startIndex: 77, type: '' },
|
|
|
+ { startIndex: 78, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 79, type: 'string.scss' } /* '%' */,
|
|
|
+ { startIndex: 80, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 81, type: 'delimiter.parenthesis.scss' } /* ')' */,
|
|
|
+ { startIndex: 82, type: '' },
|
|
|
+ { startIndex: 83, type: 'operator.scss' } /* 'and' */,
|
|
|
+ { startIndex: 86, type: '' },
|
|
|
+ { startIndex: 87, type: 'delimiter.parenthesis.scss' } /* '(' */,
|
|
|
+ { startIndex: 88, type: 'variable.ref.scss' } /* '$i' */,
|
|
|
+ { startIndex: 90, type: '' },
|
|
|
+ { startIndex: 91, type: 'operator.scss' } /* '==' */,
|
|
|
+ { startIndex: 93, type: '' },
|
|
|
+ { startIndex: 94, type: 'delimiter.parenthesis.scss' } /* '(' */,
|
|
|
+ { startIndex: 95, type: 'variable.ref.scss' } /* '$total' */,
|
|
|
+ { startIndex: 101, type: '' },
|
|
|
+ { startIndex: 102, type: 'operator.scss' } /* '-' */,
|
|
|
+ { startIndex: 103, type: '' },
|
|
|
+ { startIndex: 104, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 105, type: 'delimiter.parenthesis.scss' } /* ')' */,
|
|
|
+ { startIndex: 107, type: '' },
|
|
|
+ { startIndex: 108, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 109, type: '' },
|
|
|
+ { startIndex: 116, type: 'variable.decl.scss' } /* '$z:' */,
|
|
|
+ { startIndex: 119, type: '' },
|
|
|
+ { startIndex: 120, type: 'number.scss' } /* '100%' */,
|
|
|
+ { startIndex: 124, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 125, type: '' },
|
|
|
+ { startIndex: 132, type: 'keyword.scss' } /* '@return' */,
|
|
|
+ { startIndex: 139, type: '' },
|
|
|
+ { startIndex: 140, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 141, type: 'string.scss' } /* '1' */,
|
|
|
+ { startIndex: 142, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 143, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 144, type: '' },
|
|
|
+ { startIndex: 149, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 150, type: '' },
|
|
|
+ { startIndex: 153, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 154, type: '' },
|
|
|
+ { startIndex: 157, type: 'keyword.scss' } /* '@return' */,
|
|
|
+ { startIndex: 164, type: '' },
|
|
|
+ { startIndex: 165, type: 'variable.ref.scss' } /* '$grid' */,
|
|
|
+ { startIndex: 170, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 171, type: '' },
|
|
|
+ { startIndex: 172, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // @mixin simplewhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@mixin large-text {\n' +
|
|
|
+ ' font: {\n' +
|
|
|
+ ' family: Arial;\n' +
|
|
|
+ ' size: 20px;\n' +
|
|
|
+ ' weight: bold;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ ' color: #ff0000;\n' +
|
|
|
+ '}\n' +
|
|
|
+ '.page-title {\n' +
|
|
|
+ ' @include large-text;\n' +
|
|
|
+ ' padding: 4px;\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@mixin' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'meta.scss' } /* 'large-text' */,
|
|
|
+ { startIndex: 17, type: '' },
|
|
|
+ { startIndex: 18, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 19, type: '' },
|
|
|
+ { startIndex: 22, type: 'attribute.name.scss' } /* 'font:' */,
|
|
|
+ { startIndex: 27, type: '' },
|
|
|
+ { startIndex: 28, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 29, type: '' },
|
|
|
+ { startIndex: 34, type: 'attribute.name.scss' } /* 'family:' */,
|
|
|
+ { startIndex: 41, type: '' },
|
|
|
+ { startIndex: 42, type: 'attribute.value.scss' } /* 'Arial' */,
|
|
|
+ { startIndex: 47, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 48, type: '' },
|
|
|
+ { startIndex: 53, type: 'attribute.name.scss' } /* 'size:' */,
|
|
|
+ { startIndex: 58, type: '' },
|
|
|
+ { startIndex: 59, type: 'number.scss' } /* '20px' */,
|
|
|
+ { startIndex: 63, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 64, type: '' },
|
|
|
+ { startIndex: 69, type: 'attribute.name.scss' } /* 'weight:' */,
|
|
|
+ { startIndex: 76, type: '' },
|
|
|
+ { startIndex: 77, type: 'attribute.value.scss' } /* 'bold' */,
|
|
|
+ { startIndex: 81, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 82, type: '' },
|
|
|
+ { startIndex: 85, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 86, type: '' },
|
|
|
+ { startIndex: 89, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 95, type: '' },
|
|
|
+ { startIndex: 96, type: 'number.hex.scss' } /* '#ff0000' */,
|
|
|
+ { startIndex: 103, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 104, type: '' },
|
|
|
+ { startIndex: 105, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 106, type: '' },
|
|
|
+ { startIndex: 107, type: 'tag.scss' } /* '.page-title' */,
|
|
|
+ { startIndex: 118, type: '' },
|
|
|
+ { startIndex: 119, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 120, type: '' },
|
|
|
+ { startIndex: 123, type: 'keyword.scss' } /* '@include' */,
|
|
|
+ { startIndex: 131, type: '' },
|
|
|
+ { startIndex: 132, type: 'meta.scss' } /* 'large-text' */,
|
|
|
+ { startIndex: 142, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 143, type: '' },
|
|
|
+ { startIndex: 146, type: 'attribute.name.scss' } /* 'padding:' */,
|
|
|
+ { startIndex: 154, type: '' },
|
|
|
+ { startIndex: 155, type: 'number.scss' } /* '4px' */,
|
|
|
+ { startIndex: 158, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 159, type: '' },
|
|
|
+ { startIndex: 160, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // @mixin with parameterswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@mixin sexy-border($color, $width: 1in) {\n' +
|
|
|
+ ' border: {\n' +
|
|
|
+ ' color: $color;\n' +
|
|
|
+ ' width: $width;\n' +
|
|
|
+ ' style: dashed;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ '}\n' +
|
|
|
+ 'p { @include sexy-border(blue); }',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@mixin' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'meta.scss' } /* 'sexy-border(' */,
|
|
|
+ { startIndex: 19, type: 'variable.ref.scss' } /* '$color' */,
|
|
|
+ { startIndex: 25, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 26, type: '' },
|
|
|
+ { startIndex: 27, type: 'variable.decl.scss' } /* '$width:' */,
|
|
|
+ { startIndex: 34, type: '' },
|
|
|
+ { startIndex: 35, type: 'number.scss' } /* '1in' */,
|
|
|
+ { startIndex: 38, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 39, type: '' },
|
|
|
+ { startIndex: 40, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 41, type: '' },
|
|
|
+ { startIndex: 44, type: 'attribute.name.scss' } /* 'border:' */,
|
|
|
+ { startIndex: 51, type: '' },
|
|
|
+ { startIndex: 52, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 53, type: '' },
|
|
|
+ { startIndex: 58, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 64, type: '' },
|
|
|
+ { startIndex: 65, type: 'variable.ref.scss' } /* '$color' */,
|
|
|
+ { startIndex: 71, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 72, type: '' },
|
|
|
+ { startIndex: 77, type: 'attribute.name.scss' } /* 'width:' */,
|
|
|
+ { startIndex: 83, type: '' },
|
|
|
+ { startIndex: 84, type: 'variable.ref.scss' } /* '$width' */,
|
|
|
+ { startIndex: 90, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 91, type: '' },
|
|
|
+ { startIndex: 96, type: 'attribute.name.scss' } /* 'style:' */,
|
|
|
+ { startIndex: 102, type: '' },
|
|
|
+ { startIndex: 103, type: 'attribute.value.scss' } /* 'dashed' */,
|
|
|
+ { startIndex: 109, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 110, type: '' },
|
|
|
+ { startIndex: 113, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 114, type: '' },
|
|
|
+ { startIndex: 115, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 116, type: '' },
|
|
|
+ { startIndex: 117, type: 'tag.scss' } /* 'p' */,
|
|
|
+ { startIndex: 118, type: '' },
|
|
|
+ { startIndex: 119, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 120, type: '' },
|
|
|
+ { startIndex: 121, type: 'keyword.scss' } /* '@include' */,
|
|
|
+ { startIndex: 129, type: '' },
|
|
|
+ { startIndex: 130, type: 'meta.scss' } /* 'sexy-border(' */,
|
|
|
+ { startIndex: 142, type: 'attribute.value.scss' } /* 'blue' */,
|
|
|
+ { startIndex: 146, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 147, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 148, type: '' },
|
|
|
+ { startIndex: 149, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // @mixin with varargswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@mixin box-shadow($shadows...) {\n' +
|
|
|
+ ' -moz-box-shadow: $shadows;\n' +
|
|
|
+ ' -webkit-box-shadow: $shadows;\n' +
|
|
|
+ ' box-shadow: $shadows;\n' +
|
|
|
+ '}\n' +
|
|
|
+ '.shadows {\n' +
|
|
|
+ ' @include box-shadow(0px 4px 5px #666, 2px 6px 10px #999);\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@mixin' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'meta.scss' } /* 'box-shadow(' */,
|
|
|
+ { startIndex: 18, type: 'variable.ref.scss' } /* '$shadows' */,
|
|
|
+ { startIndex: 26, type: 'operator.scss' } /* '...' */,
|
|
|
+ { startIndex: 29, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 30, type: '' },
|
|
|
+ { startIndex: 31, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 32, type: '' },
|
|
|
+ { startIndex: 35, type: 'attribute.name.scss' } /* '-moz-box-shadow:' */,
|
|
|
+ { startIndex: 51, type: '' },
|
|
|
+ { startIndex: 52, type: 'variable.ref.scss' } /* '$shadows' */,
|
|
|
+ { startIndex: 60, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 61, type: '' },
|
|
|
+ { startIndex: 64, type: 'attribute.name.scss' } /* '-webkit-box-shadow:' */,
|
|
|
+ { startIndex: 83, type: '' },
|
|
|
+ { startIndex: 84, type: 'variable.ref.scss' } /* '$shadows' */,
|
|
|
+ { startIndex: 92, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 93, type: '' },
|
|
|
+ { startIndex: 96, type: 'attribute.name.scss' } /* 'box-shadow:' */,
|
|
|
+ { startIndex: 107, type: '' },
|
|
|
+ { startIndex: 108, type: 'variable.ref.scss' } /* '$shadows' */,
|
|
|
+ { startIndex: 116, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 117, type: '' },
|
|
|
+ { startIndex: 118, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 119, type: '' },
|
|
|
+ { startIndex: 120, type: 'tag.scss' } /* '.shadows' */,
|
|
|
+ { startIndex: 128, type: '' },
|
|
|
+ { startIndex: 129, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 130, type: '' },
|
|
|
+ { startIndex: 133, type: 'keyword.scss' } /* '@include' */,
|
|
|
+ { startIndex: 141, type: '' },
|
|
|
+ { startIndex: 142, type: 'meta.scss' } /* 'box-shadow(' */,
|
|
|
+ { startIndex: 153, type: 'number.scss' } /* '0px' */,
|
|
|
+ { startIndex: 156, type: '' },
|
|
|
+ { startIndex: 157, type: 'number.scss' } /* '4px' */,
|
|
|
+ { startIndex: 160, type: '' },
|
|
|
+ { startIndex: 161, type: 'number.scss' } /* '5px' */,
|
|
|
+ { startIndex: 164, type: '' },
|
|
|
+ { startIndex: 165, type: 'number.hex.scss' } /* '#666' */,
|
|
|
+ { startIndex: 169, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 170, type: '' },
|
|
|
+ { startIndex: 171, type: 'number.scss' } /* '2px' */,
|
|
|
+ { startIndex: 174, type: '' },
|
|
|
+ { startIndex: 175, type: 'number.scss' } /* '6px' */,
|
|
|
+ { startIndex: 178, type: '' },
|
|
|
+ { startIndex: 179, type: 'number.scss' } /* '10px' */,
|
|
|
+ { startIndex: 183, type: '' },
|
|
|
+ { startIndex: 184, type: 'number.hex.scss' } /* '#999' */,
|
|
|
+ { startIndex: 188, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 189, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 190, type: '' },
|
|
|
+ { startIndex: 191, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // @include with varargswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@mixin colors($text, $background, $border) {\n' +
|
|
|
+ ' color: $text;\n' +
|
|
|
+ ' background-color: $background;\n' +
|
|
|
+ ' border-color: $border;\n' +
|
|
|
+ '}\n' +
|
|
|
+ '$values: #ff0000, #00ff00, #0000ff;\n' +
|
|
|
+ '.primary {\n' +
|
|
|
+ ' @include colors($values...);\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@mixin' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'meta.scss' } /* 'colors(' */,
|
|
|
+ { startIndex: 14, type: 'variable.ref.scss' } /* '$text' */,
|
|
|
+ { startIndex: 19, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 20, type: '' },
|
|
|
+ { startIndex: 21, type: 'variable.ref.scss' } /* '$background' */,
|
|
|
+ { startIndex: 32, type: 'delimiter.scss' } /* ',' */,
|
|
|
+ { startIndex: 33, type: '' },
|
|
|
+ { startIndex: 34, type: 'variable.ref.scss' } /* '$border' */,
|
|
|
+ { startIndex: 41, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 42, type: '' },
|
|
|
+ { startIndex: 43, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 44, type: '' },
|
|
|
+ { startIndex: 47, type: 'attribute.name.scss' } /* 'color:' */,
|
|
|
+ { startIndex: 53, type: '' },
|
|
|
+ { startIndex: 54, type: 'variable.ref.scss' } /* '$text' */,
|
|
|
+ { startIndex: 59, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 60, type: '' },
|
|
|
+ { startIndex: 63, type: 'attribute.name.scss' } /* 'background-color:' */,
|
|
|
+ { startIndex: 80, type: '' },
|
|
|
+ { startIndex: 81, type: 'variable.ref.scss' } /* '$background' */,
|
|
|
+ { startIndex: 92, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 93, type: '' },
|
|
|
+ { startIndex: 96, type: 'attribute.name.scss' } /* 'border-color:' */,
|
|
|
+ { startIndex: 109, type: '' },
|
|
|
+ { startIndex: 110, type: 'variable.ref.scss' } /* '$border' */,
|
|
|
+ { startIndex: 117, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 118, type: '' },
|
|
|
+ { startIndex: 119, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 120, type: '' },
|
|
|
+ { startIndex: 121, type: 'variable.decl.scss' } /* '$values:' */,
|
|
|
+ { startIndex: 129, type: '' },
|
|
|
+ { startIndex: 130, type: 'number.hex.scss' } /* '#ff0000' */,
|
|
|
+ { startIndex: 137, type: 'operator.scss' } /* ',' */,
|
|
|
+ { startIndex: 138, type: '' },
|
|
|
+ { startIndex: 139, type: 'number.hex.scss' } /* '#00ff00' */,
|
|
|
+ { startIndex: 146, type: 'operator.scss' } /* ',' */,
|
|
|
+ { startIndex: 147, type: '' },
|
|
|
+ { startIndex: 148, type: 'number.hex.scss' } /* '#0000ff' */,
|
|
|
+ { startIndex: 155, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 156, type: '' },
|
|
|
+ { startIndex: 157, type: 'tag.scss' } /* '.primary' */,
|
|
|
+ { startIndex: 165, type: '' },
|
|
|
+ { startIndex: 166, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 167, type: '' },
|
|
|
+ { startIndex: 170, type: 'keyword.scss' } /* '@include' */,
|
|
|
+ { startIndex: 178, type: '' },
|
|
|
+ { startIndex: 179, type: 'meta.scss' } /* 'colors(' */,
|
|
|
+ { startIndex: 186, type: 'variable.ref.scss' } /* '$values' */,
|
|
|
+ { startIndex: 193, type: 'operator.scss' } /* '...' */,
|
|
|
+ { startIndex: 196, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 197, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 198, type: '' },
|
|
|
+ { startIndex: 199, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+ // @include with bodywhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@mixin apply-to-ie6-only {\n' +
|
|
|
+ ' * html {\n' +
|
|
|
+ ' @content;\n' +
|
|
|
+ ' }\n' +
|
|
|
+ '}\n' +
|
|
|
+ '@include apply-to-ie6-only {\n' +
|
|
|
+ ' #logo {\n' +
|
|
|
+ ' background-image: url(/logo.gif);\n' +
|
|
|
+ ' }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@mixin' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'meta.scss' } /* 'apply-to-ie6-only' */,
|
|
|
+ { startIndex: 24, type: '' },
|
|
|
+ { startIndex: 25, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 26, type: '' },
|
|
|
+ { startIndex: 29, type: 'tag.scss' } /* '*' */,
|
|
|
+ { startIndex: 30, type: '' },
|
|
|
+ { startIndex: 31, type: 'tag.scss' } /* 'html' */,
|
|
|
+ { startIndex: 35, type: '' },
|
|
|
+ { startIndex: 36, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 37, type: '' },
|
|
|
+ { startIndex: 42, type: 'keyword.scss' } /* '@content' */,
|
|
|
+ { startIndex: 50, type: '' },
|
|
|
+ { startIndex: 54, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 55, type: '' },
|
|
|
+ { startIndex: 56, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 57, type: '' },
|
|
|
+ { startIndex: 58, type: 'keyword.scss' } /* '@include' */,
|
|
|
+ { startIndex: 66, type: '' },
|
|
|
+ { startIndex: 67, type: 'meta.scss' } /* 'apply-to-ie6-only' */,
|
|
|
+ { startIndex: 84, type: '' },
|
|
|
+ { startIndex: 85, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 86, type: '' },
|
|
|
+ { startIndex: 89, type: 'tag.scss' } /* '#logo' */,
|
|
|
+ { startIndex: 94, type: '' },
|
|
|
+ { startIndex: 95, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 96, type: '' },
|
|
|
+ { startIndex: 101, type: 'attribute.name.scss' } /* 'background-image:' */,
|
|
|
+ { startIndex: 118, type: '' },
|
|
|
+ { startIndex: 119, type: 'meta.scss' } /* 'url(' */,
|
|
|
+ { startIndex: 123, type: 'string.scss' } /* '/logo.gif' */,
|
|
|
+ { startIndex: 132, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 133, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 134, type: '' },
|
|
|
+ { startIndex: 137, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 138, type: '' },
|
|
|
+ { startIndex: 139, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // CSS charsetwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@charset "UTF-8";',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@charset' */,
|
|
|
+ { startIndex: 8, type: '' },
|
|
|
+ { startIndex: 9, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 10, type: 'string.scss' } /* 'UTF-8' */,
|
|
|
+ { startIndex: 15, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 16, type: 'delimiter.scss' } /* ';' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // CSS attributeswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '[rel="external"]::after {\n' +
|
|
|
+ ' content: \'s\';\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'delimiter.bracket.scss' } /* '[' */,
|
|
|
+ { startIndex: 1, type: 'attribute.value.scss' } /* 'rel' */,
|
|
|
+ { startIndex: 4, type: 'operator.scss' } /* '=' */,
|
|
|
+ { startIndex: 5, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 6, type: 'string.scss' } /* 'external' */,
|
|
|
+ { startIndex: 14, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 15, type: 'delimiter.bracket.scss' } /* ']' */,
|
|
|
+ { startIndex: 16, type: 'tag.scss' } /* '::after' */,
|
|
|
+ { startIndex: 23, type: '' },
|
|
|
+ { startIndex: 24, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 25, type: '' },
|
|
|
+ { startIndex: 30, type: 'attribute.name.scss' } /* 'content:' */,
|
|
|
+ { startIndex: 38, type: '' },
|
|
|
+ { startIndex: 39, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 40, type: 'string.scss' } /* 's' */,
|
|
|
+ { startIndex: 41, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 42, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 43, type: '' },
|
|
|
+ { startIndex: 44, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // CSS @pagewhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@page :left {\n' +
|
|
|
+ ' margin-left: 4cm;\n' +
|
|
|
+ ' margin-right: 3cm;\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@page' */,
|
|
|
+ { startIndex: 5, type: '' },
|
|
|
+ { startIndex: 6, type: 'tag.scss' } /* ':left' */,
|
|
|
+ { startIndex: 11, type: '' },
|
|
|
+ { startIndex: 12, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 13, type: '' },
|
|
|
+ { startIndex: 16, type: 'attribute.name.scss' } /* 'margin-left:' */,
|
|
|
+ { startIndex: 28, type: '' },
|
|
|
+ { startIndex: 29, type: 'number.scss' } /* '4cm' */,
|
|
|
+ { startIndex: 32, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 33, type: '' },
|
|
|
+ { startIndex: 36, type: 'attribute.name.scss' } /* 'margin-right:' */,
|
|
|
+ { startIndex: 49, type: '' },
|
|
|
+ { startIndex: 50, type: 'number.scss' } /* '3cm' */,
|
|
|
+ { startIndex: 53, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 54, type: '' },
|
|
|
+ { startIndex: 55, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Extend with interpolation variablewhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@mixin error($a: false) {\n' +
|
|
|
+ ' @extend .#{$a};\n' +
|
|
|
+ ' @extend ##{$a};\n' +
|
|
|
+ '}\n' +
|
|
|
+ '#bar {a: 1px;}\n' +
|
|
|
+ '.bar {b: 1px;}\n' +
|
|
|
+ 'foo {\n' +
|
|
|
+ ' @include error(\'bar\'); \n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@mixin' */,
|
|
|
+ { startIndex: 6, type: '' },
|
|
|
+ { startIndex: 7, type: 'meta.scss' } /* 'error(' */,
|
|
|
+ { startIndex: 13, type: 'variable.decl.scss' } /* '$a:' */,
|
|
|
+ { startIndex: 16, type: '' },
|
|
|
+ { startIndex: 17, type: 'attribute.value.scss' } /* 'false' */,
|
|
|
+ { startIndex: 22, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 23, type: '' },
|
|
|
+ { startIndex: 24, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 25, type: '' },
|
|
|
+ { startIndex: 28, type: 'keyword.scss' } /* '@extend' */,
|
|
|
+ { startIndex: 35, type: '' },
|
|
|
+ { startIndex: 36, type: 'tag.scss' } /* '.' */,
|
|
|
+ { startIndex: 37, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 39, type: 'variable.ref.scss' } /* '$a' */,
|
|
|
+ { startIndex: 41, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 42, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 43, type: '' },
|
|
|
+ { startIndex: 46, type: 'keyword.scss' } /* '@extend' */,
|
|
|
+ { startIndex: 53, type: '' },
|
|
|
+ { startIndex: 54, type: 'tag.scss' } /* '#' */,
|
|
|
+ { startIndex: 55, type: 'meta.scss' } /* '#{' */,
|
|
|
+ { startIndex: 57, type: 'variable.ref.scss' } /* '$a' */,
|
|
|
+ { startIndex: 59, type: 'meta.scss' } /* '}' */,
|
|
|
+ { startIndex: 60, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 61, type: '' },
|
|
|
+ { startIndex: 62, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 63, type: '' },
|
|
|
+ { startIndex: 64, type: 'tag.scss' } /* '#bar' */,
|
|
|
+ { startIndex: 68, type: '' },
|
|
|
+ { startIndex: 69, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 70, type: 'attribute.name.scss' } /* 'a:' */,
|
|
|
+ { startIndex: 72, type: '' },
|
|
|
+ { startIndex: 73, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 76, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 77, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 78, type: '' },
|
|
|
+ { startIndex: 79, type: 'tag.scss' } /* '.bar' */,
|
|
|
+ { startIndex: 83, type: '' },
|
|
|
+ { startIndex: 84, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 85, type: 'attribute.name.scss' } /* 'b:' */,
|
|
|
+ { startIndex: 87, type: '' },
|
|
|
+ { startIndex: 88, type: 'number.scss' } /* '1px' */,
|
|
|
+ { startIndex: 91, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 92, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 93, type: '' },
|
|
|
+ { startIndex: 94, type: 'tag.scss' } /* 'foo' */,
|
|
|
+ { startIndex: 97, type: '' },
|
|
|
+ { startIndex: 98, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 99, type: '' },
|
|
|
+ { startIndex: 102, type: 'keyword.scss' } /* '@include' */,
|
|
|
+ { startIndex: 110, type: '' },
|
|
|
+ { startIndex: 111, type: 'meta.scss' } /* 'error(' */,
|
|
|
+ { startIndex: 117, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 118, type: 'string.scss' } /* 'bar' */,
|
|
|
+ { startIndex: 121, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 122, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 123, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 124, type: '' },
|
|
|
+ { startIndex: 128, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // @font-facewhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@font-face { font-family: Delicious; src: url(\'Delicious-Roman.otf\'); } ',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@font-face' */,
|
|
|
+ { startIndex: 10, type: '' },
|
|
|
+ { startIndex: 11, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 12, type: '' },
|
|
|
+ { startIndex: 13, type: 'attribute.name.scss' } /* 'font-family:' */,
|
|
|
+ { startIndex: 25, type: '' },
|
|
|
+ { startIndex: 26, type: 'attribute.value.scss' } /* 'Delicious' */,
|
|
|
+ { startIndex: 35, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 36, type: '' },
|
|
|
+ { startIndex: 37, type: 'attribute.name.scss' } /* 'src:' */,
|
|
|
+ { startIndex: 41, type: '' },
|
|
|
+ { startIndex: 42, type: 'meta.scss' } /* 'url(' */,
|
|
|
+ { startIndex: 46, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 47, type: 'string.scss' } /* 'Delicious-Roman.otf' */,
|
|
|
+ { startIndex: 66, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 67, type: 'meta.scss' } /* ')' */,
|
|
|
+ { startIndex: 68, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 69, type: '' },
|
|
|
+ { startIndex: 70, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 71, type: '' }
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // Keyframeswhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '@-webkit-keyframes NAME-YOUR-ANIMATION {\n' +
|
|
|
+ ' 0% { opacity: 0; }\n' +
|
|
|
+ ' 100% { opacity: 1; }\n' +
|
|
|
+ '}\n' +
|
|
|
+ '@-moz-keyframes NAME-YOUR-ANIMATION {\n' +
|
|
|
+ ' 0% { opacity: 0; }\n' +
|
|
|
+ ' 100% { opacity: 1; }\n' +
|
|
|
+ '}\n' +
|
|
|
+ '@-o-keyframes NAME-YOUR-ANIMATION {\n' +
|
|
|
+ ' 0% { opacity: 0; }\n' +
|
|
|
+ ' 100% { opacity: 1; }\n' +
|
|
|
+ '}\n' +
|
|
|
+ '@keyframes NAME-YOUR-ANIMATION {\n' +
|
|
|
+ ' 0% { opacity: 0; }\n' +
|
|
|
+ ' 100% { opacity: 1; }\n' +
|
|
|
+ '}',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'keyword.scss' } /* '@-webkit-keyframes' */,
|
|
|
+ { startIndex: 18, type: '' },
|
|
|
+ { startIndex: 19, type: 'meta.scss' } /* 'NAME-YOUR-ANIMATION' */,
|
|
|
+ { startIndex: 38, type: '' },
|
|
|
+ { startIndex: 39, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 40, type: '' },
|
|
|
+ { startIndex: 43, type: 'number.scss' } /* '0%' */,
|
|
|
+ { startIndex: 45, type: '' },
|
|
|
+ { startIndex: 48, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 49, type: '' },
|
|
|
+ { startIndex: 50, type: 'attribute.name.scss' } /* 'opacity:' */,
|
|
|
+ { startIndex: 58, type: '' },
|
|
|
+ { startIndex: 59, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 60, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 61, type: '' },
|
|
|
+ { startIndex: 62, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 63, type: '' },
|
|
|
+ { startIndex: 66, type: 'number.scss' } /* '100%' */,
|
|
|
+ { startIndex: 70, type: '' },
|
|
|
+ { startIndex: 71, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 72, type: '' },
|
|
|
+ { startIndex: 73, type: 'attribute.name.scss' } /* 'opacity:' */,
|
|
|
+ { startIndex: 81, type: '' },
|
|
|
+ { startIndex: 82, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 83, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 84, type: '' },
|
|
|
+ { startIndex: 85, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 86, type: '' },
|
|
|
+ { startIndex: 87, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 88, type: '' },
|
|
|
+ { startIndex: 89, type: 'keyword.scss' } /* '@-moz-keyframes' */,
|
|
|
+ { startIndex: 104, type: '' },
|
|
|
+ { startIndex: 105, type: 'meta.scss' } /* 'NAME-YOUR-ANIMATION' */,
|
|
|
+ { startIndex: 124, type: '' },
|
|
|
+ { startIndex: 125, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 126, type: '' },
|
|
|
+ { startIndex: 129, type: 'number.scss' } /* '0%' */,
|
|
|
+ { startIndex: 131, type: '' },
|
|
|
+ { startIndex: 134, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 135, type: '' },
|
|
|
+ { startIndex: 136, type: 'attribute.name.scss' } /* 'opacity:' */,
|
|
|
+ { startIndex: 144, type: '' },
|
|
|
+ { startIndex: 145, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 146, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 147, type: '' },
|
|
|
+ { startIndex: 148, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 149, type: '' },
|
|
|
+ { startIndex: 152, type: 'number.scss' } /* '100%' */,
|
|
|
+ { startIndex: 156, type: '' },
|
|
|
+ { startIndex: 157, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 158, type: '' },
|
|
|
+ { startIndex: 159, type: 'attribute.name.scss' } /* 'opacity:' */,
|
|
|
+ { startIndex: 167, type: '' },
|
|
|
+ { startIndex: 168, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 169, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 170, type: '' },
|
|
|
+ { startIndex: 171, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 172, type: '' },
|
|
|
+ { startIndex: 173, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 174, type: '' },
|
|
|
+ { startIndex: 175, type: 'keyword.scss' } /* '@-o-keyframes' */,
|
|
|
+ { startIndex: 188, type: '' },
|
|
|
+ { startIndex: 189, type: 'meta.scss' } /* 'NAME-YOUR-ANIMATION' */,
|
|
|
+ { startIndex: 208, type: '' },
|
|
|
+ { startIndex: 209, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 210, type: '' },
|
|
|
+ { startIndex: 213, type: 'number.scss' } /* '0%' */,
|
|
|
+ { startIndex: 215, type: '' },
|
|
|
+ { startIndex: 218, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 219, type: '' },
|
|
|
+ { startIndex: 220, type: 'attribute.name.scss' } /* 'opacity:' */,
|
|
|
+ { startIndex: 228, type: '' },
|
|
|
+ { startIndex: 229, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 230, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 231, type: '' },
|
|
|
+ { startIndex: 232, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 233, type: '' },
|
|
|
+ { startIndex: 236, type: 'number.scss' } /* '100%' */,
|
|
|
+ { startIndex: 240, type: '' },
|
|
|
+ { startIndex: 241, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 242, type: '' },
|
|
|
+ { startIndex: 243, type: 'attribute.name.scss' } /* 'opacity:' */,
|
|
|
+ { startIndex: 251, type: '' },
|
|
|
+ { startIndex: 252, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 253, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 254, type: '' },
|
|
|
+ { startIndex: 255, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 256, type: '' },
|
|
|
+ { startIndex: 257, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 258, type: '' },
|
|
|
+ { startIndex: 259, type: 'keyword.scss' } /* '@keyframes' */,
|
|
|
+ { startIndex: 269, type: '' },
|
|
|
+ { startIndex: 270, type: 'meta.scss' } /* 'NAME-YOUR-ANIMATION' */,
|
|
|
+ { startIndex: 289, type: '' },
|
|
|
+ { startIndex: 290, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 291, type: '' },
|
|
|
+ { startIndex: 294, type: 'number.scss' } /* '0%' */,
|
|
|
+ { startIndex: 296, type: '' },
|
|
|
+ { startIndex: 299, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 300, type: '' },
|
|
|
+ { startIndex: 301, type: 'attribute.name.scss' } /* 'opacity:' */,
|
|
|
+ { startIndex: 309, type: '' },
|
|
|
+ { startIndex: 310, type: 'number.scss' } /* '0' */,
|
|
|
+ { startIndex: 311, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 312, type: '' },
|
|
|
+ { startIndex: 313, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 314, type: '' },
|
|
|
+ { startIndex: 317, type: 'number.scss' } /* '100%' */,
|
|
|
+ { startIndex: 321, type: '' },
|
|
|
+ { startIndex: 322, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 323, type: '' },
|
|
|
+ { startIndex: 324, type: 'attribute.name.scss' } /* 'opacity:' */,
|
|
|
+ { startIndex: 332, type: '' },
|
|
|
+ { startIndex: 333, type: 'number.scss' } /* '1' */,
|
|
|
+ { startIndex: 334, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 335, type: '' },
|
|
|
+ { startIndex: 336, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 337, type: '' },
|
|
|
+ { startIndex: 338, type: 'delimiter.curly.scss' } /* '}' */
|
|
|
+ ]}],
|
|
|
+
|
|
|
+ // String escapingwhitespaces
|
|
|
+ [{
|
|
|
+ line:
|
|
|
+ '[data-icon=\'test-1\']:before {\n' +
|
|
|
+ ' content:\'\\\\\';\n' +
|
|
|
+ '}\n' +
|
|
|
+ '/* a comment */\n' +
|
|
|
+ '$var1: \'\\\'\';\n' +
|
|
|
+ '$var2: "\\"";\n' +
|
|
|
+ '/* another comment */',
|
|
|
+ tokens: [
|
|
|
+ { startIndex: 0, type: 'delimiter.bracket.scss' } /* '[' */,
|
|
|
+ { startIndex: 1, type: 'attribute.value.scss' } /* 'data-icon' */,
|
|
|
+ { startIndex: 10, type: 'operator.scss' } /* '=' */,
|
|
|
+ { startIndex: 11, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 12, type: 'string.scss' } /* 'test-1' */,
|
|
|
+ { startIndex: 18, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 19, type: 'delimiter.bracket.scss' } /* ']' */,
|
|
|
+ { startIndex: 20, type: 'tag.scss' } /* ':before' */,
|
|
|
+ { startIndex: 27, type: '' },
|
|
|
+ { startIndex: 28, type: 'delimiter.curly.scss' } /* '{' */,
|
|
|
+ { startIndex: 29, type: '' },
|
|
|
+ { startIndex: 32, type: 'attribute.name.scss' } /* 'content:' */,
|
|
|
+ { startIndex: 40, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 41, type: 'string.scss' } /* '\\' */,
|
|
|
+ { startIndex: 43, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 44, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 45, type: '' },
|
|
|
+ { startIndex: 46, type: 'delimiter.curly.scss' } /* '}' */,
|
|
|
+ { startIndex: 47, type: '' },
|
|
|
+ { startIndex: 48, type: 'comment.scss' } /* '/* a comment * /' */,
|
|
|
+ { startIndex: 63, type: '' },
|
|
|
+ { startIndex: 64, type: 'variable.decl.scss' } /* '$var1:' */,
|
|
|
+ { startIndex: 70, type: '' },
|
|
|
+ { startIndex: 71, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 72, type: 'string.scss' } /* '\'' */,
|
|
|
+ { startIndex: 74, type: 'string.delimiter.scss' } /* ''' */,
|
|
|
+ { startIndex: 75, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 76, type: '' },
|
|
|
+ { startIndex: 77, type: 'variable.decl.scss' } /* '$var2:' */,
|
|
|
+ { startIndex: 83, type: '' },
|
|
|
+ { startIndex: 84, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 85, type: 'string.scss' } /* '\"' */,
|
|
|
+ { startIndex: 87, type: 'string.delimiter.scss' } /* '"' */,
|
|
|
+ { startIndex: 88, type: 'delimiter.scss' } /* ';' */,
|
|
|
+ { startIndex: 89, type: '' },
|
|
|
+ { startIndex: 90, type: 'comment.scss' } /* '/* another comment * /' */
|
|
|
+ ]}],
|
|
|
+]);
|