🐷
Emacs terraform-modeでlsp-modeをhookさせる最低限の設定(leaf)
lsp-mode + terraform-mode をちゃんとhookさせるのに苦労したので。
terraformいれるとか、terraform-ls入れるとかは省略で。
基本的に、leaf-convert-insert-template で書いたまま。★のところだけ追加すればOK
(ここに辿り着くまでの試行錯誤が、、、、AIに聞いてもまともな回答が返ってこないし、、)
(leaf terraform-mode
:doc "Major mode for terraform configuration file."
:req "emacs-24.3" "hcl-mode-0.3" "dash-2.17.0"
:tag "emacs>=24.3"
:url "https://github.com/syohex/emacs-terraform-mode"
:added "2025-11-23"
:emacs>= 24.3
:ensure t
:after hcl-mode
:config ; ★
(add-hook 'terraform-mode-hook #'lsp-deferred)) ; ★
(leaf lsp-mode
:doc "LSP mode."
:req "emacs-28.1" "dash-2.18.0" "f-0.20.0" "ht-2.3" "spinner-1.7.3" "markdown-mode-2.3" "lv-0" "eldoc-1.11"
:tag "languages" "emacs>=28.1"
:url "https://github.com/emacs-lsp/lsp-mode"
:added "2025-11-23"
:emacs>= 28.1
:ensure t
:after spinner markdown-mode lv eldoc)
ちなみに、lsp-modeのところに書きたい場合は、:after spinner markdown-mode lv eldoc の行を削除して :config と add-hookを書いてあげる。
afterに書いたパッケージのあとにロードされるからadd-hookが正常に登録されないらしい。。。
(イマイチleaf、elispよくわからん)
これに、companyとかの設定してあげれば十分かな。
あと、リソースを補完したい場合は、terraform initしてあげないとうまく動かない(これもハマった)
Discussion