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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/cape d3e4d152ac 024/146: Add cape-symbol


From: ELPA Syncer
Subject: [elpa] externals/cape d3e4d152ac 024/146: Add cape-symbol
Date: Sun, 9 Jan 2022 20:57:39 -0500 (EST)

branch: externals/cape
commit d3e4d152ac1081e227c4cc827c1a4be823af04cb
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Add cape-symbol
---
 README.org |  3 ++-
 cape.el    | 21 +++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index d611033ce0..6960abb67d 100644
--- a/README.org
+++ b/README.org
@@ -46,8 +46,9 @@ this package should be upstreamed into Emacs itself.
            ("C-c p t" . complete-tag)        ;; etags
            ("C-c p f" . cape-file)
            ("C-c p k" . cape-keyword)
+           ("C-c p s" . cape-symbol)
            ("C-c p a" . cape-abbrev)
-           ("C-c p s" . cape-ispell)
+           ("C-c p i" . cape-ispell)
            ("C-c p w" . cape-dict))
     :init
     ;; Add `completion-at-point-functions', used by `completion-at-point'.
diff --git a/cape.el b/cape.el
index f19889ef49..066df7dbd8 100644
--- a/cape.el
+++ b/cape.el
@@ -321,6 +321,27 @@
   (interactive)
   (cape--complete-in-region 'filename #'read-file-name-internal 
cape--file-properties))
 
+(defvar cape--symbol-properties
+  (list :annotation-function (lambda (_) " Symbol")
+        :company-kind #'cape--symbol-kind))
+
+(defun cape--symbol-kind (sym)
+  "Return kind of SYM."
+  (setq sym (intern-soft sym))
+  (cond
+   ((or (macrop sym) (special-form-p sym)) 'keyword)
+   ((fboundp sym) 'function)
+   ((boundp sym) 'variable)
+   ((featurep sym) 'module)
+   ((facep sym) 'color)
+   (t 'text)))
+
+;;;###autoload
+(defun cape-symbol ()
+  "Complete symbol at point."
+  (interactive)
+  (cape--complete-in-region 'symbol obarray cape--symbol-properties))
+
 (defvar cape--dabbrev-properties
   (list :annotation-function (lambda (_) " Dabbrev")
         :company-kind (lambda (_) 'text)))



reply via email to

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