[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/6] emacs: Make 'guix-find-location' interactive.
From: |
Alex Kost |
Subject: |
[PATCH 3/6] emacs: Make 'guix-find-location' interactive. |
Date: |
Mon, 4 Apr 2016 22:47:43 +0300 |
* emacs/guix-location.el (guix-find-location): Make interactive. Adjust
to handle "reduced" locations (without line and column numbers).
---
emacs/guix-location.el | 34 ++++++++++++++++++++++------------
1 file changed, 22 insertions(+), 12 deletions(-)
diff --git a/emacs/guix-location.el b/emacs/guix-location.el
index c6f9b86..d28d5ef 100644
--- a/emacs/guix-location.el
+++ b/emacs/guix-location.el
@@ -56,24 +56,34 @@ For the meaning of location, see `guix-find-location'."
(guix-eval-read (guix-make-guile-expression
'package-location-string id-or-name)))
+
+;;; Interactive commands
+
+;;;###autoload
(defun guix-find-location (location &optional directory)
"Go to LOCATION of a package.
LOCATION is a string of the form:
- \"PATH:LINE:COLUMN\"
+ \"FILE:LINE:COLUMN\"
+
+If FILE is relative, it is considered to be relative to
+DIRECTORY (`guix-directory' by default).
-If PATH is relative, it is considered to be relative to
-DIRECTORY (`guix-directory' by default)."
- (cl-multiple-value-bind (path line col)
+Interactively, prompt for LOCATION. With prefix argument, prompt
+for DIRECTORY as well."
+ (interactive
+ (list (guix-read-package-location)
+ (guix-read-directory)))
+ (cl-multiple-value-bind (file line column)
(split-string location ":")
- (let ((file (expand-file-name path (or directory guix-directory)))
- (line (string-to-number line))
- (col (string-to-number col)))
- (find-file file)
- (goto-char (point-min))
- (forward-line (- line 1))
- (move-to-column col)
- (recenter 1))))
+ (find-file (expand-file-name file (or directory guix-directory)))
+ (when (and line column)
+ (let ((line (string-to-number line))
+ (column (string-to-number column)))
+ (goto-char (point-min))
+ (forward-line (- line 1))
+ (move-to-column column)
+ (recenter 1)))))
;;;###autoload
(defun guix-edit (id-or-name &optional directory)
--
2.7.3
- [PATCH 0/6] emacs: Add interface for package locations., Alex Kost, 2016/04/04
- [PATCH 3/6] emacs: Make 'guix-find-location' interactive.,
Alex Kost <=
- [PATCH 2/6] emacs: Separate package location code., Alex Kost, 2016/04/04
- [PATCH 1/6] emacs: Add 'guix-packages-by-location' command., Alex Kost, 2016/04/04
- Re: [PATCH 1/6] emacs: Add 'guix-packages-by-location' command., Ludovic Courtès, 2016/04/05
- Re: [PATCH 1/6] emacs: Add 'guix-packages-by-location' command., Alex Kost, 2016/04/06
- Re: [PATCH 1/6] emacs: Add 'guix-packages-by-location' command., Ludovic Courtès, 2016/04/15
- Re: [PATCH 1/6] emacs: Add 'guix-packages-by-location' command., Alex Kost, 2016/04/17
- Re: [PATCH 1/6] emacs: Add 'guix-packages-by-location' command., Ludovic Courtès, 2016/04/17
- Re: [PATCH 1/6] emacs: Add 'guix-packages-by-location' command., Alex Kost, 2016/04/18