[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
06/12: emacs: Add and use 'guix-concat-strings'.
From: |
Alex Kost |
Subject: |
06/12: emacs: Add and use 'guix-concat-strings'. |
Date: |
Fri, 14 Aug 2015 08:18:15 +0000 |
alezost pushed a commit to branch wip-emacs-popup-ui
in repository guix.
commit 9170cbefbf65f404674d6d34b3a9d1672cb55ca9
Author: Alex Kost <address@hidden>
Date: Wed Aug 12 15:44:22 2015 +0300
emacs: Add and use 'guix-concat-strings'.
* emacs/guix-utils.el (guix-concat-strings): New function.
* emacs/guix-pcomplete.el (guix-pcomplete-short-options): Use it.
* emacs/guix-base.el (guix-get-package-strings): Likewise.
---
emacs/guix-base.el | 2 +-
emacs/guix-pcomplete.el | 2 +-
emacs/guix-utils.el | 16 ++++++++++++++++
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/emacs/guix-base.el b/emacs/guix-base.el
index 1d66f42..6505c63 100644
--- a/emacs/guix-base.el
+++ b/emacs/guix-base.el
@@ -947,7 +947,7 @@ ENTRIES is a list of package entries to get info about
packages."
(concat (guix-get-full-name entry)
(when outputs
(concat ":"
- (mapconcat #'identity outputs ",")))
+ (guix-concat-strings outputs ",")))
(when location
(concat "\t(" location ")")))))))
specs)))
diff --git a/emacs/guix-pcomplete.el b/emacs/guix-pcomplete.el
index 99bc29f..fe1b1ef 100644
--- a/emacs/guix-pcomplete.el
+++ b/emacs/guix-pcomplete.el
@@ -146,7 +146,7 @@ subcommands, actions, etc. for this guix COMMAND."
"Return a string with available short options for guix COMMAND."
guix-pcomplete-parse-short-option-regexp
(lambda (list)
- (mapconcat #'identity list "")))
+ (guix-concat-strings list "")))
(guix-memoized-defun guix-pcomplete-all-packages ()
"Return a list of all available Guix packages."
diff --git a/emacs/guix-utils.el b/emacs/guix-utils.el
index 3343d41..8960630 100644
--- a/emacs/guix-utils.el
+++ b/emacs/guix-utils.el
@@ -128,6 +128,22 @@ split it into several short lines."
(fill-region (point-min) (point-max)))
(buffer-string)))
+(defun guix-concat-strings (strings separator &optional location)
+ "Return new string by concatenating STRINGS with SEPARATOR.
+If LOCATION is a symbol `head', add another SEPARATOR to the
+beginning of the returned string; if `tail' - add SEPARATOR to
+the end of the string; if nil, do not add SEPARATOR; otherwise
+add both to the end and to the beginning."
+ (let ((str (mapconcat #'identity strings separator)))
+ (cond ((null location)
+ str)
+ ((eq location 'head)
+ (concat separator str))
+ ((eq location 'tail)
+ (concat str separator))
+ (t
+ (concat separator str separator)))))
+
(defun guix-completing-read-multiple (prompt table &optional predicate
require-match initial-input
hist def inherit-input-method)
- branch wip-emacs-popup-ui created (now 220f64d), Alex Kost, 2015/08/14
- 01/12: guix lint: Export checkers and <lint-checker> accessors., Alex Kost, 2015/08/14
- 02/12: emacs: Add 'guix-lint-checker-names'., Alex Kost, 2015/08/14
- 05/12: emacs: Add 'guix-any'., Alex Kost, 2015/08/14
- 03/12: emacs: Add 'guix-package-names'., Alex Kost, 2015/08/14
- 04/12: emacs: Add and use 'guix-while-search'., Alex Kost, 2015/08/14
- 06/12: emacs: Add and use 'guix-concat-strings'.,
Alex Kost <=
- 09/12: emacs: Add code for executing guix commands in REPL., Alex Kost, 2015/08/14
- 10/12: emacs: Add "guix-popup.el"., Alex Kost, 2015/08/14
- 08/12: emacs: Add minibuffer readers., Alex Kost, 2015/08/14
- 07/12: emacs: Move help variables to "guix-help-vars.el"., Alex Kost, 2015/08/14
- 11/12: doc: Reorganize "Emacs Interface" node., Alex Kost, 2015/08/14
- 12/12: emacs: Add popup interface for guix commands., Alex Kost, 2015/08/14