Skip to content

An Emacs package to allow simple, extensible persistence of a list of projects.

Notifications You must be signed in to change notification settings

rdallasgray/project-persist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is project-persist?

Project-persist is a simple, extensible Emacs package to allow persistence of a list of projects with relevant settings.

What does it do?

It allows you to create, open, save, close and delete simple projects based on root directories.

Is that it?

Pretty much. It also provides hooks around each of these functions so that you could, for example, load and save an Emacs desktop in tandem with a project, create and save a tags file, or load another project-management solution such as Projectile.

By default, only a project's name and root directory are saved, but you can easily add other settings like this:

(add-to-list 'project-persist-additional-settings
  '(my-setting . (lambda () (read-from-minibuffer "My setting: "))))

Each element of the list is a cons cell with car a symbol naming the new setting and cdr a function to obtain the value of the setting. The function will be called during project creation and the setting's value saved as normal.

The setting can be retrieved once a project is loaded by invoking:

(pp/settings-get 'my-setting)

Project-persist is intentionally lightweight, in the spirit of Emacs, so that it can be used to build a more complex project-management infrastructure tailored to your needs. Other packages, like the aforementioned Projectile, handle things like searching within a project, so there's no need to duplicate such functionality.

It can be required and enabled as follows:

(require 'project-persist)
(project-persist-mode t)

About

An Emacs package to allow simple, extensible persistence of a list of projects.

Resources

Stars

Watchers

Forks

Packages

No packages published