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

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

[nongnu] elpa/forth-mode ccb14b4a47 136/153: Indentation rule for :nonam


From: ELPA Syncer
Subject: [nongnu] elpa/forth-mode ccb14b4a47 136/153: Indentation rule for :noname
Date: Sat, 29 Jan 2022 08:02:26 -0500 (EST)

branch: elpa/forth-mode
commit ccb14b4a477e13353ced9658b8e7adfe90bbcd15
Author: Helmut Eller <eller.helmut@gmail.com>
Commit: Helmut Eller <eller.helmut@gmail.com>

    Indentation rule for :noname
    
    Indent "hanging" :noname like so:
    
      foo bar :noname
                baz
              ;
      execute
    
    * forth-smie.el (forth-smie--indentation-rules): Add rule for :noname.
    * test/tests.el (forth-indent-noname): New test.
---
 forth-smie.el | 7 +++++--
 test/tests.el | 7 +++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/forth-smie.el b/forth-smie.el
index 0d085983ac..72b1381f87 100644
--- a/forth-smie.el
+++ b/forth-smie.el
@@ -34,13 +34,16 @@
     (`(:elem . args)
      (cond ((smie-rule-prev-p ":" "begin-structure")
             (- (+ (save-excursion
-                    (forth-smie--backward-token)
-                    (current-column))
+                   (forth-smie--backward-token)
+                   (current-column))
                   forth-smie-basic-indent)
                (current-column)))
            (t 0)))
     (`(:after . ":")               (* 2 forth-smie-basic-indent))
     (`(:after . "begin-structure") (* 2 forth-smie-basic-indent))
+    (`(:before . ":noname") (cond ((smie-rule-hanging-p)
+                                  (current-column))
+                                 (t nil)))
     (`(:list-intro . ":")               nil)
     (`(:list-intro . "begin-structure") nil)
     (`(:list-intro . ,_) t)
diff --git a/test/tests.el b/test/tests.el
index 893731650f..e36100d223 100644
--- a/test/tests.el
+++ b/test/tests.el
@@ -278,6 +278,13 @@ The whitespace before and including \"|\" on each line is 
removed."
    |  1 CELLS +FIELD p.y
    |END-STRUCTURE"))
 
+(ert-deftest forth-indent-noname ()
+  (forth-should-indent
+   "1 2 :noname
+   |      swap
+   |    ;
+   |execute"))
+
 (ert-deftest forth-sexp-movements ()
   (forth-assert-forward-sexp " ¹: foo bar ;² \ x")
   (forth-assert-forward-sexp " ¹:noname foo bar ;² \ x")



reply via email to

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