branch: externals/matlab-mode
commit 7fa384a043472af5bb7ad784078e7377d3264bf3
Author: John Ciolfi <[email protected]>
Commit: John Ciolfi <[email protected]>

    matlab-ts-mode--ei: handle events{idx}
---
 matlab-ts-mode--ei.el                              |  2 +-
 .../electric_indent_event_fcn.m                    |  7 +++++
 .../electric_indent_event_fcn_expected.m           |  7 +++++
 .../electric_indent_event_fcn_expected_msgs.m      |  7 +++++
 .../electric_indent_event_fcn.m                    |  7 +++++
 .../electric_indent_event_fcn_expected.txt         | 33 ++++++++++++++++++++++
 6 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/matlab-ts-mode--ei.el b/matlab-ts-mode--ei.el
index 2b5f1f1b7e..f27566f512 100644
--- a/matlab-ts-mode--ei.el
+++ b/matlab-ts-mode--ei.el
@@ -180,7 +180,7 @@
     (,(rx bos "identifier" eos)       ,(rx bos (or "(" "{") eos)               
                  0)
     (,(rx bos "identifier" eos)       "."                                      
                  1)
     ;; Case: {events(thing)}, {enumeration(thing)}, {methods(thing)}
-    (,(rx "-fcn" eos)                 ,(rx bos "(" eos)                        
                  0)
+    (,(rx "-fcn" eos)                 "."                                      
                  0)
 
     ;; Case: number in matrix: [123 456]
     (,(rx bos "number" eos)           "."                                      
                  1)
diff --git 
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn.m 
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn.m
new file mode 100644
index 0000000000..a3bb41683e
--- /dev/null
+++ 
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn.m
@@ -0,0 +1,7 @@
+% -*- matlab-ts -*-
+
+events = {'one', 'two', 'three'};
+
+for idx = 1 : length(events)
+    event = events{idx};
+end
diff --git 
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected.m
 
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected.m
new file mode 100644
index 0000000000..a3bb41683e
--- /dev/null
+++ 
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected.m
@@ -0,0 +1,7 @@
+% -*- matlab-ts -*-
+
+events = {'one', 'two', 'three'};
+
+for idx = 1 : length(events)
+    event = events{idx};
+end
diff --git 
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected_msgs.m
 
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected_msgs.m
new file mode 100644
index 0000000000..6ca947aa98
--- /dev/null
+++ 
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected_msgs.m
@@ -0,0 +1,7 @@
+% -*- matlab-ts -*- %  <{Matched rule: (matlab-ts-mode--i-top-level 
matlab-ts-mode--column-0 0)}>
+
+events = {'one', 'two', 'three'}; %  <{Matched rule: 
(matlab-ts-mode--i-top-level matlab-ts-mode--column-0 0)}>
+
+for idx = 1 : length(events) %  <{Matched rule: (matlab-ts-mode--i-top-level 
matlab-ts-mode--column-0 0)}>
+    event = events{idx}; %  <{Matched rule: ((node-is 
"\\`\\(?:arguments_statement\\|block\\|e\\(?:num\\(?:eration\\)?\\|vents\\)\\|function_definition\\|methods\\|propert\\(?:ies\\|y\\)\\)\\'")
 parent 4)}>
+end %  <{Matched rule: ((node-is 
"\\`\\(?:catch_clause\\|e\\(?:lse\\(?:\\(?:if\\)?_clause\\)\\|nd\\)\\)\\'") 
parent 0)}>
diff --git 
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn.m
 
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn.m
new file mode 100644
index 0000000000..a3bb41683e
--- /dev/null
+++ 
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn.m
@@ -0,0 +1,7 @@
+% -*- matlab-ts -*-
+
+events = {'one', 'two', 'three'};
+
+for idx = 1 : length(events)
+    event = events{idx};
+end
diff --git 
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected.txt
 
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected.txt
new file mode 100644
index 0000000000..2adb6152c1
--- /dev/null
+++ 
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_event_fcn_expected.txt
@@ -0,0 +1,33 @@
+# -*- t-utils-ts-parse-tree -*-
+(source_file<1,115> (comment[1,20]@{% -*- matlab-ts -*-}@) \n[20,22]
+ (assignment<22,54>
+  left: (identifier<22,28> events[22,28])
+  =[29,30]
+  right: 
+   (cell<31,54> {[31,32]
+    (row<32,53>
+     (string<32,37> '[32,33] (string_content[33,36]@{one}@) '[36,37])
+     ,[37,38]
+     (string<39,44> '[39,40] (string_content[40,43]@{two}@) '[43,44])
+     ,[44,45]
+     (string<46,53> '[46,47] (string_content[47,52]@{three}@) '[52,53]))
+    }[53,54]))
+ ;[54,55] \n[55,57]
+ (for_statement<57,114> for[57,60]
+  (iterator<61,85> (identifier[61,64]@{idx}@) =[65,66]
+   (range<67,85> (number[67,68]@{1}@) :[69,70]
+    (function_call<71,85> name: (identifier[71,77]@{length}@) ([77,78]
+     (arguments<78,84>
+      argument: (identifier<78,84> events[78,84]))
+     )[84,85])))
+  (block<90,111>
+   (assignment<90,109> left: (identifier[90,95]@{event}@) =[96,97]
+    right: 
+     (function_call<98,109>
+      name: (identifier<98,104> events[98,104])
+      {[104,105]
+      (arguments<105,108> argument: (identifier[105,108]@{idx}@))
+      }[108,109]))
+   ;[109,110] \n[110,111])
+  end[111,114])
+ \n[114,115])

Reply via email to