(use-package emacs-lisp-mode :hook ((emacs-lisp-mode . gered/on-emacs-lisp-mode)) :init (defun gered/on-emacs-lisp-mode () (lambda () ;; TODO: is this even necessary or was i seeing something odd caused by my own (prior) mistakes? (setq-local indent-tabs-mode nil) (setq-local tab-width 2)))) (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) (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 php-mode :ensure t) (use-package js :config (setq js-indent-level tab-width)) (use-package lua-mode :ensure t) (use-package c-ts-mode :config (setq-default c-ts-mode-indent-style 'linux) (setq-default c-ts-mode-indent-offset 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))