whompmacs/whomp/whomp-dev-ext.el

51 lines
1.6 KiB
EmacsLisp

;;
;; Extended development assistance packages
;; These are the packages uncommon to most developers but are
;; necessary to those they're necessary!
;;
(defcustom whomp-dev-ext nil
"Whether or not to enable extended development assistance packages."
:type '(set (const :tag "None" nil)
(const :tag "copilot" copilotmode) ;; code completion
(const :tag "terraform" terraformmode) ;; terraform language support
)
:group 'whomp-config)
;; terraform-mode
(when (memq 'terraformmode whomp-dev-ext)
(use-package terraform-mode
:straight t
:defer t)
(when (eq 'company whomp-completion)
(use-package company-terraform
:straight t
:defer t
:config
(add-hook 'terraform-mode-hook #'company-terraform-init))
(add-hook 'terraform-mode-hook #'terraform-format-on-save-mode)
(add-hook 'terraform-mode-hook #'terraform-format-on-save-mode))
(message "terraform-mode loaded"))
(when (memq 'copilotmode whomp-development)
(use-package dash
:straight t
:defer t)
(use-package editorconfig
:straight t
:defer t)
(use-package copilot
:straight (:host github :repo "zerolfx/copilot.el" :files ("dist" "*.el"))
:defer t
:ensure t
:config
;; you can utilize :map :hook and :config to customize copilot
(add-hook 'prog-mode-hook 'copilot-mode)
(define-key copilot-completion-map (kbd "<tab>") 'copilot-accept-completion)
(define-key copilot-completion-map (kbd "TAB") 'copilot-accept-completion))
(message "copilot loaded"))
(message "W.H.O.M.P. extended development assistance packages loaded")
(provide 'whomp-dev-ext)
;; whomp-dev-ext.el ends here