branch: externals/matlab-mode
commit 8972ef323b4a15be35053545a1bf9f95b5c32bac
Author: John Ciolfi <[email protected]>
Commit: John Ciolfi <[email protected]>
matlab-ts-mode--ei: handle ts-matlab issue 149 in assert
---
matlab-ts-mode--ei.el | 7 +++++++
.../electric_indent_enumeration_issue149.m | 6 ++++++
.../electric_indent_enumeration_issue149_expected.m | 6 ++++++
.../electric_indent_enumeration_issue149_expected_msgs.m | 6 ++++++
.../electric_indent_enumeration_issue149.m | 6 ++++++
.../electric_indent_enumeration_issue149_expected.txt | 11 +++++++++++
6 files changed, 42 insertions(+)
diff --git a/matlab-ts-mode--ei.el b/matlab-ts-mode--ei.el
index 5b6225bcf1..fadcdddfdf 100644
--- a/matlab-ts-mode--ei.el
+++ b/matlab-ts-mode--ei.el
@@ -1493,6 +1493,13 @@ TAB> x = 123 ./1 + 567
(string= orig-line-node-types "catch identifier comment"))
(cl-return-from matlab-ts-mode--ei-assert-nodes-types-match))
+ ;; See https://github.com/acristoffers/tree-sitter-matlab/issues/149
+ (let ((orig-modified (replace-regexp-in-string (rx "identifier
line_continuation" eos)
+ "enumeration
line_continuation"
+ orig-line-node-types)))
+ (when (string= curr-line-node-types orig-modified)
+ (cl-return-from matlab-ts-mode--ei-assert-nodes-types-match)))
+
(error "Assert: line-node-types mismatch new: \"%s\" !EQ orig: \"%s\" at
line %d in %s"
curr-line-node-types
orig-line-node-types
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149.m
new file mode 100644
index 0000000000..729522f1b2
--- /dev/null
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149.m
@@ -0,0 +1,6 @@
+% -*- matlab-ts -*-
+
+% See https://github.com/acristoffers/tree-sitter-matlab/issues/149
+
+[enums,enumStrs] = enumeration...
+ ('matlab.lang.OnOffSwitchState');
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected.m
new file mode 100644
index 0000000000..779c459812
--- /dev/null
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected.m
@@ -0,0 +1,6 @@
+% -*- matlab-ts -*-
+
+% See https://github.com/acristoffers/tree-sitter-matlab/issues/149
+
+[enums, enumStrs] = enumeration ...
+ ('matlab.lang.OnOffSwitchState');
diff --git
a/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected_msgs.m
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected_msgs.m
new file mode 100644
index 0000000000..fa291004fd
--- /dev/null
+++
b/tests/test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected_msgs.m
@@ -0,0 +1,6 @@
+% -*- matlab-ts -*- % <{Matched rule: (matlab-ts-mode--i-top-level
matlab-ts-mode--column-0 0)}>
+
+% See https://github.com/acristoffers/tree-sitter-matlab/issues/149 %
<{Matched rule: (matlab-ts-mode--i-top-level matlab-ts-mode--column-0 0)}>
+
+[enums, enumStrs] = enumeration ... % <{Matched rule:
(matlab-ts-mode--i-top-level matlab-ts-mode--column-0 0)}>
+ ('matlab.lang.OnOffSwitchState'); % <{Matched rule:
(matlab-ts-mode--i-assign-cont-matcher matlab-ts-mode--i-assign-cont-anchor
matlab-ts-mode--i-assign-cont-offset)}>
diff --git
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149.m
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149.m
new file mode 100644
index 0000000000..729522f1b2
--- /dev/null
+++
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149.m
@@ -0,0 +1,6 @@
+% -*- matlab-ts -*-
+
+% See https://github.com/acristoffers/tree-sitter-matlab/issues/149
+
+[enums,enumStrs] = enumeration...
+ ('matlab.lang.OnOffSwitchState');
diff --git
a/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected.txt
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected.txt
new file mode 100644
index 0000000000..c7f752e845
--- /dev/null
+++
b/tests/test-matlab-ts-mode-parser-files/copy-of-test-matlab-ts-mode-electric-indent-files/electric_indent_enumeration_issue149_expected.txt
@@ -0,0 +1,11 @@
+# -*- t-utils-ts-parse-tree -*-
+(source_file<1,163> (comment[1,20]@{% -*- matlab-ts -*-}@) (comment[22,89]@{%
See https://github.com/acristoffers/tree-sitter-...}@)
+ (assignment<91,161>
+ left: (multioutput_variable<91,107> [[91,92] (identifier[92,97]@{enums}@)
,[97,98] (identifier[98,106]@{enumStrs}@) ][106,107])
+ =[108,109]
+ right:
+ (function_call<110,161> name: (identifier[110,121]@{enumeration}@)
(line_continuation[121,125]@{...\n}@) ([129,130]
+ (arguments<130,160>
+ argument: (string<130,160> '[130,131]
(string_content[131,159]@{matlab.lang.OnOffSwitchState}@) '[159,160]))
+ )[160,161]))
+ ;[161,162] \n[162,163])