diff options
Diffstat (limited to 'dot.emacs.d')
| -rw-r--r-- | dot.emacs.d/.gitignore | 2 | ||||
| -rw-r--r-- | dot.emacs.d/init.el | 169 |
2 files changed, 132 insertions, 39 deletions
diff --git a/dot.emacs.d/.gitignore b/dot.emacs.d/.gitignore index 124687e..f7abe26 100644 --- a/dot.emacs.d/.gitignore +++ b/dot.emacs.d/.gitignore @@ -18,3 +18,5 @@ /.cask /projects /tree-sitter +/geben +.dap-breakpoints diff --git a/dot.emacs.d/init.el b/dot.emacs.d/init.el index 992421f..41508c6 100644 --- a/dot.emacs.d/init.el +++ b/dot.emacs.d/init.el @@ -52,20 +52,14 @@ (load "server") (unless (server-running-p) (server-start)) +(setq custom-file (locate-user-emacs-file "custom.el")) +(load custom-file :noerror) + (use-package modus-themes :defer nil - :init - (dolist - (hash - '("7613ef56a3aebbec29618a689e47876a72023bbd1b8393efc51c38f5ed3f33d1" - "c7a926ad0e1ca4272c90fce2e1ffa7760494083356f6bb6d72481b879afce1f2")) - (add-to-list 'custom-safe-themes hash)) :config (load-theme 'modus-vivendi-tinted)) -(setq custom-file (locate-user-emacs-file "custom.el")) -(load custom-file :noerror) - (setq display-time-day-and-date t display-time-24hr-format t) (display-time-mode) @@ -119,11 +113,19 @@ :hook ((python-mode python-ts-mode) . lsp)) (use-package pet :init - (add-hook 'python-base-mode-hook 'pet-mode -10)) + (add-hook 'python-base-mode-hook 'pet-mode -10) + (add-hook + 'python-base-mode-hook + (defun qsx-python-pet-hook () + (setq-local lsp-pylsp-server-command (list (pet-executable-find "pylsp")))))) (use-package highlight-indentation :hook python-base-mode) +(use-package jinja2-mode + :mode "\\.html.j2\\'" + :config (keymap-unset jinja2-mode-map "M-o")) + (defun qsx-no-indent-tabs-mode () (setq indent-tabs-mode nil)) @@ -146,10 +148,23 @@ :custom (treesit-auto-install 'prompt) :config - (setq treesit-auto-langs (seq-difference treesit-auto-langs '(go gomod yaml))) + (setq treesit-auto-langs + (seq-difference treesit-auto-langs + '(c cpp go gomod yaml php jsdoc phpdoc))) (treesit-auto-add-to-auto-mode-alist 'all) (global-treesit-auto-mode)) +(setq + treesit-language-source-alist + (append treesit-language-source-alist + '((astro "https://github.com/virchau13/tree-sitter-astro") + (css "https://github.com/tree-sitter/tree-sitter-css") + (tsx "https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src")))) + +(use-package astro-ts-mode + :mode "\\.astro\\'" + :config (keymap-unset astro-ts-mode-map "M-o")) + (use-package editorconfig :defer nil :config @@ -162,12 +177,25 @@ (typescript-ts-mode . tide-hl-identifier-mode))) (use-package lsp-mode + :pin melpa-unstable :commands lsp :bind-keymap ("s-l" . lsp-command-map) ;; https://emacs-lsp.github.io/lsp-mode/page/performance/ :init (setq read-process-output-max (* 1024 1024) ;; 1 MiB - gc-cons-threshold 6400000)) + gc-cons-threshold 6400000 + lsp-clients-clangd-args '("--header-insertion=never")) + :config + (add-to-list 'lsp-language-id-configuration '(LaTeX-mode . "latex")) + + ;; ugly hack to add #'LaTeX-mode + ;; TODO: ⛔ Error (use-package): lsp-mode/:config: Symbol’s value as variable is void: lsp-clients-digestif-executable + (with-eval-after-load 'lsp-tex + (lsp-register-client + (make-lsp-client :new-connection (lsp-stdio-connection lsp-clients-digestif-executable) + :major-modes '(plain-tex-mode latex-mode context-mode texinfo-mode LaTeX-mode) + :priority (if (eq lsp-tex-server 'digestif) 1 -1) + :server-id 'digestif)))) (use-package lsp-ui :commands lsp-ui-mode) (use-package helm-lsp @@ -178,11 +206,14 @@ :bind-keymap ("C-c H" . hg-global-map)) (use-package magit - :bind (("C-x g" . #'magit-status) - ("C-c m m" . #'magit-status) - ("C-c m p" . #'magit-dispatch-popup) - ("C-c m f" . #'magit-file-popup) - ("C-c m d" . #'magit-diff-buffer-file))) + :defer 10) +(use-package magit-gh + :ensure t + :after magit) + +(use-package info-nav) + +(use-package elsqlite) (use-package transpose-frame :init @@ -201,6 +232,10 @@ :bind ("M-o" . ace-window) :config (setq aw-scope 'frame)) +(use-package mhtml-mode + :ensure nil + :config (keymap-unset html-mode-map "M-o")) + (use-package avy :bind (("C-." . avy-goto-char-timer) ("C-:" . avy-goto-char-2) @@ -247,7 +282,7 @@ (setq-default display-line-numbers 'relative) (use-package stripe-buffer - :config + :init (defun qsx-stripe-listify-buffer-hook () (stripe-listify-buffer)) (dolist (h '(gnus-group-mode-hook @@ -256,8 +291,7 @@ (add-hook h #'qsx-stripe-listify-buffer-hook))) (use-package rainbow-delimiters - :config - (add-hook 'prog-mode-hook #'rainbow-delimiters-mode-enable)) + :hook (prog-mode . rainbow-delimiters-mode-enable)) (show-paren-mode 1) @@ -272,10 +306,22 @@ (highlight-indentation-set-offset yaml-indent-offset))) (add-hook 'yaml-mode-hook #'qsx-no-indent-tabs-mode)) +(defun qsx-disable-show-trailing-whitespace () + (setq show-trailing-whitespace nil)) + +(add-hook 'Info-mode-hook #'qsx-disable-show-trailing-whitespace) + +(use-package k8s-mode + :hook (k8s-mode . yas-minor-mode)) +(use-package kubedoc + :hook ((kubedoc-mode . qsx-dont-show-line-numbers-hook) + (kubedoc-mode . qsx-disable-show-trailing-whitespace))) + (use-package elisp-mode :ensure nil :config - (add-hook 'emacs-lisp-mode-hook #'qsx-no-indent-tabs-mode)) + (add-hook 'emacs-lisp-mode-hook #'qsx-no-indent-tabs-mode) + (add-hook 'lisp-data-mode-hook #'qsx-no-indent-tabs-mode)) (use-package macrostep :bind (:map emacs-lisp-mode-map @@ -329,7 +375,7 @@ fill-column 80) (dolist (f '(qsx-enable-TeX-fold-mode turn-on-auto-fill - prettify-symbols-mode)) + TeX-source-correlate-mode)) (add-hook 'TeX-mode-hook f)) (TeX-add-symbols '("cref" TeX-arg-ref) @@ -344,9 +390,20 @@ (use-package reftex :if (display-graphic-p) + :after (tex) + :hook (TeX-mode . reftex-mode) :config (setq reftex-plug-into-AUCTeX t) - (add-hook 'TeX-mode-hook #'reftex-mode)) + (add-hook 'TeX-mode-hook #'reftex-mode) + (TeX-add-style-hook + "cleveref" + (lambda () + (if (boundp 'reftex-ref-style-alist) + (add-to-list + 'reftex-ref-style-alist + '("Cleveref" "cleveref" + (("\\cref" ?c) ("\\Cref" ?C) ("\\cpageref" ?d) ("\\Cpageref" ?D))))) + (reftex-ref-style-activate "Cleveref")))) (use-package auctex-latexmk :if (display-graphic-p) @@ -360,12 +417,12 @@ (use-package toml-mode) -(use-package rust-mode - :hook (rust-mode . lsp) - :mode "\\.rs\\'") +(use-package rust-ts-mode + :ensure nil + :hook (rust-ts-mode . lsp)) ;; Add keybindings for interacting with Cargo (use-package cargo - :hook (rust-mode . cargo-minor-mode)) + :hook ((rust-mode rust-ts-mode) . cargo-minor-mode)) (setq c-default-style "linux") @@ -399,13 +456,15 @@ (setq column-number-mode t) -(global-set-key (kbd "C-x C-k") #'kill-this-buffer) +(global-set-key (kbd "C-x C-k") #'kill-current-buffer) (global-set-key (kbd "C-M-y") #'(lambda () (interactive) (insert (gui-get-primary-selection)))) (use-package org :ensure nil + :init + (require 'org-loaddefs) :config (add-hook 'org-mode-hook #'turn-on-auto-fill) (setq org-list-allow-alphabetical t) @@ -413,7 +472,8 @@ 'org-babel-load-languages '((emacs-lisp . t) (dot . t) - (sqlite . t))) + (sqlite . t) + (plantuml . t))) (add-to-list 'org-latex-packages-alist '("AUTO" "polyglossia" t ("xelatex" "lualatex"))) @@ -423,16 +483,17 @@ (add-to-list 'org-latex-packages-alist '("" "booktabs" nil)) - (add-to-list - 'org-latex-classes - '("scrartcl" - "\\documentclass{scrartcl}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) - (setq org-latex-default-class "scrartcl")) + (with-eval-after-load 'ox-latex + (add-to-list + 'org-latex-classes + '("scrartcl" + "\\documentclass{scrartcl}" + ("\\section{%s}" . "\\section*{%s}") + ("\\subsection{%s}" . "\\subsection*{%s}") + ("\\subsubsection{%s}" . "\\subsubsection*{%s}") + ("\\paragraph{%s}" . "\\paragraph*{%s}") + ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) + (setq org-latex-default-class "scrartcl"))) (setq-default fill-column 80) @@ -464,7 +525,37 @@ (if (eq window-system 'pgtk) (pgtk-use-im-context nil))) +(use-package gnuplot + :mode ("\\.gp\\'" . gnuplot-mode) + :hook ((gnuplot-comint-mode . qsx-disable-show-trailing-whitespace))) + +;; RP PIO +(progn + (define-hostmode poly-pio-hostmode + :mode 'asm-mode) + (define-innermode poly-pio-c-innermode + :mode 'c-mode + :head-matcher "^% c-sdk {$" + :tail-matcher "^%}$" + :head-mode 'host + :tail-mode 'host) + (define-polymode poly-pio-mode + :hostmode 'poly-pio-hostmode + :innermodes '(poly-pio-c-innermode)) + (add-to-list 'auto-mode-alist '("\\.pio\\'" . poly-pio-mode))) + +(use-package arduino-mode) +(use-package arduino-cli-mode) + +(use-package gleam-ts-mode + :mode (rx ".gleam" eos)) + ;;; Mail +(use-package notmuch + :defer t + :ensure nil + :hook ((notmuch-hello-mode . qsx-dont-show-line-numbers-hook))) + (use-package gnus :defer t :config |
