diff --git a/languages.toml b/languages.toml index d270c2ea..915fd81f 100644 --- a/languages.toml +++ b/languages.toml @@ -1700,10 +1700,9 @@ file-types = ["cairo"] roots = [] comment-token = "//" indent = { tab-width = 4, unit = " " } - -[[grammar]] -name = "cairo" -source = { git = "https://github.com/archseer/tree-sitter-cairo", rev = "b249662a1eefeb4d71c9529cdd971e74fecc10fe" } +# auto-format = true +language-server = { command = "cairo-language-server", args = [] } +grammar = "rust" [[language]] name = "cpon" diff --git a/runtime/queries/cairo/highlights.scm b/runtime/queries/cairo/highlights.scm index c10ce5e0..ae55c7fa 100644 --- a/runtime/queries/cairo/highlights.scm +++ b/runtime/queries/cairo/highlights.scm @@ -1,94 +1 @@ -(ERROR) @error - -((identifier) @constant - (#match? @constant "^[A-Z][A-Z\\d_]+$")) -((identifier_def) @constant - (#match? @constant "^[A-Z][A-Z\\d_]+$")) - -((identifier) @namespace - (#match? @namespace "^[A-Z]")) -((identifier_def) @namespace - (#match? @namespace "^[A-Z]")) - -(identifier "." @punctuation) -(function_call (identifier) @function) -(func (identifier_def) @function) - -(string) @string -(atom_short_string) @string - -(code_element_directive) @keyword.directive -"return" @keyword - -(number) @constant.numeric -(atom_hex_number) @constant.numeric - -(comment) @comment - -"*" @special -(type) @type - -[ - "felt" - ; "codeoffset" -] @type.builtin - -[ - "if" - "else" - "assert" - "with" - "with_attr" -] @keyword.control - -[ - "from" - "import" - "func" - "namespace" -] @keyword ; keyword.declaration - -[ - "let" - "const" - "local" - "struct" - "alloc_locals" - "tempvar" -] @keyword - -(decorator) @attribute - -[ - "=" - "+" - "-" - "*" - "/" - ; "%" - ; "!" - ; ">" - ; "<" - ; "\\" - ; "&" - ; "?" - ; "^" - ; "~" - "==" - "!=" - "new" -] @operator - -[ - "(" - ")" - "[" - "]" - "{" - "}" -] @punctuation.bracket - -[ - "," - ":" -] @punctuation.delimiter +; inherits: rust diff --git a/runtime/queries/cairo/indents.scm b/runtime/queries/cairo/indents.scm new file mode 100644 index 00000000..ae55c7fa --- /dev/null +++ b/runtime/queries/cairo/indents.scm @@ -0,0 +1 @@ +; inherits: rust diff --git a/runtime/queries/cairo/injections.scm b/runtime/queries/cairo/injections.scm index e6f9be1b..a2358b1c 100644 --- a/runtime/queries/cairo/injections.scm +++ b/runtime/queries/cairo/injections.scm @@ -1,5 +1,3 @@ -((hint) @injection.content - (#set! injection.language "python")) - -((comment) @injection.content +([(line_comment) (block_comment)] @injection.content (#set! injection.language "comment")) + diff --git a/runtime/queries/cairo/locals.scm b/runtime/queries/cairo/locals.scm new file mode 100644 index 00000000..ae55c7fa --- /dev/null +++ b/runtime/queries/cairo/locals.scm @@ -0,0 +1 @@ +; inherits: rust diff --git a/runtime/queries/cairo/textobjects.scm b/runtime/queries/cairo/textobjects.scm new file mode 100644 index 00000000..ae55c7fa --- /dev/null +++ b/runtime/queries/cairo/textobjects.scm @@ -0,0 +1 @@ +; inherits: rust