Hello, Maxim Cournoyer <maxim.courno...@gmail.com> writes:
> * .dir-locals.el: Set the GUIX-DIRECTORY and GEISER-GUILE-LOAD-PATH Emacs > variables based on the location of the .dir-locals file. > --- > .dir-locals.el | 21 ++++++++++++++++++++- > 1 file changed, 20 insertions(+), 1 deletion(-) > > diff --git a/.dir-locals.el b/.dir-locals.el > index 19f15b3e1a..0496e41ca2 100644 > --- a/.dir-locals.el > +++ b/.dir-locals.el > @@ -8,7 +8,26 @@ > ;; For use with 'bug-reference-prog-mode'. > (bug-reference-url-format . "http://bugs.gnu.org/%s") > (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"))) > (scheme-mode > . Pushed to master as 0e1b0958bd. Thank you! Maxim