mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-17 12:17:10 -05:00
.dir-locals.el: Prevent errors if .dir-locals.el isn't found.
While this repo should presumably always have a .dir-locals.el by the nature of this file itself, it seems that this behavior "leaks". See added comment for more details on the fix to this strange bug, which is likely an upstream emacs or vc-mode issue. Thanks to Miguel Ángel Arruga Vivas and Maxim Cournoyer for helping investigate this problem. * .dir-locals.el: Don't error out if .dir-locals.el isn't found.
This commit is contained in:
parent
37b98e8cca
commit
e385e5fc3c
1 changed files with 21 additions and 11 deletions
|
@ -17,17 +17,27 @@
|
||||||
;; Geiser
|
;; Geiser
|
||||||
;; This allows automatically setting the `geiser-guile-load-path'
|
;; This allows automatically setting the `geiser-guile-load-path'
|
||||||
;; variable when using various Guix checkouts (e.g., via git worktrees).
|
;; variable when using various Guix checkouts (e.g., via git worktrees).
|
||||||
(eval . (let* ((root-dir (expand-file-name
|
(eval . (let ((root-dir-unexpanded (locate-dominating-file
|
||||||
(locate-dominating-file
|
default-directory ".dir-locals.el")))
|
||||||
default-directory ".dir-locals.el")))
|
;; While Guix should in theory always have a .dir-locals.el
|
||||||
;; Workaround for bug https://issues.guix.gnu.org/43818.
|
;; (we are reading this file, after all) there seems to be a
|
||||||
(root-dir* (directory-file-name root-dir)))
|
;; strange problem where this code "escapes" to some other buffers,
|
||||||
(unless (boundp 'geiser-guile-load-path)
|
;; at least vc-mode. See:
|
||||||
(defvar geiser-guile-load-path '()))
|
;; https://lists.gnu.org/archive/html/guix-devel/2020-11/msg00296.html
|
||||||
(make-local-variable 'geiser-guile-load-path)
|
;; (TODO: add/replace with upstream emacs bug link when reported)
|
||||||
(require 'cl-lib)
|
;; Hence the following "when", which might otherwise be unnecessary;
|
||||||
(cl-pushnew root-dir* geiser-guile-load-path
|
;; it prevents causing an error when root-dir-unexpanded is nil.
|
||||||
:test #'string-equal)))))
|
(when root-dir-unexpanded
|
||||||
|
(let* ((root-dir (expand-file-name root-dir-unexpanded))
|
||||||
|
;; 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)
|
||||||
|
(require 'cl-lib)
|
||||||
|
(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
|
||||||
|
|
Loading…
Reference in a new issue