From 9b973c201120d7168611134f4aa4d6536f9ccd38 Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Tue, 30 Mar 2021 16:34:19 -0400 Subject: feat(gs/emacs): Add terraform config Change-Id: I9266ed310024a2a9437ea983dfdf27b8a395c924 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2707 Reviewed-by: glittershark Tested-by: BuildkiteCI --- users/glittershark/emacs.d/config.el | 1 + .../emacs.d/snippets/terraform-mode/variable | 11 ++++++++++ users/glittershark/emacs.d/terraform.el | 24 ++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 users/glittershark/emacs.d/snippets/terraform-mode/variable create mode 100644 users/glittershark/emacs.d/terraform.el diff --git a/users/glittershark/emacs.d/config.el b/users/glittershark/emacs.d/config.el index a14e4f0e3b..fd6eced212 100644 --- a/users/glittershark/emacs.d/config.el +++ b/users/glittershark/emacs.d/config.el @@ -34,6 +34,7 @@ (load! "lisp") (load! "clojure") (load! "rust") +(load! "terraform") (require 'tvl) diff --git a/users/glittershark/emacs.d/snippets/terraform-mode/variable b/users/glittershark/emacs.d/snippets/terraform-mode/variable new file mode 100644 index 0000000000..e64175200f --- /dev/null +++ b/users/glittershark/emacs.d/snippets/terraform-mode/variable @@ -0,0 +1,11 @@ +# -*- mode: snippet -*- +# name: variable +# uuid: +# key: var +# condition: t +# -- +variable "${1:name}" { + type = ${2:string} + ${3:default = ${4:default}} +} +$0 \ No newline at end of file diff --git a/users/glittershark/emacs.d/terraform.el b/users/glittershark/emacs.d/terraform.el new file mode 100644 index 0000000000..6a1dc4ba47 --- /dev/null +++ b/users/glittershark/emacs.d/terraform.el @@ -0,0 +1,24 @@ +;;; ../code/depot/users/glittershark/emacs.d/terraform.el -*- lexical-binding: t; -*- + +(add-hook 'terraform-mode-hook #'terraform-format-on-save-mode) + +(defun packer-format-buffer () + (interactive) + (let ((buf (get-buffer-create "*packer-fmt*"))) + (if (zerop (call-process "packer" nil buf nil "fmt" (buffer-file-name))) + (revert-buffer t t t) + (message "packer fmt failed: %s" (with-current-buffer buf (buffer-string)))))) + +(define-minor-mode packer-format-on-save-mode + "Run packer-format-buffer before saving the current buffer" + :lighter nil + (if packer-format-on-save-mode + (add-hook 'before-save-hook #'packer-format-buffer nil t) + (remove-hook 'before-save-hook #'packer-format-buffer t))) + +(defun maybe-init-packer () + (interactive) + (when (s-ends-with-p ".pkr" (file-name-base (buffer-file-name))) + (packer-format-on-save-mode))) + +(add-hook 'hcl-mode-hook #'maybe-init-packer) -- cgit 1.4.1