diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2023-06-12 09:54:30 -0600 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2025-05-12 18:43:40 +0200 |
| commit | 692b051b09935653befdb8f7ba8afdb640adf17b (patch) | |
| tree | 167162b6b129ae04f68c5735078521a72917c742 /runtime/queries/brightscript | |
| parent | feat(c-family): inherit injections (diff) | |
| download | nvim-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/brightscript')
| -rw-r--r-- | runtime/queries/brightscript/folds.scm | 8 | ||||
| -rw-r--r-- | runtime/queries/brightscript/highlights.scm | 177 | ||||
| -rw-r--r-- | runtime/queries/brightscript/indents.scm | 39 | ||||
| -rw-r--r-- | runtime/queries/brightscript/injections.scm | 2 |
4 files changed, 226 insertions, 0 deletions
diff --git a/runtime/queries/brightscript/folds.scm b/runtime/queries/brightscript/folds.scm new file mode 100644 index 000000000..56b7d575b --- /dev/null +++ b/runtime/queries/brightscript/folds.scm @@ -0,0 +1,8 @@ +[ + (function_statement) + (sub_statement) + (while_statement) + (for_statement) + (if_statement) + (try_statement) +] @fold diff --git a/runtime/queries/brightscript/highlights.scm b/runtime/queries/brightscript/highlights.scm new file mode 100644 index 000000000..5758f565b --- /dev/null +++ b/runtime/queries/brightscript/highlights.scm @@ -0,0 +1,177 @@ +; Identifiers +(identifier) @variable + +; Function declaration +(function_statement + name: (identifier) @function) + +; Sub declaration +(sub_statement + name: (identifier) @function) + +[ + (sub_start) + (function_start) + (end_sub) + (end_function) +] @keyword.function + +; Parameters +(parameter + name: (identifier) @variable.parameter) + +; Types +(type_specifier) @type + +; Variables +; Base variable in variable declarator (immediate child of prefix_exp) +(variable_declarator + (prefix_exp + (identifier) @variable + (#not-has-ancestor? @variable prefix_exp))) + +; Properties in variable declarator +(variable_declarator + (prefix_exp) + (identifier) @property) + +(multiplicative_expression + operator: (_) @keyword.operator) + +(logical_not_expression + operator: (_) @keyword.operator) + +(logical_expression + operator: (_) @keyword.operator) + +; Property access +; First identifier in a chain (base variable) +(prefix_exp + . + (identifier) @variable + (#not-has-ancestor? @variable prefix_exp)) + +; All other identifiers in a chain (properties) +(prefix_exp + (prefix_exp) + (identifier) @property) + +; Function calls +(function_call + function: (prefix_exp + (identifier) @function.call)) + +; Statements +[ + (if_start) + (else) + (else_if) + (end_if) + (then) + (conditional_compl_end_if) +] @keyword.conditional + +[ + (for_start) + (while_start) + (for_each) + (for_in) + (for_to) + (for_step) + (end_for) + (end_while) + (exit_while_statement) + (exit_for_statement) +] @keyword.repeat + +; Statements +[ + (try_start) + (try_catch) + (throw) + (end_try) +] @keyword.exception + +(return) @keyword.return + +(print) @function.builtin + +(constant) @constant + +; Operators +[ + "=" + "<>" + "<" + "<=" + ">" + ">=" + "+" + "-" + "*" + "/" +] @operator + +; Literals +(boolean) @boolean + +(number) @number + +(string) @string + +(invalid) @constant.builtin + +; Comments +(comment) @comment @spell + +; Punctuation +[ + "(" + ")" + "[" + "]" + "{" + "}" + "?[" +] @punctuation.bracket + +[ + "." + "," + "?." +] @punctuation.delimiter + +; Special highlights for library statements +(library_statement) @keyword.import + +(library_statement + path: (string) @module) + +; Array and associative array literals +(array) @constructor + +(assoc_array) @constructor + +(assoc_array_element + key: (identifier) @property) + +; Increment/decrement operators +[ + (prefix_increment_expression) + (prefix_decrement_expression) + (postfix_increment_expression) + (postfix_decrement_expression) +] @operator + +; Comparison operators +(comparison_expression + [ + "=" + "<>" + "<" + "<=" + ">" + ">=" + ] @operator) + +(as) @keyword.operator diff --git a/runtime/queries/brightscript/indents.scm b/runtime/queries/brightscript/indents.scm new file mode 100644 index 000000000..e54bf52c1 --- /dev/null +++ b/runtime/queries/brightscript/indents.scm @@ -0,0 +1,39 @@ +; Start indentation for block-level constructs +[ + (sub_statement) + (function_statement) + (annonymous_sub) + (annonymous_function) + (conditional_compl) + (multi_line_if) + (for_statement) + (while_statement) + (try_statement) + (array) + (assoc_array) +] @indent.begin + +; End indentation for all end statements +[ + (end_sub) + (end_function) + (end_if) + (end_for) + (end_while) + (end_try) + (conditional_compl_end_if) + "]" + "}" +] @indent.branch @indent.end + +; Handle branching constructs +[ + (else_if_clause) + (else_clause) + (conditional_compl_else_if_clause) + (conditional_compl_else_clause) + (catch_clause) +] @indent.branch + +; Ignore comments for indentation +(comment) @indent.ignore diff --git a/runtime/queries/brightscript/injections.scm b/runtime/queries/brightscript/injections.scm new file mode 100644 index 000000000..2f0e58eb6 --- /dev/null +++ b/runtime/queries/brightscript/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) |
