[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/cape 7f22485d61: Add cape-capf-accept-all Capf transfor
From: |
ELPA Syncer |
Subject: |
[elpa] externals/cape 7f22485d61: Add cape-capf-accept-all Capf transformer |
Date: |
Thu, 28 Apr 2022 05:57:20 -0400 (EDT) |
branch: externals/cape
commit 7f22485d61ddee0063493a25d9800c67421d8a0a
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Add cape-capf-accept-all Capf transformer
---
README.org | 1 +
cape.el | 14 ++++++++++++++
2 files changed, 15 insertions(+)
diff --git a/README.org b/README.org
index dedd3320de..9a15c72dc1 100644
--- a/README.org
+++ b/README.org
@@ -217,6 +217,7 @@ achieve a similarly refreshing strategy.
** Other Capf transformers
- ~cape-interactive-capf~: Create a Capf which can be called interactively.
+- ~cape-wrap-accept-all~, ~cape-capf-accept-all~: Create a Capf which accepts
every input as valid.
- ~cape-wrap-silent~, ~cape-capf-silent~: Wrap a chatty Capf and silence it.
- ~cape-wrap-purify~, ~cape-capf-purify~: Purify a broken Capf and ensure that
it does not modify the buffer.
- ~cape-wrap-noninterruptible~, ~cape-capf-noninterruptible:~ Protect a Capf
which does not like to be interrupted.
diff --git a/cape.el b/cape.el
index fe0376460e..a216a998b6 100644
--- a/cape.el
+++ b/cape.el
@@ -108,6 +108,11 @@ The buffers are scanned for completion candidates by
`cape-line'."
(let ((completion-at-point-functions (list capf)))
(or (completion-at-point) (user-error "%s: No completions" capf))))
+(defun cape--accept-all-table (table)
+ "Create completion TABLE which accepts all input."
+ (lambda (str pred action)
+ (or (eq action 'lambda) (complete-with-action action table str pred))))
+
(defun cape--noninterruptible-table (table)
"Create non-interruptible completion TABLE."
(lambda (str pred action)
@@ -728,11 +733,20 @@ If the prefix is long enough, enforce auto completion."
(funcall capf))
(buffer-read-only nil))))
+;;;###autoload
+(defun cape-wrap-accept-all (capf)
+ "Call CAPF and return a completion table which accepts every input."
+ (pcase (funcall capf)
+ (`(,beg ,end ,table . ,plist)
+ `(,beg ,end ,(cape--accept-all-table table) . ,plist))))
+
(defmacro cape--capf-wrapper (wrapper)
"Create a capf transformer for WRAPPER."
`(defun ,(intern (format "cape-capf-%s" wrapper)) (&rest args)
(lambda () (apply #',(intern (format "cape-wrap-%s" wrapper)) args))))
+;;;###autoload (autoload 'cape-capf-accept-all "cape")
+(cape--capf-wrapper accept-all)
;;;###autoload (autoload 'cape-capf-buster "cape")
(cape--capf-wrapper buster)
;;;###autoload (autoload 'cape-capf-case-fold "cape")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/cape 7f22485d61: Add cape-capf-accept-all Capf transformer,
ELPA Syncer <=