Quickly navigate to FIXME notices in Emacs.
(require 'fixmee)
(require 'button-lock)
(global-fixmee-mode 1)
;; right-click on the word "fixme" in a comment
;; for next-error support:
;;
;; M-x fixmee-view-listing RET
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.
Alternatively, a user-specified function can provided for determining
urgency by setting a value for fixmee-measure-urgency-function
.
To use fixmee-mode, add the following to your ~/.emacs
file
(require 'fixmee)
(require 'button-lock)
(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.
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 |
The following fixme patterns are supported by default:
@@@
XXX ; only this one is case-sensitive
todo
fixme
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