branch: externals/matlab-mode
commit 5c4063e93bf88974d7887f3a9510a24e3eb86b5f
Author: John Ciolfi <john.ciolfi...@gmail.com>
Commit: John Ciolfi <john.ciolfi...@gmail.com>

    matlab-ts-mode: fix indent of continued namespace functions
---
 matlab-ts-mode.el                                   | 10 ++++++++++
 .../indent_namespace_fcn_continued.m                | 21 +++++++++++++++++++++
 .../indent_namespace_fcn_continued_expected.m       | 21 +++++++++++++++++++++
 3 files changed, 52 insertions(+)

diff --git a/matlab-ts-mode.el b/matlab-ts-mode.el
index 10d266f8a1..b10a79f5d6 100644
--- a/matlab-ts-mode.el
+++ b/matlab-ts-mode.el
@@ -2326,6 +2326,12 @@ Example:
      ;; <TAB>                    2, ...
      ((parent-is ,(rx bos "arguments" eos)) parent 0)
 
+     ;; I-Rule:      someNamespace1.subNamespace2.myFunction( ...
+     ;;        TAB>      a, ... % comment for param1
+     ;; See: 
tests/test-matlab-ts-mode-indent-files/indent_namespace_fcn_continued.m
+     ((n-p-gp ,(rx bos "arguments" eos) ,(rx bos "function_call" eos) ,(rx bos 
"field_expression" eos))
+      grand-parent ,matlab-ts-mode--indent-level)
+
      ;; I-Rule:  my_function( ...
      ;; <TAB>        1, ...
      ((node-is ,(rx bos "arguments" eos)) parent ,matlab-ts-mode--indent-level)
@@ -3533,6 +3539,10 @@ so configuration variables of that mode, do not affect 
this mode.
     ;; Activate MATLAB script ";; heading" matlab-sections-minor-mode if needed
     (matlab-sections-auto-enable-on-mfile-type-fcn 
(matlab-ts-mode--mfile-type))
 
+    ;; TODO view errors
+    ;;      Add matlab-ts-mode-view-syntax-errors in a compilation mode buffer 
(g to refresh),
+    ;;      add to menu
+    ;;
     ;; TODO [future] Indent - complex for statement
     ;;         function a = foo(inputArgument1)
     ;;             for (idx = (a.b.getStartValue(((inputArgument1 + 
someOtherFunction(b)) * 2 - ...
diff --git 
a/tests/test-matlab-ts-mode-indent-files/indent_namespace_fcn_continued.m 
b/tests/test-matlab-ts-mode-indent-files/indent_namespace_fcn_continued.m
new file mode 100644
index 0000000000..9c853c4113
--- /dev/null
+++ b/tests/test-matlab-ts-mode-indent-files/indent_namespace_fcn_continued.m
@@ -0,0 +1,21 @@
+% -*- matlab-ts -*-
+
+function d=indent_namespace_fcn_continued(a, b)
+
+    try
+        d = [a;b];
+    catch
+        disp('[a;b] failed');
+    end
+
+    % Function arguments are aligned when the first argument follows the open 
parenthesis
+    someNamespace1.subNamespace2.myFunction(a, ... % comment for param1
+                                      b);    % comment for param2
+
+
+    % Function arguments are indented and aligned when the first argument is 
on the next line:
+    someNamespace1.subNamespace2.myFunction( ...
+         a, ... % comment for param1
+           b);    % comment for param2
+
+end % this function has an end
diff --git 
a/tests/test-matlab-ts-mode-indent-files/indent_namespace_fcn_continued_expected.m
 
b/tests/test-matlab-ts-mode-indent-files/indent_namespace_fcn_continued_expected.m
new file mode 100644
index 0000000000..3b2b8e79ea
--- /dev/null
+++ 
b/tests/test-matlab-ts-mode-indent-files/indent_namespace_fcn_continued_expected.m
@@ -0,0 +1,21 @@
+% -*- matlab-ts -*-
+
+function d=indent_namespace_fcn_continued(a, b)
+
+    try
+        d = [a;b];
+    catch
+        disp('[a;b] failed');
+    end
+
+    % Function arguments are aligned when the first argument follows the open 
parenthesis
+    someNamespace1.subNamespace2.myFunction(a, ... % comment for param1
+                                            b);    % comment for param2
+
+
+    % Function arguments are indented and aligned when the first argument is 
on the next line:
+    someNamespace1.subNamespace2.myFunction( ...
+        a, ... % comment for param1
+        b);    % comment for param2
+
+end % this function has an end

Reply via email to