summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--snakemake-mode.el8
-rw-r--r--snakemake-test.el7
2 files changed, 12 insertions, 3 deletions
diff --git a/snakemake-mode.el b/snakemake-mode.el
index 2e40b7b..368c4c3 100644
--- a/snakemake-mode.el
+++ b/snakemake-mode.el
@@ -229,9 +229,11 @@ Indent according the the first case below that is true.
(when (funcall blank-p)
(forward-line -1))
(catch 'in-block
- (while (not (or (bobp) (funcall blank-p)))
- (when (looking-at-p snakemake-rule-or-subworkflow-re)
- (throw 'in-block t))
+ (while (not (funcall blank-p))
+ (cond ((looking-at-p snakemake-rule-or-subworkflow-re)
+ (throw 'in-block t))
+ ((bobp)
+ (throw 'in-block nil)))
(forward-line -1))))))
(defun snakemake-below-naked-field-p ()
diff --git a/snakemake-test.el b/snakemake-test.el
index 880d7d5..8ebb3ff 100644
--- a/snakemake-test.el
+++ b/snakemake-test.el
@@ -522,6 +522,13 @@ rule abc:
output: 'file'"
(should-not (snakemake-in-rule-or-subworkflow-block-p)))
+ ;; At beginning of buffer
+ (snakemake-with-temp-text
+ "\
+rule abc:
+ output: 'file'<point>"
+ (should (snakemake-in-rule-or-subworkflow-block-p)))
+
;; Subworkflow
(snakemake-with-temp-text
"