diff --git a/modules/languages/siren-jsonnet.el b/modules/languages/siren-jsonnet.el index 3e89f6b..4d4ec27 100644 --- a/modules/languages/siren-jsonnet.el +++ b/modules/languages/siren-jsonnet.el @@ -7,12 +7,35 @@ ;;; Code: (use-package jsonnet-mode + :bind (:map jsonnet-mode-map + ("C-c C-c" . jsonnet-eval-buffer) + ("C-c C-f" . jsonnet-reformat-buffer) + ("C-c C-j" . jsonnet-jump)) + :hook (jsonnet-mode . siren-jsonnet-mode-setup) + :custom + (jsonnet-library-search-directories '("vendor")) + :init (defun siren-jsonnet-mode-setup () - "Default tweaks for `jsonnet-mode'.")) + "Default tweaks for `jsonnet-mode'." + (jsonnet-format-buffer-on-save-mode t) + (company-mode) + (subword-mode) + (siren-folding)) + + :config + (with-eval-after-load 'flycheck + (setq flycheck-jsonnet-executable "jsonnet -jpath vendor")) + + (define-minor-mode jsonnet-format-buffer-on-save-mode + "Run jsonnet-format-buffer as a before-save-hook." + :lighter " fmt" + (if jsonnet-format-buffer-on-save-mode + (add-hook 'before-save-hook 'jsonnet-reformat-buffer t t) + (remove-hook 'before-save-hook 'jsonnet-reformat-buffer t)))) (provide 'siren-jsonnet) ;;; siren-js.el ends here