chlorine-clover

About Chlorine for Atom and Clover for VS Code: https://atom.io/packages/chlorine and https://marketplace.visualstudio.com/items?itemName=mauricioszabo.clover
henrik 2020-09-15T08:46:47.031600Z

I’m not exactly sure where to start with this one: errors when saving .cljc files. This happens regardless of which file this is, when evaluation is set to prefer-clj or clj. When set to full refresh, the error is

java.io.FileNotFoundException: "Could not locate clojure/tools/namespace/repl__init.class, clojure/tools/namespace/repl.clj or clojure/tools/namespace/repl.cljc on classpath."
When set to simple, the error is
java.lang.IllegalArgumentException: "No value supplied for key: true"
It appears to happen when there are #?(:cljs in the requires part of the ns declaration. When those are removed, it seems to work.

henrik 2020-09-15T08:51:16.032400Z

For example,

(:require
   [clojure.string :as string]
   [com.rpl.specter :as sp]
   #?(:cljs [goog.dom :refer [getElement]])
   #?(:cljs [goog.dom.Range :refer [createCaret]])))

mauricio.szabo 2020-09-15T14:42:42.033100Z

Well, that's not expected. Let me see if I can reproduce it... The first problem is probably because you don't have clojure.tools.namespace on the classpath

henrik 2020-09-16T07:18:55.034300Z

Is it generally recommended to have it on the classpath?

mauricio.szabo 2020-09-16T14:30:19.034700Z

For Chlorine, if you want to use "full refresh" (on save or not), it is required. To be honest, I'm thinking about removing all refresh-related code: it's easier (and more configurable) to do it by custom configurations...

mauricio.szabo 2020-09-15T14:43:07.033600Z

(also, you can disable "refresh namespaces on save", it's a config on the plug-in)

seancorfield 2020-09-15T17:01:30.034200Z

(I generally recommend everyone turns off the refresh stuff 🙂 )

henrik 2020-09-16T07:19:59.034500Z

Oh, OK! What’s your workflow for reloading the code? Just load-file?

seancorfield 2020-09-16T16:35:29.034900Z

@henrik I evaluate every change as I make it -- usually with "evaluate top-level block" -- I don't even bother saving the files while I'm working and evaluating changes.

borkdude 2020-09-17T15:06:20.035500Z

Same here . The REPL reloading stuff is a headache - I gave it a couple of tries, but quite happy with either eval-ing forms or the entire buffer.

borkdude 2020-09-17T15:07:05.035700Z

For some things I don't bother with editor integration and I simply use (require '[...] :reload) or (require '[...] :reload-all), from a REPL. This is not my day to day setup, but it works effectively. The simplest tooling one can have

💯 1