[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/bash-completion ba83e81651 053/313: bash-completion-genera
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/bash-completion ba83e81651 053/313: bash-completion-generate-line |
Date: |
Sat, 3 Dec 2022 10:59:15 -0500 (EST) |
branch: elpa/bash-completion
commit ba83e8165195cd37be6f2101a0e0bd5ae14bfb99
Author: Stephane Zermatten <szermatt@gmx.net>
Commit: Stephane Zermatten <szermatt@gmx.net>
bash-completion-generate-line
---
bash-completion.el | 53 +++++++++++++++++++++++++++++++----------------------
1 file changed, 31 insertions(+), 22 deletions(-)
diff --git a/bash-completion.el b/bash-completion.el
index 1ecfecc816..4649607009 100644
--- a/bash-completion.el
+++ b/bash-completion.el
@@ -407,29 +407,38 @@ The result is a list of candidates, which might be empty."
(concat
(bash-completion-cd-command-prefix)
(let* ( (command-name (file-name-nondirectory (car words)))
- (compgen-args (cdr (assoc command-name bash-completion-alist))) )
- (if (not compgen-args)
- ;; no custom completion. use default completion
- (if (= cword 0)
- ;; a command. let emacs expand executable, let bash
- ;; expand builtins, aliases and functions
- (concat (bash-completion-join (list "compgen" "-S" " " "-b" "-a"
"-A" "function" (car words))))
- ;; argument
- (bash-completion-join (list "compgen" "-o" "default" (nth cword
words))))
- ;; custom completion
+ (compgen-args (cdr (assoc command-name bash-completion-alist)))
+ (stub (nth cword words)) )
+ (cond
+ ((= cword 0)
+ ;; a command. let emacs expand executable, let bash
+ ;; expand builtins, aliases and functions
+ (concat "compgen -S ' ' -b -a -A function " stub))
+
+ ((not compgen-args)
+ ;; no completion configured for this command
+ (bash-completion-join (list "compgen" "-o" "default" stub)))
+
+ ((or (member "-F" compgen-args) (member "-C" compgen-args))
+ ;; custom completion with a function of command
(let* ( (args (copy-tree compgen-args))
- (function (or (member "-F" args) (member "-C" args))) )
- (if function
- (let ((function-name (car (cdr function))))
- (setcar function "-F")
- (setcar (cdr function) "__bash_complete_wrapper")
- (format "__BASH_COMPLETE_WRAPPER=%s compgen %s -- %s"
- (bash-completion-quote (format "COMP_LINE=%s;
COMP_POINT=%s; COMP_CWORD=%s; COMP_WORDS=( %s ); %s \"${COMP_WORDS[@]}\""
- (bash-completion-quote
line) pos cword (bash-completion-join words)
- (bash-completion-quote
function-name)))
- (bash-completion-join args)
- (bash-completion-quote (nth cword words))))
- (format "compgen %s -- %s" (bash-completion-join args) (nth cword
words))))))))
+ (function (or (member "-F" args) (member "-C" args)))
+ (function-name (car (cdr function))) )
+ (setcar function "-F")
+ (setcar (cdr function) "__bash_complete_wrapper")
+ (format "__BASH_COMPLETE_WRAPPER=%s compgen %s -- %s"
+ (bash-completion-quote
+ (format "COMP_LINE=%s; COMP_POINT=%s; COMP_CWORD=%s;
COMP_WORDS=( %s ); %s \"${COMP_WORDS[@]}\""
+ (bash-completion-quote line)
+ pos
+ cword
+ (bash-completion-join words)
+ (bash-completion-quote function-name)))
+ (bash-completion-join args)
+ (bash-completion-quote stub))))
+ (t
+ ;; simple custom completion
+ (format "compgen %s -- %s" (bash-completion-join compgen-args)
stub))))))
(defun bash-completion-reset ()
(interactive)
- [nongnu] branch elpa/bash-completion created (now 8e9c20dbfe), ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 7dc290e1c7 003/313: exclude quotes from result, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 540f8f516a 011/313: build bash cmdline, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 6eebe8f965 016/313: cleaned up process launch, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 34d11220dd 024/313: add prefix if missing, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 3036ef0394 028/313: disable quote_readline to get good whitespace handling for bash 3.2 at least, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion ba83e81651 053/313: bash-completion-generate-line,
ELPA Syncer <=
- [nongnu] elpa/bash-completion f7bfc68ea2 001/313: bash completion, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion f5885ec87a 002/313: test case for bash-complete, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 208cb5ab76 007/313: Join, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 47a890dd72 010/313: launch process, send commands, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 53f2c5d30e 009/313: parse complete -p output, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 11e52fce6f 018/313: Fixed initialization, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion c10cfef5b8 015/313: complex line split, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion b5c2fbf4a2 014/313: add hooks, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 9eb026ae0b 025/313: fixed current directory for adding slash, workaround for bash ~ expansion, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 02d1acf260 030/313: wordbreaks, ELPA Syncer, 2022/12/03