emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: Project local variables & EDE (was: Updated project-specific sett


From: Eric M. Ludlam
Subject: Re[2]: Project local variables & EDE (was: Updated project-specific settings patch)
Date: Mon, 19 May 2008 15:51:51 -0400

>>> Tom Tromey <address@hidden> seems to think that:
>>>>>> "Stefan" == Stefan Monnier <address@hidden> writes:
  [ ... ]
>
>Stefan> One more thing: since we want to include CEDET and CEDET has its own
>Stefan> notion of "project data", we want to try and get those two things
>Stefan> to converge.
>
>Stefan> So please try and work out with address@hidden what convergence might
>Stefan> look like.
>
>I've CC'd him.
>
>I looked through CEDET a bit but project-local settings do not seem to
>be extensively documented.  I think you have to use EDE to get them,
>and from what I can see EDE only supports a couple types of projects.
>
>Also, it appears that a Project.ede is needed in every directory.

Hi,

  The project-local variables are supported by any EDE project type.
This includes the ones with Project.ede files, or the simpler
projects that have no save files.  Of course, without a save file, the
project-local variables aren't persistent.

  You are right they are not well documented.  The goal of EDE when I
wrote it was not project-local variables.  They are a bit of a freebie
feature in EDE.

  One thing I learned since writing EDE is that I need to break the
"project" as a group of files concept apart from all the makefile
management stuff.  I have a first pass in the "simple" project type
which just has a high-level project at some root directory.  It needs
some work though.

  The goals behind EDE are very different from projectlocal if it the
same as what I had read on emacswiki a while back.  EDE uses objects
and methods to store, manipulate, and configure data.  Every buffer
gets associated with an EDE project if it is in one.  EDE should then
provide an API for a user facing program to navigate a project.  EDE
then also provides all the makefile manipulation stuff for itself.

  The API to other programs is important for other parts of CEDET
which want to have configurations specific under a particular project.
For example, ECB will draw it's dir tree rooted to some project.
Semantic will lookup header files for C++ programs within the current
project.  The template manager/code-generator (SRecode) will lookup
(someday) templates changes specific to a particular project.

  My suspicion is that projectlocal will satisfy a different group of
users where EDE is a bit more heavy weight.  It would be easy for EDE
to identify .dir-settings.el files and automatically configure those
directories as simple EDE projects that exclude all the other
heavyweight make system features.  In this case, EDE would be
duplicating some of the work of project-local.  If there is interest,
I'd be happy to help make an EDE project style that uses a
.dir-settings of the same format that uses EDE constructs to do the
variable settings.  The detriment to this would be that EDE will
likely be slower at runtime than the existing code, simply due to some
of the extra machinery.  The benefit would be a single project-ish
system.

  Tom, if you'd like to do this, I'll send you a mock-up of the EDE
code needed to merge the two to try to see if it satisfies your goal
set.  Alternately, you could look in CEDET's CVS repository for
ede-simple.el which, as far as I know, does persistent project-local
variables, though I hadn't tested that since, as I mentioned above,
that wasn't my original goal.

Eric

-- 
          Eric Ludlam:                       address@hidden
   Siege: www.siege-engine.com          Emacs: http://cedet.sourceforge.net




reply via email to

[Prev in Thread] Current Thread [Next in Thread]