FreeStyleWiki

Emacsの設定(lsp-mode)

このエントリーをはてなブックマークに追加

[Emacs]

Emacsの設定(lsp-mode)

  • かつてC++でタグジャンプをする場合、etags/ctags/gtagsを使ったりした
  • それができないときは"M-x find-grep"で気合で関数を探していた

一方でRedditでIs etags still the way to go, or are there better tools now?なるスレッドが立っていて

Have a look at lsp-mode + clangd for Cpp.

なんと!

Qiitaで検索するとC++でも language server protocol(LSP)? を導入している記事をちらほら見かけるようになったので、導入を試みる。

  選択肢

どうやらC++に関しては

  • lspのクライアント実装
  • lspのサーバ実装
    • ccls, clangd, cquery らしい

  Emacs eglot + ccls

cclsとeglotの導入が簡単そうなので、試す

debian(bullseye)にcclsインストール

$ sudo apt-get install ccls

eglotをインストール

Emacs上で以下のようにする

M-x package-install RET eglot RET

あとは

  • C/C++/ObjCのソースコードをEmacsで開く
  • 「M-x eglot-ensure」する

と、画面右下にeglotの文字が出て起動する。うまくいっていればbufferに「 %* *EGLOT (プロジェクト名/c++-mode) events* 220433 Fundamental 」みたいのが出る

あとは通常のTAGでのジャンプのように「M-.」すれば使える