emacs-elpa-diffs
[Top][All Lists]
Advanced

[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)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]