diff --git a/modules/tools/terraform/config.el b/modules/tools/terraform/config.el index d501aa52b..51fde390c 100644 --- a/modules/tools/terraform/config.el +++ b/modules/tools/terraform/config.el @@ -32,3 +32,16 @@ :after terraform-mode :config (set-company-backend! 'terraform-mode 'company-terraform)) + +(use-package! terraform-docs + :when (modulep! +docs) + :defer t + :after terraform-mode + :config + (map! :map terraform-mode-map + :localleader + :desc "docs" "d" #'terraform-docs + (:prefix ("D" . "docs submenu") + :desc "to buffer" "D" #'terraform-docs-to-buffer + :desc "to file" "d" (cmd! (terraform-docs-to-file nil (read-file-name "Output file: "))) + :desc "to file and open" "o" (cmd! (terraform-docs-to-file-and-open nil (read-file-name "Output file: ")))))) diff --git a/modules/tools/terraform/doctor.el b/modules/tools/terraform/doctor.el index 456d1f907..cde26e6fc 100644 --- a/modules/tools/terraform/doctor.el +++ b/modules/tools/terraform/doctor.el @@ -2,3 +2,7 @@ (unless (executable-find "terraform") (warn! "Couldn't find terraform.")) + +(when (modulep! +lsp) + (unless (executable-find "terraform-docs") + (warn! "Couldn't find terraform-docs"))) diff --git a/modules/tools/terraform/packages.el b/modules/tools/terraform/packages.el index 697d5e3db..7ddf98af6 100644 --- a/modules/tools/terraform/packages.el +++ b/modules/tools/terraform/packages.el @@ -4,3 +4,8 @@ (package! terraform-mode :pin "01635df3625c0cec2bb4613a6f920b8569d41009") (when (modulep! :completion company) (package! company-terraform :pin "8d5a16d1bbeeb18ca49a8fd57b5d8cd30c8b8dc7")) + +(when (modulep! +docs) + (package! terraform-docs + :recipe (:host github :repo "loispostula/terraform-docs.el" :branch "main") + :pin "94a78999ec03e66ce49f7343cc8705354e195c3a"))