[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/cape 833efc5e7d 1/2: Add cape-wrap-inside-code and cape
From: |
ELPA Syncer |
Subject: |
[elpa] externals/cape 833efc5e7d 1/2: Add cape-wrap-inside-code and cape-capf-inside-code |
Date: |
Tue, 30 Jan 2024 12:57:43 -0500 (EST) |
branch: externals/cape
commit 833efc5e7de3cd42530a8bf4790d774308e5656c
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Add cape-wrap-inside-code and cape-capf-inside-code
---
CHANGELOG.org | 4 ++++
README.org | 1 +
cape.el | 19 +++++++++++++------
3 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.org b/CHANGELOG.org
index f93d32f171..51ac1db608 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -2,6 +2,10 @@
#+author: Daniel Mendler
#+language: en
+* Development
+
+- Add =cape-wrap-inside-code= and =cape-capf-inside-code=.
+
* Version 1.2 (2024-01-23)
- =cape-capf-super=: Bugfixes.
diff --git a/README.org b/README.org
index 655f119b94..732f7188a9 100644
--- a/README.org
+++ b/README.org
@@ -255,6 +255,7 @@ the Capf transformers with =defalias= to a function symbol.
- ~cape-capf-accept-all~, ~cape-wrap-accept-all~: Create a Capf which accepts
every input as valid.
- ~cape-capf-case-fold~, ~cape-wrap-case-fold~: Create a Capf which is case
insensitive.
- ~cape-capf-debug~, ~cape-wrap-debug~: Create a Capf which prints debugging
messages.
+- ~cape-capf-inside-code~, ~cape-wrap-inside-code~: Ensure that Capf triggers
only inside code (not comments).
- ~cape-capf-inside-comment~, ~cape-wrap-inside-comment~: Ensure that Capf
triggers only inside comment.
- ~cape-capf-inside-faces~, ~cape-wrap-inside-faces~: Ensure that Capf
triggers only inside text with certain faces.
- ~cape-capf-inside-string~, ~cape-wrap-inside-string~: Ensure that Capf
triggers only inside a string literal.
diff --git a/cape.el b/cape.el
index ee336c555b..d231794402 100644
--- a/cape.el
+++ b/cape.el
@@ -1115,6 +1115,12 @@ This function can be used as an advice around an
existing Capf."
(memq fs faces))))
(funcall capf)))
+;;;###autoload
+(defun cape-wrap-inside-code (capf)
+ "Call CAPF only if inside not inside a comment.
+This function can be used as an advice around an existing Capf."
+ (and (not (nth 4 (syntax-ppss))) (funcall capf)))
+
;;;###autoload
(defun cape-wrap-inside-comment (capf)
"Call CAPF only if inside comment.
@@ -1161,6 +1167,7 @@ This function can be used as an advice around an existing
Capf."
;;;###autoload (autoload 'cape-capf-buster "cape")
;;;###autoload (autoload 'cape-capf-case-fold "cape")
;;;###autoload (autoload 'cape-capf-debug "cape")
+;;;###autoload (autoload 'cape-capf-inside-code "cape")
;;;###autoload (autoload 'cape-capf-inside-comment "cape")
;;;###autoload (autoload 'cape-capf-inside-faces "cape")
;;;###autoload (autoload 'cape-capf-inside-string "cape")
@@ -1176,12 +1183,12 @@ This function can be used as an advice around an
existing Capf."
(dolist (wrapper (list #'cape-wrap-accept-all #'cape-wrap-buster
#'cape-wrap-case-fold #'cape-wrap-debug
- #'cape-wrap-inside-comment #'cape-wrap-inside-faces
- #'cape-wrap-inside-string #'cape-wrap-nonexclusive
- #'cape-wrap-noninterruptible #'cape-wrap-passthrough
- #'cape-wrap-predicate #'cape-wrap-prefix-length
- #'cape-wrap-properties #'cape-wrap-purify
- #'cape-wrap-silent #'cape-wrap-super))
+ #'cape-wrap-inside-code #'cape-wrap-inside-comment
+ #'cape-wrap-inside-faces #'cape-wrap-inside-string
+ #'cape-wrap-nonexclusive #'cape-wrap-noninterruptible
+ #'cape-wrap-passthrough #'cape-wrap-predicate
+ #'cape-wrap-prefix-length #'cape-wrap-properties
+ #'cape-wrap-purify #'cape-wrap-silent
#'cape-wrap-super))
(let ((name (string-remove-prefix "cape-wrap-" (symbol-name wrapper))))
(defalias (intern (format "cape-capf-%s" name))
(lambda (capf &rest args) (lambda () (apply wrapper capf args)))