Would this new project feature allow for any degree of separation (or
overloading) of more general and more specific settings?  If I correctly
understand the current system, the jde first loads the customizations
specified in .emacs (or other customization file) then it tries to find a
project file, called prj.el, in a parent directory of the current file.  The
first project file is then loaded.  But is it possible to have multiple
prj.el files, where say the first would reside in /projects, the second in
/projects/project1, which all get loaded (and where the second project file
is more specific and overloads the first, which in turn overloads the
customizations)?

--
knut

> -----Original Message-----
> From: Nic Ferrier [SMTP:[EMAIL PROTECTED]]
> Sent: Thursday, March 15, 2001 1:21 AM
> To:   [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject:      Re: ANN: Planned changes to JDE's project feature
> 
> >Your right to do ssuch an enhancement for JDE paul,
> >the default directory to place the project is often a problem 
> >when creating  relatively big projects...
> >I don't if many other users would agree but i think it would 
> >be a nice idea to place the project in the first package-directory
> :
> 
> What Paul is saying is that when you first save the project you get
> to choose where to save the project file (ie: the JDE prompts you for
> the filename).
> 
> Paul might be interested in the attached code. It does exactly what
> he's suggested and I've been using it as part of my project system for
> a while now.
> 
> 
> Nic
> 
> 
> ;;save jde project variables in a buffer and save the buffer
> ;;
> (defun jde-compile-plus-save-variables (project-buffer)
>   "Save all JDE variables in the specified buffer."
>   (save-excursion
>     (let ((standard-output project-buffer))
>       (set-buffer project-buffer)
>       (erase-buffer)
>       (princ "(jde-set-project-name ")
>       (prin1 jde-project-name)
>       (princ ")\n")
>       
>       (princ "(jde-set-variables ")
>       (mapcar
>        (lambda (symbol)
>        (when (and (string-match "jde-" (symbol-name symbol))
>                   (get symbol 'custom-type))
>          (let ((value (symbol-value symbol)))    
>            (princ "\n '(")
>            (princ symbol)
>            (princ " ")
>            (prin1 (custom-quote value))
>            ;;flag any customized variable
>            (if (get symbol 'customized-value)
>                (princ " t)")
>              (princ ")"))              
>            )))
>        (jde-symbol-list))
>       (princ ")")
>       (save-buffer)))
>   (kill-buffer project-buffer))
> 
> ;;causes a filename to be read from the mini-buffer (with
> completion)
> ;;The filename is then used to save the project variables in
> ;;;###autoload
>   (defun jde-compile-plus-save-project (proj-name)
>   "Saves local source file buffer options in project file.
> This command provides an easy way to create and update a
> project file for a Java project. Simply open a source file,
> set the desired options, using the JDE Options menu, then
> save the settings in the project file, using this command.
> Now, whenever you open a source file from the same directory
> tree, the saved settings will be restored for that file."
>   (interactive
>    (list
>     ;;we have to save insert-default-directory coz we're gonna set it
> to true
>     (let* ((initial-default-directory nil)
>          (prompt "Enter project name: ")
>          (current-prj-fname (jde-find-project-file
> default-directory))
>          (prj-fname
>           (if current-prj-fname
>               (file-truename current-prj-fname)
>             (if (string= jde-project-file-name "")
>                 (if (string= jde-project-name "default")
>                     "prj.el"
>                   jde-project-name)
>               jde-project-file-name)))
>          (dir (file-name-directory prj-fname)))
>       (setq initial-default-directory nil)
>       (if dir
>         (read-file-name prompt "" nil nil prj-fname)
>       (let ((initial-default-directory 't)
>             (filename (file-name-nondirectory prj-fname)))
>         (read-file-name prompt default-directory nil nil
> filename))))))
>   (unless (string= proj-name "")
>     (setq jde-project-name (file-name-nondirectory proj-name)))
>   (find-file-noselect proj-name)
>   (jde-compile-plus-save-variables (get-file-buffer proj-name))
>   )

Reply via email to