Skip to content

Commit

Permalink
Merge pull request #98 from mauricioszabo/fix-repl-for-pathom
Browse files Browse the repository at this point in the history
Fix CLJS REPL for pathom
  • Loading branch information
mauricioszabo committed Nov 27, 2020
2 parents 22b5c95 + aa58a96 commit 3567219
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 6 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## 0.5.5
- Fixed nREPL code disconnecting when you send accents
- Fixed some undetectable var definitions
- Fixed ClojureScript REPL detection on `.cljs` when `:prefer-cljs` option is selected

## 0.5.3
- Bugfixes on some edge cases
Expand Down
12 changes: 6 additions & 6 deletions src/repl_tooling/commands_to_repl/pathom.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
::connect/output [{:repl/namespaces [:repl/namespace]}]}

(p/let [f (-> ast :params :filter)
{:keys [result]} (eval/eval clj "(mapv ns-name (all-ns))")]
{:keys [result]} (eval/eval clj "(clojure.core/mapv clojure.core/ns-name (clojure.core/all-ns))")]
{:repl/namespaces (cond->> (map (fn [n] {:repl/namespace n}) result)
f (filter (fn [n]
(-> n :repl/namespace str
Expand Down Expand Up @@ -92,7 +92,7 @@
:else {:cljs/required? false})

(-> config :eval-mode (= :prefer-cljs))
{:cljs/required? cljc-file?})))
{:cljs/required? (or cljs-file? cljc-file?)})))

(connect/defresolver repls-for-evaluation
[{:keys [editor-state ast]} {:keys [:cljs/required?]}]
Expand All @@ -114,7 +114,7 @@
{::connect/input #{:repl/namespace :repl/aux}
::connect/output [{:namespace/vars [:var/fqn]}]}

(p/let [{:keys [result]} (eval/eval aux (str "(ns-interns '" namespace ")"))]
(p/let [{:keys [result]} (eval/eval aux (str "(clojure.core/ns-interns '" namespace ")"))]
{:namespace/vars (map (fn [v] {:var/fqn (symbol namespace v)})
(keys result))}))

Expand Down Expand Up @@ -150,10 +150,10 @@

(p/let [keys (-> ast :params :keys)
res (-> aux
(eval/eval (str "(meta #'" fqn ")"))
(eval/eval (str "(clojure.core/meta #'" fqn ")"))
(p/catch (constantly nil)))
res (if (and required? (-> res :result nil?))
(eval/eval clj (str "(meta #'" fqn ")"))
(eval/eval clj (str "(clojure.core/meta #'" fqn ")"))
res)]
{:var/meta (cond-> (:result res)
(coll? keys) (select-keys keys))}))
Expand All @@ -170,7 +170,7 @@
" fun #(clojure.core/some->> (% s) clojure.spec.alpha/describe)]"
" (clojure.core/when s"
" (clojure.core/->> [:args :ret :fn]"
" (clojure.core/map (juxt identity fun))"
" (clojure.core/map (clojure.core/juxt clojure.core/identity fun))"
" (clojure.core/filter clojure.core/second)"
" (clojure.core/into {}))))"))]
(when result {:var/spec result})))
Expand Down
6 changes: 6 additions & 0 deletions test/repl_tooling/editor_integration/pathom_test.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@

(swap! config assoc :eval-mode :prefer-clj)
(swap! fake/state assoc :filename "somefile.cljs")
(check (pathom/eql {:editor-state (:editor-state @fake/state)}
[:repl/eval :repl/aux :repl/clj])
=> cljs-repls)

(swap! config assoc :eval-mode :prefer-cljs)
(swap! fake/state assoc :filename "somefile.cljs")
(check (pathom/eql {:editor-state (:editor-state @fake/state)}
[:repl/eval :repl/aux :repl/clj])
=> cljs-repls))
Expand Down

0 comments on commit 3567219

Please sign in to comment.