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

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

[elpa] externals/eglot ae7261c1fe 02/15: Per #131: Experiment with group


From: ELPA Syncer
Subject: [elpa] externals/eglot ae7261c1fe 02/15: Per #131: Experiment with grouping in xref-backend-identifier-completion-table
Date: Sun, 24 Jul 2022 14:57:34 -0400 (EDT)

branch: externals/eglot
commit ae7261c1fea0cda9810ccdb95f77a1b0b52f4115
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>

    Per #131: Experiment with grouping in 
xref-backend-identifier-completion-table
    
    Doesn't look very good.
    
    * eglot.el (xref-backend-identifier-completion-table): Add stuff.
---
 eglot.el | 38 ++++++++++++++++++++++++++++++++++----
 1 file changed, 34 insertions(+), 4 deletions(-)

diff --git a/eglot.el b/eglot.el
index b17bfd1b5c..eccd67c129 100644
--- a/eglot.el
+++ b/eglot.el
@@ -2416,12 +2416,42 @@ Try to visit the target file for a richer summary line."
                       (let* ((cache eglot--workspace-symbols-cache)
                              (probe (gethash pat cache :missing)))
                         (if (eq probe :missing) (puthash pat (refresh pat) 
cache)
-                          probe))))
+                          probe)))
+                    (container (c)
+                      (plist-get (get-text-property
+                                  0 'eglot--lsp-workspaceSymbol c)
+                                 :containerName)))
           (lambda (string _pred action)
             (pcase action
-              (`metadata '(metadata
-                           (display-sort-function . identity)
-                           (category . eglot-indirection-joy)))
+              (`metadata `(metadata
+                           (cycle-sort-function
+                            . ,(lambda (completions)
+                                 (cl-sort completions
+                                          #'string-lessp
+                                          :key (lambda (c)
+                                                 (or (container c)
+                                                     "")))))
+                           (category . eglot-indirection-joy)
+                           ;; (annotation-function
+                           ;;  . ,(lambda (c)
+                           ;;       (plist-get (get-text-property
+                           ;;                   0 'eglot--lsp-workspaceSymbol 
c)
+                           ;;                  :containerName)))
+                           ;; (affixation-function
+                           ;;  . ,(lambda (comps)
+                           ;;       (mapcar (lambda (c)
+                           ;;                 (list c
+                           ;;                       (plist-get 
(get-text-property
+                           ;;                                   0 
'eglot--lsp-workspaceSymbol c)
+                           ;;                                  :containerName)
+                           ;;                       " bla"))
+                           ;;               comps)))
+                           (group-function
+                            . ,(lambda (c transformp)
+                                 (if (not transformp)
+                                     (container c)
+                                   c)))
+                           ))
               (`(eglot--lsp-tryc . ,point) `(eglot--lsp-tryc . (,string . 
,point)))
               (`(eglot--lsp-allc . ,_point) `(eglot--lsp-allc . ,(lookup 
string)))
               (_ nil)))))



reply via email to

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