@qqq: ha, you already understood that! but I guess you've been playing with it?
@shaunlebron : not in emacs, but in another cljs dev tool the one thing I do amire about this is as follows: sometimes when I try ti move things in/out, it's really hard via the AST ... but it's very clear in the world of spacing / indent -- and having it auto readjust based on indent is quite brilliant
some would call this "direct manipulation
@qqq: which cljs dev tool?
@shaunlebron : nightlight / paren-soup
I wasn't playing with it to learn par-infer, I was playing with it since nightlight seemed like a great idea, and it just so happened that paren-soup is par-infer based
it's amazing how easy to learn to learn parinfer when you don't have emacs to fall back on 🙂
nice! really glad zach added that
@shaunlebron : paren-soup was somewhat laggy for me at around 100-200 lines
how fast is parinfer? is it intended to run on every keystroke?
the js implementation can process 3k lines in about 20ms
hmm, must ahve been something else then
that’s about 50hz, so fast enough to run on every keystroke yeah
my perf testing isn’t super accurate, I just throw a file at it and see how long it takes to process
the atom plugin is pretty fast, and it only processes the top-most parent expression at the cursor, and processing is debounced
does 'debounced' mean 'throw into webworker' ?
nah, it means to delay processing until you’re done typing for a certain number of ms
oh right, so it's onKeyPress: (1) if timer exists, reset it to BLAH ms (2) when timer counts down to 0, run parInfer
right, good description