aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml13
-rw-r--r--runtime/queries/scss/highlights.scm86
-rw-r--r--runtime/queries/scss/injections.scm2
4 files changed, 102 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index 64cb32c3..aecf80ac 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -85,6 +85,7 @@
| rust | ✓ | ✓ | ✓ | `rust-analyzer` |
| scala | ✓ | | ✓ | `metals` |
| scheme | ✓ | | | |
+| scss | ✓ | | | `vscode-css-language-server` |
| solidity | ✓ | | | `solc` |
| sql | ✓ | | | |
| sshclientconfig | ✓ | | | |
diff --git a/languages.toml b/languages.toml
index 20493e4c..cd87d79b 100644
--- a/languages.toml
+++ b/languages.toml
@@ -382,6 +382,19 @@ name = "css"
source = { git = "https://github.com/tree-sitter/tree-sitter-css", rev = "94e10230939e702b4fa3fa2cb5c3bc7173b95d07" }
[[language]]
+name = "scss"
+scope = "source.scss"
+injection-regex = "scss"
+file-types = ["scss"]
+roots = []
+language-server = { command = "vscode-css-language-server", args = ["--stdio"] }
+indent = { tab-width = 2, unit = " " }
+
+[[grammar]]
+name = "scss"
+source = { git = "https://github.com/serenadeai/tree-sitter-scss.git", rev = "c478c6868648eff49eb04a4df90d703dc45b312a" }
+
+[[language]]
name = "html"
scope = "text.html.basic"
injection-regex = "html"
diff --git a/runtime/queries/scss/highlights.scm b/runtime/queries/scss/highlights.scm
new file mode 100644
index 00000000..89cce494
--- /dev/null
+++ b/runtime/queries/scss/highlights.scm
@@ -0,0 +1,86 @@
+(comment) @comment
+
+"~" @operator
+">" @operator
+"+" @operator
+"-" @operator
+"*" @operator
+"/" @operator
+"=" @operator
+"^=" @operator
+"|=" @operator
+"~=" @operator
+"$=" @operator
+"*=" @operator
+
+"in" @operator
+"and" @operator
+"or" @operator
+"not" @operator
+"only" @operator
+
+"@apply" @constant.builtin
+"@at-root" @constant.builtin
+"@charset" @constant.builtin
+"@debug" @constant.builtin
+"@each" @keyword.control.repeat
+"@else" @keyword.control.conditional
+"@error" @constant.builtin
+"@extend" @constant.builtin
+"@for" @keyword.control.repeat
+"@forward" @keyword.control.import
+"@function" @function.method
+"@if" @keyword.control.conditional
+"@import" @keyword.control.import
+"@include" @keyword.control.import
+"@keyframes" @constant.builtin
+"@media" @constant.builtin
+"@mixin" @constant.builtin
+"@namespace" @namespace
+"@return" @keyword.control.return
+"@supports" @constant.builtin
+"@use" @keyword.control.import
+"@warn" @constant.builtin
+"@while" @keyword.control.repeat
+
+((property_name) @variable
+ (match? @variable "^--"))
+((plain_value) @variable
+ (match? @variable "^--"))
+
+(tag_name) @tag
+(universal_selector) @tag
+(attribute_selector (plain_value) @string)
+(nesting_selector) @variable.other.member
+(pseudo_element_selector) @attribute
+(pseudo_class_selector) @attribute
+
+(identifier) @variable
+(class_name) @variable
+(id_name) @variable
+(namespace_name) @variable
+(property_name) @variable.other.member
+(feature_name) @variable
+(variable) @variable
+(variable_name) @variable.other.member
+(variable_value) @variable.other.member
+(argument_name) @variable.parameter
+(selectors) @variable.other.member
+
+(attribute_name) @attribute
+
+(function_name) @function
+
+(to) @keyword
+(from) @keyword
+(important) @keyword
+
+(string_value) @string
+(color_value) @string.special
+
+(integer_value) @constant.numeric.integer
+(float_value) @constant.numeric.float
+(unit) @type
+
+"#" @punctuation.delimiter
+"," @punctuation.delimiter
diff --git a/runtime/queries/scss/injections.scm b/runtime/queries/scss/injections.scm
new file mode 100644
index 00000000..321c90ad
--- /dev/null
+++ b/runtime/queries/scss/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))