Quickly navigate to FIXME notices in code
Emacs Lisp Makefile
Pull request Compare This branch is even with rolandwalker:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ert-tests
.gitignore
.travis.yml
Makefile
README.markdown
fixmee.el
fixmee_context_menu.png

README.markdown

Build Status

Overview

Quickly navigate to FIXME notices in Emacs.

fixmee_context_menu

Quickstart

(require 'fixmee)

(global-fixmee-mode 1)

;; right-click on the word "fixme" in a comment

;; for next-error support:
;;
;; M-x fixmee-view-listing RET

Explanation

Fixmee-mode tracks fixme notices in code comments, highlights them, ranks them by urgency, and lets you navigate to them quickly.

A distinguishing feature of this library is that it tracks the urgency of each notice, allowing the user to jump directly to the most important problems.

Urgency of "fixme" notices is indicated by repetitions of the final character. For example, one might write FIXMEEEEEEEEE for an important issue. The fixmee-goto-nextmost-urgent command will navigate to the longest notice first.

To use fixmee-mode, add the following to your ~/.emacs file

(require 'fixmee)
(global-fixmee-mode 1)

Then, open some buffers and right-click on the word "fixme" in a comment

or press

C-c f

or

M-x fixmee RET

or

roll the mouse wheel when hovering over the text "fixm" in the modeline.

or

execute `fixmee-view-listing` to navigate using `next-error` conventions.

Key Bindings

The default key bindings are

Keystrokes Function
C-c f fixmee-goto-nextmost-urgent
C-c F fixmee-goto-prevmost-urgent
C-c v fixmee-view-listing
M-n fixmee-goto-next-by-position ; only when the point is
M-p fixmee-goto-previous-by-position ; inside a fixme notice

To constrain the nextmost/prevmost-urgent commands to the current buffer only, use a universal prefix argument, eg

C-u C-c f

When the smartrep package is installed, the C-c prefix need not be used for consecutive fixmee-mode keyboard commands. Instead, just keep pressing f (or whichever key you set in customize).

There is also a context menu and mouse-wheel bindings on the minor-mode lighter in the modeline:

Mouse action Effect
mouse-1 context menu
wheel-down next by urgency
wheel-up previous by urgency
M-wheel-down next by position
M-wheel-up previous by position

Patterns

The following fixme patterns are supported by default:

@@@
XXX         ; only this one is case-sensitive
todo
fixme

Compatibility and Requirements

GNU Emacs version 24.5-devel     : not tested
GNU Emacs version 24.4           : yes
GNU Emacs version 24.3           : yes
GNU Emacs version 23.3           : yes
GNU Emacs version 22.2           : yes, with some limitations
GNU Emacs version 21.x and lower : unknown

Requires:
button-lock.el,
tabulated-list.el (included with Emacs 24.x)

Uses if present: nav-flash.el, back-button.el, string-utils.el, smartrep.el