Skip to content

Commit

Permalink
feat(languages): add odin language (#2399)
Browse files Browse the repository at this point in the history
  • Loading branch information
RobWalt authored May 5, 2022
1 parent 2f240b0 commit 495ba40
Show file tree
Hide file tree
Showing 3 changed files with 155 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
| nu || | | |
| ocaml || || `ocamllsp` |
| ocaml-interface || | | `ocamllsp` |
| odin || | | |
| org || | | |
| perl |||| |
| php |||| `intelephense` |
Expand Down
13 changes: 13 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1329,3 +1329,16 @@ indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "cpon"
source = { git = "https://github.com/fvacek/tree-sitter-cpon", rev = "11ba46a4de3eb86934003133099c9963a60f9687" }

[[language]]
name = "odin"
auto-format = false
scope = "source.odin"
file-types = ["odin"]
roots = []
comment-token = "//"
indent = { tab-width = 4, unit = " " }

[[grammar]]
name = "odin"
source = { git = "https://github.com/MineBill/tree-sitter-odin", rev = "da885f4a387f169b9b69fe0968259ee257a8f69a" }
141 changes: 141 additions & 0 deletions runtime/queries/odin/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
; 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

(int_literal) @constant.numeric.integer
(float_literal) @constant.numeric.float
(imaginary_literal) @constant.numeric

[
(true)
(false)
] @constant.builtin.boolean

[
(nil)
(undefined)
] @constant.builtin

(comment) @comment.line

0 comments on commit 495ba40

Please # to comment.