summaryrefslogtreecommitdiff
path: root/emacs/guix-emacs.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/guix-emacs.el')
-rw-r--r--emacs/guix-emacs.el21
1 files changed, 18 insertions, 3 deletions
diff --git a/emacs/guix-emacs.el b/emacs/guix-emacs.el
index 2f809ed16e..37a0bb26d3 100644
--- a/emacs/guix-emacs.el
+++ b/emacs/guix-emacs.el
@@ -1,6 +1,6 @@
;;; guix-emacs.el --- Emacs packages installed with Guix
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@@ -24,8 +24,17 @@
;;; Code:
-(require 'guix-profiles)
(require 'cl-lib)
+(unless (require 'guix-profiles nil t)
+ (defvar guix-user-profile (expand-file-name "~/.guix-profile")))
+
+(defcustom guix-package-enable-at-startup t
+ "If non-nil, activate Emacs packages installed in a user profile.
+Set this variable to nil before requiring `guix-emacs' file to
+avoid loading autoloads of Emacs packages installed in
+`guix-user-profile'."
+ :type 'boolean
+ :group 'guix)
(defcustom guix-emacs-activate-after-operation t
"Activate Emacs packages after installing.
@@ -90,7 +99,9 @@ Return nil if there are no emacs packages installed in PROFILE."
"Load autoloads for Emacs packages installed in PROFILE.
If PROFILE is nil, use `guix-user-profile'.
Add autoloads directories to `load-path'."
- (interactive (list (guix-profile-prompt)))
+ (interactive (list (if (fboundp 'guix-profile-prompt)
+ (funcall 'guix-profile-prompt)
+ guix-user-profile)))
(let* ((autoloads (guix-emacs-find-autoloads profile))
(new-autoloads (cl-nset-difference autoloads
guix-emacs-autoloads
@@ -114,6 +125,10 @@ See `guix-emacs-activate-after-operation' for details."
;; profile will not be loaded).
(guix-emacs-load-autoloads guix-current-profile)))
+(when guix-package-enable-at-startup
+ (add-to-list 'load-path (guix-emacs-directory))
+ (guix-emacs-load-autoloads))
+
(provide 'guix-emacs)
;;; guix-emacs.el ends here