Skip to content

Commit 88ce717

Browse files
vemvbbatsov
authored andcommitted
Introduce and satisfy Eastwood
Fixes #19
1 parent 223f890 commit 88ce717

File tree

8 files changed

+35
-15
lines changed

8 files changed

+35
-15
lines changed

deps.edn

+7-1
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,10 @@
3838
;; build a jar, https://juxt.pro/blog/posts/pack-maven.html
3939
:pack {:extra-deps {pack/pack.alpha {:git/url "https://github.com/juxt/pack.alpha.git"
4040
:sha "2769a6224bfb938e777906ea311b3daf7d2220f5"}}
41-
:main-opts ["-m"]}}}
41+
:main-opts ["-m"]}
42+
43+
;; clojure -M:dev-figwheel:fig-repl:dev-shadow:test:eastwood
44+
:eastwood
45+
{:main-opts ["-m" "eastwood.lint" {:config-files ["eastwood.clj"]}]
46+
:extra-deps {org.clojure/tools.nrepl {:mvn/version "0.2.13"}
47+
jonase/eastwood {:mvn/version "0.9.9"}}}}}

eastwood.clj

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
;; avoid a corner case in Eastwood / tools.analyzer:
2+
(require 'figwheel.main.api)
3+
4+
(disable-warning
5+
{:linter :constant-test
6+
:if-inside-macroexpansion-of #{'suitable.complete-for-nrepl/with-cljs-env}})

src/dev/suitable/scratch.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(ns dev.suitable.scratch
1+
(ns suitable.scratch
22
(:require [clojure.zip :as zip]
33
[clojure.spec.alpha :as s]
44
[clojure.spec.test.alpha :as st]))

src/main/suitable/complete_for_nrepl.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
`cider.piggieback/generate-delegating-repl-env`."
111111
[renv]
112112
(= (some-> 'cljs.repl.node.NodeEnv
113-
resolve
113+
^Class (resolve)
114114
.getName
115115
(string/replace "." "_"))
116116
(-> renv

src/main/suitable/js_completions.cljc

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@
2525
(cljs-eval-fn ns code))
2626
(catch #?(:clj Exception :cljs js/Error) e {:error e}))))
2727

28-
(defn find-prefix [form]
28+
(defn find-prefix
2929
"Tree search for the symbol '__prefix. Returns a zipper."
30+
[form]
3031
(loop [node (tree-zipper form)]
3132
(if (= '__prefix__ (zip/node node))
3233
node
@@ -131,7 +132,6 @@
131132
;; or "(this-as this this)" for symbol = "js/window"
132133
obj-expr (cl-format nil "(this-as this ~[this~:;(.. this ~{-~A~^ ~})~])"
133134
(count obj-expr-parts) obj-expr-parts)]
134-
obj-expr-parts
135135
{:prefix prefix
136136
:prepend-to-candidate (str "js/" dotted-obj-expr)
137137
:vars-have-dashes? false

src/main/suitable/utils.clj

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
(ns suitable.utils
2-
(:require cljs.env ))
2+
(:require
3+
[cljs.env]
4+
[cljs.repl]))
35

46
(defn wrapped-cljs-repl-eval
57
"cljs-eval-fn for `suitable.cljs-completions` that can be used when a

src/test/suitable/complete_for_nrepl_test.clj

+14-8
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
(def ^:dynamic *handler* cider-nrepl-handler)
1010
(def ^:dynamic *session* nil)
1111

12-
(def ^:dynamic *server* nil)
13-
(def ^:dynamic *transport* nil)
12+
(def ^:dynamic ^nrepl.server.Server *server* nil)
13+
(def ^:dynamic ^nrepl.transport.FnTransport *transport* nil)
1414

1515
(defn message
1616
([msg] (message msg true))
@@ -20,14 +20,20 @@
2020
(nrepl/combine-responses responses)
2121
responses))))
2222

23+
(def handler nil)
24+
(def server nil)
25+
(def transport nil)
26+
(def client nil)
27+
(def session nil)
28+
2329
(defmacro start [renv-form]
2430
`(do
25-
(def handler (default-handler #'piggieback/wrap-cljs-repl #'wrap-complete-standalone))
26-
(def server (start-server :handler handler))
27-
(def transport (nrepl/connect :port (:port server)))
28-
(def client (nrepl/client transport 3000))
29-
(def session (nrepl/client-session client))
30-
(alter-var-root #'*server* (constantly server))
31+
(alter-var-root #'handler (constantly (default-handler #'piggieback/wrap-cljs-repl #'wrap-complete-standalone)))
32+
(alter-var-root #'server (constantly (start-server :handler handler)))
33+
(alter-var-root #'transport (constantly (nrepl/connect :port (:port server))))
34+
(alter-var-root #'client (constantly (nrepl/client transport 3000)))
35+
(alter-var-root #'session (constantly (nrepl/client-session client)))
36+
(alter-var-root #'*server* (constantly server))
3137
(alter-var-root #'*transport* (constantly transport))
3238
(alter-var-root #'*session* (constantly session))
3339
(dorun (message

src/test/suitable/js_completion_test.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@
174174
(sut/cljs-completions cljs-eval-fn "ba" {:ns "cljs.user" :context "(.. js/foo zork (__prefix__ \"foo\"))"})))))
175175

176176

177-
(deftest dotdot-completion-chained+nested
177+
(deftest dotdot-completion-chained+nested-2
178178
(let [cljs-eval-fn (fake-cljs-eval-fn "(.. js/foo zork)" "ba" [{:name "bar" :hierarchy 1 :type "var"}
179179
{:name "baz" :hierarchy 1 :type "function"}])]
180180
(is (= [(candidate "-bar" "(.. js/foo zork)")]

0 commit comments

Comments
 (0)