This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # admin-announcements (80)
- # beginners (19)
- # boot (11)
- # cider (27)
- # clojure (55)
- # clojure-berlin (2)
- # clojure-italy (9)
- # clojure-korea (3)
- # clojure-russia (3)
- # clojure-sg (5)
- # clojurescript (70)
- # cursive (9)
- # datascript (5)
- # datomic (7)
- # editors (2)
- # emacs (4)
- # jobs (11)
- # ldnclj (7)
- # off-topic (17)
- # om (6)
- # reagent (63)
- # spacemacs (8)
- # testing (2)
@magnars: It’s probably clj-refactor, as you say - tools.analyzer will evaluate as it reads.
Nice to have that confirmed, thanks Glad you like the series, I'm publishing a new episode in 5 hours.
It’s also nice to see what the state of Emacs tooling is, clj-refactor is getting very impressive.
magnars: Looking forward to it! How is the viewer count compared to the Norwegian version?
hah, fun question. The Norwegian first episode has been seen 720 times (after well over a year), and the English version 3598 times (after a few days)
@magnars: Does the English version more or less mirror the Norwegian one? Are you just translating the existing series?
Feels like complete reimplementation so far, except for css/pictures (from watching the 2 first episodes). And one more year of clj experience have def added to the quality (was awesome before as well, but now feels even better).
@magnars: Also in Emacs Rocks! one can see the keystrokes used, can you enable it in future episodes of PotD as well?
@dottedmag: I abandoned key press overlays since I'm using a weird Norwegian keyboard, and I'm not convinced you'd find it very useful with "M-æ"'s flying around.
@magnars: It allows one to cross-link to .emacs.d. And actually C-å is a very nice hack, I'd adopt it if I were using stock Norwegian keyboard instead of International English.
sure, an exceedingly interested individual could manually look up all my keybindings and figure it out somehow, but the noise-to-signal ratio would be way off for most people.
@magnars: Speaking of which, what do you use for populating templates in new files? Is it yasnippet or something else?
I do it manually. But if you're thinking of the automatic namespace declarations, those are handled by clj-refactor
@cfleming: I think the clj-refactor guys managed to use tools.analyzer w/o evaluating form per form
yeah, there are a bunch of hooks in the tools.analyzer passes that I added with that in mind
you won't obviously get a completely correct AST but it looks like it's good enough for the clj-refactor use-case
Nice, I should check that out, that might be very useful. But you still have to eval to expand macros though, right?
Interesting, it probably has the same limitations as Cursive around macro-defined symbols then
Ok, that’s interesting. I’ve been meaning to look at their impl but haven’t had time.
I spoke to the Racket guys at Curry On about this actually, it was really interesting. They read, eval and macroexpand, and just leave it to the user to not suffer any effects.
It’s slow, though, and requires some pretty deep hooks into the macroexpander to get the results they need.
But they can map partially-generated symbols, so things like ->MyRecord get renamed correctly, really impressive.
@cfleming: they also have different loading phases for stuff required at macroexpansion-time vs stuff required at runtime
They actually expose hooks so that libs can decorate macroexpansions with info for the IDE - Typed Racket uses that to add types in tooltips
@cfleming: nice, I found out with tools.analyzer that a pluggable macroexpander makes a very powerful tool for users
@bronsa: Yes, no doubt. I really need to get to grips with t.a and friends, I’m sure there’s a lot I could use there.
It uses Riddley right now, but I’m thinking of changing that at some point to something generic so I can support CLJS expansion too, which would be really nice.
out of sheer curiosity i wanted to read the source of
persistent!, but the clj code is a java interop to
.persistent. I don't know how to find this
for example: TransientVector (inside PersistentVector.java), TransientHashSet in PersistentHashSet.java, and ATransientMap
if you use an IDE like IntelliJ that understands both Clojure and Java, it will let you traverse through these fairly easily
Cursive auto-importing stuff by name after I use it is pretty awesome. I can type
(ws/connect ... and it asks, "import whatever.core :as ws?"
I’m currently looking at clj-http & curious if I’m missing out on something a bit higher-level than it.
@micahalles: http-kit is an alternative you can look at which also works really well. biggest difference in how i've used them is excellent support for callbacks in http-kit, and excellent support for cookies in clj-http
@timvisher: Hey Tim Your videos was a huge reason that I started making Emacs Rocks! Hope you don't stop making vids just because of me.
look what brian goetz just committed http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/f0a19269be37