Fork me on GitHub
#parinfer
<
2017-03-17
>
shaunlebron15:03:58

@qqq: ha, you already understood that! but I guess you've been playing with it?

qqq15:03:39

@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

qqq15:03:53

some would call this "direct manipulation

shaunlebron15:03:29

@qqq: which cljs dev tool?

qqq15:03:04

@shaunlebron : nightlight / paren-soup

qqq15:03:28

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

qqq15:03:45

it's amazing how easy to learn to learn parinfer when you don't have emacs to fall back on 🙂

shaunlebron16:03:03

nice! really glad zach added that

qqq16:03:40

@shaunlebron : paren-soup was somewhat laggy for me at around 100-200 lines

qqq16:03:51

how fast is parinfer? is it intended to run on every keystroke?

shaunlebron16:03:49

the js implementation can process 3k lines in about 20ms

qqq16:03:18

hmm, must ahve been something else then

shaunlebron16:03:23

that’s about 50hz, so fast enough to run on every keystroke yeah

shaunlebron16:03:20

my perf testing isn’t super accurate, I just throw a file at it and see how long it takes to process

shaunlebron16:03:08

the atom plugin is pretty fast, and it only processes the top-most parent expression at the cursor, and processing is debounced

qqq16:03:13

does 'debounced' mean 'throw into webworker' ?

shaunlebron16:03:30

nah, it means to delay processing until you’re done typing for a certain number of ms

qqq16:03:45

oh right, so it's onKeyPress: (1) if timer exists, reset it to BLAH ms (2) when timer counts down to 0, run parInfer

shaunlebron17:03:57

right, good description