From 9756824465678baacea1619d67a5e745690bf8f5 Mon Sep 17 00:00:00 2001 From: Anton Edvinovich Pozharskiy Date: Tue, 23 Jul 2024 15:28:38 +0200 Subject: [PATCH 1/5] fixed attribute parsing in properties methods and events --- Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage | 66 +++++++++++++++++++--- 1 file changed, 59 insertions(+), 7 deletions(-) diff --git a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage index 143e386..8133c3e 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,7 +1015,7 @@ end - ,|(?=\)) + (?=\)|,) patterns @@ -1022,7 +1028,17 @@ name storage.modifier.access.matlab match - public|protected|private + public|protected|private|immutable + + + include + #curly_brackets + + + name + constant.integer.matlab + match + [0-9]+ @@ -1075,6 +1091,12 @@ patterns + + name + punctuation.separator.modifier.comma.matlab + match + , + name storage.modifier.methods.matlab @@ -1083,9 +1105,17 @@ begin - =\s* + (=)\s* end - ,|(?=\)) + (?=\)|,) + beginCaptures + + 1 + + name + keyword.operator.assignment.matlab + + patterns @@ -1100,6 +1130,10 @@ match public|protected|private + + include + #curly_brackets + @@ -1149,15 +1183,29 @@ 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 @@ -1172,6 +1220,10 @@ match public|protected|private + + include + #curly_brackets + From 74b8495f29a22cf085fbaf349826fc57f0e0a3aa Mon Sep 17 00:00:00 2001 From: Anton Edvinovich Pozharskiy Date: Thu, 28 Nov 2024 15:30:54 +0100 Subject: [PATCH 2/5] update fixes --- Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage | 40 ++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage index 8133c3e..a5486ef 100644 --- a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage +++ b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage @@ -1018,6 +1018,10 @@ (?=\)|,) patterns + + include + #string + name constant.language.boolean.matlab @@ -1034,6 +1038,10 @@ include #curly_brackets + + include + #metaclass_literal + name constant.integer.matlab @@ -1118,6 +1126,10 @@ patterns + + include + #string + name constant.language.boolean.matlab @@ -1128,12 +1140,22 @@ 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]+ + @@ -1208,6 +1230,10 @@ (?=\)|,) patterns + + include + #string + name constant.language.boolean.matlab @@ -1218,12 +1244,22 @@ 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]+ + From c25b3c1276dce1b280bac0532e088e6bb1a1f2fc Mon Sep 17 00:00:00 2001 From: Anton Edvinovich Pozharskiy Date: Thu, 28 Nov 2024 15:35:28 +0100 Subject: [PATCH 3/5] add test --- test/t95AttributeParsing.m | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 test/t95AttributeParsing.m 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 From 8f4f7966782b2cfbe8f34f26760722c996aad2e1 Mon Sep 17 00:00:00 2001 From: Anton Edvinovich Pozharskiy Date: Thu, 28 Nov 2024 15:38:16 +0100 Subject: [PATCH 4/5] update snap tests --- test/snap/Account.m.snap | 7 ++++--- test/snap/PropertyValidation.m.snap | 14 +++++++------- test/snap/controlFlow.m.snap | 4 ++-- test/snap/lineContinuations.m.snap | 2 +- 4 files changed, 14 insertions(+), 13 deletions(-) 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 From 95882572ee9792c092c34a0ada6c12ee128e13dc Mon Sep 17 00:00:00 2001 From: Anton Edvinovich Pozharskiy Date: Thu, 28 Nov 2024 15:44:33 +0100 Subject: [PATCH 5/5] fix old test --- test/t08PropertyValidation.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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