[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot 1d42be4 13/26: Close #173: support completionCont
From: |
João Távora |
Subject: |
[elpa] externals/eglot 1d42be4 13/26: Close #173: support completionContext to help servers like ccls |
Date: |
Sun, 9 Dec 2018 19:11:27 -0500 (EST) |
branch: externals/eglot
commit 1d42be42f46119164743c56dba95f715893c6a98
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
Close #173: support completionContext to help servers like ccls
* eglot.el (eglot-client-capabilities): Annouce
textDocument/completion/contextSupport.
(eglot--CompletionParams): New helper.
(eglot-completion-at-point): Use it.
---
eglot.el | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/eglot.el b/eglot.el
index b240e0e..ac10b43 100644
--- a/eglot.el
+++ b/eglot.el
@@ -374,7 +374,8 @@ treated as in `eglot-dbind'."
`(:snippetSupport
,(if (eglot--snippet-expansion-fn)
t
- :json-false)))
+ :json-false))
+ :contextSupport t)
:hover `(:dynamicRegistration :json-false)
:signatureHelp `(:dynamicRegistration :json-false)
:references `(:dynamicRegistration :json-false)
@@ -1374,6 +1375,19 @@ THINGS are either registrations or unregisterations."
(list :textDocument (eglot--TextDocumentIdentifier)
:position (eglot--pos-to-lsp-position)))
+(defun eglot--CompletionParams ()
+ (append
+ (eglot--TextDocumentPositionParams)
+ `(:context
+ ,(if-let (trigger (and (eq last-command 'self-insert-command)
+ (characterp last-input-event)
+ (cl-find last-input-event
+ (eglot--server-capable :completionProvider
+ :triggerCharacters)
+ :key (lambda (str) (aref str 0))
+ :test #'char-equal)))
+ `(:triggerKind 2 :triggerCharacter ,trigger) `(:triggerKind 1)))))
+
(defvar-local eglot--recent-changes nil
"Recent buffer changes as collected by `eglot--before-change'.")
@@ -1693,7 +1707,7 @@ is not active."
(lambda (_ignored)
(let* ((resp (jsonrpc-request server
:textDocument/completion
- (eglot--TextDocumentPositionParams)
+ (eglot--CompletionParams)
:deferred :textDocument/completion
:cancel-on-input t))
(items (if (vectorp resp) resp (plist-get resp :items))))
- [elpa] externals/eglot 81d035f 04/26: Fix #52: Use entire line as xref summary when available, (continued)
- [elpa] externals/eglot 81d035f 04/26: Fix #52: Use entire line as xref summary when available, João Távora, 2018/12/09
- [elpa] externals/eglot 96169d8 18/26: Per #173: fix bug introduced by previous fix, João Távora, 2018/12/09
- [elpa] externals/eglot 4874c22 14/26: Use javascript-typescript-langserver for typescript-mode (#174), João Távora, 2018/12/09
- [elpa] externals/eglot 66a1704 22/26: Scratch/use elpa flymake (#178), João Távora, 2018/12/09
- [elpa] externals/eglot f63bedb 20/26: Fix #144: Use eglot--dbind and eglot--lambda throughout, João Távora, 2018/12/09
- [elpa] externals/eglot 3922cf3 01/26: Per #144, #156: control strictness towards incoming LSP messages, João Távora, 2018/12/09
- [elpa] externals/eglot 8140be5 07/26: Touch up last commit, João Távora, 2018/12/09
- [elpa] externals/eglot 95ef9e1 08/26: Robustify tests against (M)ELPA eglot installations, João Távora, 2018/12/09
- [elpa] externals/eglot 38da3d3 15/26: Fix #159: Properly clear old diagnostics when making new ones, João Távora, 2018/12/09
- [elpa] externals/eglot 444a8c3 16/26: Per #173: robustify previous fix against non-standard insertion bindings, João Távora, 2018/12/09
- [elpa] externals/eglot 1d42be4 13/26: Close #173: support completionContext to help servers like ccls,
João Távora <=
- [elpa] externals/eglot e2200ce 09/26: Simplify interface of eglot--dbind macro, João Távora, 2018/12/09
- [elpa] externals/eglot c1848c3 23/26: Handle array params to server notification or requests, João Távora, 2018/12/09
- [elpa] externals/eglot 23accee 26/26: * eglot.el (Version): Bump to 1.3, João Távora, 2018/12/09
- [elpa] externals/eglot 37706af 21/26: Warn about suspicious interface usage at compile-time, João Távora, 2018/12/09
- [elpa] externals/eglot 6de3d9c 10/26: Per #171, #156: Introduce eglot--dcase, João Távora, 2018/12/09
- [elpa] externals/eglot a46f003 17/26: Fix #164: handle CodeAction/Command polymorphism with eglot--dcase, João Távora, 2018/12/09
- [elpa] externals/eglot 6b0b1b7 24/26: Be lenient by default to unknown methods or notifications, João Távora, 2018/12/09
- [elpa] externals/eglot 973cd81 25/26: Close #180: Add preamble to comparison to lsp-mode.el, João Távora, 2018/12/09
- [elpa] externals/eglot a1f2033 12/26: Fix #116, #150: don't break in indirect buffers, João Távora, 2018/12/09