dotfiles/emacs.d/lang-modes.el
Gered ddc468848a add hcl-mode package explicitly
it gets included with terraform-mode anyway as a dependency, and well,
it might be useful to include as there is other stuff which uses hcl
config files ... meh
2025-01-20 14:45:13 -05:00

146 lines
3.9 KiB
EmacsLisp

;; for the most part, we want to use tabs for indentation
(add-hook 'prog-mode-hook 'gered/enable-tabs)
(add-hook 'text-mode-hook 'gered/enable-tabs)
(add-hook 'conf-mode-hook 'gered/enable-tabs)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package treesit-auto
:ensure t
:custom
(treesit-auto-install t)
:config
(treesit-auto-add-to-auto-mode-alist 'all)
(global-treesit-auto-mode))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun gered/on-lispy-mode ()
(gered/disable-tabs 2))
(add-hook 'emacs-lisp-mode-hook 'gered/on-lispy-mode)
(add-hook 'lisp-mode-hook 'gered/on-lispy-mode)
(use-package lisp-extra-font-lock
:ensure t
:config
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(lisp-extra-font-lock-mode t))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package yaml-mode
:ensure t
:config
(setq yaml-indent-offset 2))
(defun gered/on-yaml-mode ()
(gered/disable-tabs yaml-indent-offset))
(add-hook 'yaml-mode-hook 'gered/on-yaml-mode)
(add-hook 'yaml-ts-mode-hook 'gered/on-yaml-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package json-mode
:ensure t)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package markdown-mode
:ensure t
:hook ((markdown-mode . visual-line-mode)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package jinja2-mode
:ensure t)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package poly-ansible
:ensure t
:after (yaml-mode jinja2-mode)
:config
(add-to-list 'auto-mode-alist
'("/.*ansible.*/.*\\.ya?ml\\'" . poly-ansible-mode)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package hcl-mode
:ensure t
:config
(setq hcl-indent-level my-preferred-tab-width))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package terraform-mode
:ensure t
:config
(setq terraform-indent-level my-preferred-tab-width))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package php-mode
:ensure t)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package js
:config
(setq js-indent-level my-preferred-tab-width))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package lua-mode
:ensure t
:config
(setq lua-indent-level my-preferred-tab-width))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package c-ts-mode
:config
(setq-default c-ts-mode-indent-style 'linux)
(setq-default c-ts-mode-indent-offset my-preferred-tab-width))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package rust-mode
:ensure t
:bind
(("C-c C-r C-r" . 'lsp-rust-analyzer-run)
("C-c C-r C-e" . 'lsp-rust-analyzer-rerun)
("C-c C-r C-d" . 'lsp-rust-analyzer-debug)
("C-c C-r C-t" . 'lsp-rust-analyzer-related-tests))
:init
(setq rust-mode-treesitter-derive t))
(use-package rustic
:ensure t
:after rust-mode)
(use-package cargo
:ensure t
:after rustic
:init
(add-hook 'rust-mode-hook 'cargo-minor-mode)
(add-hook 'rust-ts-mode-hook 'cargo-minor-mode))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package sgml-mode
:config
(setq sgml-basic-offset my-preferred-tab-width))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package nxml-mode
:config
(setq nxml-child-indent my-preferred-tab-width)
(setq nxml-attribute-indent my-preferred-tab-width)
(setq nxml-slash-auto-complete-flag t))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;