helpful icon indicating copy to clipboard operation
helpful copied to clipboard

Add interactivity to the Advice section

Open kisaragi-hiu opened this issue 2 years ago • 2 comments

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

kisaragi-hiu avatar May 30 '22 01:05 kisaragi-hiu

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

Alexander-Shukaev avatar Aug 29 '22 20:08 Alexander-Shukaev

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

seagle0128 avatar Aug 30 '22 05:08 seagle0128