82ecd61f5c
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
31 lines
1.1 KiB
EmacsLisp
31 lines
1.1 KiB
EmacsLisp
;;; -*- 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-region (point-min) (point-max)
|
|
"packer" nil buf nil "fmt" "-"))
|
|
(let ((point (point))
|
|
(window-start (window-start)))
|
|
(erase-buffer)
|
|
(insert-buffer-substring buf)
|
|
(goto-char point)
|
|
(set-window-start nil window-start))
|
|
(message "packer fmt failed: %s" (with-current-buffer buf (buffer-string))))
|
|
(kill-buffer buf)))
|
|
|
|
(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)
|