[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#62116: RFE: eglot: support window.showDocument LSP RPC
From: |
João Távora |
Subject: |
bug#62116: RFE: eglot: support window.showDocument LSP RPC |
Date: |
Mon, 15 May 2023 09:48:50 +0100 |
On Fri, May 12, 2023 at 9:46 PM Alan Donovan <adonovan@google.com> wrote:
>
> Thanks Joao,
>
> I quickly tried this patch, and found two problems.
>
> The first is that, because eglot-widening uses save-excursion, it
> doesn't leave the cursor in the correct position; it merely jumps
> there for a moment and then goes back to wherever it was before.
> Removing the eglot-widening is an effective workaround.
OK, I'll have a look.
> The second issue is that Emacs still often gets stuck making a
> recursive RPC, as previously discussed. I interrupted it using
> toggle-debug-on-quit and recorded the emacs Lisp function call stack.
> I've lightly tidied it to omit arguments and non-function sexprs:
>
> accept-process-output
> jsonrpc-request textDocument/documentSymbol
> eglot-imenu
> run-hooks(after-change-major-mode-hook)
> run-mode-hooks(go-mode-hook)
> go-mode()
> set-auto-mode-0(go-mode nil)
> set-auto-mode--apply-alist
> set-auto-mode
> normal-mode
> after-find-file
> find-file-noselect-1 foo.go
> find-file-noselect foo.go
> eglot-handle-request window/showDocument
> jsonrpc-connection-receive window/showDocument
> jsonrpc--process-filter
>
> In short the handling of the showDocument downcall causes eglot to
> find-file a new Go source file, whose go-mode hooks cause a
> documentSymbol upcall to be sent to the server, which then blocks
> indefinitely as it is still in the middle of whatever active request
> sent the showDocument downcall.
>
> I hope this was helpful.
It was, at least to confirm that you do have eglot-imenu
in your go-mode-hook somehow. I say "somehow" because it's still
not clear why eglot-imenu is in there. I've asked you this already
in the past, but maybe I wasn't clear. Can you try to reproduce
these problems with a controlled experiment from Emacs -Q? That
means "Emacs without any customizations".
Also not immediately clear is if you tried the patch
I attached earlier or if you tried the most recent
code I ended up pushing to the emacs master branch.
>From your backtrace, I'm fairly sure you tried the
former. Please try the latter and report back (and
if possible try it from a non-user-configuration
Emacs -Q run).
João
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, (continued)
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Felician Nemeth, 2023/05/06
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Felician Nemeth, 2023/05/08
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, João Távora, 2023/05/08
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Felician Nemeth, 2023/05/09
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Alan Donovan, 2023/05/09
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, João Távora, 2023/05/11
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, João Távora, 2023/05/11
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Alan Donovan, 2023/05/12
- bug#62116: RFE: eglot: support window.showDocument LSP RPC,
João Távora <=
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Felician Nemeth, 2023/05/13
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, João Távora, 2023/05/13
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Felician Nemeth, 2023/05/14
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, João Távora, 2023/05/14
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, João Távora, 2023/05/15
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, João Távora, 2023/05/16
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Alan Donovan, 2023/05/24
- bug#62116: RFE: eglot: support window.showDocument LSP RPC, Dmitry Gutov, 2023/05/24