diff --git a/Syntaxes/SCSS.sublime-syntax b/Syntaxes/SCSS.sublime-syntax index 2bd48bc5..ca9047d3 100644 --- a/Syntaxes/SCSS.sublime-syntax +++ b/Syntaxes/SCSS.sublime-syntax @@ -573,13 +573,17 @@ contexts: 2: punctuation.definition.keyword.css push: - meta_scope: meta.at-rule.import.css + - match: ';' + scope: punctuation.terminator.rule.scss + pop: true - match: '(\()(reference|inline|less|css|once|multiple|optional)(\))' captures: 0: meta.function.parameters.scss 1: punctuation.definition.group.begin.scss 2: constant.other.scss 3: punctuation.definition.group.end.scss - - include: at-rule-punctuation + - include: comment-block + - include: comment-line - include: literal-string - include: url-function - include: media-query @@ -645,7 +649,7 @@ contexts: 1: keyword.control.at-rule.content.scss 2: punctuation.definition.keyword.scss push: - - match: '(;)' + - match: ';' scope: punctuation.terminator.rule.scss pop: true - match: '(?=$)' diff --git a/Syntaxes/Sass.sublime-syntax b/Syntaxes/Sass.sublime-syntax index 284f5ce7..1f937607 100644 --- a/Syntaxes/Sass.sublime-syntax +++ b/Syntaxes/Sass.sublime-syntax @@ -552,7 +552,10 @@ contexts: 1: punctuation.definition.group.begin.sass 2: constant.other.sass 3: punctuation.definition.group.end.sass - - include: at-rule-punctuation + - match: '(?=$)' + pop: true + - include: comment-block + - include: comment-line - include: literal-string - include: url-function - include: media-query diff --git a/Tests/syntax_test_sass.sass b/Tests/syntax_test_sass.sass index 8fe985da..8ab7470f 100644 --- a/Tests/syntax_test_sass.sass +++ b/Tests/syntax_test_sass.sass @@ -134,6 +134,25 @@ input:not([type="radio"]):not(h1):not(custom-element):not(%placeholder), select, // line comment contains #{ function($variable) + "escap\e" + -.5em // <- comment.line.double-slash.sass punctuation.definition.comment.css +@import "imports/somefile.scss" // this should be a comment +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ comment.line.double-slash +// ^^ punctuation.definition.comment + +/* + Import Statements + http://sass-lang.com/documentation/file.SASS_REFERENCE.html#import +*/ +@import "foo.css" +@import "foo" screen +// ^ support.constant.media +@import "http://foo.com/bar" +@import url(foo) +@import "rounded-corners", "text-shadow" +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.at-rule.import +// ^ punctuation.definition.arbitrary-repetition +#main + @import "example" + /* Strings, (un)quoted, operations and interpolation diff --git a/Tests/syntax_test_scss.scss b/Tests/syntax_test_scss.scss index 3a8938bc..58fad2a0 100644 --- a/Tests/syntax_test_scss.scss +++ b/Tests/syntax_test_scss.scss @@ -128,6 +128,36 @@ // line comment contains #{ function($variable) + "escap\e" + -.5em } // <- comment.line.double-slash.scss punctuation.definition.comment.css +@import "imports/somefile.scss"; // this should be a comment +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ comment.line.double-slash +// ^^ punctuation.definition.comment + +main { + -ms-text-size-adjust: 100%; +} + +/* + Import Statements + http://sass-lang.com/documentation/file.SASS_REFERENCE.html#import +*/ +@import "foo.css"; +@import "foo" screen; +// ^ support.constant.media +@import "http://foo.com/bar"; +@import url(foo); +@import "rounded-corners", "text-shadow"; +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.at-rule.import +// ^ punctuation.definition.arbitrary-repetition +// ^ punctuation.terminator.rule +@import "rounded-corners", // this is a line comment +// ^ punctuation.definition.arbitrary-repetition +// ^^ comment.line + "functions/filter"; +// ^ meta.at-rule.import +#main { + @import "example"; +} + /* Strings, (un)quoted, operations and interpolation