Files
dotfiles/thoom-emacs/modules/thoom-prog.el

56 lines
1.4 KiB
EmacsLisp

(provide 'thoom-prog)
(use-package treesit-auto
:ensure t
:custom
(treesit-auto-install 'prompt)
:config
(treesit-auto-add-to-auto-mode-alist 'all)
(global-treesit-auto-mode))
(use-package markdown-mode
:ensure t
:mode ("README\\.md\\'" . gfm-mode)
:hook ((markdown-mode . visual-line-mode)))
(use-package yaml-mode
:ensure t)
(use-package rust-mode
:ensure t)
(use-package dockerfile-mode
:ensure t)
;; TODO - replace with https://github.com/sshaw/copy-as-format if necessary
(defun copy-source-for-reddit ()
(interactive)
(let ((contents (buffer-substring (point) (mark))))
(with-temp-buffer
(insert contents)
(mark-whole-buffer)
(indent-rigidly (point) (mark) 4 t)
(mark-whole-buffer)
(kill-ring-save 0 0 t))))
(keymap-global-set "C-c o r" #'copy-source-for-reddit)
(use-package lsp-mode
:ensure t
:commands lsp
:custom
(lsp-completion-provider :none)
:init
(setq lsp-keymap-prefix "C-c l")
;; from https://github.com/minad/corfu/wiki
(defun my/lsp-mode-setup-completion ()
(setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults))
'(orderless)))
:hook ((rust-ts-mode . lsp-deferred)
(lsp-mode . lsp-enable-which-key-integration)
(lsp-completion-mode . my/lsp-mode-setup-completion)))
(use-package lsp-ui
:ensure t
:commands lsp-ui-mode)