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

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

[nongnu] elpa/haskell-tng-mode 5bdf688 211/385: better in-line indentati


From: ELPA Syncer
Subject: [nongnu] elpa/haskell-tng-mode 5bdf688 211/385: better in-line indentation of parens
Date: Tue, 5 Oct 2021 23:59:33 -0400 (EDT)

branch: elpa/haskell-tng-mode
commit 5bdf688c7c751f8634bfca7c881197e3539159b7
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>

    better in-line indentation of parens
---
 haskell-tng-smie.el | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/haskell-tng-smie.el b/haskell-tng-smie.el
index 43e8bfd..898f015 100644
--- a/haskell-tng-smie.el
+++ b/haskell-tng-smie.el
@@ -35,13 +35,16 @@
   "A `newline-and-indent' with a better user experience for 
`haskell-tng-mode'."
   (interactive)
   ;; TODO a dynamically bound variable might improve the quality of
-  ;;      'empty-line-token predictions.
+  ;;      'empty-line-token predictions. Parens are special-cased.
   (when (<= (- (point-max) 1) (point))
     ;; WORKAROUND https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36432
     ;; TODO fix the bug properly in SMIE
     (save-excursion (insert "\n\n")))
-  (let ((rem (when (/= (point) (line-end-position))
-               (buffer-substring-no-properties (point) (line-end-position)))))
+  (let ((rem (save-excursion
+               (skip-syntax-forward " ")
+               (unless (looking-at (rx (syntax close-parenthesis)))
+                 (when (/= (point) (line-end-position))
+                   (buffer-substring-no-properties (point) 
(line-end-position)))))))
     (when rem
       (delete-region (point) (line-end-position)))
     ;; TODO don't continue line comments if there is code before them
@@ -50,7 +53,6 @@
     (call-interactively #'comment-indent-new-line)
     (when rem
       (save-excursion
-        ;; TODO prune trailing whitespace
         (insert rem)))))
 
 ;; TODO autodetection of indent options



reply via email to

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