diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 4a0b4b0a9051..fdec0270216f 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -170,6 +170,7 @@ | sshclientconfig | ✓ | | | | | starlark | ✓ | ✓ | | | | strace | ✓ | | | | +| supercollider | ✓ | | | | | svelte | ✓ | | ✓ | `svelteserver` | | sway | ✓ | ✓ | ✓ | `forc` | | swift | ✓ | | | `sourcekit-lsp` | diff --git a/languages.toml b/languages.toml index 6e6c57932d10..f0d6771fc15a 100644 --- a/languages.toml +++ b/languages.toml @@ -3328,3 +3328,15 @@ grammar = "hyprlang" [[grammar]] name = "hyprlang" source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-hyprlang", rev = "27af9b74acf89fa6bed4fb8cb8631994fcb2e6f3"} + +[[language]] +name = "supercollider" +scope = "source.supercollider" +injection-regex = "supercollider" +file-types = ["scd", "sc", "quark"] +comment-token = "//" +indent = { tab-width = 4, unit = "\t" } + +[[grammar]] +name = "supercollider" +source = { git = "https://github.com/madskjeldgaard/tree-sitter-supercollider", rev = "3b35bd0fded4423c8fb30e9585c7bacbcd0e8095" } diff --git a/runtime/queries/supercollider/folds.scm b/runtime/queries/supercollider/folds.scm new file mode 100644 index 000000000000..214247bc0fb1 --- /dev/null +++ b/runtime/queries/supercollider/folds.scm @@ -0,0 +1,7 @@ +[ +(function_call) +(code_block) +(function_block) +(control_structure) +] @fold + diff --git a/runtime/queries/supercollider/highlights.scm b/runtime/queries/supercollider/highlights.scm new file mode 100644 index 000000000000..0128606de747 --- /dev/null +++ b/runtime/queries/supercollider/highlights.scm @@ -0,0 +1,76 @@ +(line_comment) @comment.line +(block_comment) @comment.block + +(argument name: (identifier) @variable.parameter) + +(local_var name: (identifier) @variable) +(environment_var name:(identifier) @variable.builtin) +(builtin_var) @constant.builtin + +(function_definition name: (variable) @function) + +(named_argument name: (identifier) @variable.other.member) + +(method_call name: (method_name) @function.method) + +(class) @keyword.storage.type + +(number) @constant.numeric +(float) @constant.numeric.float + +(string) @string +(symbol) @string.special.symbol + +[ +"&&" +"||" +"&" +"|" +"^" +"==" +"!=" +"<" +"<=" +">" +">=" +"<<" +">>" +"+" +"-" +"*" +"/" +"%" +"=" +"|@|" +"@@" +"@|@" +] @operator + +[ +"arg" +"classvar" +"const" +"var" +] @keyword + +[ + "(" + ")" + "[" + "]" + "{" + "}" + "|" +] @punctuation.bracket + +[ + ";" + "." + "," +] @punctuation.delimiter + +(control_structure) @keyword.control.conditional + +(escape_sequence) @string.special + +(duplicated_statement) @keyword.control.repeat