[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/cape caa5500e0b: Add cape-symbol-wrapper and cape--symb
From: |
ELPA Syncer |
Subject: |
[elpa] externals/cape caa5500e0b: Add cape-symbol-wrapper and cape--symbol-exit |
Date: |
Wed, 19 Oct 2022 06:57:23 -0400 (EDT) |
branch: externals/cape
commit caa5500e0bc766050794e922c88f23c352dcffbf
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Add cape-symbol-wrapper and cape--symbol-exit
---
cape.el | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/cape.el b/cape.el
index 4738af6b18..b3d96dd06a 100644
--- a/cape.el
+++ b/cape.el
@@ -94,6 +94,12 @@ The buffers are scanned for completion candidates by
`cape-line'."
(const :tag "Buffers with same major mode"
cape--buffers-major-mode)
(function :tag "Custom function")))
+(defcustom cape-symbol-wrapper
+ '((org-mode . ?=)
+ (markdown-mode . ?`))
+ "Wrapper characters for symbols."
+ :type '(alist :key-type symbol :value-type (choice character string)))
+
;;;; Helpers
(defmacro cape--silent (&rest body)
@@ -271,10 +277,22 @@ If INTERACTIVE is nil the function acts like a Capf."
(defvar cape--symbol-properties
(list :annotation-function #'cape--symbol-annotation
+ :exit-function #'cape--symbol-exit
:company-kind #'cape--symbol-kind
:exclusive 'no)
"Completion extra properties for `cape-symbol'.")
+(defun cape--symbol-exit (name status)
+ "Wrap symbol NAME with `cape-symbol-wrapper' buffers.
+STATUS is the exit status."
+ (when-let (((not (eq status 'exact)))
+ (c (cl-loop for (m . c) in cape-symbol-wrapper
+ if (derived-mode-p m) return c)))
+ (save-excursion
+ (backward-char (length name))
+ (insert c))
+ (insert c)))
+
(defun cape--symbol-kind (sym)
"Return kind of SYM."
(setq sym (intern-soft sym))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/cape caa5500e0b: Add cape-symbol-wrapper and cape--symbol-exit,
ELPA Syncer <=