Fork me on GitHub
#atom-editor
<
2020-07-01
>
orestis08:07:34

In my quest of an editor, I’m now evaluating Atom. I’ve used Vim, Emacs, VSCode in the past 🙂 Any suggested packages for Clojure dev? I’ve installed lisp-paredit, chlorine, linter-kondo… what else are people using?

seancorfield16:07:58

I like parinfer as well as lisp-paredit. Parinfer takes some getting used to, and I've seen some weirdness when pasting code (you have to switch from smart to paren mode, paste, and then switch back), but I really like the simplicity of paren-grouping following indentation structure. Here's the full list of stuff I have in my ~/.atom/packages folder:

README.md		chlorine		linter-kondo
advanced-open-file	git-plus		linter-ui-default
atom-clock		intentions		lisp-paredit
autocomplete-cfml	language-cfml		parinfer
bracket-colorizer	linter
busy-signal		linter-joker

seancorfield16:07:26

(ignore the CFML stuff -- I still occasionally have to edit some legacy ColdFusion code!)

seancorfield16:07:47

I guess I could remove Joker since I switched to clj-kondo.

seancorfield16:07:44

Turns out I had already disabled it, but hadn't uninstalled it. I wasn't using it.

seancorfield16:07:42

Also, I use Cognitect's REBL side-by-side with Atom all day long and have specific code and key bindings set up for that https://github.com/seancorfield/atom-chlorine-setup

👍 1
orestis16:07:06

I’m so used to a nicer auto-indenting/auto-formatting story. Emacs and Calva have some nice accordances like collapsing trailing parens, column-aligning let bindings... other than running the file through clj-fmt, is there anything else?

seancorfield16:07:35

parinfer will do some amount of auto-formatting when opening a file, including collapsing trailing parens. The let bindings thing is something I prefer manual control over (and don't column-align all bindings anyway -- it depends on how it looks, how long the symbols are, how long the expressions are).

seancorfield17:07:42

I'm more likely to "tuck" a binding form if either the symbol or destructuring is long or the form itself is wide:

(let [[something another-thing]
      (this is some complex form)]
  ...)

orestis18:07:45

I like to align let bindings on a case by case basis. I probably wouldn’t want a formatter to align them no matter what, but having a command to automate it would be nice.