The GNU id-utils package is great! At a keystroke, it provides lightning-fast access to all occurrences of any identifier in the codebase. It is valuable for reading any codebase over ten kilolines, and indispensable for multi-megaline codebases (where etags simply halts and catches fire).
Which makes it unfortunate that the id-utils do not support more languages. :(
In particular, lisp- and ml-family languages are ill-served by the scanners in the standard source distribution.
Here is the tarball for a version of the id-utils tweaked to also support SML and lisp.
If you're fortunate enough to be running Debian Linux, a binary .deb is here.
Back to Cynbe's SML Hacking Support Tools Page.
Oh, for what it's worth, this is how I invoke gid from my .emacs file:
(defun safe-load-library (lib) (condition-case nil (load-library lib) (error (message (concat "Cannot load library " lib)) nil) (t))) (safe-load-library "id-utils") (autoload 'gid "id-utils") (let ((bindings '(([(meta ?l)] . gid) ([(meta ?L)] . (lambda () (interactive) (gid (word-around-point)))) ;; ... (many other irrelevant bindings omitted...) ))) (while bindings (define-key global-map (car (car bindings)) (cdr (car bindings))) (setq bindings (cdr bindings))))