diff --git a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage index 143e386..a5486ef 100644 --- a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage +++ b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage @@ -991,6 +991,12 @@ patterns + + name + punctuation.separator.modifier.comma.matlab + match + , + name storage.modifier.properties.matlab @@ -1009,9 +1015,13 @@ end - ,|(?=\)) + (?=\)|,) patterns + + include + #string + name constant.language.boolean.matlab @@ -1022,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]+ @@ -1075,6 +1099,12 @@ patterns + + name + punctuation.separator.modifier.comma.matlab + match + , + name storage.modifier.methods.matlab @@ -1083,11 +1113,23 @@ begin - =\s* + (=)\s* end - ,|(?=\)) + (?=\)|,) + beginCaptures + + 1 + + name + keyword.operator.assignment.matlab + + patterns + + include + #string + name constant.language.boolean.matlab @@ -1098,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]+ @@ -1149,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 @@ -1170,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]+ diff --git a/test/snap/Account.m.snap b/test/snap/Account.m.snap index 3876790..629e60b 100644 --- a/test/snap/Account.m.snap +++ b/test/snap/Account.m.snap @@ -355,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 @@ -401,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/controlFlow.m.snap b/test/snap/controlFlow.m.snap index 4b3cf70..9265b0c 100644 --- a/test/snap/controlFlow.m.snap +++ b/test/snap/controlFlow.m.snap @@ -120,7 +120,7 @@ #^^^^ 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 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 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 @@ -147,7 +147,7 @@ # ^ 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 meta.else.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 8cce060..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 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