From 64fe2ecd153e6414cf33fc887604a31ee36e7952 Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Sun, 1 May 2022 19:52:41 +0300 Subject: Implement newline corrector for list block. --- src/clarktown/correctors/list_block.clj | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/clarktown/correctors/list_block.clj (limited to 'src/clarktown/correctors') diff --git a/src/clarktown/correctors/list_block.clj b/src/clarktown/correctors/list_block.clj new file mode 100644 index 0000000..cf84bb1 --- /dev/null +++ b/src/clarktown/correctors/list_block.clj @@ -0,0 +1,36 @@ +(ns clarktown.correctors.list-block + (:require + [clojure.string :as string] + [clarktown.matchers.list-block :as matcher])) + + +(defn empty-line-above? + "Determines whether there's a need for an empty new line + above the `line` at the current `index`. In the list block + case that's when the above line is not a newline and is not + a list block line." + [lines line index] + (and (matcher/match? line) + (> index 0) + (nil? (-> (nth lines (- index 1)) + string/trim + matcher/match?)) + (not (= (-> (nth lines (- index 1)) + string/trim) + "")))) + + +(defn empty-line-below? + "Determines whether there's a need for an empty new line + above the `line` at the current `index`. In the list block + case that's when the below line is not a newline and is not + a list block line." + [lines line index] + (and (matcher/match? line) + (> (- (count lines) 1) index) + (nil? (-> (nth lines (+ index 1)) + string/trim + matcher/match?)) + (not (= (-> (nth lines (+ index 1)) + string/trim) + "")))) -- cgit v1.2.3