"Eric M. Ludlam" <eric@...> writes:
> Hmmm, interesting.
> I thought JDE because it is specific to "prj.el", but you are right,
> semanticdb could have a generic idea of a project's footprints based
> on some list of file patterns. Neat idea.
> EDE can also define projects, and can be a thin wrapper over other
> project types. It just takes someone who knows how a given project
> type works to do the coding of EDE objects to make it happen. For
> example, EDE has it's own project file (Project.ede), or you can use
> Automake files instead as a different class of project. (Makefile.am)
> If someone wanted to take on a JDEless build.xml based EDE project,
> or a JDE based prj.el EDE project, I'll be happy to answer questions.
Just for discussion, here are some project types I know of, that could
be handled by a generic EDE function, similar to how EDE handles
- build xml, java projects using ant
- prj.el, jdee proj files
- Sconscript, projects building with scons
- visual c++ project files, and numerous other ide proj files
I do python, ocaml, and perl programming as well ocassionally, but
cant remember if theres any natural project file types for those environments.
The basic algortithm would be to traverse the directory hierarchy
upwards from the current src file, until a proj file type matching any
of the above is found. A problem is that some project files, like
Makefiles, and sconscript files, the first one found isnt necessarily
the correct one. Therefore, the algorithm could continue to traverse
upwards, identifying all reasonable candidates. Then the user could be
asked which one is the correct one, and a ede project file could be
created, which would then be used instead. this file could also
optionally be created in the same dir as the semanticdb files, if the
user has a setup that handles read-only project dirs of some kind.
- Ease of use
- People would more easily benefit from semanticdb
- less duplication of effort between different emacs project handling envs
- eventual cedet world dommination
Ok, so I know only of EDE and JDEE as emacs project handlers, but
already between these there is duplication of effort. The
semanticdb-alike functionality in jdee would live better in cedet, and
also the project file handling, and the handling of project-specific
>>>> Joakim Verona <joakim@...> seems to think that:
>>"Eric M. Ludlam" <eric@...> writes:
>>> Hi Joakim, and others.
>>> Did this find a home in the JDE? I think it would be better suited in
>>> JDE than somewhere CEDET where it might get lost.
>>I dont think it's included there yet. I dont remember if I posted the
>>snippet there either.
>>I'm still not sure if the JDE is the exact best place for this functionality.
>>The reason for that is that for java projects, you might not even have
>>jde installed, and then build.xml would be a better choice of root
>>I guess what I'm saying is that maybe it would be nice with a simple
>>default function for the root file finder, like the one I have here, but
>>which takes a customizable list of file patterns to look for. Maybe I
>>could code one. There must be one in the EDE already, for instance?
>>>>>> Joakim Verona <joakim@...> seems to think that:
>>>>Here is a tiny adapter function which makes semanticdb aware of the
>>>>jde prj.el file. I didn't find one when googling for it, but since its
>>>>so simple, I'm sure there are variants about. An improvement could be
>>>>to look also for build.xml files.
>>>>(defun jv-java-project-or-nil (dirname)
>>>> ((prjfile (jde-find-project-file dirname)) ;now we got the path including the prj.el file
>>>> (prjdir (if prjfile
>>>> (substring prjfile 0 -6) ;remove prj.el from prjfile
>>>> (message (format "dir:%s prjdir:%s" dirname prjdir))
>>>>(add-hook 'semanticdb-project-root-functions 'jv-java-project-or-nil)
>>> Eric Ludlam: zappo@..., eric@...
>>> Home: http://www.ludlam.net Siege: http://www.siege-engine.com
>>> Emacs: http://cedet.sourceforge.net GNU: http://www.gnu.org
> Eric Ludlam: zappo@..., eric@...
> Home: http://www.ludlam.net Siege: http://www.siege-engine.com
> Emacs: http://cedet.sourceforge.net GNU: http://www.gnu.org