joaotavora / eglot

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

Editing indirect buffers with `M-x clone-indirect-buffer` throws off Eglot completely #1068

Closed leungbk closed 1 year ago

leungbk commented 2 years ago

LSP transcript - M-x eglot-events-buffer (mandatory unless Emacs inoperable)

Posted on https://paste.debian.net/1255907/ (it does not meet the 65536-character limit for GitHub)

Backtrace (mandatory, unless no error message seen or heard):

Debugger entered--Lisp error: (error "[Flymake] Obsolete report from backend eglot-flyma...")
  error("[Flymake] Obsolete report from backend eglot-flyma...")
  flymake-error("Obsolete report from backend %s with explanation %..." eglot-flymake-backend nil)
  flymake--handle-report(eglot-flymake-backend backend-token6 (#s(flymake--diag :locus #<buffer setup.py> :beg 3033 :end 3036 :type eglot-error :text "Pyright: Try statement mus..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3033 :orig-end 3036) #s(flymake--diag :locus #<buffer setup.py> :beg 3302 :end 3312 :type eglot-error :text "Pyright: Statements must b..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3302 :orig-end 3312) #s(flymake--diag :locus #<buffer setup.py> :beg 3332 :end 3333 :type eglot-error :text "Pyright: Expected expressi..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3332 :orig-end 3333) #s(flymake--diag :locus #<buffer setup.py> :beg 3333 :end 3341 :type eglot-error :text "Pyright: Unexpected indent..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3333 :orig-end 3341) #s(flymake--diag :locus #<buffer setup.py> :beg 3454 :end 3457 :type eglot-error :text "Pyright: Unindent not expe..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3454 :orig-end 3457) #s(flymake--diag :locus #<buffer setup.py> :beg 1200 :end 1205 :type eglot-error :text "Pyright [reportOptionalMem..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 1200 :orig-end 1205) #s(flymake--diag :locus #<buffer setup.py> :beg 3296 :end 3451 :type eglot-note :text "Pyright: Code is unreachab..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 3296 :orig-end 3451) #s(flymake--diag :locus #<buffer setup.py> :beg 4557 :end 4569 :type eglot-error :text "Pyright [reportUnboundVari..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 4557 :orig-end 4569) #s(flymake--diag :locus #<buffer setup.py> :beg 23592 :end 23595 :type eglot-error :text "Pyright [reportGeneralType..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 23592 :orig-end 23595) #s(flymake--diag :locus #<buffer setup.py> :beg 51108 :end 51145 :type eglot-warning :text "Pyright [reportUnusedExpre..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 51108 :orig-end 51145) #s(flymake--diag :locus #<buffer setup.py> :beg 8240 :end 8242 :type eglot-note :text "Pyright: \"cc\" is not acces..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 8240 :orig-end 8242) #s(flymake--diag :locus #<buffer setup.py> :beg 18390 :end 18393 :type eglot-note :text "Pyright: \"env\" is not acce..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 18390 :orig-end 18393) #s(flymake--diag :locus #<buffer setup.py> :beg 18400 :end 18403 :type eglot-note :text "Pyright: \"src\" is not acce..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 18400 :orig-end 18403) #s(flymake--diag :locus #<buffer setup.py> :beg 20929 :end 20930 :type eglot-note :text "Pyright: \"w\" is not access..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 20929 :orig-end 20930) #s(flymake--diag :locus #<buffer setup.py> :beg 24505 :end 24506 :type eglot-note :text "Pyright: \"a\" is not access..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 24505 :orig-end 24506) #s(flymake--diag :locus #<buffer setup.py> :beg 29720 :end 29726 :type eglot-note :text "Pyright: \"kitten\" is not a..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 29720 :orig-end 29726) #s(flymake--diag :locus #<buffer setup.py> :beg 36489 :end 36493 :type eglot-note :text "Pyright: \"dirs\" is not acc..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 36489 :orig-end 36493) #s(flymake--diag :locus #<buffer setup.py> :beg 49736 :end 49742 :type eglot-note :text "Pyright: \"parent\" is not a..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 49736 :orig-end 49742) #s(flymake--diag :locus #<buffer setup.py> :beg 51455 :end 51459 :type eglot-note :text "Pyright: \"dirs\" is not acc..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 51455 :orig-end 51459)) :region (1 . 62048))
  apply(flymake--handle-report eglot-flymake-backend backend-token6 ((#s(flymake--diag :locus #<buffer setup.py> :beg 3033 :end 3036 :type eglot-error :text "Pyright: Try statement must have..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3033 :orig-end 3036) #s(flymake--diag :locus #<buffer setup.py> :beg 3302 :end 3312 :type eglot-error :text "Pyright: Statements must be sepa..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3302 :orig-end 3312) #s(flymake--diag :locus #<buffer setup.py> :beg 3332 :end 3333 :type eglot-error :text "Pyright: Expected expression" :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3332 :orig-end 3333) #s(flymake--diag :locus #<buffer setup.py> :beg 3333 :end 3341 :type eglot-error :text "Pyright: Unexpected indentation" :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3333 :orig-end 3341) #s(flymake--diag :locus #<buffer setup.py> :beg 3454 :end 3457 :type eglot-error :text "Pyright: Unindent not expected" :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3454 :orig-end 3457) #s(flymake--diag :locus #<buffer setup.py> :beg 1200 :end 1205 :type eglot-error :text "Pyright [reportOptionalMemberAcc..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 1200 :orig-end 1205) #s(flymake--diag :locus #<buffer setup.py> :beg 3296 :end 3451 :type eglot-note :text "Pyright: Code is unreachable" :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 3296 :orig-end 3451) #s(flymake--diag :locus #<buffer setup.py> :beg 4557 :end 4569 :type eglot-error :text "Pyright [reportUnboundVariable]:..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 4557 :orig-end 4569) #s(flymake--diag :locus #<buffer setup.py> :beg 23592 :end 23595 :type eglot-error :text "Pyright [reportGeneralTypeIssues..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 23592 :orig-end 23595) #s(flymake--diag :locus #<buffer setup.py> :beg 51108 :end 51145 :type eglot-warning :text "Pyright [reportUnusedExpression]..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 51108 :orig-end 51145) #s(flymake--diag :locus #<buffer setup.py> :beg 8240 :end 8242 :type eglot-note :text "Pyright: \"cc\" is not accessed" :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 8240 :orig-end 8242) #s(flymake--diag :locus #<buffer setup.py> :beg 18390 :end 18393 :type eglot-note :text "Pyright: \"env\" is not accessed" :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 18390 :orig-end 18393) #s(flymake--diag :locus #<buffer setup.py> :beg 18400 :end 18403 :type eglot-note :text "Pyright: \"src\" is not accessed" :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 18400 :orig-end 18403) #s(flymake--diag :locus #<buffer setup.py> :beg 20929 :end 20930 :type eglot-note :text "Pyright: \"w\" is not accessed" :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 20929 :orig-end 20930) #s(flymake--diag :locus #<buffer setup.py> :beg 24505 :end 24506 :type eglot-note :text "Pyright: \"a\" is not accessed" :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 24505 :orig-end 24506) #s(flymake--diag :locus #<buffer setup.py> :beg 29720 :end 29726 :type eglot-note :text "Pyright: \"kitten\" is not accesse..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 29720 :orig-end 29726) #s(flymake--diag :locus #<buffer setup.py> :beg 36489 :end 36493 :type eglot-note :text "Pyright: \"dirs\" is not accessed" :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 36489 :orig-end 36493) #s(flymake--diag :locus #<buffer setup.py> :beg 49736 :end 49742 :type eglot-note :text "Pyright: \"parent\" is not accesse..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 49736 :orig-end 49742) #s(flymake--diag :locus #<buffer setup.py> :beg 51455 :end 51459 :type eglot-note :text "Pyright: \"dirs\" is not accessed" :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 51455 :orig-end 51459)) :region (1 . 62048)))
  #f(compiled-function (&rest args) #<bytecode 0x154628fb26717984>)((#s(flymake--diag :locus #<buffer setup.py> :beg 3033 :end 3036 :type eglot-error :text "Pyright: Try statement mus..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3033 :orig-end 3036) #s(flymake--diag :locus #<buffer setup.py> :beg 3302 :end 3312 :type eglot-error :text "Pyright: Statements must b..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3302 :orig-end 3312) #s(flymake--diag :locus #<buffer setup.py> :beg 3332 :end 3333 :type eglot-error :text "Pyright: Expected expressi..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3332 :orig-end 3333) #s(flymake--diag :locus #<buffer setup.py> :beg 3333 :end 3341 :type eglot-error :text "Pyright: Unexpected indent..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3333 :orig-end 3341) #s(flymake--diag :locus #<buffer setup.py> :beg 3454 :end 3457 :type eglot-error :text "Pyright: Unindent not expe..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3454 :orig-end 3457) #s(flymake--diag :locus #<buffer setup.py> :beg 1200 :end 1205 :type eglot-error :text "Pyright [reportOptionalMem..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 1200 :orig-end 1205) #s(flymake--diag :locus #<buffer setup.py> :beg 3296 :end 3451 :type eglot-note :text "Pyright: Code is unreachab..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 3296 :orig-end 3451) #s(flymake--diag :locus #<buffer setup.py> :beg 4557 :end 4569 :type eglot-error :text "Pyright [reportUnboundVari..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 4557 :orig-end 4569) #s(flymake--diag :locus #<buffer setup.py> :beg 23592 :end 23595 :type eglot-error :text "Pyright [reportGeneralType..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 23592 :orig-end 23595) #s(flymake--diag :locus #<buffer setup.py> :beg 51108 :end 51145 :type eglot-warning :text "Pyright [reportUnusedExpre..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 51108 :orig-end 51145) #s(flymake--diag :locus #<buffer setup.py> :beg 8240 :end 8242 :type eglot-note :text "Pyright: \"cc\" is not acces..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 8240 :orig-end 8242) #s(flymake--diag :locus #<buffer setup.py> :beg 18390 :end 18393 :type eglot-note :text "Pyright: \"env\" is not acce..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 18390 :orig-end 18393) #s(flymake--diag :locus #<buffer setup.py> :beg 18400 :end 18403 :type eglot-note :text "Pyright: \"src\" is not acce..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 18400 :orig-end 18403) #s(flymake--diag :locus #<buffer setup.py> :beg 20929 :end 20930 :type eglot-note :text "Pyright: \"w\" is not access..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 20929 :orig-end 20930) #s(flymake--diag :locus #<buffer setup.py> :beg 24505 :end 24506 :type eglot-note :text "Pyright: \"a\" is not access..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 24505 :orig-end 24506) #s(flymake--diag :locus #<buffer setup.py> :beg 29720 :end 29726 :type eglot-note :text "Pyright: \"kitten\" is not a..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 29720 :orig-end 29726) #s(flymake--diag :locus #<buffer setup.py> :beg 36489 :end 36493 :type eglot-note :text "Pyright: \"dirs\" is not acc..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 36489 :orig-end 36493) #s(flymake--diag :locus #<buffer setup.py> :beg 49736 :end 49742 :type eglot-note :text "Pyright: \"parent\" is not a..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 49736 :orig-end 49742) #s(flymake--diag :locus #<buffer setup.py> :beg 51455 :end 51459 :type eglot-note :text "Pyright: \"dirs\" is not acc..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 51455 :orig-end 51459)) :region (1 . 62048))
  eglot--report-to-flymake((#s(flymake--diag :locus #<buffer setup.py> :beg 3033 :end 3036 :type eglot-error :text "Pyright: Try statement mus..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3033 :orig-end 3036) #s(flymake--diag :locus #<buffer setup.py> :beg 3302 :end 3312 :type eglot-error :text "Pyright: Statements must b..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3302 :orig-end 3312) #s(flymake--diag :locus #<buffer setup.py> :beg 3332 :end 3333 :type eglot-error :text "Pyright: Expected expressi..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3332 :orig-end 3333) #s(flymake--diag :locus #<buffer setup.py> :beg 3333 :end 3341 :type eglot-error :text "Pyright: Unexpected indent..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3333 :orig-end 3341) #s(flymake--diag :locus #<buffer setup.py> :beg 3454 :end 3457 :type eglot-error :text "Pyright: Unindent not expe..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 3454 :orig-end 3457) #s(flymake--diag :locus #<buffer setup.py> :beg 1200 :end 1205 :type eglot-error :text "Pyright [reportOptionalMem..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 1200 :orig-end 1205) #s(flymake--diag :locus #<buffer setup.py> :beg 3296 :end 3451 :type eglot-note :text "Pyright: Code is unreachab..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 3296 :orig-end 3451) #s(flymake--diag :locus #<buffer setup.py> :beg 4557 :end 4569 :type eglot-error :text "Pyright [reportUnboundVari..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 4557 :orig-end 4569) #s(flymake--diag :locus #<buffer setup.py> :beg 23592 :end 23595 :type eglot-error :text "Pyright [reportGeneralType..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 23592 :orig-end 23595) #s(flymake--diag :locus #<buffer setup.py> :beg 51108 :end 51145 :type eglot-warning :text "Pyright [reportUnusedExpre..." :backend nil :data (...) :overlay-properties nil :overlay nil :orig-beg 51108 :orig-end 51145) #s(flymake--diag :locus #<buffer setup.py> :beg 8240 :end 8242 :type eglot-note :text "Pyright: \"cc\" is not acces..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 8240 :orig-end 8242) #s(flymake--diag :locus #<buffer setup.py> :beg 18390 :end 18393 :type eglot-note :text "Pyright: \"env\" is not acce..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 18390 :orig-end 18393) #s(flymake--diag :locus #<buffer setup.py> :beg 18400 :end 18403 :type eglot-note :text "Pyright: \"src\" is not acce..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 18400 :orig-end 18403) #s(flymake--diag :locus #<buffer setup.py> :beg 20929 :end 20930 :type eglot-note :text "Pyright: \"w\" is not access..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 20929 :orig-end 20930) #s(flymake--diag :locus #<buffer setup.py> :beg 24505 :end 24506 :type eglot-note :text "Pyright: \"a\" is not access..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 24505 :orig-end 24506) #s(flymake--diag :locus #<buffer setup.py> :beg 29720 :end 29726 :type eglot-note :text "Pyright: \"kitten\" is not a..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 29720 :orig-end 29726) #s(flymake--diag :locus #<buffer setup.py> :beg 36489 :end 36493 :type eglot-note :text "Pyright: \"dirs\" is not acc..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 36489 :orig-end 36493) #s(flymake--diag :locus #<buffer setup.py> :beg 49736 :end 49742 :type eglot-note :text "Pyright: \"parent\" is not a..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 49736 :orig-end 49742) #s(flymake--diag :locus #<buffer setup.py> :beg 51455 :end 51459 :type eglot-note :text "Pyright: \"dirs\" is not acc..." :backend nil :data (...) :overlay-properties (...) :overlay nil :orig-beg 51455 :orig-end 51459)))
  #f(compiled-function (arg1 arg2 &rest rest) "Handle notification publishDiagnostics." #<bytecode 0xef94dbaa884b15a>)(#<eglot-lsp-server eglot-lsp-server-767ae8> textDocument/publishDiagnostics :uri "file:///home/brian/Projects/kitty/setup.py" :version 1 :diagnostics [(:range (:start (:line 103 :character 4) :end (:line 103 :character 7)) :message "Try statement must have at least one except or fin..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 10) :end (:line 112 :character 20)) :message "Statements must be separated by newlines or semico..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 40) :end (:line 113 :character 0)) :message "Expected expression" :severity 1 :source "Pyright") (:range (:start (:line 113 :character 0) :end (:line 113 :character 8)) :message "Unexpected indentation" :severity 1 :source "Pyright") (:range (:start (:line 118 :character 0) :end (:line 118 :character 3)) :message "Unindent not expected" :severity 1 :source "Pyright") (:range (:start (:line 46 :character 10) :end (:line 46 :character 15)) :message "\"group\" is not a known member of \"None\"" :severity 1 :code "reportOptionalMemberAccess" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 112 :character 4) :end (:line 115 :character 13)) :message "Code is unreachable" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 146 :character 19) :end (:line 146 :character 31)) :message "\"openssl_dirs\" is possibly unbound" :severity 1 :code "reportUnboundVariable" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 666 :character 32) :end (:line 666 :character 35)) :message "Argument of type \"CompileKey | None\" cannot be ass..." :severity 1 :code "reportGeneralTypeIssues" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 1362 :character 12) :end (:line 1362 :character 49)) :message "Expression value is unused" :severity 2 :code "reportUnusedExpression" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 245 :character 22) :end (:line 245 :character 24)) :message "\"cc\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 24) :end (:line 507 :character 27)) :message "\"env\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 34) :end (:line 507 :character 37)) :message "\"src\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 588 :character 21) :end (:line 588 :character 22)) :message "\"w\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 689 :character 24) :end (:line 689 :character 25)) :message "\"a\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 815 :character 8) :end (:line 815 :character 14)) :message "\"kitten\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 983 :character 14) :end (:line 983 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1333 :character 19) :end (:line 1333 :character 25)) :message "\"parent\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1374 :character 14) :end (:line 1374 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1])])
  apply(#f(compiled-function (arg1 arg2 &rest rest) "Handle notification publishDiagnostics." #<bytecode 0xef94dbaa884b15a>) #<eglot-lsp-server eglot-lsp-server-767ae8> textDocument/publishDiagnostics (:uri "file:///home/brian/Projects/kitty/setup.py" :version 1 :diagnostics [(:range (:start (:line 103 :character 4) :end (:line 103 :character 7)) :message "Try statement must have at least one except or fin..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 10) :end (:line 112 :character 20)) :message "Statements must be separated by newlines or semico..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 40) :end (:line 113 :character 0)) :message "Expected expression" :severity 1 :source "Pyright") (:range (:start (:line 113 :character 0) :end (:line 113 :character 8)) :message "Unexpected indentation" :severity 1 :source "Pyright") (:range (:start (:line 118 :character 0) :end (:line 118 :character 3)) :message "Unindent not expected" :severity 1 :source "Pyright") (:range (:start (:line 46 :character 10) :end (:line 46 :character 15)) :message "\"group\" is not a known member of \"None\"" :severity 1 :code "reportOptionalMemberAccess" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 112 :character 4) :end (:line 115 :character 13)) :message "Code is unreachable" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 146 :character 19) :end (:line 146 :character 31)) :message "\"openssl_dirs\" is possibly unbound" :severity 1 :code "reportUnboundVariable" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 666 :character 32) :end (:line 666 :character 35)) :message "Argument of type \"CompileKey | None\" cannot be ass..." :severity 1 :code "reportGeneralTypeIssues" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 1362 :character 12) :end (:line 1362 :character 49)) :message "Expression value is unused" :severity 2 :code "reportUnusedExpression" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 245 :character 22) :end (:line 245 :character 24)) :message "\"cc\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 24) :end (:line 507 :character 27)) :message "\"env\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 34) :end (:line 507 :character 37)) :message "\"src\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 588 :character 21) :end (:line 588 :character 22)) :message "\"w\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 689 :character 24) :end (:line 689 :character 25)) :message "\"a\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 815 :character 8) :end (:line 815 :character 14)) :message "\"kitten\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 983 :character 14) :end (:line 983 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1333 :character 19) :end (:line 1333 :character 25)) :message "\"parent\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1374 :character 14) :end (:line 1374 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1])]))
  eglot-handle-notification(#<eglot-lsp-server eglot-lsp-server-767ae8> textDocument/publishDiagnostics :uri "file:///home/brian/Projects/kitty/setup.py" :version 1 :diagnostics [(:range (:start (:line 103 :character 4) :end (:line 103 :character 7)) :message "Try statement must have at least one except or fin..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 10) :end (:line 112 :character 20)) :message "Statements must be separated by newlines or semico..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 40) :end (:line 113 :character 0)) :message "Expected expression" :severity 1 :source "Pyright") (:range (:start (:line 113 :character 0) :end (:line 113 :character 8)) :message "Unexpected indentation" :severity 1 :source "Pyright") (:range (:start (:line 118 :character 0) :end (:line 118 :character 3)) :message "Unindent not expected" :severity 1 :source "Pyright") (:range (:start (:line 46 :character 10) :end (:line 46 :character 15)) :message "\"group\" is not a known member of \"None\"" :severity 1 :code "reportOptionalMemberAccess" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 112 :character 4) :end (:line 115 :character 13)) :message "Code is unreachable" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 146 :character 19) :end (:line 146 :character 31)) :message "\"openssl_dirs\" is possibly unbound" :severity 1 :code "reportUnboundVariable" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 666 :character 32) :end (:line 666 :character 35)) :message "Argument of type \"CompileKey | None\" cannot be ass..." :severity 1 :code "reportGeneralTypeIssues" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 1362 :character 12) :end (:line 1362 :character 49)) :message "Expression value is unused" :severity 2 :code "reportUnusedExpression" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 245 :character 22) :end (:line 245 :character 24)) :message "\"cc\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 24) :end (:line 507 :character 27)) :message "\"env\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 34) :end (:line 507 :character 37)) :message "\"src\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 588 :character 21) :end (:line 588 :character 22)) :message "\"w\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 689 :character 24) :end (:line 689 :character 25)) :message "\"a\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 815 :character 8) :end (:line 815 :character 14)) :message "\"kitten\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 983 :character 14) :end (:line 983 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1333 :character 19) :end (:line 1333 :character 25)) :message "\"parent\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1374 :character 14) :end (:line 1374 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1])])
  apply(eglot-handle-notification #<eglot-lsp-server eglot-lsp-server-767ae8> textDocument/publishDiagnostics (:uri "file:///home/brian/Projects/kitty/setup.py" :version 1 :diagnostics [(:range (:start (:line 103 :character 4) :end (:line 103 :character 7)) :message "Try statement must have at least one except or fin..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 10) :end (:line 112 :character 20)) :message "Statements must be separated by newlines or semico..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 40) :end (:line 113 :character 0)) :message "Expected expression" :severity 1 :source "Pyright") (:range (:start (:line 113 :character 0) :end (:line 113 :character 8)) :message "Unexpected indentation" :severity 1 :source "Pyright") (:range (:start (:line 118 :character 0) :end (:line 118 :character 3)) :message "Unindent not expected" :severity 1 :source "Pyright") (:range (:start (:line 46 :character 10) :end (:line 46 :character 15)) :message "\"group\" is not a known member of \"None\"" :severity 1 :code "reportOptionalMemberAccess" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 112 :character 4) :end (:line 115 :character 13)) :message "Code is unreachable" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 146 :character 19) :end (:line 146 :character 31)) :message "\"openssl_dirs\" is possibly unbound" :severity 1 :code "reportUnboundVariable" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 666 :character 32) :end (:line 666 :character 35)) :message "Argument of type \"CompileKey | None\" cannot be ass..." :severity 1 :code "reportGeneralTypeIssues" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 1362 :character 12) :end (:line 1362 :character 49)) :message "Expression value is unused" :severity 2 :code "reportUnusedExpression" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 245 :character 22) :end (:line 245 :character 24)) :message "\"cc\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 24) :end (:line 507 :character 27)) :message "\"env\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 34) :end (:line 507 :character 37)) :message "\"src\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 588 :character 21) :end (:line 588 :character 22)) :message "\"w\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 689 :character 24) :end (:line 689 :character 25)) :message "\"a\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 815 :character 8) :end (:line 815 :character 14)) :message "\"kitten\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 983 :character 14) :end (:line 983 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1333 :character 19) :end (:line 1333 :character 25)) :message "\"parent\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1374 :character 14) :end (:line 1374 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1])]))
  #f(compiled-function (server method params) #<bytecode -0xa3a70a8232ab761>)(#<eglot-lsp-server eglot-lsp-server-767ae8> textDocument/publishDiagnostics (:uri "file:///home/brian/Projects/kitty/setup.py" :version 1 :diagnostics [(:range (:start (:line 103 :character 4) :end (:line 103 :character 7)) :message "Try statement must have at least one except or fin..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 10) :end (:line 112 :character 20)) :message "Statements must be separated by newlines or semico..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 40) :end (:line 113 :character 0)) :message "Expected expression" :severity 1 :source "Pyright") (:range (:start (:line 113 :character 0) :end (:line 113 :character 8)) :message "Unexpected indentation" :severity 1 :source "Pyright") (:range (:start (:line 118 :character 0) :end (:line 118 :character 3)) :message "Unindent not expected" :severity 1 :source "Pyright") (:range (:start (:line 46 :character 10) :end (:line 46 :character 15)) :message "\"group\" is not a known member of \"None\"" :severity 1 :code "reportOptionalMemberAccess" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 112 :character 4) :end (:line 115 :character 13)) :message "Code is unreachable" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 146 :character 19) :end (:line 146 :character 31)) :message "\"openssl_dirs\" is possibly unbound" :severity 1 :code "reportUnboundVariable" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 666 :character 32) :end (:line 666 :character 35)) :message "Argument of type \"CompileKey | None\" cannot be ass..." :severity 1 :code "reportGeneralTypeIssues" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 1362 :character 12) :end (:line 1362 :character 49)) :message "Expression value is unused" :severity 2 :code "reportUnusedExpression" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 245 :character 22) :end (:line 245 :character 24)) :message "\"cc\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 24) :end (:line 507 :character 27)) :message "\"env\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 34) :end (:line 507 :character 37)) :message "\"src\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 588 :character 21) :end (:line 588 :character 22)) :message "\"w\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 689 :character 24) :end (:line 689 :character 25)) :message "\"a\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 815 :character 8) :end (:line 815 :character 14)) :message "\"kitten\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 983 :character 14) :end (:line 983 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1333 :character 19) :end (:line 1333 :character 25)) :message "\"parent\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1374 :character 14) :end (:line 1374 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1])]))
  jsonrpc-connection-receive(#<eglot-lsp-server eglot-lsp-server-767ae8> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params (:uri "file:///home/brian/Projects/kitty/setup.py" :version 1 :diagnostics [(:range (:start (:line 103 :character 4) :end (:line 103 :character 7)) :message "Try statement must have at least one except or fin..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 10) :end (:line 112 :character 20)) :message "Statements must be separated by newlines or semico..." :severity 1 :source "Pyright") (:range (:start (:line 112 :character 40) :end (:line 113 :character 0)) :message "Expected expression" :severity 1 :source "Pyright") (:range (:start (:line 113 :character 0) :end (:line 113 :character 8)) :message "Unexpected indentation" :severity 1 :source "Pyright") (:range (:start (:line 118 :character 0) :end (:line 118 :character 3)) :message "Unindent not expected" :severity 1 :source "Pyright") (:range (:start (:line 46 :character 10) :end (:line 46 :character 15)) :message "\"group\" is not a known member of \"None\"" :severity 1 :code "reportOptionalMemberAccess" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 112 :character 4) :end (:line 115 :character 13)) :message "Code is unreachable" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 146 :character 19) :end (:line 146 :character 31)) :message "\"openssl_dirs\" is possibly unbound" :severity 1 :code "reportUnboundVariable" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 666 :character 32) :end (:line 666 :character 35)) :message "Argument of type \"CompileKey | None\" cannot be ass..." :severity 1 :code "reportGeneralTypeIssues" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 1362 :character 12) :end (:line 1362 :character 49)) :message "Expression value is unused" :severity 2 :code "reportUnusedExpression" :source "Pyright" :codeDescription (:href "https://github.com/microsoft/pyright/blob/main/doc...")) (:range (:start (:line 245 :character 22) :end (:line 245 :character 24)) :message "\"cc\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 24) :end (:line 507 :character 27)) :message "\"env\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 507 :character 34) :end (:line 507 :character 37)) :message "\"src\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 588 :character 21) :end (:line 588 :character 22)) :message "\"w\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 689 :character 24) :end (:line 689 :character 25)) :message "\"a\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 815 :character 8) :end (:line 815 :character 14)) :message "\"kitten\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 983 :character 14) :end (:line 983 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1333 :character 19) :end (:line 1333 :character 25)) :message "\"parent\" is not accessed" :severity 4 :source "Pyright" :tags [1]) (:range (:start (:line 1374 :character 14) :end (:line 1374 :character 18)) :message "\"dirs\" is not accessed" :severity 4 :source "Pyright" :tags [1])])))
  jsonrpc--process-filter(#<process EGLOT (kitty/(python-mode))> "{\"jsonrpc\":\"2.0\",\"method\":\"textDocument/publishDia...")

Minimum Reproducible Example (mandatory)

(let ((bootstrap-file (concat user-emacs-directory "straight/repos/straight.el/bootstrap.el"))
      (bootstrap-version 5))
  (unless (file-exists-p bootstrap-file)
    (with-current-buffer
        (url-retrieve-synchronously
         "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
         'silent 'inhibit-cookies)
      (goto-char (point-max))
      (eval-print-last-sexp)))
  (load bootstrap-file nil 'nomessage))

(straight-use-package 'use-package)
(setq straight-use-package-by-default t)

(use-package eglot
  :hook (python-mode . eglot-ensure)
  :config
  (add-to-list 'eglot-server-programs `(python-mode . ("pyright-langserver" "--stdio"))))

With the above init.el loaded, and with the pyright language server installed and started up, in https://github.com/kovidgoyal/kitty, visit this line.

The two branches below produce different outcomes:

a. (without clone-indirect-buffer, completely reasonable and non-buggy behavior) In the same buffer, remove the t from except and save. If you run flymake-show-project-diagnostics, you are told of an error at that line, which is expected and unsurprising.

b. (with clone-indirect-buffer-other-window) Before performing any modifications in the original buffer, run clone-indirect-buffer-other-window, and in the newly-created clone, remove the t from except and save. You should be greeted with something like the above backtrace if debug-on-error is t. Whether that is the case and you exit the backtrace, or whether debug-on-error is nil, run flymake-show-project-diagnostics. You will not see any mention of an error at that line, though you are told of errors in other parts of the file.

I have encountered this problem with other language servers as well, so I doubt it's a server-specific issue.

joaotavora commented 2 years ago

Please, please, try to make short reproduction recipes. bootstrap files, straight.el, use package, eglot-ensure, enormous transcripts of long-running sessions are generally not needed.

This enormous bug report can be boiled down to 5 lines.

ensure the clangd server is installed, on arch pacman -S clang
cd dir-of-eglot-clone
emacs -Q -L . -l eglot path-to-some-c-file.c -f eglot
M-x clone-indirect-buffer
Type something in the indirect buffer
joaotavora commented 2 years ago

Possibly related to #116. Indirect buffers are always trouble.

joaotavora commented 2 years ago

Please, please, try to make short reproduction recipes. bootstrap files, straight.el, use package, eglot-ensure, enormous transcripts of long-running sessions are generally not needed.

Thanks for the bug report regardless!

leungbk commented 1 year ago

Just noticed this is a duplicate of #843.