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

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

[nongnu] elpa/forth-mode 350638bb0c 106/153: Make indentation case-insen


From: ELPA Syncer
Subject: [nongnu] elpa/forth-mode 350638bb0c 106/153: Make indentation case-insensitive
Date: Sat, 29 Jan 2022 08:02:22 -0500 (EST)

branch: elpa/forth-mode
commit 350638bb0c96a5ee9f554c9df68e821c4589bf09
Author: Helmut Eller <eller.helmut@gmail.com>
Commit: Lars Brinkhoff <lars@nocrew.org>

    Make indentation case-insensitive
    
    * forth-smie.el (forth-smie--forward-token)
    (forth-smie--forward-token, forth-smie-setup): Use custom tokenizer
    to downcase all tokens.
    * test/tests.el (forth-indent-if-then-else): Add tests case.
---
 forth-smie.el | 18 +++++++++++++++++-
 test/tests.el |  8 +++++++-
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/forth-smie.el b/forth-smie.el
index 3bc14fb139..ae44364ca7 100644
--- a/forth-smie.el
+++ b/forth-smie.el
@@ -33,7 +33,23 @@
     (`(:elem . args) 0)
     (`(:list-intro . ,_) forth-smie--basic-indent)))
 
+(defun forth-smie--forward-token ()
+  (forward-comment (point-max))
+  (downcase (buffer-substring-no-properties
+            (point)
+            (progn (skip-syntax-forward "w_")
+                   (point)))))
+
+(defun forth-smie--backward-token ()
+  (forward-comment (- (point)))
+  (downcase (buffer-substring-no-properties
+            (point)
+            (progn (skip-syntax-backward "w_")
+                   (point)))))
+
 (defun forth-smie-setup ()
-  (smie-setup forth-smie--grammar #'forth-smie--indentation-rules))
+  (smie-setup forth-smie--grammar #'forth-smie--indentation-rules
+             :forward-token #'forth-smie--forward-token
+             :backward-token #'forth-smie--backward-token))
 
 (provide 'forth-smie)
diff --git a/test/tests.el b/test/tests.el
index 7087ecab0e..e9460de9cc 100644
--- a/test/tests.el
+++ b/test/tests.el
@@ -117,7 +117,13 @@ The whitespace before and including \"|\" on each line is 
removed."
    |  3 +
    |else
    |  1+
-   |then"))
+   |then")
+  (forth-should-indent
+   "x IF
+   |  3 +
+   |ELSE
+   |  1+
+   |THEN"))
 
 (ert-deftest forth-indent-begin-while-repeat ()
   (forth-should-indent



reply via email to

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