Slick Clojure Editor Setup with Atom – video walkthrough



I used Jason Gilman’s opinionated ProtoREPL setup (with the three “refresh” options disabled!) and I’ve been very happy with that.

My experience with rainbow parens in Atom (mentioned in @jacekschae’s video) was not good: it really slowed the editor down to the point where I found it unusable. Perhaps performance of that plugin has improved recently?


When it comes to rainbow delimiters there were couple of improvements with 2.1.0 . Before 2.1.0 when you had a couple of parens together it was difficult to be precise and select the one you wanted, since 2.1.0 i don’t have this problem and the performance seems to be pretty good - will depend on your file size.


Good to know. I’ll have another try with it (since I really like rainbow parens!).


I wonder what you do with that kind of setup when its time to debug and deep dive into the different dependencies. (things that works wonder under IntelliJ)


I’m sure IntelliJ can do great things! This article didn’t try to undermine Emacs/Spacemacs and IntelliJ but show that you can get pretty good setup with Atom. Taka a look at the Proto REPL conj talk by Jason Gilman he explores functionality of Proto REPL Hope that helps!


I totally agree with you, but my question remains, how can someone actually debug and do that kind of stuff with Atom? Is it possible? I like the idea of having a tool like Atom, but wonder if learning a new tool that doesn’t end up having all the things that we normally do while developing big APIs might be a no go for most of us.


I guess the question is: does Atom/ProtoREPL allow you to “jump to definition” of a var. I’m not an Atom user but a quick google seems to suggest that it does. Are there other tools you’re thinking of when talking about “debug and deep dive into the different dependencies”?

It seems Atom has pretty much all you need, looking at the things I list in my “bare minimum” blogpost:

  • Structural editing (both parinfer and paredit are supported)
  • In-place evaluation (send form to REPL)
  • Fix indentation
  • Automatic (aggressive) indentation
  • Jump to definition
  • Show function signature
  • Show documentation of var
  • Rainbow parentheses

The ones I already checked are the ones I’m sure about. Could any Atom user please chime in about the other ones.

  • Are you able to have “aggressive indentation” (this is what emacs calls it), so that any change causes all indentation to re-flow
  • When you have your text cursor on a function name, does the function signature pop up somewhere? (emacs: eldoc)


If a function is “known” (has been loaded into the running REPL), then the code hints that pop-up as you type will show its signature:

The red dot and underline is from Joker, a linter that identifies undeclared symbols and unused symbols.

As for “aggressive indentation”, in Parinfer’s Smart mode, if you slurp expressions, it will re-indent automatically, as well as in several other situations of editing code (and where it doesn’t, a quick toggle into Paren mode will usually achieve that as you continue to type).


It’s probably also worth pointing out that the code hints in Atom uses fuzzy matching so even if you’re not sure of the spelling (or just misspell) a function, it may well find it for you (assuming I’m not looking for no-doc-fn this time – I wanted to show docstrings as well as signatures):