summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2015-10-28 21:11:36 +0300
committerAlex Kost <alezost@gmail.com>2015-11-02 15:51:40 +0300
commit6407ce8ea1b67024e50273b7d6a1773a16a42322 (patch)
tree31b1547a930dff2b4536d4c82f160670b39b5c5a
parent762b1971d8e21ffbc46d28b37c9bace64c2369bc (diff)
emacs: Add completions for '--type' option of 'refresh' popup.
* guix/scripts/refresh.scm: Export '%updaters'. * emacs/guix-main.scm (refresh-updater-names): New procedure. * emacs/guix-base.el (guix-refresh-updater-names): New function. * emacs/guix-read.el (guix-read-refresh-updater-names, guix-read-refresh-updater-names-string): New functions. * emacs/guix-command.el (guix-command-improve-refresh-argument): Use 'guix-read-refresh-updater-names-string'.
-rw-r--r--emacs/guix-base.el4
-rw-r--r--emacs/guix-command.el1
-rw-r--r--emacs/guix-main.scm5
-rw-r--r--emacs/guix-read.el6
-rw-r--r--guix/scripts/refresh.scm3
5 files changed, 18 insertions, 1 deletions
diff --git a/emacs/guix-base.el b/emacs/guix-base.el
index 2e99c545f0..14ea3d4458 100644
--- a/emacs/guix-base.el
+++ b/emacs/guix-base.el
@@ -186,6 +186,10 @@ For the meaning of location, see `guix-find-location'."
"Return a list of names of available graph node types."
(guix-eval-read (guix-make-guile-expression 'graph-type-names)))
+(guix-memoized-defun guix-refresh-updater-names ()
+ "Return a list of names of available refresh updater types."
+ (guix-eval-read (guix-make-guile-expression 'refresh-updater-names)))
+
(guix-memoized-defun guix-lint-checker-names ()
"Return a list of names of available lint checkers."
(guix-eval-read (guix-make-guile-expression 'lint-checker-names)))
diff --git a/emacs/guix-command.el b/emacs/guix-command.el
index 36ce7bcb09..f8a6df7c6a 100644
--- a/emacs/guix-command.el
+++ b/emacs/guix-command.el
@@ -241,6 +241,7 @@ to be modified."
(guix-command-define-argument-improver
guix-command-improve-refresh-argument
'(("--select" :fun guix-read-refresh-subset)
+ ("--type" :fun guix-read-refresh-updater-names-string)
("--key-server" :char ?S)))
(guix-command-define-argument-improver
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index e29a0a0acc..9eac5185b7 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -991,6 +991,11 @@ Return #t if the shell command was executed successfully."
"Return a list of names of available graph node types."
(map node-type-name %node-types))
+(define (refresh-updater-names)
+ "Return a list of names of available refresh updater types."
+ (map (@ (guix upstream) upstream-updater-name)
+ (@ (guix scripts refresh) %updaters)))
+
(define (lint-checker-names)
"Return a list of names of available lint checkers."
(map (lambda (checker)
diff --git a/emacs/guix-read.el b/emacs/guix-read.el
index 5a7201c3aa..e60af9c2f7 100644
--- a/emacs/guix-read.el
+++ b/emacs/guix-read.el
@@ -137,6 +137,12 @@ keywords are available:
:single-prompt "Refresh subset: ")
(guix-define-readers
+ :completions-getter guix-refresh-updater-names
+ :multiple-reader guix-read-refresh-updater-names
+ :multiple-prompt "Refresh updater,s: "
+ :multiple-separator ",")
+
+(guix-define-readers
:completions-var guix-help-key-policies
:single-reader guix-read-key-policy
:single-prompt "Key policy: ")
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index 04f6b76edc..0df4121d0a 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -42,7 +42,8 @@
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-37)
#:use-module (rnrs io ports)
- #:export (guix-refresh))
+ #:export (guix-refresh
+ %updaters))
;;;