I started hacking on firefox recently. And, of course, I’ve configured emacs a bit to make hacking on it more pleasant.
The first thing I did was create a .dir-locals.el
file with some customizations. Most of the tree has local variable settings in the source files — but some are missing and it is useful to set some globally. (Whether they are universally correct is another matter…)
Also, I like to use bug-reference-url-mode
. What this does is automatically highlight references to bugs in the source code. That is, if you see “bug #1050501”, it will be buttonized and you can click (or C-RET) and open the bug in the browser. (The default regexp doesn’t capture quite enough references so my settings hack this too; but I filed an Emacs bug for it.)
I put my .dir-locals.el
just above my git checkout, so I don’t end up deleting it by mistake. It should probably just go directly in-tree, but I haven’t tried to do that yet. Here’s that code:
( ;; Generic settings. (nil . ;; See C-h f bug-reference-prog-mode, e.g, for using this. ((bug-reference-url-format . "https://bugzilla.mozilla.org/show_bug.cgi?id=%s") (bug-reference-bug-regexp . "\\([Bb]ug ?#?\\|[Pp]atch ?#\\|RFE ?#\\|PR [a-z-+]+/\\)\\([0-9]+\\(?:#[0-9]+\\)?\\)"))) ;; The built-in javascript mode. (js-mode . ((indent-tabs-mode . nil) (js-indent-level . 2))) (c++-mode . ((indent-tabs-mode . nil) (c-basic-offset . 2))) (idl-mode . ((indent-tabs-mode . nil) (c-basic-offset . 2))) )
In programming modes I enable bug-reference-prog-mode
. This enables highlighting only in comments and strings. This would easily be done from prog-mode-hook
, but I made my choice of minor modes depend on the major mode via find-file-hook.
I’ve also found that it is nice to enable this minor mode in diff-mode
and log-view-mode
. This way you get bug references in diffs and when viewing git logs. The code ends up like:
(defun tromey-maybe-enable-bug-url-mode () (and (boundp 'bug-reference-url-format) (stringp bug-reference-url-format) (if (or (derived-mode-p 'prog-mode) (eq major-mode 'tcl-mode) ;emacs 23 bug (eq major-mode 'makefile-mode)) ;emacs 23 bug (bug-reference-prog-mode t) (bug-reference-mode t)))) (add-hook 'find-file-hook #'tromey-maybe-enable-bug-url-mode) (add-hook 'log-view-mode-hook #'tromey-maybe-enable-bug-url-mode) (add-hook 'diff-mode-hook #'tromey-maybe-enable-bug-url-mode)
Be the first to leave a comment. Don’t be shy.