Counting parens is silly when the editor can do it for you.
Counting parens is silly when the editor can do it for you.
I'm highly resistant to novelty in this area, yet even I am using parinfer. A crappy implementation in Vim, at that, which only works in One direction: indent -> parens, and can get into an infinite loop fighting with Vim's undo.
Also I recently read on an HN thread I started: it was taken out of Calva due to bugs no one fixed.
About 90% of my problems arise when I shift the parens, e.g. going from `(+ (1 2))` to `(+ (+ 1 2) 3)` or the other way round - and if there is now ) or )) at the very end (but more likely at 4+, not 1 or 2.
How would any plugin know what I mean here? (I know + is a bad example as its commutative...).
Editing for lisp mirrors the language as a whole in that there's a learning curve, but once you've climbed it, it's a joy to work with. Because the syntax is so uniform, all you need is a handful of extensions/commands for full blown structural editing.
I get by splendidly in emacs with nothing but paredit and convenient keybindings(not a huge fan of paredit defaults).
But regardless, I think the answer you are looking for is:
Some of the coolest kids of all use rainbow delimiters so that they can easily identify the matching closing paren with their eyes!
One webserver framework, Axum, has the trait IntoResponse which is returned by something that implements Handler. A lot of things implement IntoResponse and/or Handler. In plain English you have handlers, these are parts of code that get selectively invoked for a request. The handlers return data that can be made into responses. It's powerful, but if something doesn't fit exactly, the Rust compiler throws gibberish errors at you. It's finnicky as hell.
But once you have written something that works, it is beautiful to read.
So it's difficult to write such code, and if it's easy for you then it's because you mastered the art.