# Helpful: Adding Contextual Help to Emacs

DevFeed: [Helpful: Adding Contextual Help to Emacs](<https://devfeed.tech/articles/helpful-adding-contextual-help-to-emacs-22018.md>)

Original publisher: [Read original article](<http://www.wilfred.me.uk/blog/2017/08/30/helpful-adding-contextual-help-to-emacs/>)

Author: Wilfred Hughes

Published: 2017-08-30T00:00:00Z

Content type: release

Language: en

Sources: [Wilfred Hughes](<https://devfeed.tech/sources/wilfred-hughes.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [Code](<https://devfeed.tech/topics/code.md>), [debug](<https://devfeed.tech/topics/debug.md>)

Tags: [closure](<https://devfeed.tech/tags/closure.md>), [code](<https://devfeed.tech/tags/code.md>), [debug](<https://devfeed.tech/tags/debug.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [files](<https://devfeed.tech/tags/files.md>), [function](<https://devfeed.tech/tags/function.md>), [source](<https://devfeed.tech/tags/source.md>)

## AI overview

The article announces Helpful v0.1, an Emacs package that adds contextual help for functions and symbols. It reports keybindings across keymaps, discoverable debugging actions, focused and fontified docstrings, symbol references through elisp-refs, and source recovery or formatting for interactively defined, closure, and byte-compiled functions.

## Source excerpt

I've just released Helpful, a new way of getting help in Emacs! The *Help* built-in to Emacs is already pretty good. Helpful goes a step further and includes lots of contextual info. Let's take a look. Have you ever wondered which major modes have a keybinding for a function? Helpful reports keybindings in all keymaps! When you're hacking on some new code, you might end up with old function aliases after renaming a function. Helpful provides discoverable debug buttons, so you don't need to remember fmakunbound. Helpful also has strong opinions on viewing docstrings. Summaries are given focus, and text is fontified. We solve the text-quoting-style debate by removing superfluous puncuation entirely. Helpful will even show all the references to the symbol you're looking at, using elisp-refs. This is great for understanding how and where a function is used. Finally, Helpful will rifle through your Emacs instance to find source code to functions: If you've defined a function interactively, Helpful will use edebug properties to find the source code. If Emacs can only find the raw closure, helpful will convert it back to an equivalent defun. If Emacs can only find the byte-compiled files, helpful will just pretty-print that. I've just released v0.1, so there will be bugs. Please give it a try, and let me know what you think, or how we can make it even more, well, helpful!