[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/elpa a199c8e 070/139: Honour textDocumentSync
From: |
João Távora |
Subject: |
[elpa] externals/elpa a199c8e 070/139: Honour textDocumentSync |
Date: |
Mon, 14 May 2018 09:53:36 -0400 (EDT) |
branch: externals/elpa
commit a199c8ef754434b6210cbd56f7dcef5f04e686c2
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
Honour textDocumentSync
* eglot.el (eglot--signal-textDocument/didChange): Honour textDocumentSync
---
eglot.el | 72 +++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 37 insertions(+), 35 deletions(-)
diff --git a/eglot.el b/eglot.el
index 5701422..68fe3e2 100644
--- a/eglot.el
+++ b/eglot.el
@@ -251,7 +251,9 @@ SUCCESS-FN with no args if all goes well."
(eglot--request
proc
:initialize
- (eglot--obj :processId (emacs-pid)
+ (eglot--obj :processId (unless (eq (process-type proc)
+ 'network)
+ (emacs-pid))
:rootUri (eglot--uri
(expand-file-name (car (project-roots
(project-current)))))
@@ -1070,44 +1072,44 @@ Records START, END and PRE-CHANGE-LENGTH locally."
"Send textDocument/didChange to server."
(when (and eglot--recent-before-changes
eglot--recent-after-changes)
- (save-excursion
+ (let* ((proc (eglot--current-process-or-lose))
+ (sync-kind (plist-get (eglot--capabilities proc)
:textDocumentSync)))
(save-restriction
(widen)
- (if (/= (length eglot--recent-before-changes)
- (length eglot--recent-after-changes))
- (eglot--notify
- (eglot--current-process-or-lose)
- :textDocument/didChange
- (eglot--obj
- :textDocument
(eglot--current-buffer-VersionedTextDocumentIdentifier)
- :contentChanges
- (vector
- (eglot--obj
- :text (buffer-substring-no-properties (point-min)
(point-max))))))
- (let ((combined (cl-mapcar 'append
- eglot--recent-before-changes
- eglot--recent-after-changes)))
- (eglot--notify
- (eglot--current-process-or-lose)
- :textDocument/didChange
- (eglot--obj
- :textDocument
(eglot--current-buffer-VersionedTextDocumentIdentifier)
- :contentChanges
+ (unless (or (not sync-kind)
+ (eq sync-kind 0))
+ (eglot--notify
+ proc
+ :textDocument/didChange
+ (eglot--obj
+ :textDocument
+ (eglot--current-buffer-VersionedTextDocumentIdentifier)
+ :contentChanges
+ (if (or (eq sync-kind 1)
+ (/= (length eglot--recent-before-changes)
+ (length eglot--recent-after-changes)))
+ (vector
+ (eglot--obj
+ :text (buffer-substring-no-properties (point-min)
(point-max))))
(apply
#'vector
- (mapcar (pcase-lambda (`(,before-start-position
- ,before-end-position
- ,after-start
- ,after-end
- ,len))
- (eglot--obj
- :range
- (eglot--obj
- :start before-start-position
- :end before-end-position)
- :rangeLength len
- :text (buffer-substring-no-properties after-start
after-end)))
- (reverse combined))))))))))
+ (mapcar
+ (pcase-lambda (`(,before-start-position
+ ,before-end-position
+ ,after-start
+ ,after-end
+ ,len))
+ (eglot--obj
+ :range
+ (eglot--obj
+ :start before-start-position
+ :end before-end-position)
+ :rangeLength len
+ :text (buffer-substring-no-properties after-start
after-end)))
+ (reverse
+ (cl-mapcar 'append
+ eglot--recent-before-changes
+ eglot--recent-after-changes)))))))))))
(setq eglot--recent-before-changes nil
eglot--recent-after-changes nil))
- [elpa] externals/elpa e8f859e 031/139: Rework commands for connecting and reconnecting, (continued)
- [elpa] externals/elpa e8f859e 031/139: Rework commands for connecting and reconnecting, João Távora, 2018/05/14
- [elpa] externals/elpa b511b7d 036/139: Redesign and simplify parser, João Távora, 2018/05/14
- [elpa] externals/elpa b4dd4f8 022/139: Report server status in the mode-line, João Távora, 2018/05/14
- [elpa] externals/elpa 46bb1c0 049/139: Reorganize file, João Távora, 2018/05/14
- [elpa] externals/elpa b69302c 060/139: Make M-x eglot's interactive spec a separate function, João Távora, 2018/05/14
- [elpa] externals/elpa b657b32 068/139: Use rootUri instead of rootPath, João Távora, 2018/05/14
- [elpa] externals/elpa eebd32b 059/139: When user declines to reconnect, first quit existing server, João Távora, 2018/05/14
- [elpa] externals/elpa f1b6485 053/139: Trim some edges and add a bunch of boring RPC methods, João Távora, 2018/05/14
- [elpa] externals/elpa df5d76d 065/139: Reply to client/registerCapability (don't handle it yet), João Távora, 2018/05/14
- [elpa] externals/elpa f76f04e 057/139: More correctly keep track of didOpen/didClose per buffer, João Távora, 2018/05/14
- [elpa] externals/elpa a199c8e 070/139: Honour textDocumentSync,
João Távora <=
- [elpa] externals/elpa 79a2a1e 069/139: Be quite explicit about our lack of capabilities right now, João Távora, 2018/05/14
- [elpa] externals/elpa ff5a03d 074/139: Very basic xref support, João Távora, 2018/05/14
- [elpa] externals/elpa b1554fc 055/139: * eglot.el (eglot--process-receive): Skip null method notifs., João Távora, 2018/05/14
- [elpa] externals/elpa 9882bf2 072/139: Cleanup mistake with TextDocumentItem and TextDocumentIdentifier, João Távora, 2018/05/14
- [elpa] externals/elpa fc6879f 084/139: Explain why didOpen on after-revert-hook is a bad idea, João Távora, 2018/05/14
- [elpa] externals/elpa fdb4de1 039/139: Simplify flymake integration, João Távora, 2018/05/14
- [elpa] externals/elpa 39e8b9e 081/139: Add (dummy) tests and Travis CI integration, João Távora, 2018/05/14
- [elpa] externals/elpa 1356844 097/139: Fix odd bugs, João Távora, 2018/05/14
- [elpa] externals/elpa 889ef20 085/139: Tweak the async request engine., João Távora, 2018/05/14
- [elpa] externals/elpa 1add335 078/139: Workaround two suspected Emacs bugs, João Távora, 2018/05/14