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])

Reply via email to