joaotavora / eglot

A client for Language Server Protocol servers
GNU General Public License v3.0
2.21k stars 203 forks source link

eglot using pyright stopped working on [Mac OS, unknown invocation, missing logs] #1353

Closed danielpopescu closed 5 months ago

danielpopescu commented 5 months ago

Latest macos, emacs 29.2, native comp. Latest of everything (as of 1/25/2024): pyright 1.1.348, eglot: eglot-1.17.0.20240125.122027. All worked fine before upgrading to latest eglot..... Other language serves I use (for rust and haskell still work fine).

To reproduce, just open/create the most trivial python file: foo.py

def foo(x: int) -> int: return x

Nothing works...

I see theses in the log:

[jsonrpc] i[21:20:17.249] [179] timed-out request ':textDocument/hover' [jsonrpc] i[21:20:17.249] [180] timed-out request ':textDocument/documentHighlight' [jsonrpc] i[21:20:17.249] [181] timed-out request ':textDocument/signatureHelp' [jsonrpc] i[21:20:17.381] [182] timed-out request ':textDocument/hover' [jsonrpc] i[21:20:17.381] [183] timed-out request ':textDocument/documentHighlight' [jsonrpc] i[21:20:17.381] [184] timed-out request ':textDocument/signatureHelp' [jsonrpc] i[21:20:17.859] [185] timed-out request ':textDocument/hover' [jsonrpc] i[21:20:17.860] [186] timed-out request ':textDocument/documentHighlight' [jsonrpc] i[21:20:17.860] [187] timed-out request ':textDocument/signatureHelp' [jsonrpc] i[21:20:17.972] [188] timed-out request ':textDocument/hover' [jsonrpc] i[21:20:17.972] [189] timed-out request ':textDocument/documentHighlight'

It seems the eglot is jammed....

Ty

joaotavora commented 5 months ago

Can't reproduce this,

❯ src/emacs --version
GNU Emacs 30.0.50
Development version 723b0973512c on master branch; build date 2024-01-26.
Copyright (C) 2024 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
❯ pyright --version
pyright 1.1.345
❯ src/emacs -Q ~/tmp/thingy.py -f eglot

I don't have Mac OS.

You didn't supply attach the full event log.

You didn't specify how you start Emacs.

Read https://joaotavora.github.io/eglot/#Troubleshooting-Eglot for how to do so and why this matters and I will reopen.

danielpopescu commented 5 months ago

Backtrace:

Debugger entered--Lisp error: (wrong-type-argument consp nil) json-serialize((:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params (:settings (:python (:pythonPath "/Users/dpo/.venv/bin/python") :python.analysis (:useLibraryCodeForTypes t :stubPath "/Users/dpo/python_stubs/python-type-stubs/stubs" :typeCheckingMode "strict" :autoImportCompletions t :diagnosticMode "workspace" :autoSearchPaths t) :rust-analyzer (:check (:command "clippy" :extraArgs ["--" "-W" "clippy::pedantic" "-W" "clippy::nursery"]) :diagnostics (:experimental (:enable t) :disabled ["unresolved-proc-macro" "unresolved-macro-call"]) :cargo (:buildScripts (:enable t) :features "all") :procMacro (:attributes (:enable t) :enable t) :inlayHints (:typeHints (:enable t) :parameterHints (:enable t))) :haskell (:plugin (:hlint (:globalOn t) :stan (:globalOn t))) (:checkProject t)))) :false-object :json-false :null-object nil) jsonrpc--json-encode((:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params (:settings (:python (:pythonPath "/Users/dpo/.venv/bin/python") :python.analysis (:useLibraryCodeForTypes t :stubPath "/Users/dpo/python_stubs/python-type-stubs/stubs" :typeCheckingMode "strict" :autoImportCompletions t :diagnosticMode "workspace" :autoSearchPaths t) :rust-analyzer (:check (:command "clippy" :extraArgs ["--" "-W" "clippy::pedantic" "-W" "clippy::nursery"]) :diagnostics (:experimental (:enable t) :disabled ["unresolved-proc-macro" "unresolved-macro-call"]) :cargo (:buildScripts (:enable t) :features "all") :procMacro (:attributes (:enable t) :enable t) :inlayHints (:typeHints (:enable t) :parameterHints (:enable t))) :haskell (:plugin (:hlint (:globalOn t) :stan (:globalOn t))) (:checkProject t)))))

f(compiled-function (arg1 &rest rest) "Send MESSAGE, a JSON object, to CONNECTION." #<bytecode 0x1b34ef2a1f15828>)(# :method :workspace/didChangeConfiguration :params (:settings (:python (:pythonPath "/Users/dpo/.venv/bin/python") :python.analysis (:useLibraryCodeForTypes t :stubPath "/Users/dpo/python_stubs/python-type-stubs/stubs" :typeCheckingMode "strict" :autoImportCompletions t :diagnosticMode "workspace" :autoSearchPaths t) :rust-analyzer (:check (:command "clippy" :extraArgs ["--" "-W" "clippy::pedantic" "-W" "clippy::nursery"]) :diagnostics (:experimental (:enable t) :disabled ["unresolved-proc-macro" "unresolved-macro-call"]) :cargo (:buildScripts (:enable t) :features "all") :procMacro (:attributes (:enable t) :enable t) :inlayHints (:typeHints (:enable t) :parameterHints (:enable t))) :haskell (:plugin (:hlint (:globalOn t) :stan (:globalOn t))) (:checkProject t))))

apply(#f(compiled-function (arg1 &rest rest) "Send MESSAGE, a JSON object, to CONNECTION." #<bytecode 0x1b34ef2a1f15828>) # (:method :workspace/didChangeConfiguration :params (:settings (:python (:pythonPath "/Users/dpo/.venv/bin/python") :python.analysis (:useLibraryCodeForTypes t :stubPath "/Users/dpo/python_stubs/python-type-stubs/stubs" :typeCheckingMode "strict" :autoImportCompletions t :diagnosticMode "workspace" :autoSearchPaths t) :rust-analyzer (:check (:command "clippy" :extraArgs ["--" "-W" "clippy::pedantic" "-W" "clippy::nursery"]) :diagnostics (:experimental (:enable t) :disabled ["unresolved-proc-macro" "unresolved-macro-call"]) :cargo (:buildScripts (:enable t) :features "all") :procMacro (:attributes (:enable t) :enable t) :inlayHints (:typeHints (:enable t) :parameterHints (:enable t))) :haskell (:plugin (:hlint (:globalOn t) :stan (:globalOn t))) (:checkProject t))))) jsonrpc-connection-send(# :method :workspace/didChangeConfiguration :params (:settings (:python (:pythonPath "/Users/dpo/.venv/bin/python") :python.analysis (:useLibraryCodeForTypes t :stubPath "/Users/dpo/python_stubs/python-type-stubs/stubs" :typeCheckingMode "strict" :autoImportCompletions t :diagnosticMode "workspace" :autoSearchPaths t) :rust-analyzer (:check (:command "clippy" :extraArgs ["--" "-W" "clippy::pedantic" "-W" "clippy::nursery"]) :diagnostics (:experimental (:enable t) :disabled ["unresolved-proc-macro" "unresolved-macro-call"]) :cargo (:buildScripts (:enable t) :features "all") :procMacro (:attributes (:enable t) :enable t) :inlayHints (:typeHints (:enable t) :parameterHints (:enable t))) :haskell (:plugin (:hlint (:globalOn t) :stan (:globalOn t))) (:checkProject t)))) jsonrpc-notify(# :workspace/didChangeConfiguration (:settings (:python (:pythonPath "/Users/dpo/.venv/bin/python") :python.analysis (:useLibraryCodeForTypes t :stubPath "/Users/dpo/python_stubs/python-type-stubs/stubs" :typeCheckingMode "strict" :autoImportCompletions t :diagnosticMode "workspace" :autoSearchPaths t) :rust-analyzer (:check (:command "clippy" :extraArgs ["--" "-W" "clippy::pedantic" "-W" "clippy::nursery"]) :diagnostics (:experimental (:enable t) :disabled ["unresolved-proc-macro" "unresolved-macro-call"]) :cargo (:buildScripts (:enable t) :features "all") :procMacro (:attributes (:enable t) :enable t) :inlayHints (:typeHints (:enable t) :parameterHints (:enable t))) :haskell (:plugin (:hlint (:globalOn t) :stan (:globalOn t))) (:checkProject t)))) eglot-signal-didChangeConfiguration(#) run-hook-with-args(eglot-signal-didChangeConfiguration #)

f(compiled-function (jsonrpc-lambda-elem3) #<bytecode -0x1f8de39e4752e569>)((:capabilities (:textDocumentSync 2 :definitionProvider (:workDoneProgress t) :declarationProvider (:workDoneProgress t) :typeDefinitionProvider (:workDoneProgress t) :referencesProvider (:workDoneProgress t) :documentSymbolProvider (:workDoneProgress t) :workspaceSymbolProvider (:workDoneProgress t) :hoverProvider (:workDoneProgress t) :documentHighlightProvider (:workDoneProgress t) :renameProvider (:prepareProvider t :workDoneProgress t) :completionProvider (:triggerCharacters ["." "[" "\"" "'"] :resolveProvider t :workDoneProgress t :completionItem (:labelDetailsSupport t)) :signatureHelpProvider (:triggerCharacters ["(" "," ")"] :workDoneProgress t) :codeActionProvider (:codeActionKinds ["quickfix" "source.organizeImports"] :workDoneProgress t) :executeCommandProvider (:commands [] :workDoneProgress t) :callHierarchyProvider t :workspace (:workspaceFolders (:supported t :changeNotifications t)))))

jsonrpc--continue(# 1 (1 :initialize #f(compiled-function (jsonrpc-lambda-elem3) #<bytecode -0x1f8de39e4752e569>) #f(compiled-function (jsonrpc-lambda-elem4) #<bytecode 0x3db1311191d0ab1>) [nil 26035 39615 915950 nil #f(compiled-function () #<bytecode -0x599d526a0381d6b>) nil nil 0 nil]) (:capabilities (:textDocumentSync 2 :definitionProvider (:workDoneProgress t) :declarationProvider (:workDoneProgress t) :typeDefinitionProvider (:workDoneProgress t) :referencesProvider (:workDoneProgress t) :documentSymbolProvider (:workDoneProgress t) :workspaceSymbolProvider (:workDoneProgress t) :hoverProvider (:workDoneProgress t) :documentHighlightProvider (:workDoneProgress t) :renameProvider (:prepareProvider t :workDoneProgress t) :completionProvider (:triggerCharacters ["." "[" "\"" "'"] :resolveProvider t :workDoneProgress t :completionItem (:labelDetailsSupport t)) :signatureHelpProvider (:triggerCharacters ["(" "," ")"] :workDoneProgress t) :codeActionProvider (:codeActionKinds ["quickfix" "source.organizeImports"] :workDoneProgress t) :executeCommandProvider (:commands [] :workDoneProgress t) :callHierarchyProvider t :workspace (:workspaceFolders (:supported t :changeNotifications t)))) nil) jsonrpc-connection-receive(# (:jsonrpc "2.0" :id 1 :result (:capabilities (:textDocumentSync 2 :definitionProvider (:workDoneProgress t) :declarationProvider (:workDoneProgress t) :typeDefinitionProvider (:workDoneProgress t) :referencesProvider (:workDoneProgress t) :documentSymbolProvider (:workDoneProgress t) :workspaceSymbolProvider (:workDoneProgress t) :hoverProvider (:workDoneProgress t) :documentHighlightProvider (:workDoneProgress t) :renameProvider (:prepareProvider t :workDoneProgress t) :completionProvider (:triggerCharacters ["." "[" "\"" "'"] :resolveProvider t :workDoneProgress t :completionItem (:labelDetailsSupport t)) :signatureHelpProvider (:triggerCharacters ["(" "," ")"] :workDoneProgress t) :codeActionProvider (:codeActionKinds ["quickfix" "source.organizeImports"] :workDoneProgress t) :executeCommandProvider (:commands [] :workDoneProgress t) :callHierarchyProvider t :workspace (:workspaceFolders (:supported t :changeNotifications t))))))

f(compiled-function (m) #<bytecode -0x7a95d0086d9a96>)((:jsonrpc "2.0" :id 1 :result (:capabilities (:textDocumentSync 2 :definitionProvider (:workDoneProgress t) :declarationProvider (:workDoneProgress t) :typeDefinitionProvider (:workDoneProgress t) :referencesProvider (:workDoneProgress t) :documentSymbolProvider (:workDoneProgress t) :workspaceSymbolProvider (:workDoneProgress t) :hoverProvider (:workDoneProgress t) :documentHighlightProvider (:workDoneProgress t) :renameProvider (:prepareProvider t :workDoneProgress t) :completionProvider (:triggerCharacters ["." "[" "\"" "'"] :resolveProvider t :workDoneProgress t :completionItem (:labelDetailsSupport t)) :signatureHelpProvider (:triggerCharacters ["(" "," ")"] :workDoneProgress t) :codeActionProvider (:codeActionKinds ["quickfix" "source.organizeImports"] :workDoneProgress t) :executeCommandProvider (:commands [] :workDoneProgress t) :callHierarchyProvider t :workspace (:workspaceFolders (:supported t :changeNotifications t))))))

apply(#f(compiled-function (m) #<bytecode -0x7a95d0086d9a96>) (:jsonrpc "2.0" :id 1 :result (:capabilities (:textDocumentSync 2 :definitionProvider (:workDoneProgress t) :declarationProvider (:workDoneProgress t) :typeDefinitionProvider (:workDoneProgress t) :referencesProvider (:workDoneProgress t) :documentSymbolProvider (:workDoneProgress t) :workspaceSymbolProvider (:workDoneProgress t) :hoverProvider (:workDoneProgress t) :documentHighlightProvider (:workDoneProgress t) :renameProvider (:prepareProvider t :workDoneProgress t) :completionProvider (:triggerCharacters ["." "[" "\"" "'"] :resolveProvider t :workDoneProgress t :completionItem (:labelDetailsSupport t)) :signatureHelpProvider (:triggerCharacters ["(" "," ")"] :workDoneProgress t) :codeActionProvider (:codeActionKinds ["quickfix" "source.organizeImports"] :workDoneProgress t) :executeCommandProvider (:commands [] :workDoneProgress t) :callHierarchyProvider t :workspace (:workspaceFolders (:supported t :changeNotifications t)))))) timer-event-handler([t 26035 39586 69603 nil #f(compiled-function (m) #<bytecode -0x7a95d0086d9a96>) ((:jsonrpc "2.0" :id 1 :result (:capabilities (:textDocumentSync 2 :definitionProvider (:workDoneProgress t) :declarationProvider (:workDoneProgress t) :typeDefinitionProvider (:workDoneProgress t) :referencesProvider (:workDoneProgress t) :documentSymbolProvider (:workDoneProgress t) :workspaceSymbolProvider (:workDoneProgress t) :hoverProvider (:workDoneProgress t) :documentHighlightProvider (:workDoneProgress t) :renameProvider (:prepareProvider t :workDoneProgress t) :completionProvider (:triggerCharacters ["." "[" "\"" "'"] :resolveProvider t :workDoneProgress t :completionItem (:labelDetailsSupport t)) :signatureHelpProvider (:triggerCharacters ["(" "," ")"] :workDoneProgress t) :codeActionProvider (:codeActionKinds ["quickfix" "source.organizeImports"] :workDoneProgress t) :executeCommandProvider (:commands [] :workDoneProgress t) :callHierarchyProvider t :workspace (:workspaceFolders (:supported t :changeNotifications t)))))) nil 0 nil]) accept-process-output(nil 3) eglot--connect((python-ts-mode) (transient . "/Users/dpo/tmp/") eglot-lsp-server ("pyright-langserver" "--stdio") ("python")) apply(eglot--connect ((python-ts-mode) (transient . "/Users/dpo/tmp/") eglot-lsp-server ("pyright-langserver" "--stdio") ("python")))

f(compiled-function () #<bytecode 0x1359f491bc9fd699>)()

danielpopescu commented 5 months ago

Log:

[jsonrpc] D[06:42:25.915] Running language server: pyright-langserver --stdio [jsonrpc] e[06:42:25.915] --> initialize[1] {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"processId":28519,"clientInfo":{"name":"Eglot","version":"1.17"},"rootPath":"/Users/dpo/tmp/","rootUri":"file:///Users/dpo/tmp","initializationOptions":{},"capabilities":{"workspace":{"applyEdit":true,"executeCommand":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":false},"configuration":true,"workspaceFolders":true},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false,"completionItem":{"snippetSupport":true,"deprecatedSupport":true,"resolveSupport":{"properties":["documentation","details","additionalTextEdits"]},"tagSupport":{"valueSet":[1]}},"contextSupport":true},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true},"documentationFormat":["markdown","plaintext"],"activeParameterSupport":true}},"references":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true},"declaration":{"dynamicRegistration":false,"linkSupport":true},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"documentSymbol":{"dynamicRegistration":false,"hierarchicalDocumentSymbolSupport":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"documentHighlight":{"dynamicRegistration":false},"codeAction":{"dynamicRegistration":false,"resolveSupport":{"properties":["edit","command"]},"dataSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"isPreferredSupport":true},"formatting":{"dynamicRegistration":false},"rangeFormatting":{"dynamicRegistration":false},"rename":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"relatedInformation":false,"codeDescriptionSupport":false,"tagSupport":{"valueSet":[1,2]}}},"window":{"showDocument":{"support":true},"workDoneProgress":true},"general":{"positionEncodings":["utf-32","utf-8","utf-16"]},"experimental":{}},"workspaceFolders":[{"uri":"file:///Users/dpo/tmp","name":"~/tmp/"}]}} [jsonrpc] e[06:42:26.041] <-- window/logMessage {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"Pyright language server 1.1.348 starting"}} [jsonrpc] e[06:42:26.041] <-- window/logMessage {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"Server root directory: file:///opt/homebrew/Cellar/pyright/1.1.348/libexec/lib/node_modules/pyright/dist"}} [jsonrpc] e[06:42:26.044] <-- window/logMessage {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"Starting service instance \"~/tmp/\""}} [jsonrpc] e[06:42:26.069] <-- initialize[1] {"jsonrpc":"2.0","id":1,"result":{"capabilities":{"textDocumentSync":2,"definitionProvider":{"workDoneProgress":true},"declarationProvider":{"workDoneProgress":true},"typeDefinitionProvider":{"workDoneProgress":true},"referencesProvider":{"workDoneProgress":true},"documentSymbolProvider":{"workDoneProgress":true},"workspaceSymbolProvider":{"workDoneProgress":true},"hoverProvider":{"workDoneProgress":true},"documentHighlightProvider":{"workDoneProgress":true},"renameProvider":{"prepareProvider":true,"workDoneProgress":true},"completionProvider":{"triggerCharacters":[".","[","\"","'"],"resolveProvider":true,"workDoneProgress":true,"completionItem":{"labelDetailsSupport":true}},"signatureHelpProvider":{"triggerCharacters":["(",",",")"],"workDoneProgress":true},"codeActionProvider":{"codeActionKinds":["quickfix","source.organizeImports"],"workDoneProgress":true},"executeCommandProvider":{"commands":[],"workDoneProgress":true},"callHierarchyProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}}}}} [jsonrpc] e[06:42:26.069] --> initialized {"jsonrpc":"2.0","method":"initialized","params":{}} [jsonrpc] e[06:42:26.070] --> textDocument/didOpen {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/dpo/tmp/test1.py","version":0,"languageId":"python","text":"\ndef foo(x: int) -> int:\n return x\n\nfoo()\n"}}} [jsonrpc] e[06:42:26.692] <-- client/registerCapability[0] {"jsonrpc":"2.0","id":0,"method":"client/registerCapability","params":{"registrations":[{"id":"4756bd8f-b544-4d74-8ef4-801c16716709","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"/pyrightconfig.json","kind":7},{"globPattern":"","kind":7}]}}]}} [jsonrpc] e[06:42:26.779] --> client/registerCapability[0] {"jsonrpc":"2.0","id":0,"result":null} [jsonrpc] e[06:43:07.306] --> textDocument/hover[2] {"jsonrpc":"2.0","id":2,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/dpo/tmp/test1.py"},"position":{"line":5,"character":0}}} [jsonrpc] e[06:43:07.306] --> textDocument/documentHighlight[3] {"jsonrpc":"2.0","id":3,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///Users/dpo/tmp/test1.py"},"position":{"line":5,"character":0}}} [jsonrpc] e[06:43:07.306] --> textDocument/signatureHelp[4] {"jsonrpc":"2.0","id":4,"method":"textDocument/signatureHelp","params":{"textDocument":{"uri":"file:///Users/dpo/tmp/test1.py"},"position":{"line":5,"character":0}}} [jsonrpc] i[06:43:17.311] [2] timed-out request ':textDocument/hover' [jsonrpc] i[06:43:17.312] [3] timed-out request ':textDocument/documentHighlight' [jsonrpc] i[06:43:17.312] [4] timed-out request ':textDocument/signatureHelp'

danielpopescu commented 5 months ago

code to reproduce with:

def foo(x: int) -> int: return x

foo()

danielpopescu commented 5 months ago

And I did mention the versions but again:

pyright --version pyright 1.1.348

emacs -Q --version GNU Emacs 29.2

latest eglot...

Hope this helps.

danielpopescu commented 5 months ago

Invocation... via command line:

.../homebrew/bin/emacs

joaotavora commented 5 months ago
6. Include a recipe to replicate the problem with a clean Emacs run. The invocation emacs -Q -f package-initialize starts Emacs with no configuration and initializes the ELPA packages. A very minimal .emacs initialization file (10 lines or less) is also acceptable and good means to describe changes to variables.

How/when is this error triggered? Think of as a blind person. I don't know what your fingers are doing on the keyboard.

5. Describe how to setup a minimal project directory where Eglot should be started for the problem to happen. Describe each file’s name and its contents. Alternatively, you can supply the address of a public Git repository.

I'm fairly sure that you're experiencing a problem which is pyright asking to watch too many files. But this is just a guess. Want it to not be a guess? Provide item 5. And make sure item 7 is covered, too.

Anyway, here are some links https://github.com/microsoft/pylance-release/issues/3406 https://github.com/joaotavora/eglot/issues/1224#issuecomment-1564156598

joaotavora commented 5 months ago

Invocation... via command line: .../homebrew/bin/emacs

This... is useless, sorry.

I'm running out of ways to explain to people what is needed :-| This isn't about you :-) It's about my inability to convey to people how problems should be reported to have a higher chance of successful outcome.

joaotavora commented 5 months ago

Going by my guess, it also doesn't make much sense when you say this was working before updating Eglot. As far as I can tell, no Eglot has ever solved the "pyright useless file-watching" problem.

danielpopescu commented 5 months ago

Well, for me this stopped working after upgrading to eglot-1.17.0.20240125.122027.

danielpopescu commented 5 months ago

Lastly, this is likely related to the fontification issue mentioned by someone else.
If I set eglot-prefer-plaintext to some garbage value (not nil not t) then everything works fine again...

joaotavora commented 5 months ago

Lastly, this is likely related to the fontification issue mentioned by someone else.

I don't think so. Just because you see "python" and "Eglot" doesn't mean it's the same.

But it's impossible to tell from the information you provided. So if you want me to investigate, provided a recipe like the one I did.