All Projects → Wilfred → Helpful

Wilfred / Helpful

A better Emacs *help* buffer

Labels

Projects that are alternatives of or similar to Helpful

Dotfiles
Let's be honest: mostly Emacs.
Stars: ✭ 536 (-12.85%)
Mutual labels:  emacs
Racket Mode
Emacs major and minor modes for Racket: edit, REPL, check-syntax, debug, profile, and more.
Stars: ✭ 559 (-9.11%)
Mutual labels:  emacs
Ox Hugo
A carefully crafted Org exporter back-end for Hugo
Stars: ✭ 591 (-3.9%)
Mutual labels:  emacs
Crux
A Collection of Ridiculously Useful eXtensions for Emacs
Stars: ✭ 543 (-11.71%)
Mutual labels:  emacs
Olivetti
Emacs minor mode for a nice writing environment
Stars: ✭ 554 (-9.92%)
Mutual labels:  emacs
God Mode
Minor mode for God-like command entering
Stars: ✭ 570 (-7.32%)
Mutual labels:  emacs
Php Mode
A powerful and flexible Emacs major mode for editing PHP scripts
Stars: ✭ 522 (-15.12%)
Mutual labels:  emacs
Scimax
An emacs starterkit for scientists and engineers
Stars: ✭ 609 (-0.98%)
Mutual labels:  emacs
Diff Hl
Emacs package for highlighting uncommitted changes
Stars: ✭ 553 (-10.08%)
Mutual labels:  emacs
Nyan Mode
Nyan Cat for Emacs! Nyanyanyanyanyanyanyanyanyan!
Stars: ✭ 590 (-4.07%)
Mutual labels:  emacs
Magit
It's Magit! A Git porcelain inside Emacs.
Stars: ✭ 5,406 (+779.02%)
Mutual labels:  emacs
Telega.el
GNU Emacs telegram client (unofficial)
Stars: ✭ 551 (-10.41%)
Mutual labels:  emacs
Editorconfig Emacs
EditorConfig plugin for Emacs
Stars: ✭ 577 (-6.18%)
Mutual labels:  emacs
Emacs Ng
A new approach to Emacs - Including TypeScript, Threading, Async I/O, and WebRender.
Stars: ✭ 525 (-14.63%)
Mutual labels:  emacs
Magithub
**This project is being (mostly) migrated into Forge!** -- Magit-based interfaces to GitHub
Stars: ✭ 592 (-3.74%)
Mutual labels:  emacs
Robe
Code navigation, documentation lookup and completion for Ruby
Stars: ✭ 525 (-14.63%)
Mutual labels:  emacs
Its
Incompatible Timesharing System
Stars: ✭ 567 (-7.8%)
Mutual labels:  emacs
Nyxt
Nyxt - the hacker's power-browser.
Stars: ✭ 7,038 (+1044.39%)
Mutual labels:  emacs
Rjsx Mode
A JSX major mode for Emacs
Stars: ✭ 604 (-1.79%)
Mutual labels:  emacs
Meghanada Emacs
A Better Java Development Environment for Emacs
Stars: ✭ 582 (-5.37%)
Mutual labels:  emacs

Helpful Coverage Status MELPA

Helpful is an alternative to the built-in Emacs help that provides much more contextual information.

screenshot

Usage

Install from MELPA, then call one of the following commands:

  • helpful-callable
  • helpful-function
  • helpful-macro
  • helpful-command
  • helpful-key
  • helpful-variable
  • helpful-at-point

If you want to replace the default Emacs help keybindings, you can do so:

;; Note that the built-in `describe-function' includes both functions
;; and macros. `helpful-function' is functions only, so we provide
;; `helpful-callable' as a drop-in replacement.
(global-set-key (kbd "C-h f") #'helpful-callable)

(global-set-key (kbd "C-h v") #'helpful-variable)
(global-set-key (kbd "C-h k") #'helpful-key)

I also recommend the following keybindings to get the most out of helpful:

;; Lookup the current symbol at point. C-c C-d is a common keybinding
;; for this in lisp modes.
(global-set-key (kbd "C-c C-d") #'helpful-at-point)

;; Look up *F*unctions (excludes macros).
;;
;; By default, C-h F is bound to `Info-goto-emacs-command-node'. Helpful
;; already links to the manual, if a function is referenced there.
(global-set-key (kbd "C-h F") #'helpful-function)

;; Look up *C*ommands.
;;
;; By default, C-h C is bound to describe `describe-coding-system'. I
;; don't find this very useful, but it's frequently useful to only
;; look at interactive functions.
(global-set-key (kbd "C-h C") #'helpful-command)

Ivy users can use Helpful with counsel commands:

(setq counsel-describe-function-function #'helpful-callable)
(setq counsel-describe-variable-function #'helpful-variable)

Features

Source code

screenshot

Helpful will try really hard to show the source code. It shows the source code for interactively defined functions (unlike the built-in Help) and falls back to the raw sexp if no source is available.

View Callers

screenshot

Helpful will show you where a function is being called!

Prettier Docstrings

screenshot

Docstrings in helpful:

  • Highlight the summary (the first sentence)
  • Include cross-references to other functions/variables
  • Linkify references to Info nodes
  • Hide superfluous punctuation

screenshot

If a symbol is also documented in the Info manual, helpful will provide a link to the relevant section too.

Symbol Properties

screenshot

Helpful will show you the properties that have been applied to the current symbol. This provides visibility of features like edebug or byte-code optimisation.

Helpful will also highlight any symbol aliases.

Describe Commands

Helpful provides a separate helpful-command function, for when you just want to view interactive functions.

View Keymaps

screenshot

Helpful displays any keybindings that apply to interactive functions.

Integrated Tooling

screenshot

You can trace, debug or disassemble functions from inside Helpful. This is discoverable and doesn't require memorisation of commands.

Aliases

screenshot

If a function has multiple aliases in Emacs, Helpful will show all of the aliases defined.

Inspirations

This project has been heavily influenced by:

License

GPLv3+.

I am providing code in the repository to you under an open source license. Because this is my personal repository, the license you receive to my code is from me and not my employer.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].