Open PythonNut opened 8 years ago
I wouldn't mind having this feature (correct smart-parens style prefix handling), but it's unlikely that I'll get around to it any time soon. For your specific use case, I always use di)
, using evil's support for nice text object manipulation. In fact, I never even use on-parens-kill-sexp
-- adding it just seemed fun the day I made the package. It is really a pass-through to sp-kill-sexp... So I guess one fix would just be to pass arguments through correctly. But frankly I should probably just take on-parens-kill-sexp out.
When I made this package, it was really just a minimal hack to be able to use smartparens with evil mode, and have the movements and barf/slurp work the way I felt they should with evil-normal-state (if you look at the repo history, basically everything was written in one day, just because I really wanted to start using smartparens). I would really like to go back and improve a lot of things about the package, but I have too many other things to do, so I probably won't soon.
I appreciate you opening issues, though. I hope you enjoy the functionality that is there, at least.
For your specific use case, I always use di), using evil's support for nice text object manipulation.
The infinite prefix also comes in handy when you aren't at the beginning of the sexp.
(setq |a 1
b 3
c 4)
C-u M-x sp-kill-sexp
RET produces:
(setq|)
It's true that you could sometimes do dt) (t may not scan across lines), but smartparens
is cool because it's more generic and can operate on many different type of delimiters and expressions.
When I made this package, it was really just a minimal hack to be able to use smartparens with evil mode, and have the movements and barf/slurp work the way I felt they should with evil-normal-state (if you look at the repo history, basically everything was written in one day, just because I really wanted to start using smartparens). I would really like to go back and improve a lot of things about the package, but I have too many other things to do, so I probably won't soon.
Absolutely understood. I don't expect little niggles in an emacs package to be anyone's top priority. :)
I appreciate you opening issues, though.
Thanks for making this clear. Sometimes I feel a little annoying for filing bugs. I think there's at least one more discrepancy I found, but it'll take a little more investigation.
I hope you enjoy the functionality that is there, at least.
Oh yes, it's pretty great to see smartparens
and evil
finally getting along. I've been using the two since practically day one and I really appreciate your taking the time to solve this!
For this use case (killing to the end of the s-exp), I use deg
, which makes sense if you know that I have eg
bound to on-parens-up-sexp-end
. It works beautifully. Killing to the beginning of the s-exp with on-parens-up-sexp isn't so great as it goes one character too far... fixing the one-offs with evil operators is probably the next thing I'll actually fix with this package, when I get around to it.
For this use case (killing to the end of the s-exp), I use
deg
, which makes sense if you know that I have eg bound to on-parens-up-sexp-end. It works beautifully.
Yes, indeed it does. Thanks for the tip!
Fixing the one-offs with evil operators is probably the next thing I'll actually fix with this package, when I get around to it.
Indeed, that would be great.
I'm not sure if this is possible, but if it is, I think it would be great.
smartparens
defines a C-u prefix to meaninfinity
(see the documentation here for more info.)So, for example (let the character before the
|
be the character the cursor is on) let's that with this:C-u M-x
sp-kill-sexp
RET produces:C-u M-x
on-parens-kill-sexp
RET produces:This can be ridiculously handy, and I'd love to see support in
on-parens
.Likewise C-u C-u is meant to mean "operate on the enclosing expression," which is definitely handy as well.