From 79c7a8f214707c98c1ea1936fd62baec41177a81 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 1 Apr 2016 14:00:01 +0300 Subject: emacs: Separate package location code. * emacs/guix-base.el (guix-directory, guix-read-directory) (guix-set-directory): Move to "guix-backend.el". (guix-find-location, guix-package-location, guix-edit): Move to... * emacs/guix-location.el: ... here. New file. * emacs/guix-ui-package.el: Use it. * emacs.am (ELFILES): Add it. --- emacs/guix-backend.el | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'emacs/guix-backend.el') diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el index 8afbc9ed48..6341aacae1 100644 --- a/emacs/guix-backend.el +++ b/emacs/guix-backend.el @@ -82,7 +82,7 @@ If you have a slow system, try to increase this time." :type 'string :group 'guix-repl) -(defcustom guix-after-start-repl-hook () +(defcustom guix-after-start-repl-hook '(guix-set-directory) "Hook called after Guix REPL is started." :type 'hook :group 'guix-repl) @@ -336,6 +336,28 @@ additional internal REPL if it exists." (interactive "P") (geiser-repl--switch-to-buffer (guix-get-repl-buffer internal))) + +;;; Guix directory + +(defvar guix-directory nil + "Default directory with Guix source. +If it is not set by a user, it is set after starting Guile REPL. +This directory is used to define package locations.") + +(defun guix-read-directory () + "Return `guix-directory' or prompt for it. +This function is intended for using in `interactive' forms." + (if current-prefix-arg + (read-directory-name "Directory with Guix modules: " + guix-directory) + guix-directory)) + +(defun guix-set-directory () + "Set `guix-directory' if needed." + (or guix-directory + (setq guix-directory + (guix-eval-read "%guix-dir")))) + ;;; Evaluating expressions -- cgit v1.2.3