.dir-locals.el: Automatically set the GEISER-GUILE-LOAD-PATH variable.

Thanks to Miguel Ángel Arruga Vivas and Pierre Neidhardt for their suggestions
and improvements.

* .dir-locals.el: Set the GUIX-DIRECTORY and GEISER-GUILE-LOAD-PATH Emacs
variables based on the location of the .dir-locals file.
This commit is contained in:
Maxim Cournoyer 2020-10-25 14:10:15 -04:00
parent cf8b2f0f11
commit 0e1b0958bd
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -8,7 +8,26 @@
;; For use with 'bug-reference-prog-mode'. ;; For use with 'bug-reference-prog-mode'.
(bug-reference-url-format . "http://bugs.gnu.org/%s") (bug-reference-url-format . "http://bugs.gnu.org/%s")
(bug-reference-bug-regexp (bug-reference-bug-regexp
. "<https?://\\(debbugs\\|bugs\\)\\.gnu\\.org/\\([0-9]+\\)>"))) . "<https?://\\(debbugs\\|bugs\\)\\.gnu\\.org/\\([0-9]+\\)>")
;; Emacs-Guix
(eval . (setq guix-directory
(locate-dominating-file default-directory ".dir-locals.el")))
;; Geiser
;; This allows automatically setting the `geiser-guile-load-path'
;; variable when using various Guix checkouts (e.g., via git worktrees).
(eval . (let* ((root-dir (expand-file-name
(locate-dominating-file
default-directory ".dir-locals.el")))
;; Workaround for bug https://issues.guix.gnu.org/43818.
(root-dir* (directory-file-name root-dir)))
(unless (boundp 'geiser-guile-load-path)
(defvar geiser-guile-load-path '()))
(make-local-variable 'geiser-guile-load-path)
(cl-pushnew root-dir* geiser-guile-load-path
:test #'string-equal)))))
(c-mode . ((c-file-style . "gnu"))) (c-mode . ((c-file-style . "gnu")))
(scheme-mode (scheme-mode
. .