Emacs 29 でTree-sitterを利用してシンタックスハイライトする

こんにちは!ついに、Emacs 29がリリースされましたね!

Emacs 29からは Tree-sitterが含まれるようになり、
外部からパッケージをインストールしなくても Tree-sitterが利用できるようになりました。

この記事では設定方法などを説明したいと思います。
Tree-sitter自体の概要などは https://zenn.dev/hyakt/articles/6ff892c2edbabb の記事を参考にしてください。

インストール

treesitというファイルでTree-sitterの機能が提供されているのですが、
言語別のパーサは自分で入れる必要があります。

M-x treesit-install-language-grammerを呼び出し、プロンプトに従ってパーサのURLなどを設定していくとインストールできるのですが、
treesit-autoというライブラリを利用するともっと簡単にパーサをインストールできます。

なので、treesit-autoをインストールし設定をしましょう。
自分の設定ファイルは下記になります。

(use-package treesit-auto
  :ensure t
  :config
  (setq treesit-auto-install t)
  (global-treesit-auto-mode))

このようにすることでtreesitが利用できるモードを開いたタイミングで パーサがインストールされ、treesitが利用できるようになります。

設定

上記を入れてしまえば、特に何も設定しなくても Tree-sitterは利用できるのですが、
デフォルトだとハイライトされる構文がすくなく寂しいです。
treesit-font-lock-levelを変更することでどのレベルの構文をハイライトするか変更できるので、これに最大値を設定してあげましょう。

自分の設定ファイルは下記になります。

(use-package treesit
  :config
  (setq treesit-font-lock-level 4))

終わりに

Emacs 29でのTree-sitterの利用方法について説明しました。

Emacs 29、変更が盛りだくさんで嬉しいですね!

original: zenn