aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/robot
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2023-06-12 09:54:30 -0600
committerChristian Clason <c.clason@uni-graz.at>2025-05-12 18:43:40 +0200
commit692b051b09935653befdb8f7ba8afdb640adf17b (patch)
tree167162b6b129ae04f68c5735078521a72917c742 /runtime/queries/robot
parentfeat(c-family): inherit injections (diff)
downloadnvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'runtime/queries/robot')
-rw-r--r--runtime/queries/robot/folds.scm5
-rw-r--r--runtime/queries/robot/highlights.scm129
-rw-r--r--runtime/queries/robot/indents.scm44
-rw-r--r--runtime/queries/robot/injections.scm5
4 files changed, 183 insertions, 0 deletions
diff --git a/runtime/queries/robot/folds.scm b/runtime/queries/robot/folds.scm
new file mode 100644
index 000000000..948f8a17d
--- /dev/null
+++ b/runtime/queries/robot/folds.scm
@@ -0,0 +1,5 @@
+[
+ (section)
+ (keyword_definition)
+ (test_case_definition)
+] @fold
diff --git a/runtime/queries/robot/highlights.scm b/runtime/queries/robot/highlights.scm
new file mode 100644
index 000000000..a9c545b8a
--- /dev/null
+++ b/runtime/queries/robot/highlights.scm
@@ -0,0 +1,129 @@
+[
+ (comment)
+ (extra_text)
+] @comment @spell
+
+[
+ (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.call)
+
+(ellipses) @punctuation.delimiter
+
+(text_chunk) @string
+
+(inline_python_expression) @string.special
+
+[
+ (scalar_variable)
+ (list_variable)
+ (dictionary_variable)
+] @variable
+
+; Control structures
+[
+ "FOR"
+ "IN"
+ "IN RANGE"
+ "IN ENUMERATE"
+ "IN ZIP"
+ (break_statement)
+ (continue_statement)
+] @keyword.repeat
+
+(for_statement
+ "END" @keyword.repeat)
+
+"WHILE" @keyword.repeat
+
+(while_statement
+ "END" @keyword.repeat)
+
+[
+ "IF"
+ "ELSE IF"
+] @keyword.conditional
+
+(if_statement
+ "END" @keyword.conditional)
+
+(if_statement
+ (else_statement
+ "ELSE" @keyword.conditional))
+
+(inline_if_statement
+ (inline_else_statement
+ "ELSE" @keyword.conditional))
+
+[
+ "TRY"
+ "EXCEPT"
+ "FINALLY"
+] @keyword.exception
+
+(try_statement
+ "END" @keyword.exception)
+
+(try_statement
+ (else_statement
+ "ELSE" @keyword.exception))
+
+; Extra captures for "Documentation" settings
+(setting_statement
+ name: (setting_name) @_name
+ (arguments
+ (argument
+ (text_chunk) @spell @string.documentation))
+ (#any-of? @_name "Documentation" "documentation" "DOCUMENTATION"))
+
+(setting_statement
+ name: (setting_name) @_name
+ (arguments
+ (continuation
+ (argument
+ (text_chunk) @spell @string.documentation)))
+ (#any-of? @_name "Documentation" "documentation" "DOCUMENTATION"))
+
+(keyword_setting
+ name: (keyword_setting_name) @_name
+ (arguments
+ (argument
+ (text_chunk) @spell @string.documentation))
+ (#any-of? @_name "Documentation" "documentation" "DOCUMENTATION"))
+
+(keyword_setting
+ name: (keyword_setting_name) @_name
+ (arguments
+ (continuation
+ (argument
+ (text_chunk) @spell @string.documentation)))
+ (#any-of? @_name "Documentation" "documentation" "DOCUMENTATION"))
+
+(test_case_setting
+ name: (test_case_setting_name) @_name
+ (arguments
+ (argument
+ (text_chunk) @spell @string.documentation))
+ (#any-of? @_name "Documentation" "documentation" "DOCUMENTATION"))
+
+(test_case_setting
+ name: (test_case_setting_name) @_name
+ (arguments
+ (continuation
+ (argument
+ (text_chunk) @spell @string.documentation)))
+ (#any-of? @_name "Documentation" "documentation" "DOCUMENTATION"))
diff --git a/runtime/queries/robot/indents.scm b/runtime/queries/robot/indents.scm
new file mode 100644
index 000000000..457fbff66
--- /dev/null
+++ b/runtime/queries/robot/indents.scm
@@ -0,0 +1,44 @@
+(keyword_definition) @indent.begin
+
+(test_case_definition) @indent.begin
+
+(for_statement) @indent.begin
+
+(for_statement
+ "END" @indent.branch)
+
+(for_statement
+ right: (_
+ (arguments
+ (continuation
+ (ellipses) @indent.branch))))
+
+(while_statement) @indent.begin
+
+(while_statement
+ "END" @indent.branch)
+
+(if_statement) @indent.begin
+
+(if_statement
+ (elseif_statement) @indent.branch)
+
+(if_statement
+ (else_statement) @indent.branch)
+
+(if_statement
+ "END" @indent.branch)
+
+(try_statement) @indent.begin
+
+(try_statement
+ (except_statement) @indent.branch)
+
+(try_statement
+ (finally_statement) @indent.branch)
+
+(try_statement
+ (else_statement) @indent.branch)
+
+(try_statement
+ "END" @indent.branch)
diff --git a/runtime/queries/robot/injections.scm b/runtime/queries/robot/injections.scm
new file mode 100644
index 000000000..56e37005e
--- /dev/null
+++ b/runtime/queries/robot/injections.scm
@@ -0,0 +1,5 @@
+([
+ (comment)
+ (extra_text)
+] @injection.content
+ (#set! injection.language "comment"))