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

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

[nongnu] elpa/nix-mode 14c3476ba9 020/500: Custom line indenter.


From: ELPA Syncer
Subject: [nongnu] elpa/nix-mode 14c3476ba9 020/500: Custom line indenter.
Date: Sat, 29 Jan 2022 08:26:32 -0500 (EST)

branch: elpa/nix-mode
commit 14c3476ba911c9bd8dc8c537280ed19c102cf4a6
Author: Matthew Bauer <mjbauer95@gmail.com>
Commit: Matthew Bauer <mjbauer95@gmail.com>

    Custom line indenter.
---
 nix-mode.el | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/nix-mode.el b/nix-mode.el
index 2f1ef95c59..f20697e0fb 100644
--- a/nix-mode.el
+++ b/nix-mode.el
@@ -151,10 +151,22 @@ If a close brace `}' ends an antiquote, the next 
character begins a string."
      (0 (ignore (nix-syntax-propertize-close-brace)))))
    start end))
 
+(defun nix-indent-level ()
+  "Get current indent level."
+  (save-excursion
+    (beginning-of-line)
+    (skip-chars-forward "[:space:]")
+    (let ((baseline (* 2 (nth 0 (syntax-ppss)))))
+      (cond
+       ((looking-at "[]})]") (- baseline tab-width))
+       ;; ((nix-inside-args) (- baseline tab-width))
+       ;; ((nix-inside-let) (+ baseline tab-width))
+       (t baseline)))))
+
 (defun nix-indent-line ()
   "Indent current line in a Nix expression."
   (interactive)
-  (indent-relative-maybe))
+  (indent-line-to (nix-indent-level)))
 
 
 (defvar nix-mode-map



reply via email to

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