-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Splice funkiness for me on doom and emacs 29.1 #132
Comments
Hi John, thanks for the report! Let's get to the bottom of this funkiness. What Lisp dialect are you using? Is it ELisp or Clojure or something else? What does I'm not able to reproduce this locally, but I'm using a relatively old version of Emacs at the moment, so that could have something to do with it. For reference, in your example, the intended behavior is that it should work in your second case, i.e. |
Hi count, thanks for the response! (hope that's how you prefer to be referred to, lol) I'm currently using common lisp with SBCL, though it also fails with elisp. As a quick aside, I was concerned that evil-smartparens may have been conflicting with evil-cleverparens so I disabled it, but that wasn't it either :/ Also, (not sure if this helps) I do have evil-everywhere enabled. As for your questions:
I also tried drilling into the various function definitions of the symex, evil-surround, etc. I also tried enabling evil-cleverparens in the lisp buffer, but still nothing. I did find this interesting tidbit in the evil-select-parens function: Also, just to clarify, I wasn't necessarily trying to change the default behavior, just trying to exhaust all the possible ways I could think of to get it to recognize the surrounding delimeters, and happened to stumble upon the spacing thing when I was testing symex-change-delimiter which added the spacing for me, which helped me find the "fix" to get it working. Thanks for your help so far, sorry I couldn't provide more useful information, I'm kinda groping around in the dark here, so I hope some of the info I provided ends up being useful to diagnosing the issue :/ |
That all sounds good, thanks for the thoroughness. Can you do |
Okay, got it! Here's the trace:
|
It could be a recent change in I'm curious what happens if you use evil-surround directly, e.g. here:
where | indicates the cursor position on the opening paren, and while you're in evil In the same example, if you try Fwiw, as part of the upcoming (and delayed 😅) 2.0 release, we've started to eliminate dependency on evil-surround as part of a broader effort to trim dependencies (including, eventually, Evil itself), so I suspect it would be addressed when 2.0 is released, but of course, let's keep going to identify the cause for now. |
Interestingly, this halfway works! Running
Also, note that there may be a distinction: the keybinding method uses |
Sorry, I had a typo in my comment that I fixed. It should be |
Okay, I tried that, but it doesn't prompt for a character, it just errors with
|
Yeah, that looks like the error we're seeing. I've just tried with the latest version of |
Hey @johnabs, I also use doom and also get this error. I found that removing the (advice-remove 'evil-surround-delete 'evil-embrace-evil-surround-delete) Unsure yet if this breaks anything else though |
To add more confusion to the mix... I have disabled
Interestingly, if I add spaces after the opening delimiter and before the closing delimiter, it works perfectly. 🤔 |
Hey @jezcope, you sure |
Yes, but Doom had pinned an older version of |
Does |
Ok, so this is what gets Add to (after! (:and evil-surround evil-embrace)
(evil-embrace-disable-evil-surround-integration)) Add to (unpin! evil-surround) Run I think maybe documenting this is sufficient until 2.0 comes out without the |
Thank you for your help identifying the root cause @anonimitoraf 🙂 @jezcope Glad you were able to resolve it! I would recommend creating an issue on the In the meantime, sounds like a paragraph in the README explaining the issue for Doom emacs users, and the workaround, would be useful. A PR would be appreciated as I'm not familiar with Doom myself. Otherwise I can just include a simple pointer to this issue. |
I've reported the issue upstream and added a pointer to this issue in the README. I think that's all we can do on the Symex end for now -- we wait on either an upstream fix, or on Symex 2.0 being merged, whichever comes first 🙂 Thanks all. |
Actually as people are still running into this, closing wasn't the right thing to do -- reopening until it is resolved one way or another (see my previous comment). |
To whom it may concern,
I'm currently trying to get the full functionality of symex mode working, and I'm having some trouble with splice.
Basically, I have some strange (to me) behavior and wanted to see if it was intentional:
(f1 (|x1| x2))
(the || represents my block cursor's position) running - or M-x symex-splice does nothing.If I change my cursor in symex mode to highlight the whole symex
(f1 |(x1 x2)| )
, I instead get the error of "No surrounding delimiters found".But if I do this
(f1 |( x1 x2 )| )
, splice works as intended (note the added spacing between the parameters in the parens and the parens, both must be present for splice to detect the delimiters, this is a similar issue with change-delimiter, the spaces must be there).I tested every other command, and they all behave as intended, from what I can tell, but this seems odd to me. Any feedback on the matter would be greatly appreciated.
Thank you so much for your time and consideration.
Best,
John
The text was updated successfully, but these errors were encountered: