diff --git a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage index 7e82a45..a5486ef 100644 --- a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage +++ b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage @@ -114,6 +114,10 @@ include #curly_brackets + + include + #metaclass_literal + rules_after_command_dual @@ -227,7 +231,7 @@ begin (?<=\))[^\S\n]*(\()? end - (\))?[^\S\n]*(?=;|(?<!(?:\.\.\..*))\n|%) + (\))?[^\S\n]*(?=;|,|(?<!(?:\.{3}.*))\n|%) beginCaptures 1 @@ -262,7 +266,7 @@ end - (?=;|(?<!(?:\.\.\..*))\n|%) + (?=;|,|(?<!(?:\.{3}.*))\n|%) blocks @@ -299,7 +303,7 @@ begin \G(?!$) end - (?<!\.\.\.)(?:(?=([,;])(?![^(]*\)))|$) + (?<!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$) patterns @@ -355,7 +359,7 @@ begin \G(?!$) end - (?<!\.\.\.)(?:(?=([,;])(?![^(]*\)))|$) + (?<!\.{3}.*)(?:(?=[,;](?![^(]*\)))|$) patterns @@ -367,9 +371,9 @@ name meta.elseif.matlab - match - (?:\s*)(?<=^|[\s,;])(elseif)\b - captures + begin + \s*(?<=^|[\s,;])(elseif)\b + beginCaptures 1 @@ -377,6 +381,8 @@ keyword.control.elseif.matlab + end + \s*(?<=^|[\s,;])(?=elseif|else|end)\b patterns @@ -385,7 +391,7 @@ begin \G(?!$) end - (?<!\.\.\.)(?:(?=([,;])(?![^(]*\)))|$) + (?<!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$) patterns @@ -394,14 +400,18 @@ + + include + $self + name meta.else.matlab - match - (?:\s*)(?<=^|[\s,;])(else)\b - captures + begin + \s*(?<=^|[\s,;])(else)\b + beginCaptures 1 @@ -410,7 +420,14 @@ end - ^ + \s*(?<=^|[\s,;])(?=end)\b + patterns + + + include + $self + + include @@ -449,7 +466,7 @@ begin \G(?!$) end - (?<!\.\.\.)(?:(?=([,;])(?![^(]*\)))|$) + (?<!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$) patterns @@ -495,7 +512,7 @@ begin \G(?!$) end - (?<!\.\.\.)(?:(?=([,;])(?![^(]*\)))|$) + (?<!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$) patterns @@ -514,7 +531,7 @@ name meta.switch.matlab begin - \s*(?<=^|[\s,;])(switch)\s+([a-zA-Z0-9][a-zA-Z0-9_]*) + \s*(?<=^|[\s,;])(switch)\b end \s*(?<=^|[\s,;])(end)\b beginCaptures @@ -524,11 +541,6 @@ name keyword.control.switch.matlab - 2 - - name - variable.other.constant.matlab - endCaptures @@ -537,29 +549,58 @@ name keyword.control.end.switch.matlab + 2 + + patterns + + + include + $self + + + patterns + + name + meta.switch.declaration.matlab + begin + \G(?!$) + end + (?<!\.{3}.*)(?:(?=[,;](?![^(]*\)))|$) + patterns + + + include + $self + + + name meta.case.matlab - match - (\s*)(?<=^|[\s,;])(case)\b(.*?)(?<!\.\.\.)(?:(?=([,;])(?![^(]*\)))|$) - captures + begin + \s*(?<=^|[\s,;])(case)\b + beginCaptures - 2 + 1 name keyword.control.switch.case.matlab - 3 + + end + \s*(?<=^|[\s,;])(?=case|otherwise|end)\b + patterns + name meta.case.declaration.matlab begin \G(?!$) end - (?<!\.\.\.)(?:(?=([,;])(?![^(]*\)))|$) + (?<!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$) patterns @@ -568,31 +609,34 @@ - + + include + $self + + name meta.otherwise.matlab - match - (\s*)(?<=^|[\s,;])(otherwise)\b - captures + begin + \s*(?<=^|[\s,;])(otherwise)\b + beginCaptures - 2 + 1 name keyword.control.switch.otherwise.matlab - 3 + + end + \s*(?<=^|[\s,;])(?=end)\b + patterns + - patterns - - - include - $self - - + include + $self - + include @@ -679,17 +723,16 @@ name meta.while.declaration.matlab begin - \G + \G(?!$) end - (?<!\.\.\.)(?:(?=([,;])(?![^(]*\)))|$) - endCaptures - - 1 + (?<!\.{3}.*)(?:(?=[,;](?![^(]*\)))|$) + patterns + include $self - + include @@ -740,74 +783,70 @@ begin \G end - (?<!\.\.\.)(?=\n) + (?<!\.{3})(?=\n) patterns + name + storage.modifier.section.class.matlab begin - \G(\([^)]*\))?\s* - beginCaptures - - 1 + \G\( + end + \) + patterns + - comment - Optional attributes - patterns - + name + punctuation.separator.modifier.comma.matlab + match + , + + + name + storage.modifier.class.matlab + match + [a-zA-Z][a-zA-Z0-9_]* + + + begin + (=)\s* + beginCaptures + + 1 name - punctuation.section.parens.begin.matlab - match - (?<=\s)\( + keyword.operator.assignment.matlab + + end + (?=\)|,) + patterns + name - punctuation.section.parens.end.matlab + constant.language.boolean.matlab match - \)\z + true|false + comment + Metadata query for class properties name - punctuation.separator.modifier.comma.matlab + keyword.operator.other.question.matlab match - , + (?<!\w)\?(?=\w) - name - storage.modifier.class.matlab - match - [a-zA-Z][a-zA-Z0-9_]* + include + #metaclass_literal - begin - (=)\s* - beginCaptures - - 1 - - name - keyword.operator.assignment.matlab - - - end - (?=\)|,) - patterns - - - name - constant.language.boolean.matlab - match - true|false - - - include - #string - - + include + #string include - #comments + #curly_brackets include @@ -815,26 +854,48 @@ + + include + #comments + + + include + #line_continuation + + + + + begin + \s*(\w+) + beginCaptures + + 1 + + comment + Class name + name + entity.name.type.class.matlab + + end + (?<!\.{3})(?=\s*%|\n) patterns begin - \G\s*([a-zA-Z][a-zA-Z0-9_]*) - beginCaptures - - 1 - - comment - Class name - name - entity.name.type.class.matlab - - + \G end - (?<!\.\.\.)(?=\n) + (?<!\.{3})(?=\n) patterns + + include + #comments + + + include + #line_continuation + comment Optional inheritance operator @@ -882,14 +943,6 @@ match & - - include - #comments - - - include - #line_continuation - @@ -901,8 +954,14 @@ #line_continuation - end - (?<!\.\.\.)(?=\s*%|\n) + + + include + #comments + + + include + #line_continuation @@ -932,6 +991,12 @@ patterns + + name + punctuation.separator.modifier.comma.matlab + match + , + name storage.modifier.properties.matlab @@ -950,9 +1015,13 @@ end - ,|(?=\)) + (?=\)|,) patterns + + include + #string + name constant.language.boolean.matlab @@ -963,7 +1032,21 @@ name storage.modifier.access.matlab match - public|protected|private + public|protected|private|immutable + + + include + #curly_brackets + + + include + #metaclass_literal + + + name + constant.integer.matlab + match + [0-9]+ @@ -1016,6 +1099,12 @@ patterns + + name + punctuation.separator.modifier.comma.matlab + match + , + name storage.modifier.methods.matlab @@ -1024,11 +1113,23 @@ begin - =\s* + (=)\s* end - ,|(?=\)) + (?=\)|,) + beginCaptures + + 1 + + name + keyword.operator.assignment.matlab + + patterns + + include + #string + name constant.language.boolean.matlab @@ -1039,7 +1140,21 @@ name storage.modifier.access.matlab match - public|protected|private + public|protected|private|immutable + + + include + #curly_brackets + + + include + #metaclass_literal + + + name + constant.integer.matlab + match + [0-9]+ @@ -1090,17 +1205,35 @@ name - variable.parameter.events.matlab + punctuation.separator.modifier.comma.matlab + match + , + + + name + storage.modifier.events.matlab match [a-zA-Z][a-zA-Z0-9_]* begin - =\s* + (=)\s* + beginCaptures + + 1 + + name + keyword.operator.assignment.matlab + + end - ,|(?=\)) + (?=\)|,) patterns + + include + #string + name constant.language.boolean.matlab @@ -1111,7 +1244,21 @@ name storage.modifier.access.matlab match - public|protected|private + public|protected|private|immutable + + + include + #curly_brackets + + + include + #metaclass_literal + + + name + constant.integer.matlab + match + [0-9]+ @@ -1251,7 +1398,7 @@ comment 1 2 3 4 match - (?<=^|[^.]\n|;|,|=)([^\S\n]*)(?# A> )(\b\w+\b)([^\S\n]+)(?# B> )((?!(\+|-|\*|\.\*|\/|\.\/|\\|\.\\|\^|\.\^|==|~=|&|&&|\||\|\||=|:|>|>=|<|<=|\.\.\.)[^\S\n]?)[^\s({=;%][^\n;%]*) + (?<=^|[^.]\n|;|,|=)([^\S\n]*)(?# A> )(\b\w+\b)([^\S\n]+)(?# B> )((?!(\+|-|\*|\.\*|\/|\.\/|\\|\.\\|\^|\.\^|==|~=|&|&&|\||\|\||=|:|>|>=|<|<=|\.{3})[^\S\n]?)[^\s({=;%][^\n;%]*) comment_block @@ -1454,7 +1601,7 @@ begin \G end - (?<=[\)\n]) + (?<=\))|(?>(?<!\.{3}.*)\n) patterns @@ -1463,7 +1610,7 @@ contentName meta.assignment.variable.output.matlab begin - \G(?=.*?=) + \G(?=[^\(]*?(?:=|\[|\.{3})) end \s*(=)\s* endCaptures @@ -1484,7 +1631,7 @@ match - (\])\s*\z + (\])\s* captures 1 @@ -1508,11 +1655,11 @@ include - #comments + #line_continuation include - #line_continuation + #comments @@ -1522,7 +1669,7 @@ name entity.name.function.matlab match - [a-zA-Z][a-zA-Z0-9_.]*(?=[^a-zA-Z0-9_.]) + [a-zA-Z][a-zA-Z0-9_]*(?>\.[a-zA-Z0-9_]+)* patterns @@ -1543,7 +1690,7 @@ name meta.parameters.matlab begin - (?<=[a-zA-Z0-9_])\s*\( + \s*\( end \) beginCaptures @@ -1592,6 +1739,10 @@ + + include + #line_continuation + include #comments @@ -1695,7 +1846,7 @@ begin ([a-zA-Z][a-zA-Z0-9_]*)\s*(\() end - (\)|(?<!\.\.\..*)\n) + (\)|(?<!\.{3}.*)\n) beginCaptures 1 @@ -1762,7 +1913,7 @@ name meta.import.matlab match - \b(import)\b[^\S\n]+([a-zA-Z0-9.\*]*)[^\S\n]*(?=;|%|$) + [^\S\r\n]*\b(import)\b[^\S\n]+([a-zA-Z0-9.\*]*)[^\S\n]*(?=;|%|$) captures 1 @@ -1807,7 +1958,7 @@ begin ([a-zA-Z][a-zA-Z0-9_]*)\s*(\.)(\() end - (\)|(?<!\.\.\..*)\n) + (\)|(?<!\.{3}.*)\n) beginCaptures 1 @@ -1907,7 +2058,7 @@ begin \( end - (\)|(?<!\.\.\..*)\n) + (\)|(?<!\.{3}.*)\n) beginCaptures 0 @@ -2078,7 +2229,7 @@ end - (\}|(?<!\.\.\..*)\n) + (\}|(?<!\.{3}.*)\n) comment We don't include $self here to avoid matching command syntax inside (), [], {} patterns @@ -2117,7 +2268,7 @@ match - (\.\.\.)(.*)$ + (\.{3})(.*)$ shell_string @@ -2273,7 +2424,7 @@ begin ([a-zA-Z][a-zA-Z0-9_]*)(@)\s*([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)(\() end - (\)|(?<!\.\.\..*)\n) + (\)|(?<!\.{3}.*)\n) beginCaptures 1 @@ -2508,7 +2659,7 @@ name keyword.operator.arithmetic.matlab match - (?<=[a-zA-Z0-9\s])(\+|-|\*|\.\*|/|\./|\\|\.\\|\^|\.\^)(?=[a-zA-Z0-9\s]|(?:\.\.\.)) + (?<=[a-zA-Z0-9\s])(\+|-|\*|\.\*|/|\./|\\|\.\\|\^|\.\^)(?=[a-zA-Z0-9\s]|(?:\.{3})) comment @@ -2516,7 +2667,7 @@ name keyword.operator.logical.matlab match - (?<=[a-zA-Z0-9\s])(==|~=|&|&&|\||\|\|)(?=[a-zA-Z0-9\s]|(?:\.\.\.)) + (?<=[a-zA-Z0-9\s])(==|~=|&|&&|\||\|\|)(?=[a-zA-Z0-9\s]|(?:\.{3})) comment @@ -2532,7 +2683,7 @@ name keyword.operator.vector.colon.matlab match - (?<=[a-zA-Z0-9_\s(){,]|^):(?=[a-zA-Z0-9_\s()},]|$||(?:\.\.\.)) + (?<=[a-zA-Z0-9_\s(){,]|^):(?=[a-zA-Z0-9_\s()},]|$||(?:\.{3})) comment @@ -2540,7 +2691,7 @@ name keyword.operator.relational.matlab match - (?<=[a-zA-Z0-9\s])(>|>=|<|<=)(?=[a-zA-Z0-9\s]|(?:\.\.\.)) + (?<=[a-zA-Z0-9\s])(>|>=|<|<=)(?=[a-zA-Z0-9\s]|(?:\.{3})) @@ -2749,6 +2900,10 @@ patterns + + include + #function_call + include #braced_validator_list @@ -2906,7 +3061,7 @@ name variable.other.readwrite.matlab match - (?<![a-zA-Z0-9_]|\.)[a-zA-Z][a-zA-Z0-9_]*(?![a-zA-Z0-9_]|(?:\(|\{|\.\()) + (?<![a-zA-Z0-9_]|\.|\?)[a-zA-Z][a-zA-Z0-9_]*(?![a-zA-Z0-9_]|(?:\(|\{|\.\()) property_access @@ -2917,6 +3072,32 @@ match \. + metaclass_literal + + comment + Accessing a metaclass via the ? operator + name + meta.metaclass.matlab + begin + (?<=\?)(?=[a-zA-Z]) + end + (?<=[a-zA-Z0-9_])(?![a-zA-Z0-9_]|\.|\(|{) + patterns + + + name + entity.other.class.matlab + match + (?<=[.\?])[a-zA-Z][a-zA-Z0-9_]*(?![a-zA-Z0-9_.]) + + + name + entity.name.namespace.matlab + match + [a-zA-Z][a-zA-Z0-9_]* + + + diff --git a/test/README.md b/test/README.md index b815632..30ebfad 100644 --- a/test/README.md +++ b/test/README.md @@ -4,6 +4,13 @@ The tests in this directory leverage: https://github.com/PanAeon/vscode-tmgrammar-test +# Test requirements + +The tests require xmllint which can be installed (on apt using linux distros) using +```bash +sudo apt install libxml2-utils +``` + # Running the tests From the root of the repo diff --git a/test/snap/Account.m.snap b/test/snap/Account.m.snap index d4e2886..629e60b 100644 --- a/test/snap/Account.m.snap +++ b/test/snap/Account.m.snap @@ -108,15 +108,15 @@ #^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab # ^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab keyword.control.else.matlab > error('Value must be numeric') -#^^^^^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab -# ^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.function-call.parens.matlab entity.name.function.matlab -# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab -# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab -# ^^^^^^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.single.matlab -# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab -# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab +#^^^^^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab +# ^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab entity.name.function.matlab +# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab +# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab +# ^^^^^^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab string.quoted.single.matlab +# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab > end -#^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab +#^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab # ^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab keyword.control.end.if.matlab > end #^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab @@ -278,7 +278,10 @@ # ^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab keyword.control.while.matlab # ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab # ^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab variable.other.readwrite.matlab -# ^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab +# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab +# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab keyword.operator.relational.matlab +# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab +# ^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab constant.numeric.decimal.matlab > n = n + 1; #^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab # ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.assignment.variable.single.matlab variable.other.readwrite.matlab @@ -352,9 +355,10 @@ #^^^^ source.matlab meta.class.matlab meta.events.matlab # ^^^^^^ source.matlab meta.class.matlab meta.events.matlab keyword.control.events.matlab # ^^ source.matlab meta.class.matlab meta.events.matlab -# ^^^^^^^^^^^^ source.matlab meta.class.matlab meta.events.matlab variable.parameter.events.matlab +# ^^^^^^^^^^^^ source.matlab meta.class.matlab meta.events.matlab storage.modifier.events.matlab # ^ source.matlab meta.class.matlab meta.events.matlab -# ^^ source.matlab meta.class.matlab meta.events.matlab +# ^ source.matlab meta.class.matlab meta.events.matlab keyword.operator.assignment.matlab +# ^ source.matlab meta.class.matlab meta.events.matlab # ^^^^^^^^^ source.matlab meta.class.matlab meta.events.matlab storage.modifier.access.matlab # ^^ source.matlab meta.class.matlab meta.events.matlab # ^ source.matlab meta.class.matlab meta.events.matlab comment.line.percentage.matlab punctuation.definition.comment.matlab @@ -398,4 +402,4 @@ # ^^^ source.matlab meta.class.matlab meta.enum.matlab keyword.control.end.enum.matlab >end #^^^ source.matlab meta.class.matlab storage.type.class.end.matlab -> +> \ No newline at end of file diff --git a/test/snap/PropertyValidation.m.snap b/test/snap/PropertyValidation.m.snap index 61dd9ed..5f0b555 100644 --- a/test/snap/PropertyValidation.m.snap +++ b/test/snap/PropertyValidation.m.snap @@ -10,18 +10,18 @@ # ^ source.matlab meta.class.matlab meta.properties.matlab # ^ source.matlab meta.class.matlab meta.properties.matlab keyword.operator.assignment.matlab # ^ source.matlab meta.class.matlab meta.properties.matlab -# ^ source.matlab meta.class.matlab meta.properties.matlab -# ^^^^^^ source.matlab meta.class.matlab meta.properties.matlab storage.modifier.access.matlab -# ^ source.matlab meta.class.matlab meta.properties.matlab -# ^ source.matlab meta.class.matlab meta.properties.matlab +# ^ source.matlab meta.class.matlab meta.properties.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab +# ^^^^^^ source.matlab meta.class.matlab meta.properties.matlab string.quoted.single.matlab +# ^ source.matlab meta.class.matlab meta.properties.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.class.matlab meta.properties.matlab punctuation.separator.modifier.comma.matlab # ^ source.matlab meta.class.matlab meta.properties.matlab # ^^^^^^^^^ source.matlab meta.class.matlab meta.properties.matlab storage.modifier.properties.matlab # ^ source.matlab meta.class.matlab meta.properties.matlab # ^ source.matlab meta.class.matlab meta.properties.matlab keyword.operator.assignment.matlab # ^ source.matlab meta.class.matlab meta.properties.matlab -# ^ source.matlab meta.class.matlab meta.properties.matlab -# ^^^^^^^ source.matlab meta.class.matlab meta.properties.matlab storage.modifier.access.matlab -# ^ source.matlab meta.class.matlab meta.properties.matlab +# ^ source.matlab meta.class.matlab meta.properties.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab +# ^^^^^^^ source.matlab meta.class.matlab meta.properties.matlab string.quoted.single.matlab +# ^ source.matlab meta.class.matlab meta.properties.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab # ^^ source.matlab meta.class.matlab meta.properties.matlab > % Commentary in the properties block #^^^^^^^^ source.matlab meta.class.matlab meta.properties.matlab punctuation.whitespace.comment.leading.matlab diff --git a/test/snap/argumentValidation.m.snap b/test/snap/argumentValidation.m.snap index 960ef31..964094c 100644 --- a/test/snap/argumentValidation.m.snap +++ b/test/snap/argumentValidation.m.snap @@ -65,11 +65,13 @@ # ^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab variable.other.readwrite.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab # ^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab variable.other.readwrite.matlab -# ^^^^^^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab variable.other.readwrite.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab variable.other.readwrite.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab +# ^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab +# ^^^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab entity.name.function.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab variable.other.readwrite.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.separator.comma.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab variable.other.readwrite.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab punctuation.section.block.end.matlab > method (1,:) char {mustBeMember(method,{'linear','cubic','spline'})} = 'linear' % End of line comment #^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab @@ -84,23 +86,24 @@ # ^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab storage.type.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab punctuation.section.block.begin.matlab -# ^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab variable.other.readwrite.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab punctuation.section.block.begin.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab -# ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab -# ^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab -# ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.block.validation.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab punctuation.section.block.end.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab +# ^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab entity.name.function.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab +# ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab variable.other.readwrite.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.separator.comma.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.braces.begin.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab +# ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab punctuation.separator.comma.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab +# ^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab punctuation.separator.comma.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab +# ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.cell.literal.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.braces.end.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab punctuation.section.block.end.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab keyword.operator.assignment.matlab @@ -142,21 +145,24 @@ # ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab storage.type.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab punctuation.section.block.begin.matlab -# ^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab variable.other.readwrite.matlab -# ^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab punctuation.definition.string.begin.matlab -# ^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab punctuation.definition.string.end.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab punctuation.definition.string.begin.matlab -# ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab punctuation.definition.string.end.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab punctuation.definition.string.begin.matlab -# ^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab string.quoted.double.matlab punctuation.definition.string.end.matlab -# ^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab +# ^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab entity.name.function.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab +# ^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab variable.other.readwrite.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.separator.comma.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.brackets.begin.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab punctuation.definition.string.begin.matlab +# ^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab punctuation.separator.comma.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab punctuation.definition.string.begin.matlab +# ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab punctuation.separator.comma.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab punctuation.definition.string.begin.matlab +# ^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab meta.brackets.matlab string.quoted.double.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.brackets.end.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab punctuation.section.block.end.matlab > end #^^^^ source.matlab meta.function.matlab meta.arguments.matlab @@ -177,11 +183,13 @@ # ^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab storage.type.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab # ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab punctuation.section.block.begin.matlab -# ^^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab -# ^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab variable.other.readwrite.matlab -# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab punctuation.accessor.dot.matlab -# ^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab variable.other.property.matlab -# ^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab +# ^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab entity.name.function.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab +# ^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab variable.other.readwrite.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.accessor.dot.matlab +# ^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab variable.other.property.matlab +# ^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab +# ^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab # ^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.continuation.line.matlab punctuation.separator.continuation.line.matlab # ^^^^^^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.arguments.matlab meta.assignment.definition.property.matlab meta.block.validation.matlab meta.continuation.line.matlab comment.continuation.line.matlab > mustBeReal} diff --git a/test/snap/controlFlow.m.snap b/test/snap/controlFlow.m.snap index 508ea50..9265b0c 100644 --- a/test/snap/controlFlow.m.snap +++ b/test/snap/controlFlow.m.snap @@ -15,79 +15,79 @@ # ^^^^^^^^^^^^^^^^^^^^^ source.matlab meta.function.matlab comment.line.double-percentage.matlab entity.name.section.matlab >switch nargin #^^^^^^ source.matlab meta.function.matlab meta.switch.matlab keyword.control.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^^^^^^ source.matlab meta.function.matlab meta.switch.matlab variable.other.constant.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.switch.declaration.matlab +# ^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.switch.declaration.matlab variable.language.function.matlab > case 0 #^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab # ^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab keyword.control.switch.case.matlab # ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.case.declaration.matlab # ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.case.declaration.matlab constant.numeric.decimal.matlab > return -#^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.control.matlab -# ^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.control.matlab keyword.control.flow.matlab +#^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.control.matlab +# ^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.control.matlab keyword.control.flow.matlab > case 1 #^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab # ^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab keyword.control.switch.case.matlab # ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.case.declaration.matlab # ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.case.declaration.matlab constant.numeric.decimal.matlab > y = varargin{1}; -#^^^^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.assignment.variable.single.matlab variable.other.readwrite.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab keyword.operator.assignment.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab variable.language.function.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab constant.numeric.decimal.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab punctuation.terminator.semicolon.matlab +#^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.assignment.variable.single.matlab variable.other.readwrite.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab keyword.operator.assignment.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab variable.language.function.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab constant.numeric.decimal.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab punctuation.terminator.semicolon.matlab > % Check single-line if inside switch for https://github.com/mathworks/MATLAB-Language-grammar/issues/19 -#^^^^ source.matlab meta.function.matlab meta.switch.matlab punctuation.whitespace.comment.leading.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab comment.line.percentage.matlab punctuation.definition.comment.matlab -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab comment.line.percentage.matlab +#^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab punctuation.whitespace.comment.leading.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab comment.line.percentage.matlab punctuation.definition.comment.matlab +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab comment.line.percentage.matlab > if varargin{1} < 0, return; end -#^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab -# ^^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab keyword.control.if.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab -# ^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab variable.language.function.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab constant.numeric.decimal.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab keyword.operator.relational.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.if.declaration.matlab constant.numeric.decimal.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab punctuation.separator.comma.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.control.matlab -# ^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab meta.control.matlab keyword.control.flow.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab punctuation.terminator.semicolon.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab -# ^^^ source.matlab meta.function.matlab meta.switch.matlab meta.if.matlab keyword.control.end.if.matlab +#^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab +# ^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab keyword.control.if.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab +# ^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab variable.language.function.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab constant.numeric.decimal.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab keyword.operator.relational.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.if.declaration.matlab constant.numeric.decimal.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab punctuation.separator.comma.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.control.matlab +# ^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab meta.control.matlab keyword.control.flow.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab punctuation.terminator.semicolon.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab +# ^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.if.matlab keyword.control.end.if.matlab > case 2 #^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab # ^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab keyword.control.switch.case.matlab # ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.case.declaration.matlab # ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.case.declaration.matlab constant.numeric.decimal.matlab > y = varargin{1} + varargin{2}; -#^^^^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab meta.assignment.variable.single.matlab variable.other.readwrite.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab keyword.operator.assignment.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab variable.language.function.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab constant.numeric.decimal.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab keyword.operator.arithmetic.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab variable.language.function.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab constant.numeric.decimal.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab -# ^ source.matlab meta.function.matlab meta.switch.matlab punctuation.terminator.semicolon.matlab +#^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab meta.assignment.variable.single.matlab variable.other.readwrite.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab keyword.operator.assignment.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab variable.language.function.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab constant.numeric.decimal.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab keyword.operator.arithmetic.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab variable.language.function.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab constant.numeric.decimal.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab +# ^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab punctuation.terminator.semicolon.matlab > otherwise -#^^ source.matlab meta.function.matlab meta.switch.matlab meta.otherwise.matlab +#^^ source.matlab meta.function.matlab meta.switch.matlab meta.case.matlab # ^^^^^^^^^ source.matlab meta.function.matlab meta.switch.matlab meta.otherwise.matlab keyword.control.switch.otherwise.matlab >end #^^^ source.matlab meta.function.matlab meta.switch.matlab keyword.control.end.switch.matlab @@ -119,35 +119,35 @@ > elseif y < 20 #^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab # ^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab keyword.control.elseif.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab variable.other.readwrite.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab keyword.operator.relational.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab -# ^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab constant.numeric.decimal.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab variable.other.readwrite.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab keyword.operator.relational.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab +# ^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab constant.numeric.decimal.matlab > disp('y < 20'); -#^^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab -# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab entity.name.function.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab -# ^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.single.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab punctuation.terminator.semicolon.matlab +#^^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab +# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab entity.name.function.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab string.quoted.single.matlab punctuation.definition.string.begin.matlab +# ^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab string.quoted.single.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab string.quoted.single.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab punctuation.terminator.semicolon.matlab > else -#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab +#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab # ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab keyword.control.else.matlab > disp("y >= 20"); -#^^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab -# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab entity.name.function.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.double.matlab punctuation.definition.string.begin.matlab -# ^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.double.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.double.matlab punctuation.definition.string.end.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab -# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab punctuation.terminator.semicolon.matlab +#^^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab +# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab entity.name.function.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab string.quoted.double.matlab punctuation.definition.string.begin.matlab +# ^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab string.quoted.double.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab string.quoted.double.matlab punctuation.definition.string.end.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab +# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab punctuation.terminator.semicolon.matlab > end -#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab +#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab # ^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab keyword.control.end.if.matlab >catch ME #^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.catch.matlab keyword.control.catch.matlab diff --git a/test/snap/lineContinuations.m.snap b/test/snap/lineContinuations.m.snap index 1e4d342..7c74011 100644 --- a/test/snap/lineContinuations.m.snap +++ b/test/snap/lineContinuations.m.snap @@ -78,7 +78,7 @@ # ^^^^^^^ source.matlab meta.function-call.parens.matlab meta.continuation.line.matlab comment.continuation.line.matlab > arg2 ... comment #^^^^ source.matlab meta.function-call.parens.matlab -# ^^^^ source.matlab meta.function-call.parens.matlab variable.other.readwrite.matlab +# ^^^^ source.matlab meta.function-call.parens.matlab variable.other.readwrite.matlab # ^ source.matlab meta.function-call.parens.matlab # ^^^ source.matlab meta.function-call.parens.matlab meta.continuation.line.matlab punctuation.separator.continuation.line.matlab # ^^^^^^^^ source.matlab meta.function-call.parens.matlab meta.continuation.line.matlab comment.continuation.line.matlab diff --git a/test/t08PropertyValidation.m b/test/t08PropertyValidation.m index 7032314..1d1937f 100644 --- a/test/t08PropertyValidation.m +++ b/test/t08PropertyValidation.m @@ -3,10 +3,10 @@ properties (GetAccess = 'public', SetAccess = 'private') % ^^^^^^^^^ storage.modifier.properties.matlab % ^ keyword.operator.assignment.matlab -% ^^^^^^ storage.modifier.access.matlab +% ^^^^^^^^ string.quoted.single.matlab % ^^^^^^^^^ storage.modifier.properties.matlab % ^ keyword.operator.assignment.matlab -% ^^^^^^^ storage.modifier.access.matlab +% ^^^^^^^^^ string.quoted.single.matlab % Commentary in the properties block % ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ comment.line.percentage.matlab Prop % comment @@ -61,6 +61,9 @@ % ^ keyword.operator.assignment.matlab % ^^ constant.numeric.matlab % ^ punctuation.terminator.semicolon.matlab + PropFcnArgs {mustBeGreaterThan(PropFcnArgs, 2)} +% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.function-call.parens.matlab + % Ending commentary end end diff --git a/test/t19SingleLineBlocks.m b/test/t19SingleLineBlocks.m index 2a18a27..a46db11 100644 --- a/test/t19SingleLineBlocks.m +++ b/test/t19SingleLineBlocks.m @@ -1,7 +1,7 @@ % SYNTAX TEST "source.matlab" "Blocks like if, for, etc. on a single line: https://github.com/mathworks/MATLAB-Language-grammar/issues/19" function y = t19SingleLineBlocks(x) switch x -% ^ variable.other.constant.matlab +% ^ meta.switch.declaration.matlab case 1 % ^^^^ keyword.control.switch.case.matlab % ^ constant.numeric.decimal.matlab @@ -23,7 +23,7 @@ end switch x, case 1, disp(1), case 2, disp(2), otherwise, disp(0); end % ^^^^^^ keyword.control.switch.matlab -% ^ variable.other.constant.matlab +% ^ meta.switch.declaration.matlab % ^ punctuation.separator.comma.matlab % ^^^^ keyword.control.switch.case.matlab % ^ constant.numeric.decimal.matlab diff --git a/test/t41FunctionDefinitions.m b/test/t41FunctionDefinitions.m index c2a3017..82be89c 100644 --- a/test/t41FunctionDefinitions.m +++ b/test/t41FunctionDefinitions.m @@ -1,63 +1,146 @@ % SYNTAX TEST "source.matlab" "Function declarations: https://github.com/mathworks/MATLAB-Language-grammar/issues/41" -function tFunctionDefinitions() -% ^^^^^^^^^^^^^^^^^^^^entity.name.function.matlab +function tFunctionDefinitions(in1) +% ^^^^^^^^^^^^^^^^^^^^ entity.name.function.matlab % Help text - y = "a string"; - %<- variable.other.readwrite.matlab + y = in1; % ^^^^^^^^^^string.quoted.double.matlab anonymousFunction = @(in1,in2) in1 + in2; - % ^keyword.operator.assignment.matlab - % ^punctuation.definition.function.anonymous.matlab - % ^punctuation.definition.parameters.begin.matlab - % ^^^variable.parameter.input.matlab - % ^punctuation.separator.parameter.comma.matlab - % ^^^variable.parameter.input.matlab - % ^punctuation.definition.parameters.end.matlab - % ^keyword.operator.arithmetic.matlab - % ^punctuation.terminator.semicolon.matlab + % ^ keyword.operator.assignment.matlab + % ^ punctuation.definition.function.anonymous.matlab + % ^ punctuation.definition.parameters.begin.matlab + % ^^^ variable.parameter.input.matlab + % ^ punctuation.separator.parameter.comma.matlab + % ^^^ variable.parameter.input.matlab + % ^ punctuation.definition.parameters.end.matlab + % ^ keyword.operator.arithmetic.matlab + % ^ punctuation.terminator.semicolon.matlab end %<- storage.type.function.end.matlab function [a,b,c] = multiOutput() -% ^^^^^^^^^^^entity.name.function.matlab +% ^ punctuation.section.assignment.group.begin.matlab +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ meta.assignment.variable.output.matlab punctuation.separator.parameter.comma.matlab +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ meta.assignment.variable.output.matlab punctuation.separator.parameter.comma.matlab +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ punctuation.section.assignment.group.end.matlab +% ^ keyword.operator.assignment.matlab +% ^^^^^^^^^^^ entity.name.function.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.begin.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.end.matlab % Help text - y = "a string"; -% ^^^^^^^^^^string.quoted.double.matlab + a = "a string"; + b = "b string"; + c = "c string"; end %<- storage.type.function.end.matlab -function [a,b,... +function [a,b,... comment +% ^ punctuation.section.assignment.group.begin.matlab +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ meta.assignment.variable.output.matlab punctuation.separator.parameter.comma.matlab +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ meta.assignment.variable.output.matlab punctuation.separator.parameter.comma.matlab +% ^^^ meta.assignment.variable.output.matlab punctuation.separator.continuation.line.matlab +% ^^^^^^^ meta.assignment.variable.output.matlab comment.continuation.line.matlab c] = multiLine(in1) -% ^^^^^^^^^entity.name.function.matlab +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ punctuation.section.assignment.group.end.matlab +% ^ keyword.operator.assignment.matlab +% ^^^^^^^^^ entity.name.function.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.begin.matlab +% ^^^ meta.parameters.matlab variable.parameter.input.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.end.matlab % Help text - y = "a string"; -% ^^^^^^^^^^string.quoted.double.matlab + a = in1; + b = "a string"; end %<- storage.type.function.end.matlab -function [a,b,... - c] = multiLine2(in1,... - in2)%^^^^^^^^^^entity.name.function.matlab - +function [a,... +% ^ punctuation.section.assignment.group.begin.matlab +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ meta.assignment.variable.output.matlab punctuation.separator.parameter.comma.matlab +% ^^^ meta.assignment.variable.output.matlab punctuation.separator.continuation.line.matlab + b] = multiLine2 (in1,... comment +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ punctuation.section.assignment.group.end.matlab +% ^ keyword.operator.assignment.matlab +% ^^^^^^^^^^ entity.name.function.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.begin.matlab +% ^^^ meta.parameters.matlab variable.parameter.input.matlab +% ^ meta.parameters.matlab punctuation.separator.parameter.comma.matlab +% ^^^ meta.parameters.matlab punctuation.separator.continuation.line.matlab +% ^^^^^^^ meta.parameters.matlab comment.continuation.line.matlab + in2) +% ^^^ meta.parameters.matlab variable.parameter.input.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.end.matlab % Help text - y = "a string"; -% ^^^^^^^^^^string.quoted.double.matlab + a = in1; + b = in2; end %<- storage.type.function.end.matlab + +function a ... comment +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^^^ meta.assignment.variable.output.matlab punctuation.separator.continuation.line.matlab +% ^^^^^^^ meta.assignment.variable.output.matlab comment.continuation.line.matlab + = multiline3... +% ^ keyword.operator.assignment.matlab +% ^^^^^^^^^^ entity.name.function.matlab +% ^^^ meta.function.declaration.matlab punctuation.separator.continuation.line.matlab + (in1) +% ^ meta.parameters.matlab punctuation.definition.parameters.begin.matlab +% ^^^ meta.parameters.matlab variable.parameter.input.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.end.matlab + a = in1; +end + + +function multiline4(... comment +% ^^^^^^^^^^ entity.name.function.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.begin.matlab +% ^^^ meta.parameters.matlab punctuation.separator.continuation.line.matlab +% ^^^^^^^ meta.parameters.matlab comment.continuation.line.matlab + in1) +% ^^^ meta.parameters.matlab variable.parameter.input.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.end.matlab + disp(in1); +end + +function [... +% ^ punctuation.section.assignment.group.begin.matlab +% ^^^ meta.assignment.variable.output.matlab punctuation.separator.continuation.line.matlab + a... +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^^^ meta.assignment.variable.output.matlab punctuation.separator.continuation.line.matlab + ,b] ... comment +% ^ meta.assignment.variable.output.matlab punctuation.separator.parameter.comma.matlab +% ^ meta.assignment.variable.output.matlab variable.parameter.output.matlab +% ^ punctuation.section.assignment.group.end.matlab +% ^^^ meta.function.declaration.matlab punctuation.separator.continuation.line.matlab +% ^^^^^^^ meta.function.declaration.matlab comment.continuation.line.matlab + = multiline5(in1) +% ^ keyword.operator.assignment.matlab +% ^^^^^^^^^^ entity.name.function.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.begin.matlab +% ^^^ meta.parameters.matlab variable.parameter.input.matlab +% ^ meta.parameters.matlab punctuation.definition.parameters.end.matlab + a = in1; + b = "a string"; +end + function functionWithoutParens -% ^^^^^^^^^^^^^^^^^^^^^meta.function.matlab -% ^^^^^^^^^^^^^^^^^^^^^entity.name.function.matlab +% ^^^^^^^^^^^^^^^^^^^^^meta.function.matlab entity.name.function.matlab % Help text y = "a string"; -% ^^^^^^^^^^string.quoted.double.matlab end %<- storage.type.function.end.matlab function functionWithoutParensAndEnd - % ^^^^^^^^^^^^^^^^^^^^^meta.function.matlab - % ^^^^^^^^^^^^^^^^^^^^^entity.name.function.matlab +% ^^^^^^^^^^^^^^^^^^^^^^^^^^^meta.function.matlab entity.name.function.matlab % Help text y = "a string"; - % ^^^^^^^^^^string.quoted.double.matlab diff --git a/test/t51Imports.m b/test/t51Imports.m index ac47991..883f787 100644 --- a/test/t51Imports.m +++ b/test/t51Imports.m @@ -22,8 +22,8 @@ % ^ punctuation.separator.matlab % ^^^^^^^^ entity.name.module.matlab -import module.* -% <------ keyword.other.import.matlab -% ^^^^^^ entity.name.module.matlab -% ^ punctuation.separator.matlab -% ^ variable.language.wildcard.matlab + import module.* +% ^^^^^^ keyword.other.import.matlab +% ^^^^^^ entity.name.module.matlab +% ^ punctuation.separator.matlab +% ^ variable.language.wildcard.matlab diff --git a/test/t54LineContinuationInAnonymousFunctions.m b/test/t54LineContinuationInAnonymousFunctions.m index b9fae59..8f7112d 100644 --- a/test/t54LineContinuationInAnonymousFunctions.m +++ b/test/t54LineContinuationInAnonymousFunctions.m @@ -1,4 +1,4 @@ -% SYNTAX TEST "source.matlab" "Imports: https://github.com/mathworks/MATLAB-Language-grammar/pull/52" +% SYNTAX TEST "source.matlab" "LineContinationInAnonymousFunctions: https://github.com/mathworks/MATLAB-Language-grammar/pull/54" @(x, y) x.^2+y; diff --git a/test/t57Operators.m b/test/t57Operators.m index aad8fca..9c67f90 100644 --- a/test/t57Operators.m +++ b/test/t57Operators.m @@ -1,4 +1,4 @@ -% SYNTAX TEST "source.matlab" "Imports: https://github.com/mathworks/MATLAB-Language-grammar/pull/57" +% SYNTAX TEST "source.matlab" "Operators: https://github.com/mathworks/MATLAB-Language-grammar/pull/57" %% Assignment and metadata query diff --git a/test/t61ReadWriteOperations.m b/test/t61ReadWriteOperations.m index ef417c1..8c8543d 100644 --- a/test/t61ReadWriteOperations.m +++ b/test/t61ReadWriteOperations.m @@ -1,4 +1,4 @@ -% SYNTAX TEST "source.matlab" "Imports: https://github.com/mathworks/MATLAB-Language-grammar/pull/51" +% SYNTAX TEST "source.matlab" "ReadWriteOperations: https://github.com/mathworks/MATLAB-Language-grammar/pull/61" variable % <------- variable.other.readwrite.matlab diff --git a/test/t64SwitchStatements.m b/test/t64SwitchStatements.m new file mode 100644 index 0000000..21517a2 --- /dev/null +++ b/test/t64SwitchStatements.m @@ -0,0 +1,125 @@ +% SYNTAX TEST "source.matlab" "SwitchStatements: https://github.com/mathworks/MATLAB-Language-grammar/pull/64" + + + +% https://github.com/mathworks/MATLAB-Language-grammar/issues/45 +switch(letter) +% <----- keyword.control.switch.matlab +% ^^^^^^^^ meta.switch.declaration.matlab + case {'A', 'B', 'C'} +% ^^^^ keyword.control.switch.case.matlab +% ^^^^^^^^^^^^^^^^ meta.case.declaration.matlab + return; + case {'D', 'E', 'F'} +% ^^^^ keyword.control.switch.case.matlab +% ^^^^^^^^^^^^^^^^ meta.case.declaration.matlab + return; + case 'X' +% ^^^^ keyword.control.switch.case.matlab +% ^^^ meta.case.declaration.matlab +% ^^^^ keyword.control.switch.case.matlab +% ^^^ meta.case.declaration.matlab + return; + case 'Y' +% ^^^^ keyword.control.switch.case.matlab +% ^^^ meta.case.declaration.matlab + return; + case 'Z' +% ^^^^ keyword.control.switch.case.matlab +% ^^^ meta.case.declaration.matlab + return; + otherwise +% ^^^^^^^^^ keyword.control.switch.otherwise.matlab + return; +end +% <-- keyword.control.end.switch.matlab + + +% https://github.com/mathworks/MATLAB-Language-grammar/issues/47 +switch obj.memberVariable +% <----- keyword.control.switch.matlab +% ^^^^^^^^^^^^^^^^^^ meta.switch.declaration.matlab + case { 0, 1, 2 } +% ^^^^ keyword.control.switch.case.matlab +% ^^^^^^^^^^^ meta.case.declaration.matlab + disp( 'dummy output - 0' ); + case 3 +% ^^^^ keyword.control.switch.case.matlab +% ^ meta.case.declaration.matlab + disp( 'dummy output - 1' ); + otherwise +% ^^^^^^^^^ keyword.control.switch.otherwise.matlab + disp( 'dummy output - otherwise'); + +end +% <-- keyword.control.end.switch.matlab + +switch memberVariable +% <----- keyword.control.switch.matlab +% ^^^^^^^^^^^^^^ meta.switch.declaration.matlab + case { 0, 1, 2 } + disp( 'dummy output - 0' ); + case 3 + disp( 'dummy output - 1' ); + otherwise +% ^^^^^^^^^ keyword.control.switch.otherwise.matlab + disp( 'dummy output - otherwise' ); +end +% <-- keyword.control.end.switch.matlab + + +% https://github.com/mathworks/MATLAB-Language-grammar/issues/52 +switch input +% <----- keyword.control.switch.matlab +% ^^^^^ meta.switch.declaration.matlab + case 0 +% ^^^^ keyword.control.switch.case.matlab +% ^ meta.case.declaration.matlab + disp foo + case { 1,2} +% ^^^^ keyword.control.switch.case.matlab +% ^^^^^^ meta.case.declaration.matlab + disp bar + case {3,4 } +% ^^^^ keyword.control.switch.case.matlab +% ^^^^^^ meta.case.declaration.matlab + disp foobar + case {5,6} +% ^^^^ keyword.control.switch.case.matlab +% ^^^^^ meta.case.declaration.matlab + disp baz +end +% <-- keyword.control.end.switch.matlab + + +% https://github.com/mathworks/MATLAB-Language-grammar/issues/64 +switch experiment +% <----- keyword.control.switch.matlab +% ^^^^^^^^^^ meta.switch.declaration.matlab + case 0 % Script testing w/ artery only output, text here +% ^^^^ keyword.control.switch.case.matlab +% ^ meta.case.declaration.matlab +% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ comment.line.percentage.matlab +end +% <-- keyword.control.end.switch.matlab + + +a = @() 2; +b = @() 2; + +switch a() +% <----- keyword.control.switch.matlab +% ^^^ meta.switch.declaration.matlab + case 1 +% ^^^^ keyword.control.switch.case.matlab +% ^ meta.case.declaration.matlab + disp("yes") + case b() +% ^^^^ keyword.control.switch.case.matlab +% ^^^ meta.case.declaration.matlab + disp("wierd") + otherwise +% ^^^^^^^^^ keyword.control.switch.otherwise.matlab + disp("no") +end +% <-- keyword.control.end.switch.matlab \ No newline at end of file diff --git a/test/t78EOLcommentsInBlocks.m b/test/t78EOLcommentsInBlocks.m new file mode 100644 index 0000000..7868d55 --- /dev/null +++ b/test/t78EOLcommentsInBlocks.m @@ -0,0 +1,37 @@ +% SYNTAX TEST "source.matlab" "EOLcommentsInBlocks: https://github.com/mathworks/MATLAB-Language-grammar/pull/78" + + +while test % test +% <---- keyword.control.while.matlab +% ^^^^ meta.while.declaration.matlab +% ^^^^^^ comment.line.percentage.matlab + % test +end + +while (test) % test +% <---- keyword.control.while.matlab +% ^^^^^^ meta.while.declaration.matlab +% ^^^^^^ comment.line.percentage.matlab + % test +end + +while test; % test +% <---- keyword.control.while.matlab +% ^^^^ meta.while.declaration.matlab +% ^^^^^^ comment.line.percentage.matlab + % test +end + +for i = 1:10 % test +% <-- keyword.control.for.matlab +% ^^^^^ meta.for.declaration.matlab +% ^^^^^^ comment.line.percentage.matlab + % test +end + +if i == 10 % test +% <-- keyword.control.if.matlab +% ^^^^^^^ meta.if.declaration.matlab +% ^^^^^^ comment.line.percentage.matlab + % test +end \ No newline at end of file diff --git a/test/t80AnonymousFunctionArgument.m b/test/t80AnonymousFunctionArgument.m new file mode 100644 index 0000000..121f738 --- /dev/null +++ b/test/t80AnonymousFunctionArgument.m @@ -0,0 +1,23 @@ +% SYNTAX TEST "source.matlab" "AnonymousFunctionArgument: https://github.com/mathworks/MATLAB-Language-grammar/pull/80" + +q = integral(@(x) x.^2, 0, 1); +% ^^^^^^^^^ meta.function.anonymous.matlab +% ^ - meta.function.anonymous.matlab + + +if ~isempty(lstr) + p.DataTipTemplate.DataTipRows(end+1) = ... + dataTipTextRow('cBin', arrayfun(@(x) lstr, binsX, 'UniformOutput', false)); +% ^^^^^^^^^ meta.function.anonymous.matlab +% ^ - meta.function.anonymous.matlab +end +% <-- meta.if.matlab keyword.control.end.if.matlab + + +if ~isempty(lstr) + p.DataTipTemplate.DataTipRows(end+1) = ... + dataTipTextRow('cBin', arrayfun(@(x) lstr, binsX, 'UniformOutput', false)); +% ^^^^^^^^^ meta.function.anonymous.matlab +% ^ - meta.function.anonymous.matlab +end +% <-- meta.if.matlab keyword.control.end.if.matlab diff --git a/test/t87ClassAttributes.m b/test/t87ClassAttributes.m new file mode 100644 index 0000000..b41560b --- /dev/null +++ b/test/t87ClassAttributes.m @@ -0,0 +1,6 @@ +% SYNTAX TEST "source.matlab" "Property validation: https://github.com/mathworks/MATLAB-Language-grammar/issues/87" +classdef (AllowedSubclasses = {?SubClass1,?SubClass2}) SuperClass +% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ storage.modifier.section.class.matlab +% ^^^^^^^^^^^^^^^^^^^^^ meta.cell.literal.matlab +% ^^^^^^^^^^ entity.name.type.class.matlab +end diff --git a/test/t89MetaclassLiterals.m b/test/t89MetaclassLiterals.m new file mode 100644 index 0000000..be88c75 --- /dev/null +++ b/test/t89MetaclassLiterals.m @@ -0,0 +1,17 @@ +% SYNTAX TEST "source.matlab" "Metaclasses: https://github.com/mathworks/MATLAB-Language-grammar/issues/89" +classdef (AllowedSubclasses = {?SubClass1,?namespace1.SubClass2}) SuperClass +% ^^^^^^^^^ meta.metaclass.matlab entity.other.class.matlab +% ^^^^^^^^^^^^^^^^^^^^ meta.metaclass.matlab +% ^^^^^^^^^^ entity.name.namespace.matlab +% ^^^^^^^^^ entity.other.class.matlab + methods + function foo() + x = ?namespace2.cls +% ^^^^^^^^^^^^^^ meta.metaclass.matlab +% ^^^^^^^^^^ entity.name.namespace.matlab +% ^^^ entity.other.class.matlab + y = ?MyClass +% ^^^^^^^ meta.metaclass.matlab entity.other.class.matlab + end + end +end diff --git a/test/t93ContinuationAfterClassAttributes.m b/test/t93ContinuationAfterClassAttributes.m new file mode 100644 index 0000000..a6c90e6 --- /dev/null +++ b/test/t93ContinuationAfterClassAttributes.m @@ -0,0 +1,17 @@ +% SYNTAX TEST "source.matlab" "Line continuation after class attributes: https://github.com/mathworks/MATLAB-Language-grammar/issues/93" + +% Case 1: Line continuation without attributes +classdef ... +% ^^^ meta.class.declaration.matlab punctuation.separator.continuation.line.matlab + Class1 +% ^^^^^^ meta.class.declaration.matlab entity.name.type.class.matlab +end + +% Case 2: Line continuation with attributes +classdef (Abstract) ... +% ^^^^^^^^^^^^^^ meta.class.declaration.matlab +% ^^^^^^^^^^ storage.modifier.section.class.matlab +% ^^^ punctuation.separator.continuation.line.matlab + Class2 +% ^^^^^^ meta.class.declaration.matlab entity.name.type.class.matlab +end \ No newline at end of file diff --git a/test/t95AttributeParsing.m b/test/t95AttributeParsing.m new file mode 100644 index 0000000..6d9545c --- /dev/null +++ b/test/t95AttributeParsing.m @@ -0,0 +1,15 @@ +% SYNTAX TEST "source.matlab" "Property etc. attribute parsing: https://github.com/mathworks/MATLAB-Language-grammar/issues/95" +classdef Class + % Some properties + properties (SetAccess=public, GetAccess={?foo.bar.baz}) +% ^^^^^^^^^^^^ meta.cell.literal.matlab + end + + events (Hidden=true, ListenAccess={?foo.bar}, NotifyAccess=?bar.baz) +% ^^^^^^^^ meta.cell.literal.matlab + end + + methods (Access=?bar.baz, Abstract=false) +% ^^^^^^^ meta.metaclass.matlab + end +end