[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot 43e6097563 2/3: Per #899: Tweak on-type-formattin
From: |
ELPA Syncer |
Subject: |
[elpa] externals/eglot 43e6097563 2/3: Per #899: Tweak on-type-formatting code |
Date: |
Tue, 29 Mar 2022 05:57:29 -0400 (EDT) |
branch: externals/eglot
commit 43e6097563be86f2de9259c9dc0c611cc864f803
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Per #899: Tweak on-type-formatting code
* eglot.el (eglot--post-self-insert-hook): Tweak.
(eglot-format): Tweak docstring.
---
eglot.el | 27 ++++++++++++---------------
1 file changed, 12 insertions(+), 15 deletions(-)
diff --git a/eglot.el b/eglot.el
index 1cf0b7ae63..d71e5966a8 100644
--- a/eglot.el
+++ b/eglot.el
@@ -1974,18 +1974,16 @@ THINGS are either registrations or unregisterations
(sic)."
"If non-nil, value of the last inserted character in buffer.")
(defun eglot--post-self-insert-hook ()
- "Set `eglot--last-inserted-char', call on-type-formatting if necessary."
+ "Set `eglot--last-inserted-char', maybe call on-type-formatting."
(setq eglot--last-inserted-char last-input-event)
- (when (or (eq last-input-event
- (elt (eglot--server-capable
- :documentOnTypeFormattingProvider
- :firstTriggerCharacter)
- 0))
- (seq-find (lambda (elt) (eq last-input-event (elt elt 0)))
- (eglot--server-capable
- :documentOnTypeFormattingProvider
- :moreTriggerCharacter)))
- (eglot-format (point) nil (string last-input-event))))
+ (let ((ot-provider (eglot--server-capable
:documentOnTypeFormattingProvider)))
+ (when (and ot-provider
+ (or (eq last-input-event
+ (elt (plist-get ot-provider :firstTriggerCharacter) 0))
+ (cl-find last-input-event
+ (plist-get ot-provider :moreTriggerCharacter)
+ :key #'seq-first)))
+ (eglot-format (point) nil last-input-event))))
(defun eglot--pre-command-hook ()
"Reset `eglot--last-inserted-char'."
@@ -2373,9 +2371,8 @@ If either BEG or END is nil, format entire buffer.
Interactively, format active region, or entire buffer if region
is not active.
-If ON-TYPE-FORMAT is non-nil, request on-type-formatting from the
-server. The argument should be a one-character-long string that
-has just been inserted at BEG."
+If non-nil, ON-TYPE-FORMAT is a character just inserted at BEG
+for which LSP on-type-formatting should be requested."
(interactive (and (region-active-p) (list (region-beginning) (region-end))))
(pcase-let ((`(,method ,cap ,args)
(cond
@@ -2383,7 +2380,7 @@ has just been inserted at BEG."
`(:textDocument/onTypeFormatting
:documentOnTypeFormattingProvider
,`(:position ,(eglot--pos-to-lsp-position beg)
- :ch ,on-type-format)))
+ :ch ,(string on-type-format))))
((and beg end)
`(:textDocument/rangeFormatting
:documentRangeFormattingProvider