Emacs の LSP 設定に関する個人的メモです。
前に書いた use-package と同様に eglot という LSP クライアントが Emacs29.1 から標準機能に組み込まれています。 LSP というのはプログラムを書く時に色々と助言をくれるソフトです。 なんかいっぱい表示が出て、どのように書けば良いか教えてくれます。
色々とお節介な表示が鬱陶しいため今まで LSP を使ったことはないのですが、せっかく標準機能になったので触っています。
公式サイトを見ながら設定を書いていきます。
https://github.com/joaotavora/eglot
使い方は非常に簡単で、company というコード補完のパッケージと対応した LSP サーバーを導入して eglot とミニバッファに打つだけです。 思っていた以上に導入が簡単でした。
対応している LSP サーバーも公式サイトに一覧があり、URL 先のインストール方法に従えば問題なく導入できます。 面白くないくらいに簡単にセットアップが終わりました。
最終的な設定は次のようになっています。
(use-package eglot :config (add-to-list 'eglot-server-programs '((js-mode js-ts-mode typescript-mode typescript-ts-mode) . (eglot-deno "deno" "lsp"))) (defclass eglot-deno (eglot-lsp-server) () :documentation "A custom class for deno lsp.") (cl-defmethod eglot-initialization-options ((server eglot-deno)) "Passes through required deno initialization options" (list :enable t :lint t)) (setq eglot-ignored-server-capabilities '(:documentHighlightProvider :inlayHintProvider)) (setq eldoc-echo-area-use-multiline-p nil) :hook ((sh-mode c-mode c++-mode python-mode ruby-mode rust-mode html-mode css-mode js-mode) . eglot-ensure))
インラインのヒントは表示が鬱陶しいため機能を停止しています。
とりあえず、普通に使う分には問題ないと思います。
余談
python のスペルを間違っていて、自動起動しないなと暫く悩んでいました。
タイプミスには注意しましょう