[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/04: emacs: Add completions for 'guix graph'.
From: |
Alex Kost |
Subject: |
04/04: emacs: Add completions for 'guix graph'. |
Date: |
Thu, 27 Aug 2015 15:15:17 +0000 |
alezost pushed a commit to branch master
in repository guix.
commit f2638f0b379c69737ed3ff84a73d8eb16a5a6134
Author: Alex Kost <address@hidden>
Date: Thu Aug 27 17:50:01 2015 +0300
emacs: Add completions for 'guix graph'.
* emacs/guix-pcomplete.el (guix-pcomplete-parse-linter-regexp): Improve
and rename to ...
(guix-pcomplete-parse-list-regexp): ...this. New variable.
(guix-pcomplete-lint-checkers): Use it.
(guix-pcomplete-graph-types): New function.
(guix-pcomplete-complete-command-arg): Complete package names for
'guix graph' command.
(guix-pcomplete-complete-option-arg): Complete '-t/--type' option.
---
emacs/guix-pcomplete.el | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/emacs/guix-pcomplete.el b/emacs/guix-pcomplete.el
index cad1966..9ec563c 100644
--- a/emacs/guix-pcomplete.el
+++ b/emacs/guix-pcomplete.el
@@ -54,9 +54,10 @@ guix subcommand, system action, importer, etc.")
"-" (group (not (any "- "))))
"Regexp used to find short options.")
-(defvar guix-pcomplete-parse-linter-regexp
- (rx bol "- " (group (one-or-more (or wordchar "-"))))
- "Regexp used to find 'lint' checkers.")
+(defvar guix-pcomplete-parse-list-regexp
+ (rx bol (zero-or-more blank) "- "
+ (group (one-or-more (or wordchar "-"))))
+ "Regexp used to find various lists (lint checkers, graph types).")
(defvar guix-pcomplete-parse-regexp-group 1
"Parenthesized expression of regexps used to find commands and
@@ -169,10 +170,17 @@ subcommands, actions, etc. for this guix COMMAND."
(guix-memoized-defun guix-pcomplete-lint-checkers ()
"Return a list of all available lint checkers."
(guix-pcomplete-run-guix-and-search
- guix-pcomplete-parse-linter-regexp
+ guix-pcomplete-parse-list-regexp
guix-pcomplete-parse-regexp-group
"lint" "--list-checkers"))
+(guix-memoized-defun guix-pcomplete-graph-types ()
+ "Return a list of all available graph types."
+ (guix-pcomplete-run-guix-and-search
+ guix-pcomplete-parse-list-regexp
+ guix-pcomplete-parse-regexp-group
+ "graph" "--list-types"))
+
;;; Completing
@@ -254,8 +262,8 @@ group - the argument.")
"Complete argument for guix COMMAND."
(cond
((member command
- '("archive" "build" "edit" "environment" "lint" "refresh"
- "size"))
+ '("archive" "build" "graph" "edit" "environment"
+ "lint" "refresh" "size"))
(while t
(pcomplete-here (guix-pcomplete-all-packages))))
(t (pcomplete-here* (pcomplete-entries)))))
@@ -311,6 +319,10 @@ INPUT is the current partially completed string."
(option? "-r" "--root"))
(complete* (pcomplete-entries)))
+ ((and (command? "graph")
+ (option? "-t" "--type"))
+ (complete* (guix-pcomplete-graph-types)))
+
((and (command? "environment")
(option? "-l" "--load"))
(complete* (pcomplete-entries)))