Skip to content
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

Add interactivity to the Advice section #297

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

kisaragi-hiu
Copy link
Contributor

This lists every new style advice (nadvice.el) of a callable in the Advice section instead of simply saying that it is advised. Further, a button is provided for each advice to remove it.

Another button is provided to remove all advices from the callable. This also removes old style advices.

Mentions of all advices in the docstring (the "This function has :around advice:" line) are removed, regardless of whether they come before the docstring or after (Emacs 28 change), or whether they come from advice.el or nadvice.el.

  • helpful--advices: New function that returns new style (nadvice.el) advices of a given symbol
  • helpful--skip-advice: Remove docstring mentions of new style advices
  • helpful-update: Only show Advice section if we're describing a callable; revamp Advice section

This is similar in spirit to #265. The differences are:

  • The Advice block isn't moved
  • I extract the advices using advice--symbol-function and other nadvice.el utilities instead of the docstring
  • For old style (advice.el) advices, instead of showing ad-Advice-..., I fall back to the "this {function,macro} is advised" text as removing the old style advice using new style advice utilities seems wrong.
  • I place the "Remove all advices" button in the Advice section rather than the Debugging section as I find that more appropriate
  • I also show the first line of each advice in the next line

20220530T091713+0900
20220530T091833+0900

This lists every new style advice (nadvice.el) of a callable in the
Advice section instead of simply saying that it is advised. Further, a
button is provided for each advice to remove it.

Another button is provided to remove all advices from the callable.
This also removes old style advices.

Mentions of all advices in the docstring (the "This function has
:around advice:" line) are removed, regardless of whether they come
before the docstring or after (Emacs 28 change), or whether they come
from advice.el or nadvice.el.

(helpful--advices): New function that returns new style (nadvice.el)
advices of a given symbol
(helpful--skip-advice): Remove docstring mentions of new style advices
(helpful-update): Only show Advice section if we're describing a
callable; revamp Advice section
@Alexander-Shukaev
Copy link

Been looking forward to functionality of interactive advice toggling for quite a while. To sweet not to merge!

@seagle0128
Copy link

seagle0128 commented Aug 30, 2022

Great! It would be better if it supports hooks as well 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants