blob: 2d69c9bad9db509e9d1c5d6a397994aef681c056 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
;;; -*- 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)
|