emacs-diffs
[Top][All Lists]
Advanced

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

master 76ba00a 1/2: Add :company-kind support to css-mode completion


From: Dmitry Gutov
Subject: master 76ba00a 1/2: Add :company-kind support to css-mode completion
Date: Fri, 14 May 2021 20:29:01 -0400 (EDT)

branch: master
commit 76ba00a1619d6bed27bc26578ffda6f4b43a4c6b
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>

    Add :company-kind support to css-mode completion
    
    * lisp/textmodes/css-mode.el (css--complete-pseudo-element-or-class)
    (css--complete-property-value, css-completion-at-point)
    (css--complete-at-rule): Add :company-kind properties, to annotate
    completions with kinds returned in each case.
---
 lisp/textmodes/css-mode.el | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 47b0b51..879c24a 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -1310,7 +1310,8 @@ for determining whether point is within a selector."
         (list (point) pos
               (if (eq (char-before (- (point) 1)) ?\:)
                   css-pseudo-element-ids
-                css-pseudo-class-ids))))))
+                css-pseudo-class-ids)
+              :company-kind (lambda (_) 'function))))))
 
 (defun css--complete-at-rule ()
   "Complete at-rule (statement beginning with `@') at point."
@@ -1318,7 +1319,8 @@ for determining whether point is within a selector."
     (let ((pos (point)))
       (skip-chars-backward "-[:alnum:]")
       (when (eq (char-before) ?\@)
-        (list (point) pos css--at-ids)))))
+        (list (point) pos css--at-ids
+              :company-kind (lambda (_) 'keyword))))))
 
 (defvar css--property-value-cache
   (make-hash-table :test 'equal :size (length css-property-alist))
@@ -1366,7 +1368,8 @@ the string PROPERTY."
           (skip-chars-backward "[:graph:]")
           (list (point) end
                 (append '("inherit" "initial" "unset")
-                        (css--property-values (car property)))))))))
+                        (css--property-values (car property)))
+                :company-kind (lambda (_) 'value)))))))
 
 (defvar css--html-tags (mapcar #'car html-tag-alist)
   "List of HTML tags.
@@ -1435,6 +1438,8 @@ tags, classes and IDs."
                     (list prop-beg prop-end)
                   (list sel-beg sel-end))
               ,(completion-table-merge prop-table sel-table)
+              :company-kind
+              ,(lambda (s) (if (test-completion s prop-table) 'property 
'keyword))
               :exit-function
               ,(lambda (string status)
                  (and (eq status 'finished)



reply via email to

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