mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-22 10:26:20 +00:00
(project-settings-file): New variable.
(project-find-settings-file): Use it, instead of hardcoding .dir.settings.el.
This commit is contained in:
parent
f30efa7cf0
commit
ffe89e7639
@ -3202,6 +3202,13 @@ LIST. The list is processed in order.
|
||||
(setcdr elt list)
|
||||
(push (cons class list) project-class-alist))))
|
||||
|
||||
(defcustom project-settings-file ".dir-settings.el"
|
||||
"Settings file for per-project settings. Set this to nil if you dont want to load project-specific settings."
|
||||
:type '(choice
|
||||
(const :tag "Ignore" nil)
|
||||
(file :tag "File"))
|
||||
:group 'files)
|
||||
|
||||
(defun project-find-settings-file (file)
|
||||
"Find the settings file for FILE.
|
||||
This searches upward in the directory tree.
|
||||
@ -3209,21 +3216,22 @@ If a settings file is found, the file name is returned.
|
||||
If the file is in a registered project, a cons from
|
||||
`project-directory-alist' is returned.
|
||||
Otherwise this returns nil."
|
||||
(setq file (expand-file-name file))
|
||||
(let* ((settings (locate-dominating-file file ".dir-settings.el"))
|
||||
(pda nil))
|
||||
;; `locate-dominating-file' may have abbreviated the name.
|
||||
(if settings (setq settings (expand-file-name ".dir-settings.el" settings)))
|
||||
(dolist (x project-directory-alist)
|
||||
(when (and (eq t (compare-strings file nil (length (car x))
|
||||
(car x) nil nil))
|
||||
(> (length (car x)) (length (car pda))))
|
||||
(setq pda x)))
|
||||
(if (and settings pda)
|
||||
(if (> (length (file-name-directory settings))
|
||||
(length (car pda)))
|
||||
settings pda)
|
||||
(or settings pda))))
|
||||
(when project-settings-file
|
||||
(setq file (expand-file-name file))
|
||||
(let* ((settings (locate-dominating-file file project-settings-file))
|
||||
(pda nil))
|
||||
;; `locate-dominating-file' may have abbreviated the name.
|
||||
(if settings (setq settings (expand-file-name ".dir-settings.el" settings)))
|
||||
(dolist (x project-directory-alist)
|
||||
(when (and (eq t (compare-strings file nil (length (car x))
|
||||
(car x) nil nil))
|
||||
(> (length (car x)) (length (car pda))))
|
||||
(setq pda x)))
|
||||
(if (and settings pda)
|
||||
(if (> (length (file-name-directory settings))
|
||||
(length (car pda)))
|
||||
settings pda)
|
||||
(or settings pda)))))
|
||||
|
||||
(defun project-define-from-project-file (settings-file)
|
||||
"Load a settings file and register a new project class and instance.
|
||||
|
Loading…
Reference in New Issue
Block a user