This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-02-14
Channels
- # beginners (19)
- # boot (11)
- # cider (59)
- # cljs-dev (292)
- # cljsrn (2)
- # clojure (121)
- # clojure-brasil (19)
- # clojure-canada (2)
- # clojure-france (2)
- # clojure-italy (57)
- # clojure-spec (54)
- # clojure-uk (20)
- # clojurescript (83)
- # core-async (20)
- # cursive (5)
- # datascript (2)
- # datomic (10)
- # duct (25)
- # editors (4)
- # emacs (2)
- # fulcro (5)
- # funcool (1)
- # graphql (2)
- # immutant (8)
- # java (1)
- # jobs (4)
- # jvm (1)
- # keechma (5)
- # luminus (10)
- # off-topic (113)
- # om (36)
- # onyx (11)
- # parinfer (55)
- # pedestal (7)
- # protorepl (28)
- # re-frame (25)
- # reagent (6)
- # ring-swagger (1)
- # shadow-cljs (113)
- # spacemacs (1)
- # specter (23)
- # unrepl (8)
- # yada (8)
@cfleming: typed a response for this bug: https://twitter.com/CmdrDats/status/963346700357251072
i wonder if the production Cursive build is still using v1 behavior
@shaunlebron I actually can’t remember.
@cfleming: that is what v1 did
(|foo
=> ()|foo
?
I mean when the user types an opening paren, always inserting the balancing closing paren.
Parinfer is the only editing mode which doesn’t act like that, unless the user totally turns paren balancing off.
So, typing (
at |foo
=> (|)foo
that would turn off wrapping behavior of (|foo
=> (|foo)
So if the user wanted to wrap they’d have to use the wrapping commands from paredit.
The wrapping commands are easy to remember in Cursive, they’re just Ctrl/Cmd + the normal key.
@cfleming: I think that’s a reasonable compromise to just auto-insert )
boy I tried
i spent a long time last year thinking about that
Hehe, yeah, I know - I can’t remember all the details, but it just seems really messy
basically, it hit the boundary of what was possible by not looking at the content of the change
anyway, will explore what to do when pasting ((
or deleting a )
, since those are the cases not solved by auto-insertion of )
when typing (
that will be v4
from my perspective as a user I think you’ve done a great job “hiding” all this intricate behavior/logic, because I had no idea this was so hard a problem until I started looking into the implementation. I guess I assumed because it was pretty intuitive to use, it was probably ~easy to pull off 😄
I use parinfer everyday at work, and I am super excited for this new version to come out. Thanks for all the work you’re putting in.
@taylor thanks for saying that, it should probably easier to pull off than it was, but i’m still trying to figure it all out
@doglooksgood whoa 🎉, what was the change?
some functions in emacs are really slow, I just rewrite for avoid these functions.
but it's not a completed implementation yet. I use lisp-indent-line
to do indent instead of calculate delta x. but it's looks almost finished.
but I can still feel lag if on a file large than 1k lines. just don't know why. file with 1k lines only take 9ms to process(do all work, not parsing). so it's still need avoid process whole buffer. but it's much faster than the current parinfer-mode.
but you’re still only processing top-level expressions right?
and it’s still lagging on 1kloc files?
ah, cool! so you can avoid the lag with the top-level form hack atom uses
man that gif is fun to watch 🙂
you even implemented the status message errors from parinfer?
some behavior is different with parinfer demo, for I let emacs do indent
instead of preserve
. lot of work need to be done for this.
I just want to update this as a new mode called parinfer-smart
in current parinfer-mode
when it's stable.