diff --git a/modules/lang/common-lisp/autoload/common-lisp.el b/modules/lang/common-lisp/autoload/common-lisp.el index 087ae51b2..b40de3e51 100644 --- a/modules/lang/common-lisp/autoload/common-lisp.el +++ b/modules/lang/common-lisp/autoload/common-lisp.el @@ -37,4 +37,8 @@ (defun +lisp/find-file-in-quicklisp () "Find a file belonging to a library downloaded by Quicklisp." (interactive) - (doom-project-find-file "~/.quicklisp/dists/")) + (doom-project-find-file + (or (cl-loop for dir in +lisp-quicklisp-paths + if (file-directory-p dir) + return (expand-file-name "dists/" dir)) + (user-error "Couldn't find your Quicklisp directory (customize `+lisp-quicklisp-paths')")))) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index 8f866be0c..0044697f7 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -1,5 +1,9 @@ ;;; lang/common-lisp/config.el -*- lexical-binding: t; -*- +(defcustom +lisp-quicklisp-paths '("~/quicklisp" "~/.quicklisp") + "A list of directories to search for Quicklisp's site files." + :type '(repeat directory)) + ;; `lisp-mode' is loaded at startup. In order to lazy load its config we need to ;; pretend it isn't loaded (defer-feature! lisp-mode)