git clone 'git://github.com/vietor/aproject.git'
Basic project framework for Emacs.
This library allows the user to use Emacs on multiple projects.
Each project has it's “.aproject” directory for store some files, like: bookmarks, desktop, etc.
Add the following to your
init.el (after the
aproject.el in you load-path):
You can add custom process when current project changed like:
(add-aproject-init (setq desktop-save t) (desktop-save-mode 1)) (before-aproject-change (desktop-save aproject-storedir)) (after-aproject-change (setq desktop-path (list aproject-storedir)) (desktop-read) (setq frame-title-format '("Emacs @ " aproject-rootdir)))
Use the “-project” parameter to initialize the target director as project.
emacs -project ~/work/aproject
If aproject initialize like a project that is t else nil.
The aproject working directory.
The aproject store directory for store project specifec files.
Each project has itself store directory.
Get file path in aproject-rootdir.
Get file path in aproject-storedir
Change current project. It allows multiple project in one Emacs.
Wrap aproject-init-hook, it should call when aproject initialize.
The aproject was Initialized only once in after-init-hook.
Wrap aproject-before-change-hook, it should call before the aproject change
You can store some files for previous project.
Wrap aproject-after-change-hook, it should call after the aproject change
You can read some files for current project.
Enable bookmark support, default t.
Enable recentf support, default t.
Function aproject-recentf-open for fast open recent files. Function aproject-recentf-view for view recent files.
Enable ido support, default t.
Enable desktop support, default t.
Enable environments support, default t.
Hook aproject-environ-change-hook for project environments was changed
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.