Emacs tree-sitter 壞掉的解決方式

嘗試使用 clojure-ts-mode,每次開啟 clojure-ts-mode 的時候。總會遇到 treesit-query-compile not found error。

解決方法

emacs 從 29 開始,tree-sitter 為原生支援。可以透過以下的指令確認emacs 是否支援 tree-sitter

  1. M-: (featurep 'treesit)

如果回傳 t,代表 emacs 編譯時有編譯 tree-sitter,可以往下檢查。

如果回傳的是 nil,代表 emacs 編譯時沒有包含 tree-sitter,可以重新編譯、或是下載預編譯好 tree-sitter 的 emacs 版本。

  1. M-: (treesit-available-p)

如果回傳回 nil 的話,代表當前 emacs 並不支援 tree-sitter。

假如 1 是 t,2 卻是 nil 的話。代表動態函式庫缺失。非常可能是缺少套件,可用 linux 套件庫嘗試安裝。以 debian / pop_OS! 為例:

sudo apt install -y libtree-sitter-dev

若是自行編譯 emacs ,如果上方的套件的確沒有事先安裝過,你可能會需要重新編譯 emacs.