so, I think I’ve come to the conclusion that parinfer is really cool in theory, but frustrating as hell in practice. I like what it is trying to do, but I so often screw up my parens in wicked ways that disrupt my flow while I’m trying to undo the damage. Anyone else feel this way?
@cpmcdaniel perhaps better discussion for #parinfer? Might be able to give some some input/feedback to authors.
sorry, didn’t know there was a separate channel
On balance I feel parinfer is worth is, but see what you're saying.
Yeah, please ask over there, might bring up some good conversation and feedback.
Parinfer definitely takes a bit of getting used to -- and, yes, I still mess up my code from time to time when I do something without switching modes first, but I'm getting better all the time. In some ways, as with any change to your day-to-day editing/coding workflow, you kinda need to force yourself to use "the new way" for a week or so and not allow yourself to "backslide" into old, familiar ways. For me, now, the pros of Parinfer far outweigh the cons. I also didn't know about the separate channel so I'll go join that too.
@seancorfield I’ll ask here then! I use option-cmd-B to eval a block, but when the block throws an error (or does not terminate) I have a never-ending loading indicator overlaying my editor
like this: https://puu.sh/xjz9e/7800b9b09c.png
cmd-i cmd-c
should clear that (clears all inline results)
Also useful: ctl-shift-c
to interrupt the repl process
cmd-i cmd-c clears the inline rsults but does not get rid of the indicator
ctrl-shift-c worked!
what does that do @seancorfield ? It doesn’t exit the repl, right?
hum there might be something seriously wrong my setup. I get this error spammed in the repl as I edit my file:
java.io.FileNotFoundException: Could not locate compliment/core__init.class or compliment/core.clj on classpath.
(auto-eval is off)
You don't have ProtoREPL as a dependency in your project?
no
You'll need it as a :dev
or :repl
dependency, as I recall (I use Boot but I'm assuming you use Leiningen?).
I thought it was optional
I’ll add it, thanks!
I do use Lein
If I recall correctly, the compliment library is pulled in by the proto-repl dependency and is used for autocompletion
Per ProtoREPL docs:
Setting up an Existing Clojure Project
Add the [proto-repl "0.3.1"] library as a dependency.
> This is an optional Clojure library that adds support for some of the advanced Proto REPL features.
I might have enabled auto-completion by mistake though
Yeah, I think Jason's "opinionated setup" assumes you installed that but doesn't explicitly mention it...?
mmh possibly
The other thing that I've seen trip up a lot of ProtoREPL newbies is following Jason's setup guide and running into problems caused by the three refresh options that Jason's guide says to enable -- I advise disabling those, at least until you're doing greenfield development and relying on Component for everything (and the Clojure Reloaded workflow).
back on my original issue (the loading indicator): do you also get that whenever your code throws an error? ctrl-shift-C does work though
Yeah, that's expected.
e.g. if I inline-eval (/ 1 0)
I get that never ending loading indicator
I just fix the error and hit cmd-opt-b
again 🙂
cmd-opt-b again displays the inline result once i fix the error but does not get rid of the loading animation
Depends on what you have to change -- usually, for me, the spinner is replaced by the inline result. I think it depends on whether ProtoREPL (or rather Ink) thinks the new result goes in the same place as the previous (bad) result?
It doesn’t seem like it, at least on my setup. It gets particularly annoying with autoeval; it shows a spinner when I am half-way though typng an expression, and it does not go away when I am done typing (and the code now runs correctly)
I’ll take a look at the package versions tomorrow
I wouldn't use auto-eval. Seriously.
I remember when LightTable appeared and that seemed like it would be just the coolest feature evah... and I turned it off after about half an hour of frustration! OMG! 😝