From b975d8c3198121db257f8a32fa049c72010a2610 Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Wed, 17 Apr 2024 09:15:51 +0200 Subject: [PATCH] Addendum for #49 (#52) --- .../clojure_mode/extensions/close_brackets.cljc | 8 +++++--- test/nextjournal/clojure_mode_tests.cljc | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src-shared/nextjournal/clojure_mode/extensions/close_brackets.cljc b/src-shared/nextjournal/clojure_mode/extensions/close_brackets.cljc index 9e4a75b..64d4440 100644 --- a/src-shared/nextjournal/clojure_mode/extensions/close_brackets.cljc +++ b/src-shared/nextjournal/clojure_mode/extensions/close_brackets.cljc @@ -15,13 +15,15 @@ (= \\ (.. state -doc (slice (max 0 (dec pos)) pos) toString))) (defn backspace-backoff [state from to] + #_(js/console.log (some-> (n/|node state from) (u/guard n/line-comment?))) (if ;; handle line-comments (backspace should not drag forms up into line comments) (and - ;; we are directly in front of a line-comment + ;; we are directly in right of a line-comment (some-> (n/node| state (dec from)) (u/guard n/line-comment?)) - ;; current line is blank - (not (str/blank? (u/line-content-at state from)))) + ;; current line is blank or we're left of a line-comment + (not (or (str/blank? (u/line-content-at state from)) + (some-> (n/|node state from) (u/guard n/line-comment?))))) {:cursor (dec from)} (u/deletion from to))) diff --git a/test/nextjournal/clojure_mode_tests.cljc b/test/nextjournal/clojure_mode_tests.cljc index b1fc892..aade04c 100644 --- a/test/nextjournal/clojure_mode_tests.cljc +++ b/test/nextjournal/clojure_mode_tests.cljc @@ -125,8 +125,7 @@ "\"[|]\"" "\"|]\"" ;; normal deletion inside strings "( ;;\n|)" "( ;;|\n)" ;; don't put paren behind line comment "( ;|\n)" "( |\n)" - "(;;\n|;;\n)" "(;;|\n;;\n)" - )) + "(;;\n|;;\n)" "(;;|;;\n)")) #?(:squint nil :cljs (testing "handle backspace (embedded)"