4 ms·
I've been doing Clojure full time for a few years. Here a recommendation on editor setup if you're new to the parentheses: 1. Setup Cursive ( https://cursive-i
by susi22 10y ago
I've been doing Clojure full time for a few years. Here a recommendation on editor setup if you're new to the parentheses:
1. Setup Cursive ( https://cursive-ide.com/ https://cursive-ide.com/ )
2. Start a REPL on the command line with `lein repl :start :port 38123` and connect to that repl with cursive, a remote REPL.
3. Bind and learn the following structural editing commands:
a) Grow selection (this will be by FAR the most used in the beginning)
b) Slurp.
c) Send top form to REPL.
d) Join lines
Don't ever select by line, only use "grow selection". Don't ever break any parens ("[({") imbalance. Shouldn't happend if you use "grow selection".
Editing like this will get you pretty darn productive. I used it for probably 6-7 months before I introduced more structural editing commands (Next in line is IMO "Move Forward").
- pkd 10y agoContinuing with the topic of editor setups - I highly recommend CIDER if you are already comfortable with Emacs. I say already comfortable because it is a bad idea to learn both Clojure and Emacs at the same time, especially so if you have no experience with Lisps. CIDER is extremely powerful and has a built in step-through debugger which is a complete joy to use. It also uses nREPL under the hood and Emacs being built for Lisps, the support for sexp editing is first class - use the Smartparens package and as the parent comment said - use slurp forward, backword, raise, kill form etc. Think of it as editing an AST instead of text. But CIDER is worth it just for the debugging experience.
- keymone 10y agothe biggest leap in productivity i've experienced is after i tried parinfer (https://shaunlebron.github.io/parinfer/ https://shaunlebron.github.io/parinfer/). seriously, just find the plugin for your editor, it is amazing, the cognitive load of balancing is simply gone.
- harperlee 10y agoI agree with this. I believe failing to recommend parinfer to a newbie doesn't make sense in any case, as it binds a very common issue for newcomers (the parentheses management) with something that is very intuitive, indentation with meaning, which in my opinion is part of the huge success of python.
- susi22 10y agoI used parinfer for a 1-2 months. Then I quit and switched back. Wayyyy too many silent errors that get introduced and you don't notice them until runtime. Especially if you edit code that other people wrote. I've also seen at least 4 people in the chats/forums that had errors because of parinfer. So no, I won't recommend it to a beginner.
- harperlee 10y agoOk, that's a fair point. If you open code indented somewhere else, there might be changes. In my experience, as my IDE (Intellij Idea) highlights lines that are changes for git, these errors are trivially detected. But perhaps for a newbie, this could be confusing? In any case I still think it is a net win.
- markc 10y agoCoded Clojure for years, including w/ Paredit and I find Parinfer extremely frustrating as it fights my edits and sometimes creates syntax errors - in the Atom Parinfer in indent mode anyway. Maybe other implementations are better? Or do I just have to "unlearn" a bunch before I can relax and let the magic flow? Cuz as it is, Parinfer makes me nuts.
- juskrey 10y agoSame here. Final formatting is the same, but parinfer significantly decreases options to reach it.
- keymone 10y agothe only issue i've seen with parinfer is that i can get confused when you have multiple forms within single line, it can sometimes inadvertently slurp the rightmost forms and i have to go and insert closing parens manually. that doesn't happen often though, otherwise it's been very smooth for me. i imagine that when one is fluent with paredit and structural editing, parinfer can feel like a step back, but for newbies it is the first thing i will always recommend.