diff options
| author | Álan Crístoffer <acristoffers@startmail.com> | 2023-06-12 10:15:41 +0200 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2023-06-19 09:43:25 +0200 |
| commit | df3f47a5087f13db53bb96ff05a867b75acc4297 (patch) | |
| tree | 6694f4a96024a139c0070bdfa1bd7f2eb748c098 /queries/matlab | |
| parent | Update parsers: comment, luadoc (diff) | |
| download | nvim-treesitter-df3f47a5087f13db53bb96ff05a867b75acc4297.tar nvim-treesitter-df3f47a5087f13db53bb96ff05a867b75acc4297.tar.gz nvim-treesitter-df3f47a5087f13db53bb96ff05a867b75acc4297.tar.bz2 nvim-treesitter-df3f47a5087f13db53bb96ff05a867b75acc4297.tar.lz nvim-treesitter-df3f47a5087f13db53bb96ff05a867b75acc4297.tar.xz nvim-treesitter-df3f47a5087f13db53bb96ff05a867b75acc4297.tar.zst nvim-treesitter-df3f47a5087f13db53bb96ff05a867b75acc4297.zip | |
feat(matlab)!: replace parser
Diffstat (limited to 'queries/matlab')
| -rw-r--r-- | queries/matlab/folds.scm | 27 | ||||
| -rw-r--r-- | queries/matlab/highlights.scm | 171 | ||||
| -rw-r--r-- | queries/matlab/indents.scm | 35 | ||||
| -rw-r--r-- | queries/matlab/locals.scm | 20 |
4 files changed, 175 insertions, 78 deletions
diff --git a/queries/matlab/folds.scm b/queries/matlab/folds.scm index 063a99b5a..dad9ea177 100644 --- a/queries/matlab/folds.scm +++ b/queries/matlab/folds.scm @@ -1,16 +1,11 @@ -[ - (function_definition) - - (if_statement) - - (for_statement) - (while_statement) - - (switch_statement) - (case_statement) - - (otherwise_statement) - - (try_statement) - (catch_statement) -] @fold +[(if_statement) + (for_statement) + (while_statement) + (switch_statement) + (try_statement) + (function_definition) + (class_definition) + (enumeration) + (events) + (methods) + (properties)] @fold diff --git a/queries/matlab/highlights.scm b/queries/matlab/highlights.scm index bad9dbdf4..8dd10d6a9 100644 --- a/queries/matlab/highlights.scm +++ b/queries/matlab/highlights.scm @@ -1,106 +1,153 @@ -; Functions - -(function_definition - function_name: (identifier) @function - (end) @keyword.function) +; Includes -(parameter_list (identifier) @parameter) +((command_name) @include + (#eq? @include "import")) ; Keywords -((identifier) @keyword - (#eq? @keyword "end")) - -(function_keyword) @keyword.function - [ - "return" -] @keyword.return + "arguments" + "classdef" + "end" + "enumeration" + "events" + "global" + "methods" + "persistent" + "properties" +] @keyword ; Conditionals -[ - "if" - "elseif" - "else" - "switch" - "case" - "otherwise" -] @conditional - -(if_statement (end) @conditional) -(switch_statement (end) @conditional) +(if_statement [ "if" "end" ] @conditional) +(elseif_clause "elseif" @conditional) +(else_clause "else" @conditional) +(switch_statement [ "switch" "end" ] @conditional) +(case_clause "case" @conditional) +(otherwise_clause "otherwise" @conditional) +(break_statement) @conditional ; Repeats -[ - "for" - "while" - "break" - "continue" -] @repeat - -(for_statement (end) @repeat) -(while_statement (end) @repeat) +(for_statement [ "for" "parfor" "end" ] @repeat) +(while_statement [ "while" "end" ] @repeat) +(continue_statement) @repeat ; Exceptions -[ - "try" - "catch" -] @exception +(try_statement [ "try" "end" ] @exception) +(catch_clause "catch" @exception) -(try_statement (end) @exception) +; Variables -; Punctuation +(identifier) @variable -[ - "," - ";" - ":" -] @punctuation.delimiter +; Constants + +(events (identifier) @constant) +(attribute (identifier) @constant) + +"~" @constant.builtin + +; Fields/Properties + +(field_expression field: (identifier) @field) + +(superclass "." (identifier) @property) + +(property_name "." (identifier) @property) + +(property name: (identifier) @property) + +; Types + +(class_definition name: (identifier) @type) + +(attributes (identifier) @constant) + +(enum . (identifier) @type) + +((identifier) @type + (#lua-match? @type "^_*[A-Z][a-zA-Z0-9_]+$")) + +; Functions + +(function_definition + "function" @keyword.function + name: (identifier) @function + [ "end" "endfunction" ]? @keyword.function) + +(function_signature name: (identifier) @function) + +(function_call + name: (identifier) @function.call) -[ "{" "}" ] @punctuation.bracket +(handle_operator (identifier) @function) -[ "[" "]" ] @punctuation.bracket +(validation_functions (identifier) @function) -[ "(" ")" ] @punctuation.bracket +(command (command_name) @function.call) +(command_argument) @parameter + +(return_statement) @keyword.return + +; Parameters + +(function_arguments (identifier) @parameter) + +; Punctuation + +[ ";" "," "." ] @punctuation.delimiter + +[ "(" ")" "[" "]" "{" "}" ] @punctuation.bracket ; Operators -[ - ">" - "<" - "==" - "<=" - ">=" - "=<" - "=>" - "~=" +[ + "+" + ".+" + "-" + ".*" "*" ".*" "/" - "\\" "./" + "\\" + ".\\" "^" ".^" - "+" + "'" + ".'" + "|" + "&" + "?" + "@" + "<" + "<=" + ">" + ">=" + "==" + "~=" "=" "&&" "||" + ":" ] @operator ; Literals -(number) @number - (string) @string -[ "true" "false" ] @boolean +(escape_sequence) @string.escape +(formatting_sequence) @string.special + +(number) @number + +(boolean) @boolean ; Comments -(comment) @comment @spell +[ (comment) (line_continuation) ] @comment @spell ; Errors diff --git a/queries/matlab/indents.scm b/queries/matlab/indents.scm new file mode 100644 index 000000000..46889a280 --- /dev/null +++ b/queries/matlab/indents.scm @@ -0,0 +1,35 @@ +"end" @indent.end @indent.branch + +[ + (if_statement) + (for_statement) + (while_statement) + (switch_statement) + (try_statement) + (function_definition) + (class_definition) + (enumeration) + (events) + (methods) + (properties) +] @indent.begin + +[ + "elseif" + "else" + "case" + "otherwise" + "catch" +] @indent.branch + +((matrix (row) @indent.align) + (#set! indent.open_delimiter "[") + (#set! indent.close_delimiter "]")) +((cell (row) @indent.align) + (#set! indent.open_delimiter "{") + (#set! indent.close_delimiter "}")) +((parenthesis) @indent.align + (#set! indent.open_delimiter "(") + (#set! indent.close_delimiter ")")) + +(comment) @indent.auto diff --git a/queries/matlab/locals.scm b/queries/matlab/locals.scm new file mode 100644 index 000000000..a6ca6aeb5 --- /dev/null +++ b/queries/matlab/locals.scm @@ -0,0 +1,20 @@ +; References + +(identifier) @reference + +; Definitions + +(function_definition + name: (identifier) @definition.function + (function_arguments + (identifier)* @definition.parameter + ("," (identifier) @definition.parameter)*)?) @scope + +(assignment left: (identifier) @definition.var) +(multioutput_variable (identifier) @definition.var) + +(iterator . (identifier) @definition.var) +(lambda (arguments (identifier) @definition.parameter)) +(global_operator (identifier) @definition.var) +(persistent_operator (identifier) @definition.var) +(catch_clause (identifier) @definition) |
