branch: externals/matlab-mode
commit 20f4eab6203fc1abe4127625a03c20c24574f1cc
Author: John Ciolfi <[email protected]>
Commit: John Ciolfi <[email protected]>
matlab-ts-mode: add more tests for indent alignments
---
.../electric_indent_align_assignments.m | 6 +++++
.../electric_indent_align_assignments_expected.m | 6 +++++
...ectric_indent_align_assignments_expected_msgs.m | 6 +++++
.../electric_indent_trailing_comments.m | 7 +++++
.../electric_indent_trailing_comments_expected.m | 7 +++++
...ectric_indent_trailing_comments_expected_msgs.m | 7 +++++
.../electric_indent_align_assignments.m | 6 +++++
.../electric_indent_align_assignments_expected.txt | 28 ++++++++++++++++++--
.../electric_indent_trailing_comments.m | 7 +++++
.../electric_indent_trailing_comments_expected.txt | 30 ++++++++++++++++++++--
10 files changed, 106 insertions(+), 4 deletions(-)
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments.m
index 0093d1a725..e7b52cadbb 100644
---
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments.m
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments.m
@@ -31,3 +31,9 @@ g = foo(1,2,3);
x = 2;
y = 3;
z = x * y;
+
+% The a(d("=")) = 1; statement is not aligned because of the use of an equal
in a string "="
+ foo = 1;
+ d = dictionary("=", 1);
+ other = 2;
+a(d("=")) = 1;
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected.m
index 3ec2af61bc..2bb3384798 100644
---
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected.m
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected.m
@@ -31,3 +31,9 @@ g = foo(1, 2, 3);
x = 2;
y = 3;
z = x * y;
+
+% The a(d("=")) = 1; statement is not aligned because of the use of an equal
in a string "="
+foo = 1;
+d = dictionary("=", 1);
+other = 2;
+a(d("=")) = 1;
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected_msgs.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected_msgs.m
index fded9249f0..aadfa45f24 100644
---
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected_msgs.m
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected_msgs.m
@@ -31,3 +31,9 @@ g = foo(1, 2, 3); % <{Matched rule:
(matlab-ts-mode--i-top-level matla
x = 2; % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
y = 3; % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
z = x * y; % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+
+% The a(d("=")) = 1; statement is not aligned because of the use of an equal
in a string "=" % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+foo = 1; % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+d = dictionary("=", 1); % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+other = 2; % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+a(d("=")) = 1; % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments.m
index 4eb1771748..01695fc0b8 100644
---
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments.m
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments.m
@@ -10,3 +10,10 @@
a(1,2) = [1, 2, 3]; % comment
b(1,2) = 1; % commnet
+
+% We don't align the trailing comments in the following becaue of the "%" in
the string
+% matlab-ts-mode could be updated to handle this case, but it's likely rare.
+
+ foo = 1; % comment 1
+ d = dictionary("%", 1); % comment 2
+a(d("%")) = [1, 2, 3]; % comment 3
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected.m
index 1ffbd6c382..8fe69c4da7 100644
---
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected.m
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected.m
@@ -10,3 +10,10 @@ b = 3; % comment
a(1, 2) = [1, 2, 3]; % comment
b(1, 2) = 1; % commnet
+
+% We don't align the trailing comments in the following becaue of the "%" in
the string
+% matlab-ts-mode could be updated to handle this case, but it's likely rare.
+
+foo = 1; % comment 1
+d = dictionary("%", 1); % comment 2
+a(d("%")) = [1, 2, 3]; % comment 3
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected_msgs.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected_msgs.m
index 0e6667d50d..42888e5597 100644
---
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected_msgs.m
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected_msgs.m
@@ -10,3 +10,10 @@ b = 3; % comment % <{Matched rule:
(matlab-ts-mode--i-top-level ma
a(1, 2) = [1, 2, 3]; % comment % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
b(1, 2) = 1; % commnet % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+
+% We don't align the trailing comments in the following becaue of the "%" in
the string % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+% matlab-ts-mode could be updated to handle this case, but it's likely rare. %
<{Matched rule: (matlab-ts-mode--i-block-comment-end-matcher parent 0)}>
+
+foo = 1; % comment 1 % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+d = dictionary("%", 1); % comment 2 % <{Matched rule:
(matlab-ts-mode--i-top-level matlab-ts-mode--column-0 0)}>
+a(d("%")) = [1, 2, 3]; % comment 3 % <{Matched rule:
(matlab-ts-mode--i-top-level matlab-ts-mode--column-0 0)}>
diff --git
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments.m
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments.m
index 0093d1a725..e7b52cadbb 100644
---
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments.m
+++
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments.m
@@ -31,3 +31,9 @@ g = foo(1,2,3);
x = 2;
y = 3;
z = x * y;
+
+% The a(d("=")) = 1; statement is not aligned because of the use of an equal
in a string "="
+ foo = 1;
+ d = dictionary("=", 1);
+ other = 2;
+a(d("=")) = 1;
diff --git
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected.txt
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected.txt
index 11e41ad641..d302b2c817 100644
---
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected.txt
+++
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_align_assignments_expected.txt
@@ -1,5 +1,5 @@
# -*- t-utils-ts-parse-tree -*-
-(source_file<1,657> (comment[1,20]@{% -*- matlab-ts -*-}@) (comment[22,57]@{%
Consecuitvie assignment alignment}@) (comment[59,294]@{% t-utils-test-indent:
no-line-by-line-indent - wh...}@)
+(source_file<1,820> (comment[1,20]@{% -*- matlab-ts -*-}@) (comment[22,57]@{%
Consecuitvie assignment alignment}@) (comment[59,294]@{% t-utils-test-indent:
no-line-by-line-indent - wh...}@)
(assignment<296,302> left: (identifier[296,297]@{a}@) =[298,299] right:
(number[300,302]@{10}@))
;[302,303]
(assignment<308,333> left: (identifier[308,321]@{bLongVariable}@) =[322,323]
@@ -77,4 +77,28 @@
;[641,642]
(assignment<646,655> left: (identifier[646,647]@{z}@) =[648,649]
right: (binary_operator<650,655> left: (identifier[650,651]@{x}@) *[652,653]
right: (identifier[654,655]@{y}@)))
- ;[655,656] \n[656,657])
+ ;[655,656] (comment[658,750]@{% The a(d("=")) = 1; statement is not aligned
beca...}@)
+ (assignment<753,760> left: (identifier[753,756]@{foo}@) =[757,758] right:
(number[759,760]@{1}@))
+ ;[760,761]
+ (assignment<765,787> left: (identifier[765,766]@{d}@) =[767,768]
+ right:
+ (function_call<769,787> name: (identifier[769,779]@{dictionary}@) ([779,780]
+ (arguments<780,786>
+ argument: (string<780,783> "[780,781] (string_content[781,782]@{=}@)
"[782,783])
+ ,[783,784] (number[785,786]@{1}@))
+ )[786,787]))
+ ;[787,788]
+ (assignment<794,803> left: (identifier[794,799]@{other}@) =[800,801] right:
(number[802,803]@{2}@))
+ ;[803,804]
+ (assignment<805,818>
+ left:
+ (function_call<805,814> name: (identifier[805,806]@{a}@) ([806,807]
+ (arguments<807,813>
+ argument:
+ (function_call<807,813> name: (identifier[807,808]@{d}@) ([808,809]
+ (arguments<809,812>
+ argument: (string<809,812> "[809,810] (string_content[810,811]@{=}@)
"[811,812]))
+ )[812,813]))
+ )[813,814])
+ =[815,816] right: (number[817,818]@{1}@))
+ ;[818,819] \n[819,820])
diff --git
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments.m
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments.m
index 4eb1771748..01695fc0b8 100644
---
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments.m
+++
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments.m
@@ -10,3 +10,10 @@
a(1,2) = [1, 2, 3]; % comment
b(1,2) = 1; % commnet
+
+% We don't align the trailing comments in the following becaue of the "%" in
the string
+% matlab-ts-mode could be updated to handle this case, but it's likely rare.
+
+ foo = 1; % comment 1
+ d = dictionary("%", 1); % comment 2
+a(d("%")) = [1, 2, 3]; % comment 3
diff --git
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected.txt
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected.txt
index 24bc4fb910..853651099e 100644
---
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected.txt
+++
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_trailing_comments_expected.txt
@@ -1,5 +1,5 @@
# -*- t-utils-ts-parse-tree -*-
-(source_file<1,270> (comment[1,20]@{% -*- matlab-ts -*-}@) (comment[22,111]@{%
t-utils-test-indent: no-line-by-line-indent - ne...}@)
+(source_file<1,534> (comment[1,20]@{% -*- matlab-ts -*-}@) (comment[22,111]@{%
t-utils-test-indent: no-line-by-line-indent - ne...}@)
(assignment<116,121> left: (identifier[116,117]@{x}@) =[118,119] right:
(number[120,121]@{1}@))
;[121,122] (comment[123,132]@{% comment}@)
(assignment<135,153> left: (identifier[135,138]@{foo}@) =[139,140]
@@ -27,4 +27,30 @@
(arguments<250,253> argument: (number[250,251]@{1}@) ,[251,252]
(number[252,253]@{2}@))
)[253,254])
=[255,256] right: (number[257,258]@{1}@))
- ;[258,259] (comment[260,269]@{% commnet}@) \n[269,270])
+ ;[258,259] (comment[260,269]@{% commnet}@) (comment[271,435]@{% We don't
align the trailing comments in the foll...}@)
+ (assignment<439,446> left: (identifier[439,442]@{foo}@) =[443,444] right:
(number[445,446]@{1}@))
+ ;[446,447] (comment[448,459]@{% comment 1}@)
+ (assignment<463,485> left: (identifier[463,464]@{d}@) =[465,466]
+ right:
+ (function_call<467,485> name: (identifier[467,477]@{dictionary}@) ([477,478]
+ (arguments<478,484>
+ argument: (string<478,481> "[478,479] (string_content[479,480]@{%}@)
"[480,481])
+ ,[481,482] (number[483,484]@{1}@))
+ )[484,485]))
+ ;[485,486] (comment[487,498]@{% comment 2}@)
+ (assignment<499,520>
+ left:
+ (function_call<499,508> name: (identifier[499,500]@{a}@) ([500,501]
+ (arguments<501,507>
+ argument:
+ (function_call<501,507> name: (identifier[501,502]@{d}@) ([502,503]
+ (arguments<503,506>
+ argument: (string<503,506> "[503,504] (string_content[504,505]@{%}@)
"[505,506]))
+ )[506,507]))
+ )[507,508])
+ =[509,510]
+ right:
+ (matrix<511,520> [[511,512]
+ (row<512,519> (number[512,513]@{1}@) ,[513,514] (number[515,516]@{2}@)
,[516,517] (number[518,519]@{3}@))
+ ][519,520]))
+ ;[520,521] (comment[522,533]@{% comment 3}@) \n[533,534])