At 12:41 PM 10/31/99 -0800, you wrote:
>Keepers of the JDE,
>
>    I would like to be able to orchestrate a hierarchy of JDE projects,
>where each sub-project overrides any of it's super-projects settings.  One
>way to do this would be to provide a command which can be called by the
>current project file to load the super-project.
>
>   Off hand, something like (jde-load-super-project super).  If "super" is a
>file, then it is loaded.  If "super" is a directory, then the current
>algorithm of looking for jde-project-file-name in that directory and it's
>sub-directories is used.  When the root directory is found with no more
>project files, then jde-set-variables-init-value is called.
>
>   Then, in my prj.el file I could code something like this:
>
>;; Load my super project settings.
>(jde-load-super-project "../")
>
>;; Override the super project with my project specific settings
>(jde-set-variables
> '(jde-compile-option-nowarn t))
>
>
>    This would maintain my project hierarchy in directory order.  Or, if I
>wanted to maintain my project hierarchy myself, I could give a specific file
>name in the jde-load-super-project command.
>


I think it would be difficult to implement your suggestion, using the
current approach to managing projects. The problem is that each prj.el file
has to set all variables to permit different projects to be open
simultaneously. Thus, you cannot have a subordinate prj.el file that just
overrides the variables not set by its parent. Implementing a new project
management system is a top priority for me after I complete the first
iteration of the new debugger. My plan is to base the new project
management system on Eric Ludlam's Lisp object system. Each project would
be an object and project's could have subprojects that inherit attributes
from their parent. A project object would be "customized" in a buffer just
the way you customize Emacs variables. However, what you are customizing
are self-documenting object attributes, not variables. Thus, the new scheme
would eliminate the need for project variables to specify project options,
thereby greatly reducing the currently proliferating set of jde-
customization variables. 

- Paul

Reply via email to