[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot 1f2b024 23/49: Close #605: Support activeParamete
From: |
Stefan Monnier |
Subject: |
[elpa] externals/eglot 1f2b024 23/49: Close #605: Support activeParameter property for SignatureInformation |
Date: |
Wed, 17 Mar 2021 18:41:46 -0400 (EDT) |
branch: externals/eglot
commit 1f2b0241ca24d78edbd146d17daef6a0e6b2e4f3
Author: Brian Leung <bkleung89@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Close #605: Support activeParameter property for SignatureInformation
SignatureInformation.activeParameter is new in version 3.16.0 of the
protocol. When non-nil, it is used in place of
SignatureHelp.activeParameter. The latter was deemed insufficient in
languages where multiple signatures for the same function may exist
with arbitrary order of parameters, like Python.
Co-authored-by: João Távora <joaotavora@gmail.com>
* eglot.el (eglot--lsp-interface-alist): Add
SignatureInformation.activeParameter.
* eglot.el (eglot--sig-info): Prioritize
SignatureInformation.activeParameter over
SignatureHelp.activeParameter.
---
eglot.el | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/eglot.el b/eglot.el
index 51ed1c4..27094a2 100644
--- a/eglot.el
+++ b/eglot.el
@@ -276,7 +276,7 @@ let the buffer grow forever."
(ShowMessageParams (:type :message))
(ShowMessageRequestParams (:type :message) (:actions))
(SignatureHelp (:signatures) (:activeSignature :activeParameter))
- (SignatureInformation (:label) (:documentation :parameters))
+ (SignatureInformation (:label) (:documentation :parameters
:activeParameter))
(SymbolInformation (:name :kind :location)
(:deprecated :containerName))
(DocumentSymbol (:name :range :selectionRange :kind)
@@ -2265,14 +2265,15 @@ is not active."
(if (vectorp contents) contents (list contents))
"\n")))
(when (or heading (cl-plusp (length body))) (concat heading body))))
-(defun eglot--sig-info (sigs active-sig active-param)
+(defun eglot--sig-info (sigs active-sig sig-help-active-param)
(cl-loop
for (sig . moresigs) on (append sigs nil) for i from 0
concat
- (eglot--dbind ((SignatureInformation) label documentation parameters) sig
+ (eglot--dbind ((SignatureInformation) label documentation parameters
activeParameter) sig
(with-temp-buffer
(save-excursion (insert label))
- (let (params-start params-end)
+ (let ((active-param (or activeParameter sig-help-active-param))
+ params-start params-end)
;; Ad-hoc attempt to parse label as <name>(<params>)
(when (looking-at "\\([^(]+\\)(\\([^)]+\\))")
(setq params-start (match-beginning 2) params-end (match-end 2))
- [elpa] externals/eglot 16bbf85 03/49: Fix #582: flex completion style is not available on Emacs < 27, (continued)
- [elpa] externals/eglot 16bbf85 03/49: Fix #582: flex completion style is not available on Emacs < 27, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot ceac05c 05/49: Fix #593: Unbreak interactivee eglot--connect for complex contact specs, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 83cd785 12/49: Fix #365: Fix eglot-completion-at-point for multiple matches, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 9da9d69 04/49: C-u M-x eglot discards class guessed by eglot--guess-contact, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 51f1320 09/49: Skip downloading GNU ELPA deps on make check by default, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 6370a1c 10/49: Fix some of eglot-tests.el for new Eldoc library, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 8761f86 11/49: Unbreak eglot-dcase test, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 0c4daa4 13/49: Fix #531: mention M-x eldoc as preferred documentation command, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot e5a9648 07/49: Fix #513: use `path-separator', not ":", in Eclipse/JDT custom code, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot e6ca70c 14/49: Close #599: add rnix-lsp server for nix-mode, community suggestion, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 1f2b024 23/49: Close #605: Support activeParameter property for SignatureInformation,
Stefan Monnier <=
- [elpa] externals/eglot 2fc0db8 33/49: Fix #467: make eglot-ignored-server-capabilites defcustom a set, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 1a54fc0 40/49: Per #627: URIfy better, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 7f2e680 38/49: Fix #627: handle empty actions array in window/showMessageRequest, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot d00dfe3 08/49: Fix #592: run exit-function only for finished completion, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 8305eed 18/49: * eglot.el (eglot): Tweak docstring grammar., Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 50b0e84 22/49: Fix #602: fully handle LSP glob syntax, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 550ffc2 34/49: Per #602: tweak glob-parsing grammar, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot 133c25e 24/49: Close #613: explicitly require seq.el, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot a43289e 25/49: Fix #616: also override global flymake-diagnostic-functions, Stefan Monnier, 2021/03/17
- [elpa] externals/eglot fc4c324 29/49: Fix #567: update elixir-ls link in README.md, Stefan Monnier, 2021/03/17