[
  "@at-root"
  "@content"
  "@debug"
  "@each"
  "@else"
  "@error"
  "@extend"
  "@for"
  "@forward"
  "@function"
  "@if"
  "@include"
  "@mixin"
  "@return"
  "@use"
  "@warn"
  "@while"
] @style.at

(default) @keyword
(global) @keyword

[
  "as"
  "from"
  "hide"
  "in"
  "show"
  "through"
  "to"
  "using"
  "with"
] @keyword.modifier

[
  "=="
  "!="
  ">="
  "<"
  "<="
  "%"
] @operator

(variable) @identifier.variable

(keyword_query) @identifier.function

((property_name) @identifier.variable
  (#match? @identifier.variable "^\\$")
  (#set! priority 10)
)

(function_name) @identifier.function

(function_statement
  name: (identifier) @identifier.function)

(function_statement
  (parameters
    (parameter (variable) @identifier.argument)))
(function_statement
  (parameters
    (parameter "..." @operator)))

(mixin_statement
  name: (identifier) @identifier.function)

(mixin_statement
  (parameters
    (parameter (variable) @identifier.argument)))
(mixin_statement
  (parameters
    (parameter "..." @operator)))

(call_expression
  (arguments
    "..." @operator))

(include_statement
  (identifier) @identifier.function)

(placeholder_selector "%" @style.selector.placeholder.prefix) @style.selector.placeholder

(interpolation
  "#{" @processing.interpolation.delimiter.left
  "}" @processing.interpolation.delimiter.right
  )

(string_escape) @string.escape
