define ( "vs/basic-languages/src/scss" , [ "require" , "exports" ] , function ( e , n ) { n . conf = { wordPattern : /(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g , comments : { blockComment : [ "/*" , "*/" ] , lineComment : "//" } , brackets : [ [ "{" , "}" ] , [ "[" , "]" ] , [ "(" , ")" ] , [ "<" , ">" ] ] , autoClosingPairs : [ { open : '"' , close : '"' , notIn : [ "string" , "comment" ] } , { open : "'" , close : "'" , notIn : [ "string" , "comment" ] } , { open : "{" , close : "}" , notIn : [ "string" , "comment" ] } , { open : "[" , close : "]" , notIn : [ "string" , "comment" ] } , { open : "(" , close : ")" , notIn : [ "string" , "comment" ] } , { open : "<" , close : ">" , notIn : [ "string" , "comment" ] } ] } ; var t = "entity.name.selector" , o = "entity.name.tag" , r = "support.type.property-name" , i = "support.property-value" , c = "keyword.control.at-rule" ; n . language = { defaultToken : "" , tokenPostfix : ".scss" , ws : "[ \t\n\r\f]*" , identifier : "-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*" , brackets : [ { open : "{" , close : "}" , token : "punctuation.curly" } , { open : "[" , close : "]" , token : "punctuation.bracket" } , { open : "(" , close : ")" , token : "punctuation.parenthesis" } , { open : "<" , close : ">" , token : "punctuation.angle" } ] , tokenizer : { root : [ { include : "@selector" } ] , selector : [ { include : "@comments" } , { include : "@import" } , { include : "@variabledeclaration" } , { include : "@warndebug" } , [ "[@](include)" , { token : c , next : "@includedeclaration" } ] , [ "[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)" , { token : c , next : "@keyframedeclaration" } ] , [ "[@](page|content|font-face|-moz-document)" , { token : c } ] , [ "[@](charset|namespace)" , { token : c , next : "@declarationbody" } ] , [ "[@](function)" , { token : c , next : "@functiondeclaration" } ] , [ "[@](mixin)" , { token : c , next : "@mixindeclaration" } ] , [ "url(\\-prefix)?\\(" , { token : "support.function.name" , bracket : "@open" , next : "@urldeclaration" } ] , { include : "@controlstatement" } , { include : "@selectorname" } , [ "[&\\*]" , o ] , [ "[>\\+,]" , "punctuation" ] , [ "\\[" , { token : "punctuation.bracket" , bracket : "@open" , next : "@selectorattribute" } ] , [ "{" , { token : "punctuation.curly" , bracket : "@open" , next : "@selectorbody" } ] ] , selectorbody : [ [ "[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))" , r , "@rulevalue" ] , { include : "@selector" } , [ "[@](extend)" , { token : c , next : "@extendbody" } ] , [ "[@](return)" , { token : c , next : "@declarationbody" } ] , [ "}" , { token : "punctuation.curly" , bracket : "@close" , next : "@pop" } ] ] , selectorname : [ [ "#{" , { token : "support.function.interpolation" , bracket : "@open" , next : "@variableinterpolation" } ] , [ "(\\.|#(?=[^{])|%|(@identifier)|:)+" , t ] ] , selectorattribute : [ { include : "@term" } , [ "]" , { token : "punctuation.bracket" , bracket : "@close" , next : "@pop" } ] ] , term : [ { include : "@comments" } , [ "url(\\-prefix)?\\(" , { token : "support.function.name" , bracket : "@open" , next : "@urldeclaration" } ] , { include : "@functioninvocation" } , { include : "@numbers" } , { include : "@strings" } , { include : "@variablereference" } , [ "(and\\b|or\\b|not\\b)" , "keyword.operator" ] , { include : "@name" } , [ "([<>=\\+\\-\\*\\/\\^\\|\\~,])" , "keyword.operator" ] , [ "," , "punctuation" ] , [ "!default" , "literal" ] , [ "\\(" , { token : "punctuation.parenthesis" , bracket : "@open" , next : "@parenthizedterm" } ] ] , rulevalue : [ { include : "@term" } , [ "!important" , "literal" ] , [ ";" , "punctuation" , "@pop" ] , [ "{" , { token : "punctuation.curly" , bracket : "@open" , switchTo : "@nestedproperty" } ] , [ "(?=})" , { token : "" , next : "@pop" } ] ] , nestedproperty : [ [ "[*_]?@identifier@ws:" , r , "@rulevalue" ] , { include : "@comments" } , [ "}" , { token : "punctuation.curly" , bracket : "@close" , next : "@pop" } ] ] , warndebug : [ [ "[@](warn|debug)" , { token : c , next : "@declarationbody" } ] ] , "import" : [ [ "[@](import)" , { token : c , next : "@declarationbody" } ] ] , variabledeclaration : [ [ "\\$@identifier@ws:" , "variable.decl" , "@declarationbody" ] ] , urldeclaration : [ { include : "@strings" } , [ "[^)\r\n]+" , "string" ] , [ "\\)" , { token : "support.function.name" , bracket : "@close" , next : "@pop" } ] ] , parenthizedterm : [ { include : "@term" } , [ "\\)" , { token : "punctuation.parenthesis" , bracket : "@close" , next : "@pop" } ] ] , declarationbody : [ { include : "@term" } , [ ";" , "punctuation" , "@pop" ] , [ "(?=})" , { token : "" , next : "@pop" } ] ] , extendbody : [ { include : "@selectorname" } , [ "!optional" , "literal" ] , [ ";" , "punctuation" , "@pop" ] , [ "(?=})" , { token : "" , next : "@pop" } ] ] , variablereference : [ [ "\\$@identifier" , "variable.ref" ] , [ "\\.\\.\\." , "keyword.operator" ] , [ "#{" , { token : "support.function.interpolation" , bracket : "@open" , next : "@variableinterpolation" } ] ] , variableinterpolation : [ { include : "@variablereference" } , [ "}" , { token : "support.function.interpolation" , bracket : "@close" , next : "@pop" } ] ] , comments : [ [ "\\/\\*" , "comment" , "@comment" ] , [ "\\/\\/+.*" , "comment" ] ] , comment : [ [ "\\*\\/" , "comment" , "@pop" ] , [ "." , "comment" ] ] , name : [ [ "@identifier" , i ] ] , numbers : [ [ "(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?" , { token : "constant.numeric" , next : "@units" } ] , [ "#[0-9a-fA-F_]+(?!\\w)" , "constant.rgb-value" ] ] , units : [ [ "(em|ex|ch|rem|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?" , "constant.numeric" , "@pop" ] ] , functiondeclaration : [ [ "@identifier@ws\\(" , { token : "support.function.name" , bracket : "@open" , next : "@parameterdeclaration" } ] , [ "{" , { token : "punctuation.curly" , bracket : "@open" , switchTo : "@functionbody" } ] ] , mixindeclaration : [ [ "@identifier@ws\\(" , { token : "support.function.name" , bracket : "@open" , next : "@parameterdeclaration" } ] , [ "@identifier" , "support.function.name" ] , [ "{" , { token : "punctuation.curly" , bracket : "@open" , switchTo : "@selectorbody" } ] ] , parameterdeclaration : [ [ "\\$@identifier@ws:" , "variable" ] , [ "\\.\\.\\." , "keyword.operator" ] , [ "," , "punctuation" ] , { include : "@term" } , [ "\\)" , { token : "support.function.name" , bracket : "@close" , next : "@pop" } ] ] , includedeclaration : [ { include : "@functioninvocation" } , [ "@identifier" , "support.function.name" ] , [ ";" , "punctuation" , "@pop" ] , [ "(?=})" , { token : "" , next : "@pop" } ] , [ "{" , { token : "punctuation.curly" , bracket : "@open" , switchTo : "@selectorbody" } ] ] , keyframedeclaration : [ [ "@identifier" , "support.function.name" ] , [ "{" , { token : "punctuation.curly" , bracket : "@open" , switchTo : "@keyframebody" } ] ] , keyframebody : [ { include : "@term" } , [ "{" , { token : "punctuation.curly" , bracket : "@open" , next : "@selectorbody" } ] , [ "}" , { token : "punctuation.curly" , bracket : "@close" , next : "@pop" } ] ] , controlstatement : [ [ "[@](if|else|for|while|each|media)" , { token : "keyword.flow.control.at-rule" , next : "@controlstatementdeclaration" } ] ] , controlstatementdeclaration : [ [ "(in|from|through|if|to)\\b" , { token : "keyword.flow.control.at-rule" } ] , { include : "@term" } , [ "{" , { token : "punctuation.curly" , bracket : "@open" , switchTo : "@selectorbody" } ] ] , functionbody : [ [ "[@](return)" , { token : c } ] , { include : "@variabledeclaration" } , { include : "@term" } , { include : "@controlstatement" } , [ ";" , "punctuation" ] , [ "}" , { token : "punctuation.curly" , bracket : "@close" , next : "@pop" } ] ] , functioninvocation : [ [ "@identifier\\(" , { token : "support.function.name" , bracket : "@open" , next : "@functionarguments" } ] ] , functionarguments : [ [ "\\$@identifier@ws:" , r ] , [ "[,]" , "punctuation" ] , { include : "@term" } , [ "\\)" , { token : "support.function.name" , bracket : "@close" , next : "@pop" } ] ] , strings : [ [ '~?"' , { token : "string.punctuation" , bracket : "@open" , next : "@stringenddoublequote" } ] , [ "~?'" , { token : "string.punctuation" , bracket : "@open" , next : "@stringendquote" } ] ] , stringenddoublequote : [ [ "\\\\." , "string" ] , [ '"' , { token : "string.punctuation" , next : "@pop" , bracket : "@close" } ] , [ "." , "string" ] ] , stringendquote : [ [ "\\\\." , "string" ] , [ "'" , { token : "string.punctuation" , next : "@pop" , bracket : "@close" } ] , [ "." , "string" ] ] } } ; } ) ;