It’s been a year since the first release of Helpful! It’s gained a ton of new features, and I’d love to share the highlights with you.
Emacs has some excellent built-in debugging tools that I wanted to expose within Helpful. These tools missed the first release, but I’ve now had the chance to build them.
From a Helpful buffer, you can now toggle edebug on a function. This allows you to easily step through code.
You can also toggle tracing. Tracing is an underrated built-in feature of Emacs. You can use it to confirm functions have the inputs and outputs you’re expecting. It’s really useful when exploring unfamiliar code.
In this example, I’ve enabled tracing on
see when it’s called, and what values it’s returning.
After some great user feedback, Helpful buffers now start with a summary of what you’re looking at.
Users often want a direct link to the source code, so this is included
in the summary. Helpful also mentions if a function is interactive or
autoloaded, just like
describe-function. If a user doesn’t know what
that means, those words now link to the relevant part of the Emacs
Helpful tries to show all relevant information for the current thing. I’ve overhauled aliases with this in mind.
For example, if you view
make-hash-table, you can now see that there
is another alias of this function, but it’s now deprecated.
It’s now possible to set variables directly from Helpful buffers. This
was inspired by
counsel-set-variable, which has an excellent similar
If a variable is a
defcustom, then Helpful also includes a link to
the relevant part of Customize.
Even Better Docstrings
Helpful now handles all Emacs docstring syntax. It handles references
to keybindings, keymaps, and even supports the obscure features like
fortran-mode is a great example of a docstring that uses a lot of
Emacs docstring features.
Recent versions of Helpful try even harder to save you keystrokes. URLs are now automatically converted to links.
Finally, my favourite new feature is Info manual links. If a docstring mentions a section of the manual, Helpful converts it to a link.
Even better, if a symbol is documented in the Emacs manual, Helpful automatically adds a link at the bottom of the docstring! This hugely helps discoverability.