diff --git a/src/languages/scss.js b/src/languages/scss.js index e23fe29950..6277f7db5c 100644 --- a/src/languages/scss.js +++ b/src/languages/scss.js @@ -29,7 +29,7 @@ export default { 'selector': { // Initial look-ahead is used to prevent matching of blank selectors pattern: - /(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/, + /(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\}|:{1,2}[-\w]+\((?:[^()]|\([^()]*\))*\))+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/, inside: { 'parent': { pattern: /&/, diff --git a/tests/languages/scss/selector_feature.test b/tests/languages/scss/selector_feature.test index cb305dfbd6..32cd21cbd3 100644 --- a/tests/languages/scss/selector_feature.test +++ b/tests/languages/scss/selector_feature.test @@ -5,9 +5,8 @@ p, div {} &-sidebar {} #context a%extreme {} #{$selector}:before {} - +foo :foo() bar {} ---------------------------------------------------- - [ ["selector", ["a "]], ["punctuation", "{"], ["punctuation", "}"], ["selector", ["p, div "]], ["punctuation", "{"], ["punctuation", "}"], @@ -15,9 +14,8 @@ p, div {} ["selector", [["parent", "&"], ":hover "]], ["punctuation", "{"], ["punctuation", "}"], ["selector", [["parent", "&"], "-sidebar "]], ["punctuation", "{"], ["punctuation", "}"], ["selector", ["#context a", ["placeholder", "%extreme"]]], ["punctuation", "{"], ["punctuation", "}"], - ["selector", [["variable", "#{$selector}"], ":before "]], ["punctuation", "{"], ["punctuation", "}"] + ["selector", [["variable", "#{$selector}"], ":before "]], ["punctuation", "{"], ["punctuation", "}"], + ["selector", ["foo :foo() bar "]], ["punctuation", "{"], ["punctuation", "}"] ] - ---------------------------------------------------- - -Checks for selectors. \ No newline at end of file +Checks for selectors.