+2009-09-21 Chong Yidong <cyd@stupidchicken.com>
+
+ * cedet/semantic/db.el (semanticdb--inhibit-make-directory): New
+ var.
+ (semanticdb-save-all-db): Use it.
+
+ * cedet/semantic/db-file.el (semanticdb-default-save-directory):
+ Save in user-emacs-directory instead of the home directory.
+ (semanticdb-file-directory-exists-p): Avoid prompting the user
+ multiple times.
+
2009-09-21 Chong Yidong <cyd@stupidchicken.com>
* help-fns.el (describe-function-1): Call
;;; Settings
;;
(defcustom semanticdb-default-file-name "semantic.cache"
- "*File name of the semantic tag cache."
+ "File name of the semantic tag cache."
:group 'semanticdb
:type 'string)
-(defcustom semanticdb-default-save-directory (expand-file-name "~/.semanticdb")
- "*Directory name where semantic cache files are stored.
+(defcustom semanticdb-default-save-directory
+ (expand-file-name "semanticdb" user-emacs-directory)
+ "Directory name where semantic cache files are stored.
If this value is nil, files are saved in the current directory. If the value
is a valid directory, then it overrides `semanticdb-default-file-name' and
stores caches in a coded file name in this directory."
(directory)))
(defcustom semanticdb-persistent-path '(always)
- "*List of valid paths that semanticdb will cache tags to.
+ "List of valid paths that semanticdb will cache tags to.
When `global-semanticdb-minor-mode' is active, tag lists will
be saved to disk when Emacs exits. Not all directories will have
tags that should be saved.
:type nil)
(defcustom semanticdb-save-database-hooks nil
- "*Hooks run after a database is saved.
+ "Hooks run after a database is saved.
Each function is called with one argument, the object representing
the database recently written."
:group 'semanticdb
;; @TODO - If it was never set up... what should we do ?
nil)
((file-exists-p dest) t)
- (supress-questions nil)
- ((y-or-n-p (format "Create directory %s for SemanticDB? "
- dest))
+ ((or supress-questions
+ (and (boundp 'semanticdb--inhibit-make-directory)
+ semanticdb--inhibit-make-directory))
+ nil)
+ ((y-or-n-p (format "Create directory %s for SemanticDB? " dest))
(make-directory dest t)
t)
- (t nil))
- ))
+ (t (if (boundp 'semanticdb--inhibit-make-directory)
+ (setq semanticdb--inhibit-make-directory t))
+ nil))))
(defmethod semanticdb-save-db ((DB semanticdb-project-database-file)
&optional
(semanticdb-save-db semanticdb-current-database)
(message "Saving current tag summaries...done"))
+;; This prevents Semanticdb from querying multiple times if the users
+;; answers "no" to creating the Semanticdb directory.
+(defvar semanticdb--inhibit-create-file-directory)
+
(defun semanticdb-save-all-db ()
"Save all semantic tag databases."
(interactive)
(message "Saving tag summaries...")
- (mapc 'semanticdb-save-db semanticdb-database-list)
+ (let ((semanticdb--inhibit-make-directory nil))
+ (mapc 'semanticdb-save-db semanticdb-database-list))
(message "Saving tag summaries...done"))
(defun semanticdb-save-all-db-idle ()