Common Lisp on the spotlight

If you’re an OS X user you already now about Spotlight, the file metadata indexer that comes with Tiger. I’m not a heavy user of Spotlight, but today i’ve made a discovery that may change this a bit: John “Lemonodor” Wiseman’s Lisp Metadata Importer, a plug-in that makes Spotlight aware of Common Lisp constructs in your files.

John wrote a nice howto in the above page, complete with screenshots like this one showing a search for Lisp definitions:

Searching Lisp contents in Finder

and here you can see Pathfinder showing the Lisp metadata associated to one of my files:

Lisp and Spotlight

Nifty. Although i think that the possibility of using the command line interface for querying Spotlight metadata is even more interesting… i’m already thinking of writing some Elisp to perform queries within Emacs with Spotlight’s mdfind as a backend (albeit admittedly Slime makes those scripts less useful than one would think!).

One can also use John’s importer’s source code as the basis for new plug-ins supporting other languages (Scheme comes to (my) mind, stay tuned!). There’re already importers for Python and Ruby, but it’s quite easy to write your own if those are not your cup of tea (and learn a bit of Objective-C in the process).

Happy searching!

Be the first to like this post.

One Response to “Common Lisp on the spotlight”

  1. sean Says:

    Keep me posted if you get an elisp interface up and going. One easy way would be to hack the existing locate mode. fwiw, I’ve hacked together an mdimporter that uses exuberant ctags to grab symbols from just about every kind of source. But for it to be really really useful, I feel it would need a tags- or cscope-like interface, which I haven’t found the tuits yet to write.


Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>