aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--languages.toml2
-rw-r--r--runtime/queries/robot/highlights.scm64
2 files changed, 52 insertions, 14 deletions
diff --git a/languages.toml b/languages.toml
index d3cb4025..dc07bb2b 100644
--- a/languages.toml
+++ b/languages.toml
@@ -1567,7 +1567,7 @@ language-servers = [ "robotframework_ls" ]
[[grammar]]
name = "robot"
-source = { git = "https://github.com/Hubro/tree-sitter-robot", rev = "f1142bfaa6acfce95e25d2c6d18d218f4f533927" }
+source = { git = "https://github.com/Hubro/tree-sitter-robot", rev = "322e4cc65754d2b3fdef4f2f8a71e0762e3d13af" }
[[language]]
name = "r"
diff --git a/runtime/queries/robot/highlights.scm b/runtime/queries/robot/highlights.scm
index 60f416b7..06e95798 100644
--- a/runtime/queries/robot/highlights.scm
+++ b/runtime/queries/robot/highlights.scm
@@ -1,21 +1,59 @@
-(comment) @comment
+[
+ (comment)
+ (extra_text)
+] @comment
+
+[
+ (section_header)
+ (setting_statement)
+ (keyword_setting)
+ (test_case_setting)
+] @keyword
+
+(variable_definition (variable_name) @variable)
+(keyword_definition (name) @function)
+(test_case_definition (name) @function)
+
+(keyword_invocation (keyword) @function)
(ellipses) @punctuation.delimiter
-(section_header) @keyword
-(extra_text) @comment
+(text_chunk) @string
+(inline_python_expression) @string.special
+[
+ (scalar_variable)
+ (list_variable)
+ (dictionary_variable)
+] @variable
-(setting_statement) @keyword
+; Control structures
-(variable_definition (variable_name) @variable)
+"RETURN" @keyword.control.return
-(keyword_definition (name) @function)
-(keyword_definition (body (keyword_setting) @keyword))
+[
+ "FOR"
+ "IN"
+ "IN RANGE"
+ "IN ENUMERATE"
+ "IN ZIP"
+ (break_statement)
+ (continue_statement)
+] @keyword.control.repeat
+(for_statement "END" @keyword.control.repeat)
-(test_case_definition (name) @property)
+"WHILE" @keyword.control.repeat
+(while_statement "END" @keyword.control.repeat)
-(keyword_invocation (keyword) @function)
+[
+ "IF"
+ "ELSE IF"
+] @keyword.control.conditional
+(if_statement "END" @keyword.control.conditional)
+(if_statement (else_statement "ELSE" @keyword.control.conditional))
-(argument (text_chunk) @string)
-(argument (scalar_variable) @string.special)
-(argument (list_variable) @string.special)
-(argument (dictionary_variable) @string.special)
+[
+ "TRY"
+ "EXCEPT"
+ "FINALLY"
+] @keyword.control.exception
+(try_statement "END" @keyword.control.exception)
+(try_statement (else_statement "ELSE" @keyword.control.exception))