abougouffa / minemacs

MinEmacs: an Emacs configuration framework for daily use
https://abougouffa.github.io/minemacs/
MIT License
140 stars 17 forks source link

Cannot use LSP Servers, stuck on "starting" #156

Closed jonathanwilner closed 4 months ago

jonathanwilner commented 5 months ago

Describe the bug LSP-mode is always stuck on "starting" after encountering an error, which reports as a problem in parsing the JSON response from the LSP Server. This appears to happen for both C (clangd) and for Python (pyright and pylsp). Does not happen for eglot.

The error reported for clang is in the Backtrace below.

Emacs version Run M-x emacs-version and put its output here:


GNU Emacs 29.1 (build 1, aarch64-apple-darwin23.3.0, NS appkit-2487.40 Version
14.3.1 (Build 23D60))

Checkup list

To Reproduce

View a python or c language file, run M-x lsp

Expected behavior LSP-mode starts successfully and connects.

Backtrace

Debugger entered--Lisp error: (wrong-type-argument hash-table-p (:id 1 :jsonrpc "2.0" :result (:capabilities (:astProvider t :callHierarchyProvider t :clangdInlayHintsProvider t :codeActionProvider (:codeActionKinds ["quickfix" "refactor" "info"]) :compilationDatabase (:automaticReload t) :completionProvider (:resolveProvider nil :triggerCharacters ["." "<" ">" ":" "\"" "/" "*"]) :declarationProvider t :definitionProvider t :documentFormattingProvider t :documentHighlightProvider t :documentLinkProvider (:resolveProvider nil) :documentOnTypeFormattingProvider (:firstTriggerCharacter "\n" :moreTriggerCharacter []) :documentRangeFormattingProvider t :documentSymbolProvider t :executeCommandProvider (:commands ["clangd.applyFix" "clangd.applyTweak"]) :foldingRangeProvider t :hoverProvider t :implementationProvider t :inlayHintProvider t :memoryUsageProvider t :referencesProvider t :renameProvider (:prepareProvider t) :selectionRangeProvider t :semanticTokensProvider (:full (:delta t) :legend (:tokenModifiers ["declaration" "definition" "deprecated" "deduced" "readonly" "static" "abstract" "virtual" "dependentName" "defaultLibrary" "usedAsMutableReference" "usedAsMutablePointer" "constructorOrDestructor" "userDefined" "functionScope" "classScope" "fileScope" "globalScope"] :tokenTypes ["variable" "variable" "parameter" "function" "method" "function" "property" "variable" "class" "interface" "enum" "enumMember" "type" "type" "unknown" "namespace" "typeParameter" "concept" "type" "macro" "modifier" "operator" "comment"]) :range nil) :signatureHelpProvider (:triggerCharacters ["(" ")" "{" "}" "<" ">" ","]) ...) :serverInfo (:name "clangd" :version "clangd version 16.0.6 mac aarch64-apple-darwin23.3..."))))
  gethash("params" (:id 1 :jsonrpc "2.0" :result (:capabilities (:astProvider t :callHierarchyProvider t :clangdInlayHintsProvider t :codeActionProvider (:codeActionKinds ["quickfix" "refactor" "info"]) :compilationDatabase (:automaticReload t) :completionProvider (:resolveProvider nil :triggerCharacters ["." "<" ">" ":" "\"" "/" "*"]) :declarationProvider t :definitionProvider t :documentFormattingProvider t :documentHighlightProvider t :documentLinkProvider (:resolveProvider nil) :documentOnTypeFormattingProvider (:firstTriggerCharacter "\n" :moreTriggerCharacter []) :documentRangeFormattingProvider t :documentSymbolProvider t :executeCommandProvider (:commands ["clangd.applyFix" "clangd.applyTweak"]) :foldingRangeProvider t :hoverProvider t :implementationProvider t :inlayHintProvider t :memoryUsageProvider t :referencesProvider t :renameProvider (:prepareProvider t) :selectionRangeProvider t :semanticTokensProvider (:full (:delta t) :legend (:tokenModifiers ["declaration" "definition" "deprecated" "deduced" "readonly" "static" "abstract" "virtual" "dependentName" "defaultLibrary" "usedAsMutableReference" "usedAsMutablePointer" "constructorOrDestructor" "userDefined" "functionScope" "classScope" "fileScope" "globalScope"] :tokenTypes ["variable" "variable" "parameter" "function" "method" "function" "property" "variable" "class" "interface" "enum" "enumMember" "type" "type" "unknown" "namespace" "typeParameter" "concept" "type" "macro" "modifier" "operator" "comment"]) :range nil) :signatureHelpProvider (:triggerCharacters ["(" ")" "{" "}" "<" ">" ","]) ...) :serverInfo (:name "clangd" :version "clangd version 16.0.6 mac aarch64-apple-darwin23.3..."))))
  lsp--on-notification(#s(lsp--workspace :ewoc nil :server-capabilities nil :registered-server-capabilities nil :root "/Users/jonathan/src/skhd" :client #s(lsp--client :language-id nil :add-on? nil :new-connection (:connect #f(compiled-function (filter sentinel name environment-fn workspace) #<bytecode 0x8d6cee62d4ba925>) :test? #f(compiled-function () #<bytecode 0x97139fdf7a69>)) :ignore-regexps nil :ignore-messages nil :notification-handlers #<hash-table equal 0/65 0xf4ef416f> :request-handlers #<hash-table equal 0/65 0xf4ef4445> :response-handlers #<hash-table eql 1/65 0xf4ef4b33> :prefix-function nil :uri-handlers #<hash-table equal 0/65 0xf4fd8c2d> :action-handlers #<hash-table equal 0/65 0xf4fd8e5b> :major-modes nil :activation-fn #f(compiled-function (file-name mode) #<bytecode 0x9fc0fdc156c3d0d>) :priority -1 :server-id clangd :multi-root nil :initialization-options nil :semantic-tokens-faces-overrides nil :custom-capabilities nil :library-folders-fn #f(compiled-function (workspace) #<bytecode -0x47e1dfca464e8f8>) :before-file-open-fn nil :initialized-fn nil :remote? nil :completion-in-comments? nil :path->uri-fn nil :uri->path-fn nil :environment-fn nil :after-open-fn nil :async-request-handlers #<hash-table equal 0/65 0xf4fd95db> :download-server-fn #f(compiled-function (client callback error-callback update?) #<bytecode -0x15a150fa7a91f207>) :download-in-progress? nil :buffers nil :synchronize-sections nil) :host-root nil :proc #<process clangd> :cmd-proc #<process clangd> :buffers (#<buffer synthesize.c>) :semantic-tokens-faces nil :semantic-tokens-modifier-faces nil :extra-client-capabilities nil :status starting :metadata #<hash-table equal 0/65 0xf39a856f> :watches #<hash-table equal 0/65 0xf39a8845> :workspace-folders nil :last-id 0 :status-string nil :shutdown-action nil :diagnostics #<hash-table equal 0/65 0xf39aef33> :work-done-tokens #<hash-table equal 0/65 0xf39b512d>) (:id 1 :jsonrpc "2.0" :result (:capabilities (:astProvider t :callHierarchyProvider t :clangdInlayHintsProvider t :codeActionProvider (:codeActionKinds ["quickfix" "refactor" "info"]) :compilationDatabase (:automaticReload t) :completionProvider (:resolveProvider nil :triggerCharacters ["." "<" ">" ":" "\"" "/" "*"]) :declarationProvider t :definitionProvider t :documentFormattingProvider t :documentHighlightProvider t :documentLinkProvider (:resolveProvider nil) :documentOnTypeFormattingProvider (:firstTriggerCharacter "\n" :moreTriggerCharacter []) :documentRangeFormattingProvider t :documentSymbolProvider t :executeCommandProvider (:commands ["clangd.applyFix" "clangd.applyTweak"]) :foldingRangeProvider t :hoverProvider t :implementationProvider t :inlayHintProvider t :memoryUsageProvider t :referencesProvider t :renameProvider (:prepareProvider t) :selectionRangeProvider t :semanticTokensProvider (:full (:delta t) :legend (:tokenModifiers ["declaration" "definition" "deprecated" "deduced" "readonly" "static" "abstract" "virtual" "dependentName" "defaultLibrary" "usedAsMutableReference" "usedAsMutablePointer" "constructorOrDestructor" "userDefined" "functionScope" "classScope" "fileScope" "globalScope"] :tokenTypes ["variable" "variable" "parameter" "function" "method" "function" "property" "variable" "class" "interface" "enum" "enumMember" "type" "type" "unknown" "namespace" "typeParameter" "concept" "type" "macro" "modifier" "operator" "comment"]) :range nil) :signatureHelpProvider (:triggerCharacters ["(" ")" "{" "}" "<" ">" ","]) ...) :serverInfo (:name "clangd" :version "clangd version 16.0.6 mac aarch64-apple-darwin23.3..."))))
  lsp--parser-on-message((:id 1 :jsonrpc "2.0" :result (:capabilities (:astProvider t :callHierarchyProvider t :clangdInlayHintsProvider t :codeActionProvider (:codeActionKinds ["quickfix" "refactor" "info"]) :compilationDatabase (:automaticReload t) :completionProvider (:resolveProvider nil :triggerCharacters ["." "<" ">" ":" "\"" "/" "*"]) :declarationProvider t :definitionProvider t :documentFormattingProvider t :documentHighlightProvider t :documentLinkProvider (:resolveProvider nil) :documentOnTypeFormattingProvider (:firstTriggerCharacter "\n" :moreTriggerCharacter []) :documentRangeFormattingProvider t :documentSymbolProvider t :executeCommandProvider (:commands ["clangd.applyFix" "clangd.applyTweak"]) :foldingRangeProvider t :hoverProvider t :implementationProvider t :inlayHintProvider t :memoryUsageProvider t :referencesProvider t :renameProvider (:prepareProvider t) :selectionRangeProvider t :semanticTokensProvider (:full (:delta t) :legend (:tokenModifiers ["declaration" "definition" "deprecated" "deduced" "readonly" "static" "abstract" "virtual" "dependentName" "defaultLibrary" "usedAsMutableReference" "usedAsMutablePointer" "constructorOrDestructor" "userDefined" "functionScope" "classScope" "fileScope" "globalScope"] :tokenTypes ["variable" "variable" "parameter" "function" "method" "function" "property" "variable" "class" "interface" "enum" "enumMember" "type" "type" "unknown" "namespace" "typeParameter" "concept" "type" "macro" "modifier" "operator" "comment"]) :range nil) :signatureHelpProvider (:triggerCharacters ["(" ")" "{" "}" "<" ">" ","]) ...) :serverInfo (:name "clangd" :version "clangd version 16.0.6 mac aarch64-apple-darwin23.3..."))) #s(lsp--workspace :ewoc nil :server-capabilities nil :registered-server-capabilities nil :root "/Users/jonathan/src/skhd" :client #s(lsp--client :language-id nil :add-on? nil :new-connection (:connect #f(compiled-function (filter sentinel name environment-fn workspace) #<bytecode 0x8d6cee62d4ba925>) :test? #f(compiled-function () #<bytecode 0x97139fdf7a69>)) :ignore-regexps nil :ignore-messages nil :notification-handlers #<hash-table equal 0/65 0xf4ef416f> :request-handlers #<hash-table equal 0/65 0xf4ef4445> :response-handlers #<hash-table eql 1/65 0xf4ef4b33> :prefix-function nil :uri-handlers #<hash-table equal 0/65 0xf4fd8c2d> :action-handlers #<hash-table equal 0/65 0xf4fd8e5b> :major-modes nil :activation-fn #f(compiled-function (file-name mode) #<bytecode 0x9fc0fdc156c3d0d>) :priority -1 :server-id clangd :multi-root nil :initialization-options nil :semantic-tokens-faces-overrides nil :custom-capabilities nil :library-folders-fn #f(compiled-function (workspace) #<bytecode -0x47e1dfca464e8f8>) :before-file-open-fn nil :initialized-fn nil :remote? nil :completion-in-comments? nil :path->uri-fn nil :uri->path-fn nil :environment-fn nil :after-open-fn nil :async-request-handlers #<hash-table equal 0/65 0xf4fd95db> :download-server-fn #f(compiled-function (client callback error-callback update?) #<bytecode -0x15a150fa7a91f207>) :download-in-progress? nil :buffers nil :synchronize-sections nil) :host-root nil :proc #<process clangd> :cmd-proc #<process clangd> :buffers (#<buffer synthesize.c>) :semantic-tokens-faces nil :semantic-tokens-modifier-faces nil :extra-client-capabilities nil :status starting :metadata #<hash-table equal 0/65 0xf39a856f> :watches #<hash-table equal 0/65 0xf39a8845> :workspace-folders nil :last-id 0 :status-string nil :shutdown-action nil :diagnostics #<hash-table equal 0/65 0xf39aef33> :work-done-tokens #<hash-table equal 0/65 0xf39b512d>))
  #f(compiled-function (msg) #<bytecode 0xf8f03e4dbd0ae90>)((:id 1 :jsonrpc "2.0" :result (:capabilities (:astProvider t :callHierarchyProvider t :clangdInlayHintsProvider t :codeActionProvider (:codeActionKinds ["quickfix" "refactor" "info"]) :compilationDatabase (:automaticReload t) :completionProvider (:resolveProvider nil :triggerCharacters ["." "<" ">" ":" "\"" "/" "*"]) :declarationProvider t :definitionProvider t :documentFormattingProvider t :documentHighlightProvider t :documentLinkProvider (:resolveProvider nil) :documentOnTypeFormattingProvider (:firstTriggerCharacter "\n" :moreTriggerCharacter []) :documentRangeFormattingProvider t :documentSymbolProvider t :executeCommandProvider (:commands ["clangd.applyFix" "clangd.applyTweak"]) :foldingRangeProvider t :hoverProvider t :implementationProvider t :inlayHintProvider t :memoryUsageProvider t :referencesProvider t :renameProvider (:prepareProvider t) :selectionRangeProvider t :semanticTokensProvider (:full (:delta t) :legend (:tokenModifiers ["declaration" "definition" "deprecated" "deduced" "readonly" "static" "abstract" "virtual" "dependentName" "defaultLibrary" "usedAsMutableReference" "usedAsMutablePointer" "constructorOrDestructor" "userDefined" "functionScope" "classScope" "fileScope" "globalScope"] :tokenTypes ["variable" "variable" "parameter" "function" "method" "function" "property" "variable" "class" "interface" "enum" "enumMember" "type" "type" "unknown" "namespace" "typeParameter" "concept" "type" "macro" "modifier" "operator" "comment"]) :range nil) :signatureHelpProvider (:triggerCharacters ["(" ")" "{" "}" "<" ">" ","]) ...) :serverInfo (:name "clangd" :version "clangd version 16.0.6 mac aarch64-apple-darwin23.3..."))))
  mapc(#f(compiled-function (msg) #<bytecode 0xf8f03e4dbd0ae90>) ((:id 1 :jsonrpc "2.0" :result (:capabilities (:astProvider t :callHierarchyProvider t :clangdInlayHintsProvider t :codeActionProvider (:codeActionKinds ["quickfix" "refactor" "info"]) :compilationDatabase (:automaticReload t) :completionProvider (:resolveProvider nil :triggerCharacters ["." "<" ">" ":" "\"" "/" "*"]) :declarationProvider t :definitionProvider t :documentFormattingProvider t :documentHighlightProvider t :documentLinkProvider (:resolveProvider nil) :documentOnTypeFormattingProvider (:firstTriggerCharacter "\n" :moreTriggerCharacter []) :documentRangeFormattingProvider t :documentSymbolProvider t :executeCommandProvider (:commands ["clangd.applyFix" "clangd.applyTweak"]) :foldingRangeProvider t :hoverProvider t :implementationProvider t :inlayHintProvider t :memoryUsageProvider t :referencesProvider t :renameProvider (:prepareProvider t) :selectionRangeProvider t :semanticTokensProvider (:full (:delta t) :legend (:tokenModifiers ["declaration" "definition" "deprecated" "deduced" "readonly" "static" "abstract" "virtual" "dependentName" "defaultLibrary" "usedAsMutableReference" "usedAsMutablePointer" "constructorOrDestructor" "userDefined" "functionScope" "classScope" "fileScope" "globalScope"] :tokenTypes ["variable" "variable" "parameter" "function" "method" "function" "property" "variable" "class" "interface" "enum" "enumMember" "type" "type" "unknown" "namespace" "typeParameter" "concept" "type" "macro" "modifier" "operator" "comment"]) :range nil) :signatureHelpProvider (:triggerCharacters ["(" ")" "{" "}" "<" ">" ","]) ...) :serverInfo (:name "clangd" :version "clangd version 16.0.6 mac aarch64-apple-darwin23.3...")))))
  #f(compiled-function (proc input) #<bytecode 0x74c231f971f7469>)(#<process clangd> "Content-Length: 1957\15\n\15\n{\"id\":1,\"jsonrpc\":\"2.0\",\"r...")

and

LSP :: Connected to [clangd:68989/starting /Users/jonathan/src/skhd].
Error processing message (wrong-type-argument hash-table-p (:capabilities (:astProvider t :callHierarchyProvider t :clangdInlayHintsProvider t :codeActionProvider (:codeActionKinds ["quickfix" "refactor" "info"]) :compilationDatabase (:automaticReload t) :completionProvider (:resolveProvider nil :triggerCharacters ["." "<" ">" ":" "\"" "/" "*"]) :declarationProvider t :definitionProvider t :documentFormattingProvider t :documentHighlightProvider t :documentLinkProvider (:resolveProvider nil) :documentOnTypeFormattingProvider (:firstTriggerCharacter "
" :moreTriggerCharacter []) :documentRangeFormattingProvider t :documentSymbolProvider t :executeCommandProvider (:commands ["clangd.applyFix" "clangd.applyTweak"]) :foldingRangeProvider t :hoverProvider t :implementationProvider t :inlayHintProvider t :memoryUsageProvider t :referencesProvider t :renameProvider (:prepareProvider t) :selectionRangeProvider t :semanticTokensProvider (:full (:delta t) :legend (:tokenModifiers ["declaration" "definition" "deprecated" "deduced" "readonly" "static" "abstract" "virtual" "dependentName" "defaultLibrary" "usedAsMutableReference" "usedAsMutablePointer" "constructorOrDestructor" "userDefined" "functionScope" "classScope" "fileScope" "globalScope"] :tokenTypes ["variable" "variable" "parameter" "function" "method" "function" "property" "variable" "class" "interface" "enum" "enumMember" "type" "type" "unknown" "namespace" "typeParameter" "concept" "type" "macro" "modifier" "operator" "comment"]) :range nil) :signatureHelpProvider (:triggerCharacters ["(" ")" "{" "}" "<" ">" ","]) :standardTypeHierarchyProvider t :textDocumentSync (:change 2 :openClose t :save t) :typeDefinitionProvider t :typeHierarchyProvider t :workspaceSymbolProvider t) :serverInfo (:name "clangd" :version "clangd version 16.0.6 mac aarch64-apple-darwin23.3.0"))).

Screenshots

Additional context

abougouffa commented 5 months ago

Thank you for reporting this.

The lsp-mode configuration is kind of obsolete in MinEmacs since I'm relaying exclusively on eglot. I will try to take a look into this soon.

Thanks again!

jonathanwilner commented 5 months ago

Thank you !

On Mon, Mar 4, 2024 at 13:30 Abdelhak Bougouffa @.***> wrote:

Thank you for reporting this.

The lsp-mode configuration is kind of obsolete in MinEmacs since I'm relaying exclusively on eglot. I will try to take a look into this soon.

Thanks again!

— Reply to this email directly, view it on GitHub https://github.com/abougouffa/minemacs/issues/156#issuecomment-1977492465, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEOIB536RF5TA4RWWJ6RXDYWTRWNAVCNFSM6AAAAABEFUB4ICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZXGQ4TENBWGU . You are receiving this because you authored the thread.Message ID: @.***>

abougouffa commented 4 months ago

I've made the me-lsp obsolete under obsolete/me-lsp as I'm not using it anymore.