Skip to content

Commit e364228

Browse files
authored
Make clojure-find-ns work when preceded by other forms (#664)
Fixes #656
1 parent 788cc5a commit e364228

File tree

2 files changed

+43
-3
lines changed

2 files changed

+43
-3
lines changed

clojure-mode-sexp-test.el

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,26 @@
4141
(wrong))"
4242
(expect (let ((beginning-of-defun-function nil))
4343
(clojure-top-level-form-p "comment"))))))
44-
44+
(describe "clojure--looking-at-top-level-form"
45+
(it "should return nil when point is inside a top level form"
46+
(with-clojure-buffer-point
47+
"(comment
48+
|(ns foo))"
49+
(expect (clojure--looking-at-top-level-form) :to-equal nil))
50+
(with-clojure-buffer-point
51+
"\"|(ns foo)\""
52+
(expect (clojure--looking-at-top-level-form) :to-equal nil))
53+
(with-clojure-buffer-point
54+
"^{:fake-ns |(ns foo)}"
55+
(expect (clojure--looking-at-top-level-form) :to-equal nil)))
56+
(it "should return true when point is looking at a top level form"
57+
(with-clojure-buffer-point
58+
"(comment
59+
|(ns foo))"
60+
(expect (clojure--looking-at-top-level-form (point-min)) :to-equal t))
61+
(with-clojure-buffer-point
62+
"|(ns foo)"
63+
(expect (clojure--looking-at-top-level-form) :to-equal t))))
4564
(describe "clojure-beginning-of-defun-function"
4665
(it "should go to top level form"
4766
(with-clojure-buffer-point
@@ -164,9 +183,9 @@
164183
(expect (equal "baz-quux" (clojure-find-ns))))
165184
(let ((data
166185
'(("\"\n(ns foo-bar)\"\n" "(in-ns 'baz-quux)" "baz-quux")
167-
(";(ns foo-bar)\n" "(in-ns 'baz-quux)" "baz-quux")
186+
(";(ns foo-bar)\n" "(in-ns 'baz-quux2)" "baz-quux2")
168187
("(ns foo-bar)\n" "\"\n(in-ns 'baz-quux)\"" "foo-bar")
169-
("(ns foo-bar)\n" ";(in-ns 'baz-quux)" "foo-bar"))))
188+
("(ns foo-bar2)\n" ";(in-ns 'baz-quux)" "foo-bar2"))))
170189
(pcase-dolist (`(,form1 ,form2 ,expected) data)
171190
(with-clojure-buffer form1
172191
(save-excursion (insert form2))

clojure-mode-util-test.el

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,27 @@
142142
(with-clojure-buffer "(ns foo)
143143
(ns-unmap *ns* 'map)
144144
(ns.misleading 1 2 3)"
145+
(expect (clojure-find-ns) :to-equal "foo")))
146+
(it "should skip leading garbage"
147+
(with-clojure-buffer " (ns foo)"
148+
(expect (clojure-find-ns) :to-equal "foo"))
149+
(with-clojure-buffer "1(ns foo)"
150+
(expect (clojure-find-ns) :to-equal "foo"))
151+
(with-clojure-buffer "1 (ns foo)"
152+
(expect (clojure-find-ns) :to-equal "foo"))
153+
(with-clojure-buffer "1
154+
(ns foo)"
155+
(expect (clojure-find-ns) :to-equal "foo"))
156+
(with-clojure-buffer "[1]
157+
(ns foo)"
158+
(expect (clojure-find-ns) :to-equal "foo"))
159+
(with-clojure-buffer "[1] (ns foo)"
160+
(expect (clojure-find-ns) :to-equal "foo"))
161+
(with-clojure-buffer "[1](ns foo)"
162+
(expect (clojure-find-ns) :to-equal "foo"))
163+
(with-clojure-buffer "(ns)(ns foo)"
164+
(expect (clojure-find-ns) :to-equal "foo"))
165+
(with-clojure-buffer "(ns )(ns foo)"
145166
(expect (clojure-find-ns) :to-equal "foo"))))
146167

147168
(describe "clojure-sort-ns"

0 commit comments

Comments
 (0)