[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/eglot2emacs e72fa6d867 082/120: Experiment with grouping in xref
From: |
João Távora |
Subject: |
feature/eglot2emacs e72fa6d867 082/120: Experiment with grouping in xref-backend-identifier-completion-table |
Date: |
Thu, 20 Oct 2022 07:17:00 -0400 (EDT) |
branch: feature/eglot2emacs
commit e72fa6d86764027d1c071b73cc83aef8d4d344de
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Experiment with grouping in xref-backend-identifier-completion-table
Doesn't look very good.
* eglot.el (xref-backend-identifier-completion-table): Add stuff.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/131
---
lisp/progmodes/eglot.el | 38 ++++++++++++++++++++++++++++++++++----
1 file changed, 34 insertions(+), 4 deletions(-)
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index b17bfd1b5c..eccd67c129 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/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)))))
- feature/eglot2emacs 5b88ec259c 026/120: Change from symbol-at-point to thing-at-point, (continued)
- feature/eglot2emacs 5b88ec259c 026/120: Change from symbol-at-point to thing-at-point, João Távora, 2022/10/20
- feature/eglot2emacs 3aeebe8186 037/120: Change rust language server to rust-analyzer, João Távora, 2022/10/20
- feature/eglot2emacs ed4fd33223 043/120: * eglot.el (eglot-handle-notification): silence byte-compiler., João Távora, 2022/10/20
- feature/eglot2emacs 5b62d0071e 040/120: Enable lsp project-wide diagnostics via flymake, João Távora, 2022/10/20
- feature/eglot2emacs 5d2f6bc667 055/120: Map more emacs variables to lsp formattingoptions fields, João Távora, 2022/10/20
- feature/eglot2emacs c06860b0f4 022/120: Bump eglot version to 1.8, João Távora, 2022/10/20
- feature/eglot2emacs 97ded82277 033/120: ; * eglot.el: move obsolete definition to new section., João Távora, 2022/10/20
- feature/eglot2emacs a905bad633 024/120: * eglot.el: improve commentary section., João Távora, 2022/10/20
- feature/eglot2emacs f550342059 069/120: Add out-of-box support for purescript lsp server, João Távora, 2022/10/20
- feature/eglot2emacs f8344871a0 075/120: Update docstring of eglot-events-buffer-size, João Távora, 2022/10/20
- feature/eglot2emacs e72fa6d867 082/120: Experiment with grouping in xref-backend-identifier-completion-table,
João Távora <=
- feature/eglot2emacs fd5a5f16d7 081/120: Make c-u m-. work half decently, João Távora, 2022/10/20
- feature/eglot2emacs 6c8aee268d 079/120: Prevent desktop.el from saving/restoring eglot--managed-mode, João Távora, 2022/10/20
- feature/eglot2emacs 41a42e631b 096/120: Don't return poorly supported "special elements" in eglot-imenu, João Távora, 2022/10/20
- feature/eglot2emacs f06a837f29 109/120: Shoosh byte-compilation warnings about line numbering functions, João Távora, 2022/10/20
- feature/eglot2emacs 806734c1b1 119/120: Expose eglot-{} to be used in eglot-workspace-configuration, João Távora, 2022/10/20
- feature/eglot2emacs 426d97f172 001/120: ; prefer https to http addresses, João Távora, 2022/10/20
- feature/eglot2emacs fb8706165c 004/120: Use fortls also for fortran-mode, João Távora, 2022/10/20
- feature/eglot2emacs a218f52ec9 012/120: Un-reverse references in xref buffer, João Távora, 2022/10/20
- feature/eglot2emacs be1e214fb2 013/120: Add cmake-language-server for cmake-mode, João Távora, 2022/10/20
- feature/eglot2emacs 512d8b9f59 011/120: Add variable to withhold the init req process id, João Távora, 2022/10/20