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