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
mauricio.szabo 2019-06-03T02:19:26.045400Z

Just published a new version, fixing the "goto var definition" (hopefully! on my tests it works). Also, now this feature have tests too, so regressions are unlikely.

2019-06-03T03:07:28.046700Z

@mauricio.szabo after git pulling the master branch for atom-chlorine and doing a git submoule update, i built a new version, and it appears "Chlorine: Go To Var Defintion" works -- at least for jvm clojure 🙂

mauricio.szabo 2019-06-03T03:11:14.048300Z

Great! Other targets are still not supported. I could probably make it work on Shadow-CLJS (but I would probably need help from the Clojure part) but I have no idea on how to make it work on Lumo

2019-06-03T03:20:42.048500Z

ok. neither do i 🙂

2019-06-03T03:21:37.049700Z

@mauricio.szabo btw, i have been encountering an issue like this: https://github.com/thheller/shadow-cljs/issues/304 -- when trying to work with two different plugins for atom that both use shadow-cljs. is there a way to build chlorine as a release? that seems to be a suggestion in the issue.

mauricio.szabo 2019-06-03T04:20:55.050200Z

That's strange, I am releasing Chlorine as a release build

mauricio.szabo 2019-06-03T04:21:56.051300Z

@sogaiu are you having this issue while trying to develop Chlorine, or while trying to use it (downloading from the Atom package manager) to develop the other?

mauricio.szabo 2019-06-03T04:25:20.053100Z

You can build Chlorine as a release by using npx shadow-cljs release dev, or you can use one of the tags to get exactly the same version that's published on Atom's package registry. And also, if you want, there are tags suffixed with -source that's exactly the original source code made for that specific version 🙂

2019-06-03T05:46:22.054900Z

@mauricio.szabo thanks for the tip on how to build for release -- iiuc, i haven't built for release before. i typically use chlorine with yarn shadow-cljs watch dev or the result of having done that before. i will try with your release instructions to see if i get the same problem.

2019-06-03T05:49:46.057300Z

that seems sufficient -- i'm now able to use another atom plugin that is built with shadow-cljs (not with release, but watch) at the same time. do you think it's worth consulting with @thheller on this matter?

mauricio.szabo 2019-06-03T15:08:13.059700Z

@sogaiu I don't think he can do much - it seems a limitation on the way ClojureScript, google closure compiler, and so on - it's not really a limitation of shadow-cljs. I had the exactly same problem with proto-repl and figwheel, in which I made a PR to make a "different release version" so it wouldn't conflict with other plug-ins: https://github.com/jasongilman/proto-repl/pull/232

mauricio.szabo 2019-06-03T15:10:42.060400Z

(one of the most interesting PRs I ever made, 126k lines deleted :rolling_on_the_floor_laughing:)

2019-06-03T19:37:57.063400Z

@mauricio.szabo thanks for that. lol, deleting a lot sounds great! i got the sense that thheller was saying that there might be something that could be done, but for the case reported it might not be worth it: > Nothing we can do here really. :npm-module completely isolates everything but has considerably more overhead, not sure it is worth doing this for :node-library. without seeing the actual performance impact for atom plugins, i'm not sure it isn't worth doing...may be i will bug him about it.

mauricio.szabo 2019-06-03T19:58:23.066400Z

Well, for once, Google Closure adds a global variable goog. Developing two packages in paralel will make goog variables interfere, and unless you use exactly the same version of shadow-cljs, ClojureScript and dependencies, you'll probably have trouble (even then, I'm not even sure that it would work...)

lilactown 2019-06-03T19:58:53.066800Z

this is an issue that plagues more "interesting" setups: only a single CLJS application can be loaded in a given JS environment

lilactown 2019-06-03T20:00:33.067900Z

hopefully it works better with node-library than with browser... ran into issues when running the release version of one app on the same page as a dev version of another

lilactown 2019-06-03T20:00:57.068500Z

though that might be because I was using modules for both, which isn't present in node-library

2019-06-03T20:23:42.071100Z

@lilactown it does appear that all except one plugin being compiled for release resolves the issue here, so when using :node-library, there appears to be a "work-around". @mauricio.szabo may be if there is a sufficiently compelling use-case, thheller will come up with something 🙂