diff --git a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage index a116e88..143e386 100644 --- a/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage +++ b/Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage @@ -789,12 +789,10 @@ name storage.modifier.section.class.matlab - comment - This breaks if there is a line continuation between end of attrs and name, but works for line continuations inside attrs. Line continuations are a mistake. begin \G\( end - \)(?=\s*\w+) + \) patterns @@ -961,6 +959,10 @@ include #comments + + include + #line_continuation + 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