From 821b4980caa0cc3379f0890c66cf05897229b0d5 Mon Sep 17 00:00:00 2001 From: mkcms Date: Mon, 24 Sep 2018 14:24:19 +0200 Subject: [PATCH] Correctly map DocumentSymbol's :kind to its name (#121) Previously we were mapping :kind in DocumentSymbol with names from the CompletionItemKind enum, whereas we should have used the SymbolKind enum. * eglot.el (eglot--symbol-kind-names): New variable. (eglot-imenu): Use it instead of eglot--kind-names. --- eglot.el | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/eglot.el b/eglot.el index 8e4be897..d2ec9291 100644 --- a/eglot.el +++ b/eglot.el @@ -718,6 +718,17 @@ Doubles as an indicator of snippet support." (13 . "Enum") (14 . "Keyword") (15 . "Snippet") (16 . "Color") (17 . "File") (18 . "Reference"))) +(defconst eglot--symbol-kind-names + `((1 . "File") (2 . "Module") + (3 . "Namespace") (4 . "Package") (5 . "Class") + (6 . "Method") (7 . "Property") (8 . "Field") + (9 . "Constructor") (10 . "Enum") (11 . "Interface") + (12 . "Function") (13 . "Variable") (14 . "Constant") + (15 . "String") (16 . "Number") (17 . "Boolean") + (18 . "Array") (19 . "Object") (20 . "Key") + (21 . "Null") (22 . "EnumMember") (23 . "Struct") + (24 . "Event") (25 . "Operator") (26 . "TypeParameter"))) + (defun eglot--format-markup (markup) "Format MARKUP according to LSP's spec." (pcase-let ((`(,string ,mode) @@ -1580,7 +1591,7 @@ If SKIP-SIGNATURE, don't try to send textDocument/signatureHelp." (mapcar (jsonrpc-lambda (&key name kind location _containerName) - (cons (propertize name :kind (cdr (assoc kind eglot--kind-names))) + (cons (propertize name :kind (cdr (assoc kind eglot--symbol-kind-names))) (eglot--lsp-position-to-point (plist-get (plist-get location :range) :start)))) (jsonrpc-request (eglot--current-server-or-lose)