From e4c864319a75d26a4d73971d41a8baf5fd5f284d Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 24 May 2020 00:15:32 +0100 Subject: [PATCH] feat(lang): Add module for terraform-mode package And enable formatting terraform files with `terraform fmt` through the use of reformatter. --- core/siren-core-modules.el | 1 + modules/languages/siren-terraform.el | 36 ++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 modules/languages/siren-terraform.el diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index ae3e914..4a51290 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -169,6 +169,7 @@ (require 'siren-sh) (require 'siren-slim) (require 'siren-sql) +(require 'siren-terraform) (require 'siren-text-mode) (require 'siren-thrift) (require 'siren-toml) diff --git a/modules/languages/siren-terraform.el b/modules/languages/siren-terraform.el new file mode 100644 index 0000000..a61081f --- /dev/null +++ b/modules/languages/siren-terraform.el @@ -0,0 +1,36 @@ +;;; siren-terraform.el --- jimeh's Emacs Siren: terraform-mode configuration. + +;;; Commentary: + +;; Basic configuration for terraform-mode. + +;;; Code: + +(require 'siren-reformatter) + +(use-package terraform-mode + :hook + (terraform-mode . siren-terraform-mode-setup) + + :custom + (terraform-indent-level 2) + + :init + (defun siren-terraform-mode-setup () + (setq tab-width 2) + (format-all-mode -1) + (terraform-format-on-save-mode 1)) + + :config + (reformatter-define terraform-format + :program "terraform" + :args '("fmt" "-no-color" "-") + :lighter " TF")) + +(use-package company-terraform + :init + (with-eval-after-load 'terraform-mode + (company-terraform-init))) + +(provide 'siren-terraform) +;;; siren-terraform.el ends here