Open Hi-Angel opened 1 year ago
Do you know which servers have (nil "--stdio=true")
? 🤔
Do you know which servers have
(nil "--stdio=true")
? 🤔
I presume you're asking which one has nil
(because which servers has --stdio=true
I mentioned). Well, that I don't know. The only one with --stdio=true
has no nil
. No idea where did it come from.
Thank you for the bug report
lsp-mode
related packages.M-x lsp-start-plain
Bug description
Just tried
lsp-install-server
and found out by default it fails withThere is no automatic installation for ‘nil’
, and withlsp-start-plain
which presumably does some additional checks it fails with the assert.I did some debugging — my PR was recently merged so I was afraid I might have something broke. I found that the assertion inside
lsp-resolve-final-function
happens because some server is declared as(nil "--stdio=true")
. There is only one server that has "--stdio=true", it iscredo-language-server
(which I didn't touch).I looked through the code of
credo-language-server
, but haven't found anything suspicious. I don't know details of the initialization, so at this point I decided to report the bug.Steps to reproduce
Expected behavior
A prompt asking what server you want to install would appear
Which Language Server did you use?
None
OS
Linux
Error callstack
Details using
lsp-start-plain
Stacktrace
```emacs-lisp Debugger entered--Lisp error: (cl-assertion-failed ((seq-every-p (apply-partially #'stringp) command) "Invalid command list")) cl--assertion-failed((seq-every-p (apply-partially #'stringp) command) "Invalid command list" nil nil) (or (seq-every-p (apply-partially #'stringp) command) (cl--assertion-failed '(seq-every-p (apply-partially #'stringp) command) "Invalid command list" (list) (list))) (progn (or (seq-every-p (apply-partially #'stringp) command) (cl--assertion-failed '(seq-every-p (apply-partially #'stringp) command) "Invalid command list" (list) (list))) nil) (cond ((listp command) (progn (or (seq-every-p (apply-partially #'stringp) command) (cl--assertion-failed '(seq-every-p (apply-partially ...) command) "Invalid command list" (list) (list))) nil) command) ((stringp command) (list command)) ((error "cl-etypecase failed: %s, %s" command '(list string)) nil)) (let* ((command (if (functionp command) (funcall command) command))) (cond ((listp command) (progn (or (seq-every-p (apply-partially #'stringp) command) (cl--assertion-failed '(seq-every-p ... command) "Invalid command list" (list) (list))) nil) command) ((stringp command) (list command)) ((error "cl-etypecase failed: %s, %s" command '(list string)) nil))) lsp-resolve-final-function((closure (t) nil (cons (or (executable-find (cl-first lsp-credo-command)) (lsp-package-path 'credo-language-server)) (cl-rest lsp-credo-command)))) (lsp-server-present? (lsp-resolve-final-function command)) (closure ((command closure (t) nil (cons (or (executable-find (cl-first lsp-credo-command)) (lsp-package-path 'credo-language-server)) (cl-rest lsp-credo-command)))) nil (lsp-server-present? (lsp-resolve-final-function command)))() funcall((closure ((command closure (t) nil (cons (or (executable-find (cl-first lsp-credo-command)) (lsp-package-path 'credo-language-server)) (cl-rest lsp-credo-command)))) nil (lsp-server-present? (lsp-resolve-final-function command)))) (progn (funcall result)) (if result (progn (funcall result))) (let ((result (let ((result (let (...) (if result ...)))) (if result (progn (plist-get result :test?)))))) (if result (progn (funcall result)))) (condition-case nil (let ((result (let ((result (let ... ...))) (if result (progn (plist-get result :test?)))))) (if result (progn (funcall result)))) (error nil) (args-out-of-range nil)) (if (equal (let* ((cl-x client)) (progn (or (let* ((cl-x cl-x)) (progn (and ... t))) (signal 'wrong-type-argument (list 'lsp--client cl-x))) (aref cl-x 15))) 'lsp-pwsh) nil (condition-case nil (let ((result (let ((result ...)) (if result (progn ...))))) (if result (progn (funcall result)))) (error nil) (args-out-of-range nil))) lsp--server-binary-present?(#s(lsp--client :language-id nil :add-on? t :new-connection (:connect (closure ((command closure (t) nil (cons (or ... ...) (cl-rest lsp-credo-command)))) (filter sentinel name environment-fn workspace) (if (functionp 'json-rpc-connection) (lsp-json-rpc-connection workspace (lsp-resolve-final-function command)) (let ((final-command ...) (process-name ...) (process-environment ...)) (let* (... ... ...) (set-process-query-on-exit-flag proc nil) (set-process-query-on-exit-flag ... nil) (save-current-buffer ... ...) (cons proc proc))))) :test? (closure ((command closure (t) nil (cons (or ... ...) (cl-rest lsp-credo-command)))) nil (lsp-server-present? (lsp-resolve-final-function command)))) :ignore-regexps nil :ignore-messages nil :notification-handlers #*lsp-log*
``` Command "/usr/lib/rustup/bin/rust-analyzer" is present on the path. Command "perlnavigator --stdio" is not present on the path. Command "java -jar /home/constantine/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.7.1.jar --debug" is not present on the path. Command "marksman" is not present on the path. Command "kotlin-language-server" is not present on the path. Command "/usr/lib/rustup/bin/rust-analyzer" is present on the path. Command "perlnavigator --stdio" is not present on the path. Command "java -jar /home/constantine/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.7.1.jar --debug" is not present on the path. Command "marksman" is not present on the path. Command "kotlin-language-server" is not present on the path. Command "semgrep lsp" is not present on the path. Command "clangd --header-insertion-decorators=0" is present on the path. Command "semgrep lsp" is not present on the path. Command "clangd --header-insertion-decorators=0" is present on the path. Found the following clients for /home/constantine/Projects/builds/emacs-git/src/emacs-git/src/eval.c: (server-id clangd, priority -1) The following clients were selected based on priority: (server-id clangd, priority -1) Command "/usr/lib/rustup/bin/rust-analyzer" is present on the path. Command "perlnavigator --stdio" is not present on the path. Command "java -jar /home/constantine/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.7.1.jar --debug" is not present on the path. Command "marksman" is not present on the path. Command "kotlin-language-server" is not present on the path. Command "/usr/lib/rustup/bin/rust-analyzer" is present on the path. Command "perlnavigator --stdio" is not present on the path. Command "java -jar /home/constantine/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.7.1.jar --debug" is not present on the path. Command "marksman" is not present on the path. Command "kotlin-language-server" is not present on the path. Command "/usr/lib/rustup/bin/rust-analyzer" is present on the path. Command "perlnavigator --stdio" is not present on the path. Command "java -jar /home/constantine/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.7.1.jar --debug" is not present on the path. Command "marksman" is not present on the path. Command "kotlin-language-server" is not present on the path. Command "/usr/lib/rustup/bin/rust-analyzer" is present on the path. Command "perlnavigator --stdio" is not present on the path. Command "java -jar /home/constantine/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.7.1.jar --debug" is not present on the path. Command "marksman" is not present on the path. Command "kotlin-language-server" is not present on the path. Command "/usr/lib/rustup/bin/rust-analyzer" is present on the path. Command "perlnavigator --stdio" is not present on the path. Command "java -jar /home/constantine/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.7.1.jar --debug" is not present on the path. Command "marksman" is not present on the path. Command "kotlin-language-server" is not present on the path. Command "/usr/lib/rustup/bin/rust-analyzer" is present on the path. Command "perlnavigator --stdio" is not present on the path. Command "java -jar /home/constantine/.emacs.d/.cache/lsp/magik-ls/magik-language-server-0.7.1.jar --debug" is not present on the path. Command "marksman" is not present on the path. Command "kotlin-language-server" is not present on the path. ```lsp-workspace-show-log
asks for a workspace and I don't have anything to type.Anything else?
No response