dotfiles/.emacs.d/prog/init.el

97 lines
3.3 KiB
EmacsLisp
Raw Normal View History

2024-08-27 21:29:05 +01:00
(use-package paredit
:straight t
:config
(add-hook 'emacs-lisp-mode-hook #'paredit-mode)
(add-hook 'lisp-interaction-mode-hook #'paredit-mode)
(add-hook 'ielm-mode-hook #'paredit-mode)
(add-hook 'lisp-mode-hook #'paredit-mode)
(add-hook 'eval-expression-minibuffer-setup-hook #'paredit-mode))
(use-package magit :straight t)
(use-package treemacs
:straight t
:init (with-eval-after-load 'winum
(define-key winum-keymap (kbd "M-0") #'treemacs-select-window))
:bind
(:map global-map
("M-0" . treemacs-select-window)
("C-x t t" . treemacs)
("C-x t C-t" . treemacs-find-file)))
(use-package hide-mode-line :straight t)
(add-hook 'treemacs-mode-hook #'hide-mode-line-mode)
;; Direnv integration
(use-package direnv :straight t)
; (direnv-mode)
(use-package company :straight t
:config
(add-hook 'after-init-hook 'global-company-mode)
(setq company-idle-delay 0)
(setq company-minimum-prefix-length 1))
(use-package go-mode :straight t)
(use-package nix-mode :straight t
:mode "\\.nix\\'")
(use-package yaml-mode :straight t)
(use-package svelte-mode :straight t)
(use-package terraform-mode :straight t)
(use-package yasnippet :straight t)
(yas-global-mode 1)
(use-package k8s-mode
:straight t
:config
(setq k8s-search-documentation-browser-function 'browse-url-firefox)
:hook (k8s-mode . yas-minor-mode))
(use-package kubernetes :straight t)
(use-package rust-mode :straight t)
(add-hook 'rust-mode-hook
(lambda () (setq indent-tabs-mode nil)))
(add-hook 'rust-ts-mode-hook
(lambda () (setq indent-tabs-mode nil)))
(use-package ebuild-mode :straight t)
(use-package just-mode :straight t)
(use-package lua-mode :straight t)
(use-package tree-sitter :straight t)
(use-package tree-sitter-indent :straight t)
(use-package php-mode :straight t)
(setq treesit-language-source-alist
'((bash "https://github.com/tree-sitter/tree-sitter-bash")
(cmake "https://github.com/uyha/tree-sitter-cmake")
(css "https://github.com/tree-sitter/tree-sitter-css")
(elisp "https://github.com/Wilfred/tree-sitter-elisp")
(go "https://github.com/tree-sitter/tree-sitter-go")
(html "https://github.com/tree-sitter/tree-sitter-html")
(javascript "https://github.com/tree-sitter/tree-sitter-javascript" "master" "src")
(json "https://github.com/tree-sitter/tree-sitter-json")
(make "https://github.com/alemuller/tree-sitter-make")
(markdown "https://github.com/ikatyang/tree-sitter-markdown")
(python "https://github.com/tree-sitter/tree-sitter-python")
(toml "https://github.com/tree-sitter/tree-sitter-toml")
(tsx "https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src")
(typescript "https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src")
(yaml "https://github.com/ikatyang/tree-sitter-yaml")
(just "https://github.com/IndianBoy42/tree-sitter-just")
(php "https://github.com/tree-sitter/tree-sitter-php")))
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode))
(setq major-mode-remap-alist
'((yaml-mode . yaml-ts-mode)
(bash-mode . bash-ts-mode)
(js2-mode . js-ts-mode)
(typescript-mode . typescript-ts-mode)
(json-mode . json-ts-mode)
(css-mode . css-ts-mode)
(python-mode . python-ts-mode)
(rust-mode . rust-ts-mode)
(php-mode . php-ts-mode)
))
(add-hook 'prog-mode-hook 'display-line-numbers-mode)