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

Reply via email to