diff --git a/languages.toml b/languages.toml index e4399540..37ed0c49 100644 --- a/languages.toml +++ b/languages.toml @@ -2699,7 +2699,7 @@ language-servers = [ "dts-lsp" ] [[grammar]] name = "devicetree" -source = { git = "https://github.com/joelspadin/tree-sitter-devicetree", rev = "877adbfa0174d25894c40fa75ad52d4515a36368" } +source = { git = "https://github.com/joelspadin/tree-sitter-devicetree", rev = "e78bf56f206cb47bee28a217423acb651e076848" } [[language]] name = "cairo" diff --git a/runtime/queries/devicetree/highlights.scm b/runtime/queries/devicetree/highlights.scm index b9b29fe2..65b2cf88 100644 --- a/runtime/queries/devicetree/highlights.scm +++ b/runtime/queries/devicetree/highlights.scm @@ -3,11 +3,26 @@ "/memreserve/" "/delete-node/" "/delete-property/" + "/omit-if-no-ref/" + "/incbin/" + "/include/" + "/bits/" + "/plugin/" ] @keyword [ "#define" "#include" + "#undef" + "#if" + "#ifdef" + "#ifndef" + "#elif" + "#elifdef" + "#elifndef" + "#else" + "#endif" + "defined" ] @keyword.directive [ @@ -31,11 +46,14 @@ ">" "<<" ">>" + "=" + "?" ] @operator [ "," ";" + ":" ] @punctuation.delimiter [ @@ -48,6 +66,7 @@ ] @punctuation.bracket (string_literal) @string +(byte_string_literal) @string (integer_literal) @constant.numeric.integer @@ -55,12 +74,25 @@ (call_expression function: (identifier) @function) +(preproc_function_def + name: (identifier) @function.special) -(labeled_item +(node label: (identifier) @label) +(property + label: (identifier) @label) +(memory_reservation + label: (identifier) @label) + +(property + name: (identifier) @property) (unit_address) @tag +; Phandle references (`&label`, `&{/path}`): colour the whole reference as a +; constant. The label identifier needs its own capture to reclaim it from the +; `(identifier) @variable` base — helix lets the contained node win otherwise. (reference) @constant +(reference (identifier) @constant) (comment) @comment