branch: externals/matlab-mode
commit 89259da6116b6a3aa01d25348f2199211ee4e19b
Author: John Ciolfi <[email protected]>
Commit: John Ciolfi <[email protected]>
matlab-ts-mode--ei: handle cell index in matrices
---
matlab-ts-mode--ei.el | 2 +-
.../electric_indent_cell_index_in_mat.m | 3 +++
.../electric_indent_cell_index_in_mat_expected.m | 3 +++
...lectric_indent_cell_index_in_mat_expected_msgs.m | 3 +++
.../electric_indent_cell_index_in_mat.m | 3 +++
.../electric_indent_cell_index_in_mat_expected.txt | 21 +++++++++++++++++++++
6 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/matlab-ts-mode--ei.el b/matlab-ts-mode--ei.el
index a40d8c6383..f077550005 100644
--- a/matlab-ts-mode--ei.el
+++ b/matlab-ts-mode--ei.el
@@ -188,7 +188,7 @@
;; Case: c4{1} = [1 2; 3 4];
;; v4 = [c4{1}(1,1), c4{1}(1,1)];
- (,(rx bos "}" eos) ,(rx bos "(" eos)
0)
+ (,(rx bos "}" eos) ,(rx bos (or "(" "{") eos)
0)
;; Case: ")": m3 = uint8([ones(20,1); 2*ones(8,1)]);
;; ^ ^
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat.m
new file mode 100644
index 0000000000..9b1e3c7d99
--- /dev/null
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat.m
@@ -0,0 +1,3 @@
+% -*- matlab-ts -*-
+
+foobar = ['[' myStruct.field{1}{1}.Name];
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected.m
new file mode 100644
index 0000000000..2de0acd4ef
--- /dev/null
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected.m
@@ -0,0 +1,3 @@
+% -*- matlab-ts -*-
+
+foobar = ['[', myStruct.field{1}{1}.Name];
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected_msgs.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected_msgs.m
new file mode 100644
index 0000000000..465a59dae9
--- /dev/null
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected_msgs.m
@@ -0,0 +1,3 @@
+% -*- matlab-ts -*- % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+
+foobar = ['[', myStruct.field{1}{1}.Name]; % <{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_cell_index_in_mat.m
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat.m
new file mode 100644
index 0000000000..9b1e3c7d99
--- /dev/null
+++
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat.m
@@ -0,0 +1,3 @@
+% -*- matlab-ts -*-
+
+foobar = ['[' myStruct.field{1}{1}.Name];
diff --git
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected.txt
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected.txt
new file mode 100644
index 0000000000..65fbc1ea09
--- /dev/null
+++
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_cell_index_in_mat_expected.txt
@@ -0,0 +1,21 @@
+# -*- t-utils-ts-parse-tree -*-
+(source_file<1,64> (comment[1,20]@{% -*- matlab-ts -*-}@)
+ (assignment<22,62> left: (identifier[22,28]@{foobar}@) =[29,30]
+ right:
+ (matrix<31,62> [[31,32]
+ (row<32,61>
+ (string<32,35> '[32,33] (string_content[33,34]@{[}@) '[34,35])
+ ,[36,36]
+ (field_expression<36,61> object: (identifier[36,44]@{myStruct}@) .[44,45]
+ field:
+ (function_call<45,56>
+ name:
+ (function_call<45,53> name: (identifier[45,50]@{field}@) {[50,51]
+ (arguments<51,52> argument: (number[51,52]@{1}@))
+ }[52,53])
+ {[53,54]
+ (arguments<54,55> argument: (number[54,55]@{1}@))
+ }[55,56])
+ .[56,57] (identifier[57,61]@{Name}@)))
+ ][61,62]))
+ ;[62,63] \n[63,64])