emacs
emacs copied to clipboard
lsp-servers crashing or not responding
I get different behaviours with the same config on Linux and an M1 Macbook.
I compiled them mostly the same way on both machines by cloning this repo and configuring with
Linux:
./configure --with-native-compilation --with-json --with-xwidgets --with-cairo --with-modules --with-gnutls --with-harfbuzz --with-imagemagick --with-jpeg --with-png
Mac
./configure --with-native-compilation --with-json --with-xwidgets --with-modules --with-imagemagick --with-jpeg --with-png
On my Linux-machine everything works great and is really snappy.
On my M1 Pro Macbook instead the LSP-servers immediately crash as soon as they are started.
I've tried running ts-ls
+ eslint
on an actual big work project and a small dummy example and it crashes in both scenarios.
note: deno is not part of my code nor am I actively trying to run that language server.
*Messages*
Server eslint:0/starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n) y
Server ts-ls:0/starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n) y
Eager macro-expansion failure: (wrong-number-of-arguments (1 . 1) 0)
---
*Native-Compile-Log*
Compiling /var/folders/2z/j_prjx4s2zsdk_ccfjdwy9l80000gn/T/freefn-2b656d6163732d6c6973702d686967686c696768742d766172732d616e642d6661636573_emacs_lisp_highlight_vars_and_faces_0RSVEDl.eln...
ld: warning: -undefined dynamic_lookup may not work with chained fixups
Compiling /Users/filip-lindahl/.emacs.d/.local/cache/eln/28_2-3bc03591/subr--trampoline-6765742d636861722d70726f7065727479_get_char_property_0.eln...
ld: warning: -undefined dynamic_lookup may not work with chained fixups
Compiling /var/folders/2z/j_prjx4s2zsdk_ccfjdwy9l80000gn/T/freefn-2b656d6163732d6c6973702d7472756e636174652d70696e_emacs_lisp_truncate_pin_0PRvdYJ.eln...
ld: warning: -undefined dynamic_lookup may not work with chained fixups
Compiling /var/folders/2z/j_prjx4s2zsdk_ccfjdwy9l80000gn/T/freefn-2b656d6163732d6c6973702d2d63616c63756c6174652d6c6973702d696e64656e742d61_emacs_lisp__calculate_lisp_indent_a_0bJRklH.eln...
ld: warning: -undefined dynamic_lookup may not work with chained fixups
---
*lsp-log*
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Found the following clients for /Users/filip-lindahl/lsptest/App.js: (server-id eslint, priority -1), (server-id ts-ls, priority -2)
The following clients were selected based on priority: (server-id ts-ls, priority -2), (server-id eslint, priority -1)
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Found the following clients for /Users/filip-lindahl/lsptest/App.js: (server-id eslint, priority -1), (server-id ts-ls, priority -2)
The following clients were selected based on priority: (server-id ts-ls, priority -2), (server-id eslint, priority -1)
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Found the following clients for /Users/filip-lindahl/lsptest/App.js: (server-id eslint, priority -1), (server-id ts-ls, priority -2)
The following clients were selected based on priority: (server-id ts-ls, priority -2), (server-id eslint, priority -1)
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Found the following clients for /Users/filip-lindahl/lsptest/App.js: (server-id eslint, priority -1), (server-id ts-ls, priority -2)
The following clients were selected based on priority: (server-id ts-ls, priority -2), (server-id eslint, priority -1)
---
*Backtrace*
Debugger entered--Lisp error: (error "Timeout while waiting for response. Method: textD...")
error("Timeout while waiting for response. Method: %s" "textDocument/completion")
lsp-request-while-no-input("textDocument/completion" (:textDocument (:uri "file:///Users/filip-lindahl/lsptest/App.js") :position (:line 1 :character 2) :context #<hash-table equal 2/65 0x4742484f>))
#f(compiled-function () #<bytecode -0xa05358edc08f661>)()
#f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>)("" nil t)
completion-pcm--all-completions("" (point) #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil)
completion-basic-all-completions("" #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil 0)
lsp-completion-passthrough-all-completions("" #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil 0)
#f(compiled-function (style) #<bytecode 0x11b0ce1849ce85bb>)(lsp-passthrough)
completion--some(#f(compiled-function (style) #<bytecode 0x11b0ce1849ce85bb>) (lsp-passthrough basic partial-completion emacs22))
completion--nth-completion(2 "" #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil 0 (metadata (category . lsp-capf) (display-sort-function . identity) (cycle-sort-function . identity)))
completion-all-completions("" #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil 0 (metadata (category . lsp-capf) (display-sort-function . identity) (cycle-sort-function . identity)))
company-capf--candidates("")
company-capf(candidates "")
company--multi-backend-adapter-candidates((company-capf company-yasnippet) "" (:separate company-capf company-yasnippet))
company--multi-backend-adapter((:separate company-capf company-yasnippet) candidates "")
apply(company--multi-backend-adapter (:separate company-capf company-yasnippet) (candidates ""))
company-call-backend-raw(candidates "")
company--fetch-candidates("")
company-calculate-candidates("" nil)
company--begin-new()
company--perform()
company-auto-begin()
company-idle-begin(#<buffer App.js> #<window 3 on App.js> 306 28)
apply(company-idle-begin (#<buffer App.js> #<window 3 on App.js> 306 28))
timer-event-handler([t 25494 57281 792794 nil company-idle-begin (#<buffer App.js> #<window 3 on App.js> 306 28) nil 0 nil])
---
*Company-documentation*
Wrong type argument: stringp, nil comment Wrong type argument: stringp, nil
I am experiencing this as well on M1
I've managed to fix it by ensuring node
is present in /opt/homebrew/bin
, but still the lsp servers are either incredibly slow to respond (20+ seconds for completion) or just flat out throw a timeout, looking briefly at the io logs I wan't able to discern anything unfortunately