branch: elpa/forth-mode
commit ccb14b4a477e13353ced9658b8e7adfe90bbcd15
Author: Helmut Eller <[email protected]>
Commit: Helmut Eller <[email protected]>
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")