joaotavora / eglot

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

dart_language_server deprecated. #861

Closed zw963 closed 2 years ago

zw963 commented 2 years ago
Following is error message when working with dart-mode.

 \")\207" [#<buffer my_transactions_page.dart> (#0) eglot--managed-mode remove-hook post-command-hook nil buffer-live-p apply eglot--connect eglot--guess-contact] 4]): (file-missing "Searching for program" "No such file or directory" "dart_language_server")

From the dart-lang official document, dart start to support Dart analysis server from version 2.2.0 , now it use form like this:

dart language-server --client-id my-editor.my-plugin --client-version 1.2

Please check.

https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/tool/lsp_spec/README.md

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

Debugger entered--Lisp error: (error "[eglot] Can't find an Eglot events buffer!") error("[eglot] %s" "Can't find an Eglot events buffer!") eglot--error("Can't find an Eglot events buffer!") eglot-events-buffer(nil) funcall-interactively(eglot-events-buffer nil) command-execute(eglot-events-buffer record) execute-extended-command(nil "eglot-events-buffer" "eglot-ev") funcall-interactively(execute-extended-command nil "eglot-events-buffer" "eglot-ev")

Minimal configuration (mandatory)

(require 'eglot_init)
(add-hook 'dart-mode-hook 'eglot-ensure)
zw963 commented 2 years ago

I don't know when to use --client-id my-editor.my-plugin or --client-version 1.2, but it seem like just work after setting like this:

(setq eglot-server-programs
      `((dart-mode . ("dart" "language-server"))))