file grouping ("project") extension for emacs
Emacs Lisp Shell
Pull request Compare This branch is 7 commits ahead, 2 commits behind jrockway:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Eproject is an extension that lets you group related files together as projects. It aims to be as unobtrusive as possible. No new files are created (or required to exist) on disk, and buffers that aren't a member of a project are not affected in any way.


The main starting point for eproject is defining project types. There is a macro for this, define-project-type, that accepts four arguments, the type name (a symbol), a list of supertypes (for inheriting properties), a form that is executed to determine whether a file is a member of a project, and then a free-form property list. An example will clear things up:

(define-project-type kernel
  (look-for "Documentation/CodingStyle")
  :c-style "linux-tabs-style"
  :common-compiles (my-kernel-compile-strings "make" "make gtags" "make TAGS"))