J'ai un projet sur ClojureScript et j'utilise vim pour l'édition de code, donc je veux accéder à repl inside editor, ce qui est accessible en utilisant cheminée.vim.
Cela fonctionne bien si vous avez un tout nouveau projet plat - il vous suffit d'ouvrir le répertoire, de démarrer clojure repl, d'ouvrir vim dans le même répertoire, de créer une expression et de l'évaluer en utilisant cpp.
Mais quand je travaille avec le projet figwheel, je veux me connecter à figwheel repl afin de calculer quelque chose à partir du fichier cljs, donc je démarre une figwheel qui démarre le repl sur le port 7888 et me connecte à ce repl avec cheminée en utilisant la commande: Connect et cela fonctionne uniquement pour les fichiers clj, pas pour les cljs.
Lorsque j'essaie d'évaluer une expression dans le fichier .cljs, lance cette erreur:
Erreur détectée lors du traitement de la fonction 37_printop 1 ..37_opfunc [35] .. foyer # client: ligne 10: E605: Exception non interceptée: Cheminée: classe java.lang.ClassNotFoundException
Quelqu'un a-t-il une idée de comment le faire fonctionner (cheminée + fichiers .cjls)?
3 Réponses :
Avez-vous "Piggiebacked" ("activer l'utilisation d'un ClojureScript REPL en plus d'une session nREPL") pour connecter Fireplace au Figwheel REPL?
:profiles {:dev {:dependencies [[com.cemerick/piggieback "0.2.1"] [figwheel-sidecar "0.5.18"]] :repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}}}
Lié à Exception ClassNotFound cemmerick.piggieback :
Vous devez inclure cemerick.piggieback
dans vos profils project.clj
ou .clj
. Voir https://github.com/nrepl/piggieback :
:Piggieback (figwheel-sidecar.repl-api/repl-env)
Merci pour votre réponse! Je vais approfondir cela plus tard et j'espère faire un rapport de réussite.
Après la commande: Piggieback (figwheel-sidecar.repl-api / repl-env) Je reçois l'erreur suivante - ClassNotFound Exception cemmerick.piggieback. Quelle pourrait être la raison?
Merci, mais ça ne marche pas pour moi. Je reçois toujours cette erreur avec cemmerick.piggieback et je ne sais pas où aller plus loin ...
Je me demande pourquoi il se plaint de cemerick.piggieback alors que j'ai cider.piggieback?
Utilisez peut-être cemerick.piggieback. Voir github.com/bhauman/lein -figwheel / wiki /… : [com.cemerick / piggieback "0.2.1"]
et [cemerick.piggieback / wrap-cljs-repl]
. J'ai mis à jour la réponse.
Le problème était dans le plugin cheminée.vim
à la ligne 323 de cheminée.vim
(defn wrap-cljs-repl [handler]
doit être la ligne:
let response = connection.eval("((or (resolve 'cider.piggieback/wrap-cljs-repl)"
Voici une séquence d'étapes que j'ai suivies pour faire fonctionner figwheel REPL avec vim cheminée:
/home/{username}/.clojure/deps.edn
: :CljEval (do (require 'figwheel.main.api) (figwheel.main.api/start "dev")) :CljEval (do (use 'figwheel.main.api) (figwheel.main.api/cljs-repl "dev"))
:Connect nrepl://localhost:{port}
clj -R:nrepl -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware cider.piggieback/wrap-cljs-repl]"
... :deps {com.bhauman/figwheel-main {:mvn/version "0.2.3"} figwheel-sidecar {:mvn/version "0.5.19"}} ...
... :aliases {:nrepl {:extra-deps {nrepl/nrepl {:mvn/version "0.6.0"} cider/cider-nrepl {:mvn/version "0.23.0"} cider/piggieback {:mvn/version "0.4.2"}}}} ...
Ce n'est pas une réponse à votre question, mais je peux vous recommander de consulter les Spacemacs avec les Clojure layer . Vous avez d'excellentes liaisons Vim et l'intégration Clojure fonctionne hors de la boîte.
Merci pour la recommandation. J'ai essayé d'utiliser Spacemacs, mais je m'en tiens vraiment à vim. Ce sera peut-être le dernier recours si je ne gère pas le problème avec les fichiers cljs.