emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/julia-mode b99710c 251/352: `python-mode`-like paren-inden


From: ELPA Syncer
Subject: [nongnu] elpa/julia-mode b99710c 251/352: `python-mode`-like paren-indent
Date: Sun, 29 Aug 2021 11:22:56 -0400 (EDT)

branch: elpa/julia-mode
commit b99710cabd77c066a051da6ae1d3a9988d18f491
Author: kshramt <thisisdummy@example.com>
Commit: kshramt <thisisdummy@example.com>

    `python-mode`-like paren-indent
---
 julia-mode-tests.el | 23 +++++++++++++++++++++++
 julia-mode.el       | 22 +++++++++++++++++++---
 2 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/julia-mode-tests.el b/julia-mode-tests.el
index 647323b..ca6acfc 100644
--- a/julia-mode-tests.el
+++ b/julia-mode-tests.el
@@ -183,6 +183,29 @@ baz )"
 foobar( bar,
         baz )"))
 
+(ert-deftest julia--test-indent-paren-newline ()
+  "python-mode-like indentation."
+  (julia--should-indent
+     "
+foobar(
+bar,
+baz)"
+     "
+foobar(
+    bar,
+    baz)")
+  (julia--should-indent
+     "
+foobar(
+bar,
+baz
+)"
+     "
+foobar(
+    bar,
+    baz
+)"))
+
 (ert-deftest julia--test-indent-equals ()
   "We should increase indent on a trailing =."
   (julia--should-indent
diff --git a/julia-mode.el b/julia-mode.el
index abc7c4e..62afa0d 100644
--- a/julia-mode.el
+++ b/julia-mode.el
@@ -468,10 +468,26 @@ with it. Returns nil if we're not within nested parens."
             ((= (nth 0 parser-state) 0) nil) ;; top level
             (t
              (ignore-errors ;; return nil if any of these movements fail
-               (backward-up-list)
-               (forward-char)
+               (beginning-of-line)
                (skip-syntax-forward " ")
-               (current-column)))))))
+               (let ((possibly-close-paren-point (point)))
+                 (backward-up-list)
+                 (let ((open-paren-point (point)))
+                   (forward-char)
+                   (skip-syntax-forward " ")
+                   (if (eolp)
+                       (progn
+                         (up-list)
+                         (backward-char)
+                         (let ((paren-closed (= (point) 
possibly-close-paren-point)))
+                           (goto-char open-paren-point)
+                           (beginning-of-line)
+                           (skip-syntax-forward " ")
+                           (+ (current-column)
+                              (if paren-closed
+                                  0
+                                julia-indent-offset))))
+                     (current-column))))))))))
 
 (defun julia-prev-line-skip-blank-or-comment ()
   "Move point to beginning of previous line skipping blank lines



reply via email to

[Prev in Thread] Current Thread [Next in Thread]