Clementson's Blog

Bits and pieces (mostly Lisp-related) that I collect from the ether.

May 2007
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Apr  Jun

Lispdoc - Online Lisp Documentation Search

Tuesday, May 15, 2007

William Bland just keeps on improving lispdoc, his online Lisp documentation search utility. The utility has a lot of neat features:

I've use the following elisp snippet in my .emacs file to directly access lispdoc from within Emacs:
(defun lispdoc ()
  "Searches lispdoc.com for SYMBOL, which is by default the symbol
currently under the curser"
  (interactive)
  (let* ((word-at-point (word-at-point))
         (symbol-at-point (symbol-at-point))
         (default (symbol-name symbol-at-point))
         (inp (read-from-minibuffer
               (if (or word-at-point symbol-at-point)
                   (concat "Symbol (default " default "): ")
		 "Symbol (no default): "))))
    (if (and (string= inp "") (not word-at-point) (not
						   symbol-at-point))
        (message "you didn't enter a symbol!")
      (let ((search-type (read-from-minibuffer
			  "full-text (f) or basic (b) search (default b)? ")))
	(browse-url (concat "http://lispdoc.com?q="
			    (if (string= inp "")
				default
			      inp)
			    "&search="
			    (if (string-equal search-type "f")
				"full+text+search"
			      "basic+search")))))))
You can just access it with "M-x lispdoc" and it defaults to the documentation for the symbol that the cursor is positioned on; however, you might find it more convenient to bind it to something:
(define-key lisp-mode-map (kbd "C-c l") 'lispdoc)
Since lispdoc also brings up an example of usage and links to books that contain more examples, it is a really convenient tool when you're either learning lisp or exploring functionality that you may not use on a regular basis.

emacs Copyright © 2007 by Bill Clementson