http://panix.com/~tehom/my-code
[ Above is updated with:
lynx -source 'http://www.panix.com/~tehom/my-code/' | sed -ne '/<PRE>/,/<\/PRE>/ p' | cut -d'"' -f6 | sed -e 's/^/* /' -ne '/\./ p
]
Here are two directory conventions I have found useful in organizing my elisp projects:
I use a convention of setting each subordinate library’s symbol as a path-name relative to the main directory (ie, the root lisp directory of the package). For this to work right, load-path only points at the main directory.
For example, a directory structure might look like:
* (main directory) :: (Name isn't important. load-path only knows
about this directory) * my-project-name/ ::
* plugins/ ::
* foo.el :: (provides `my-project-name/plugins/foo')
* bar.el :: (provides `my-project-name/plugins/bar')
* baz.el :: (provides `my-project-name/plugins/baz')I do this because I feel that emacs’ namespace is getting crowded and I keep encountering extension library names that try to squeeze project name and library name into one component, like “org-this-thing.el” or “pcmpl-that-thing.el”.
This style has the official approval of emacs-devel (I asked) and I know of one other project besides mine that does this (CEDET).
I put testing and other support libraries in a subdirectory with the same name as the library they support. As author of the testing package Emtest, I’ve found that that works nicely. Just customize uniquify-buffer-name-style so that the various “test.el” buffers get named something clearer than "test.el<2>", "test.el<3>" etc.
Under this convention, part of the directory structure might look like:
* my-project-name/ ::
* plugins/ ::
* foo.el :: (the library itself)
* foo/ ::
* tests.el :: (tests pertaining to "foo.el")
* testhelp.el :: (code that is useful in testing "foo.el" and
also useful testing other files that build on "foo.el")
* examples ::
* file1 :: (a file used in tests)
* file2 :: (another file used in tests)
* bar.el ::
* bar/ ::
* tests.el :: (tests pertaining to "bar.el")
* (etc) ::
* baz.el ::
* baz/ ::
* tests.el :: (tests pertaining to "baz.el")
* (etc) ::