Skip to content

Commit d535361

Browse files
authored
Merge branch 'master' into feat/fix-switch-statements
2 parents 5af20e5 + 87eea5f commit d535361

File tree

8 files changed

+132
-57
lines changed

8 files changed

+132
-57
lines changed

Matlab.tmbundle/Syntaxes/MATLAB.tmLanguage

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@
227227
<key>begin</key>
228228
<string>(?&lt;=\))[^\S\n]*(\()?</string>
229229
<key>end</key>
230-
<string>(\))?[^\S\n]*(?=;|(?&lt;!(?:\.{3}.*))\n|%)</string>
230+
<string>(\))?[^\S\n]*(?=;|,|(?&lt;!(?:\.{3}.*))\n|%)</string>
231231
<key>beginCaptures</key>
232232
<dict>
233233
<key>1</key>
@@ -262,7 +262,7 @@
262262
</dict>
263263
</array>
264264
<key>end</key>
265-
<string>(?=;|(?&lt;!(?:\.{3}.*))\n|%)</string>
265+
<string>(?=;|,|(?&lt;!(?:\.{3}.*))\n|%)</string>
266266
</dict>
267267
<key>blocks</key>
268268
<dict>
@@ -299,7 +299,7 @@
299299
<key>begin</key>
300300
<string>\G(?!$)</string>
301301
<key>end</key>
302-
<string>(?&lt;!\.{3})(?:(?=([,;])(?![^(]*\)))|$)</string>
302+
<string>(?&lt;!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$)</string>
303303
<key>patterns</key>
304304
<array>
305305
<dict>
@@ -355,7 +355,7 @@
355355
<key>begin</key>
356356
<string>\G(?!$)</string>
357357
<key>end</key>
358-
<string>(?&lt;!\.{3})(?:(?=([,;])(?![^(]*\)))|$)</string>
358+
<string>(?&lt;!\.{3}.*)(?:(?=[,;](?![^(]*\)))|$)</string>
359359
<key>patterns</key>
360360
<array>
361361
<dict>
@@ -367,16 +367,18 @@
367367
<dict>
368368
<key>name</key>
369369
<string>meta.elseif.matlab</string>
370-
<key>match</key>
371-
<string>(?:\s*)(?&lt;=^|[\s,;])(elseif)\b</string>
372-
<key>captures</key>
370+
<key>begin</key>
371+
<string>\s*(?&lt;=^|[\s,;])(elseif)\b</string>
372+
<key>beginCaptures</key>
373373
<dict>
374374
<key>1</key>
375375
<dict>
376376
<key>name</key>
377377
<string>keyword.control.elseif.matlab</string>
378378
</dict>
379379
</dict>
380+
<key>end</key>
381+
<string>\s*(?&lt;=^|[\s,;])(?=elseif|else|end)\b</string>
380382
<key>patterns</key>
381383
<array>
382384
<dict>
@@ -385,7 +387,7 @@
385387
<key>begin</key>
386388
<string>\G(?!$)</string>
387389
<key>end</key>
388-
<string>(?&lt;!\.{3})(?:(?=([,;])(?![^(]*\)))|$)</string>
390+
<string>(?&lt;!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$)</string>
389391
<key>patterns</key>
390392
<array>
391393
<dict>
@@ -394,14 +396,18 @@
394396
</dict>
395397
</array>
396398
</dict>
399+
<dict>
400+
<key>include</key>
401+
<string>$self</string>
402+
</dict>
397403
</array>
398404
</dict>
399405
<dict>
400406
<key>name</key>
401407
<string>meta.else.matlab</string>
402-
<key>match</key>
403-
<string>(?:\s*)(?&lt;=^|[\s,;])(else)\b</string>
404-
<key>captures</key>
408+
<key>begin</key>
409+
<string>\s*(?&lt;=^|[\s,;])(else)\b</string>
410+
<key>beginCaptures</key>
405411
<dict>
406412
<key>1</key>
407413
<dict>
@@ -410,7 +416,14 @@
410416
</dict>
411417
</dict>
412418
<key>end</key>
413-
<string>^</string>
419+
<string>\s*(?&lt;=^|[\s,;])(?=end)\b</string>
420+
<key>patterns</key>
421+
<array>
422+
<dict>
423+
<key>include</key>
424+
<string>$self</string>
425+
</dict>
426+
</array>
414427
</dict>
415428
<dict>
416429
<key>include</key>
@@ -449,7 +462,7 @@
449462
<key>begin</key>
450463
<string>\G(?!$)</string>
451464
<key>end</key>
452-
<string>(?&lt;!\.{3})(?:(?=([,;])(?![^(]*\)))|$)</string>
465+
<string>(?&lt;!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$)</string>
453466
<key>patterns</key>
454467
<array>
455468
<dict>
@@ -495,7 +508,7 @@
495508
<key>begin</key>
496509
<string>\G(?!$)</string>
497510
<key>end</key>
498-
<string>(?&lt;!\.{3})(?:(?=([,;])(?![^(]*\)))|$)</string>
511+
<string>(?&lt;!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$)</string>
499512
<key>patterns</key>
500513
<array>
501514
<dict>
@@ -583,7 +596,7 @@
583596
<key>begin</key>
584597
<string>\G(?!$)</string>
585598
<key>end</key>
586-
<string>(?&lt;!\.{3})(?:(?=([,;])(?![^(]*\)))|$)</string>
599+
<string>(?&lt;!\.{3}.*)(?:(?=([,;])(?![^(]*\)))|$)</string>
587600
<key>patterns</key>
588601
<array>
589602
<dict>
@@ -706,17 +719,16 @@
706719
<key>name</key>
707720
<string>meta.while.declaration.matlab</string>
708721
<key>begin</key>
709-
<string>\G</string>
722+
<string>\G(?!$)</string>
710723
<key>end</key>
711-
<string>(?&lt;!\.{3})(?:(?=([,;])(?![^(]*\)))|$)</string>
712-
<key>endCaptures</key>
713-
<dict>
714-
<key>1</key>
724+
<string>(?&lt;!\.{3}.*)(?:(?=[,;](?![^(]*\)))|$)</string>
725+
<key>patterns</key>
726+
<array>
715727
<dict>
716728
<key>include</key>
717729
<string>$self</string>
718730
</dict>
719-
</dict>
731+
</array>
720732
</dict>
721733
<dict>
722734
<key>include</key>

test/snap/Account.m.snap

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,15 +108,15 @@
108108
#^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab
109109
# ^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab keyword.control.else.matlab
110110
> error('Value must be numeric')
111-
#^^^^^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab
112-
# ^^^^^ 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
113-
# ^ 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
114-
# ^ 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
115-
# ^^^^^^^^^^^^^^^^^^^^^ 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
116-
# ^ 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
117-
# ^ 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
111+
#^^^^^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab
112+
# ^^^^^ 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
113+
# ^ 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
114+
# ^ 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
115+
# ^^^^^^^^^^^^^^^^^^^^^ 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
116+
# ^ 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
117+
# ^ 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
118118
> end
119-
#^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab
119+
#^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab meta.else.matlab
120120
# ^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab meta.if.matlab keyword.control.end.if.matlab
121121
> end
122122
#^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.if.matlab
@@ -278,7 +278,10 @@
278278
# ^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab keyword.control.while.matlab
279279
# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab
280280
# ^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab variable.other.readwrite.matlab
281-
# ^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab
281+
# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab
282+
# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab keyword.operator.relational.matlab
283+
# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab
284+
# ^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.while.declaration.matlab constant.numeric.decimal.matlab
282285
> n = n + 1;
283286
#^^^^^^^^^^^^^^^^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab
284287
# ^ source.matlab meta.class.matlab meta.methods.matlab meta.function.matlab meta.while.matlab meta.assignment.variable.single.matlab variable.other.readwrite.matlab

test/snap/controlFlow.m.snap

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -119,35 +119,35 @@
119119
> elseif y < 20
120120
#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab
121121
# ^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab keyword.control.elseif.matlab
122-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab
123-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab variable.other.readwrite.matlab
124-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab
125-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab keyword.operator.relational.matlab
126-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab
127-
# ^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab constant.numeric.decimal.matlab
122+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab
123+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab variable.other.readwrite.matlab
124+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab
125+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab keyword.operator.relational.matlab
126+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab
127+
# ^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.elseif.declaration.matlab constant.numeric.decimal.matlab
128128
> disp('y < 20');
129-
#^^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab
130-
# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab entity.name.function.matlab
131-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab
132-
# ^ 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
133-
# ^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.single.matlab
134-
# ^ 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
135-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab
136-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab punctuation.terminator.semicolon.matlab
129+
#^^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab
130+
# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab entity.name.function.matlab
131+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab
132+
# ^ 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
133+
# ^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab string.quoted.single.matlab
134+
# ^ 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
135+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab
136+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab punctuation.terminator.semicolon.matlab
137137
> else
138-
#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab
138+
#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.elseif.matlab
139139
# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab keyword.control.else.matlab
140140
> disp("y >= 20");
141-
#^^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab
142-
# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab entity.name.function.matlab
143-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab
144-
# ^ 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
145-
# ^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab string.quoted.double.matlab
146-
# ^ 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
147-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab
148-
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab punctuation.terminator.semicolon.matlab
141+
#^^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab
142+
# ^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab entity.name.function.matlab
143+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab punctuation.section.parens.begin.matlab
144+
# ^ 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
145+
# ^^^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab string.quoted.double.matlab
146+
# ^ 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
147+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab meta.function-call.parens.matlab punctuation.section.parens.end.matlab
148+
# ^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab punctuation.terminator.semicolon.matlab
149149
> end
150-
#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab
150+
#^^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab meta.else.matlab
151151
# ^^^ source.matlab meta.function.matlab meta.try.matlab meta.if.matlab keyword.control.end.if.matlab
152152
>catch ME
153153
#^^^^^ source.matlab meta.function.matlab meta.try.matlab meta.catch.matlab keyword.control.catch.matlab

test/t54LineContinuationInAnonymousFunctions.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% SYNTAX TEST "source.matlab" "Imports: https://github.com/mathworks/MATLAB-Language-grammar/pull/52"
1+
% SYNTAX TEST "source.matlab" "LineContinationInAnonymousFunctions: https://github.com/mathworks/MATLAB-Language-grammar/pull/54"
22

33

44
@(x, y) x.^2+y;

test/t57Operators.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% SYNTAX TEST "source.matlab" "Imports: https://github.com/mathworks/MATLAB-Language-grammar/pull/57"
1+
% SYNTAX TEST "source.matlab" "Operators: https://github.com/mathworks/MATLAB-Language-grammar/pull/57"
22

33
%% Assignment and metadata query
44

test/t61ReadWriteOperations.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% SYNTAX TEST "source.matlab" "Imports: https://github.com/mathworks/MATLAB-Language-grammar/pull/51"
1+
% SYNTAX TEST "source.matlab" "ReadWriteOperations: https://github.com/mathworks/MATLAB-Language-grammar/pull/61"
22

33
variable
44
% <------- variable.other.readwrite.matlab

test/t78EOLcommentsInBlocks.m

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
% SYNTAX TEST "source.matlab" "EOLcommentsInBlocks: https://github.com/mathworks/MATLAB-Language-grammar/pull/78"
2+
3+
4+
while test % test
5+
% <---- keyword.control.while.matlab
6+
% ^^^^ meta.while.declaration.matlab
7+
% ^^^^^^ comment.line.percentage.matlab
8+
% test
9+
end
10+
11+
while (test) % test
12+
% <---- keyword.control.while.matlab
13+
% ^^^^^^ meta.while.declaration.matlab
14+
% ^^^^^^ comment.line.percentage.matlab
15+
% test
16+
end
17+
18+
while test; % test
19+
% <---- keyword.control.while.matlab
20+
% ^^^^ meta.while.declaration.matlab
21+
% ^^^^^^ comment.line.percentage.matlab
22+
% test
23+
end
24+
25+
for i = 1:10 % test
26+
% <-- keyword.control.for.matlab
27+
% ^^^^^ meta.for.declaration.matlab
28+
% ^^^^^^ comment.line.percentage.matlab
29+
% test
30+
end
31+
32+
if i == 10 % test
33+
% <-- keyword.control.if.matlab
34+
% ^^^^^^^ meta.if.declaration.matlab
35+
% ^^^^^^ comment.line.percentage.matlab
36+
% test
37+
end

0 commit comments

Comments
 (0)