Skip to content

Commit 1103d06

Browse files
committed
actually better classdef, now only breaks on esoteric line continuations
1 parent d917df6 commit 1103d06

File tree

1 file changed

+64
-65
lines changed

1 file changed

+64
-65
lines changed

Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage

Lines changed: 64 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -783,100 +783,101 @@
783783
<key>patterns</key>
784784
<array>
785785
<dict>
786+
<key>name</key>
787+
<string>storage.modifier.section.class.matlab</string>
788+
<!-- <key>comment</key> -->
789+
<!-- <string>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.</string> -->
786790
<key>begin</key>
787-
<string>\G\s*(\((.|\s)*\))?(?=\s* \w+)\s*(\w+)\s*</string>
788-
<key>beginCaptures</key>
789-
<dict>
790-
<key>1</key>
791+
<string>\G\(</string>
792+
<key>end</key>
793+
<string>\)(?=\s*\w+)</string>
794+
<key>patterns</key>
795+
<array>
791796
<dict>
792-
<key>comment</key>
793-
<string>Optional attributes</string>
794-
<key>patterns</key>
795-
<array>
796-
<dict>
797-
<key>name</key>
798-
<string>punctuation.section.parens.begin.matlab</string>
799-
<key>match</key>
800-
<string>(?&lt;=\s)\(</string>
801-
</dict>
802-
<dict>
803-
<key>name</key>
804-
<string>punctuation.section.parens.end.matlab</string>
805-
<key>match</key>
806-
<string>\)\z</string>
807-
</dict>
797+
<key>name</key>
798+
<string>punctuation.separator.modifier.comma.matlab</string>
799+
<key>match</key>
800+
<string>,</string>
801+
</dict>
802+
<dict>
803+
<key>name</key>
804+
<string>storage.modifier.class.matlab</string>
805+
<key>match</key>
806+
<string>[a-zA-Z][a-zA-Z0-9_]*</string>
807+
</dict>
808+
<dict>
809+
<key>begin</key>
810+
<string>(=)\s*</string>
811+
<key>beginCaptures</key>
812+
<dict>
813+
<key>1</key>
808814
<dict>
809815
<key>name</key>
810-
<string>punctuation.separator.modifier.comma.matlab</string>
811-
<key>match</key>
812-
<string>,</string>
816+
<string>keyword.operator.assignment.matlab</string>
813817
</dict>
818+
</dict>
819+
<key>end</key>
820+
<string>(?=\)|,)</string>
821+
<key>patterns</key>
822+
<array>
814823
<dict>
815824
<key>name</key>
816-
<string>storage.modifier.class.matlab</string>
825+
<string>constant.language.boolean.matlab</string>
817826
<key>match</key>
818-
<string>[a-zA-Z][a-zA-Z0-9_]*</string>
827+
<string>true|false</string>
819828
</dict>
820829
<dict>
821-
<key>begin</key>
822-
<string>(=)\s*</string>
823-
<key>beginCaptures</key>
824-
<dict>
825-
<key>1</key>
826-
<dict>
827-
<key>name</key>
828-
<string>keyword.operator.assignment.matlab</string>
829-
</dict>
830-
</dict>
831-
<key>end</key>
832-
<string>(?=\)|,)</string>
833-
<key>patterns</key>
834-
<array>
835-
<dict>
836-
<key>name</key>
837-
<string>constant.language.boolean.matlab</string>
838-
<key>match</key>
839-
<string>true|false</string>
840-
</dict>
841-
<dict>
842-
<key>include</key>
843-
<string>#string</string>
844-
</dict>
845-
</array>
830+
<key>include</key>
831+
<string>#string</string>
846832
</dict>
847833
<dict>
848834
<key>include</key>
849-
<string>#comments</string>
835+
<string>#curly_brackets</string>
850836
</dict>
851837
<dict>
852838
<key>include</key>
853-
<string>#line_continuation</string>
839+
<string>#line_continuations</string>
854840
</dict>
855841
</array>
856842
</dict>
857-
<key>3</key>
843+
<dict>
844+
<key>include</key>
845+
<string>#comments</string>
846+
</dict>
847+
<dict>
848+
<key>include</key>
849+
<string>#line_continuation</string>
850+
</dict>
851+
<dict>
852+
<key>include</key>
853+
<string>#comments</string>
854+
</dict>
855+
<dict>
856+
<key>include</key>
857+
<string>#line_continuation</string>
858+
</dict>
859+
</array>
860+
</dict>
861+
<dict>
862+
<key>begin</key>
863+
<string>\s*(\w+)</string>
864+
<key>beginCaptures</key>
865+
<dict>
866+
<key>1</key>
858867
<dict>
859868
<key>comment</key>
860869
<string>Class name</string>
861870
<key>name</key>
862871
<string>entity.name.type.class.matlab</string>
863872
</dict>
864873
</dict>
874+
<key>end</key>
875+
<string>(?&lt;!\.{3})(?=\s*%|\n)</string>
865876
<key>patterns</key>
866877
<array>
867878
<dict>
868879
<key>begin</key>
869880
<string>\G</string>
870-
<key>beginCaptures</key>
871-
<dict>
872-
<key>1</key>
873-
<dict>
874-
<key>comment</key>
875-
<string>Class name</string>
876-
<key>name</key>
877-
<string>entity.name.type.class.matlab</string>
878-
</dict>
879-
</dict>
880881
<key>end</key>
881882
<string>(?&lt;!\.{3})(?=\n)</string>
882883
<key>patterns</key>
@@ -947,8 +948,6 @@
947948
<string>#line_continuation</string>
948949
</dict>
949950
</array>
950-
<key>end</key>
951-
<string>(?&lt;!\.{3})(?=\s*%|\n)</string>
952951
</dict>
953952
</array>
954953
</dict>

0 commit comments

Comments
 (0)