Change Odin grammar to ap29600/tree-sitter-odin (#6766)

* Change Odin grammar to `ap29600/tree-sitter-odin`

The previously adopted grammar, `MineBill/tree-sitter-odin`, is unmaintained and mentions my repository as an alternative source.

* update queries

* docgen

* fix queries

* Update runtime/queries/odin/highlights.scm

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>

* remove `ERROR` query for `odin`

* track the latest rev in `ap29600/tree-sitter-odin`

* runtime/queries/odin/highlights.scm: update rune highlight class

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>

---------

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
This commit is contained in:
ap29600 2023-04-27 16:32:21 +02:00 committed by GitHub
parent 2836ea2ac4
commit 9cdc6b2e8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 135 deletions

View File

@ -98,7 +98,7 @@
| nu | ✓ | | | |
| ocaml | ✓ | | ✓ | `ocamllsp` |
| ocaml-interface | ✓ | | | `ocamllsp` |
| odin | ✓ | | | `ols` |
| odin | ✓ | | | `ols` |
| opencl | ✓ | ✓ | ✓ | `clangd` |
| openscad | ✓ | | | `openscad-lsp` |
| org | ✓ | | | |

View File

@ -1675,7 +1675,7 @@ indent = { tab-width = 4, unit = "\t" }
[[grammar]]
name = "odin"
source = { git = "https://github.com/MineBill/tree-sitter-odin", rev = "da885f4a387f169b9b69fe0968259ee257a8f69a" }
source = { git = "https://github.com/ap29600/tree-sitter-odin", rev = "b219207e49ffca2952529d33e94ed63b1b75c4f1" }
[[language]]
name = "meson"

View File

@ -1,141 +1,26 @@
; Function calls
(call_expression
function: (identifier) @function)
(call_expression
function: (selector_expression
field: (field_identifier) @function))
; ; Function definitions
(function_declaration
name: (identifier) @function)
(proc_group
(identifier) @function)
; ; Identifiers
(type_identifier) @type
(field_identifier) @variable.other.member
(identifier) @variable
(const_declaration
(identifier) @constant)
(const_declaration_with_type
(identifier) @constant)
"any" @type
(directive_identifier) @constant
; ; Operators
[
"?"
"-"
"-="
":="
"!"
"!="
"*"
"*"
"*="
"/"
"/="
"&"
"&&"
"&="
"%"
"%="
"^"
"+"
"+="
"<-"
"<"
"<<"
"<<="
"<="
"="
"=="
">"
">="
">>"
">>="
"|"
"|="
"||"
"~"
".."
"..<"
"..="
"::"
] @operator
; ; Keywords
[
; "asm"
"auto_cast"
; "bit_set"
"cast"
; "context"
; "or_else"
; "or_return"
"in"
; "not_in"
"distinct"
"foreign"
"transmute"
; "typeid"
"break"
"case"
"continue"
"defer"
"else"
"using"
"when"
"where"
"fallthrough"
"for"
"proc"
"if"
"import"
"map"
"package"
"return"
"struct"
"union"
"enum"
"switch"
"dynamic"
] @keyword
; ; Literals
[
(interpreted_string_literal)
(raw_string_literal)
(rune_literal)
] @string
(escape_sequence) @constant.character.escape
(keyword) @keyword
(operator) @operator
(int_literal) @constant.numeric.integer
(float_literal) @constant.numeric.float
(imaginary_literal) @constant.numeric
(rune_literal) @constant.character
(bool_literal) @constant.builtin.boolean
(nil) @constant.builtin
[
(true)
(false)
] @constant.builtin.boolean
(type_identifier) @type
(package_identifier) @namespace
(label_identifier) @label
[
(nil)
(undefined)
] @constant.builtin
(interpreted_string_literal) @string
(raw_string_literal) @string
(escape_sequence) @constant.character.escape
(comment) @comment.line
(comment) @comment
(const_identifier) @constant
(compiler_directive) @keyword.directive
(calling_convention) @string.special.symbol
(identifier) @variable
(pragma_identifier) @keyword.directive

View File

@ -0,0 +1,16 @@
[
(foreign_block)
(block)
(compound_literal)
(proc_call)
(assignment_statement)
(const_declaration)
(var_declaration)
(switch_statement)
] @indent
[
")"
"}"
] @outdent