diff options
Diffstat (limited to 'modules/emacs/doom/config.el')
-rw-r--r-- | modules/emacs/doom/config.el | 208 |
1 files changed, 72 insertions, 136 deletions
diff --git a/modules/emacs/doom/config.el b/modules/emacs/doom/config.el index d7ab80e..4ff9af8 100644 --- a/modules/emacs/doom/config.el +++ b/modules/emacs/doom/config.el @@ -1,6 +1,4 @@ -;; -;;; Misc -;; +;; Misc (setq! frame-title-format '("GNU Emacs")) @@ -22,9 +20,7 @@ (setq! migemo-options '("--quiet" "--emacs") skk-show-inline t) -;; -;;; Doom-specific -;; +;; Doom-specific (setq! doom-theme 'modus-operandi doom-modeline-icon nil @@ -32,9 +28,7 @@ doom-modeline-total-line-number t doom-modeline-height 30) -;; -;;; Editorconfig -;; +;; Editorconfig (setq! +editorconfig-mode-alist '((sh-mode . "sh")) ;; It's never a good idea to force specific indentation rules for Lisp, @@ -48,51 +42,31 @@ hy-mode dune-mode)) -;; -;;; LSP -;; +;; LSP (after! lsp-mode (setq! lsp-enable-server-download nil lsp-enable-suggest-server-download nil - lsp-modeline-code-action-fallback-icon "~")) + lsp-modeline-code-action-fallback-icon "~" + lsp-yaml-schemas `((,(intern "https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json") + . ["*-compose.y*"]) + (,(intern "https://json.schemastore.org/kustomization.json") + . ["kustomization.yaml"]) + (kubernetes + . ["*.yaml"])))) -;; -;;; Tree-Sitter -;; - -(use-package! treesit-auto - :disabled - :custom (treesit-auto-install 'prompt) - :config - (treesit-auto-add-to-auto-mode-alist 'all) - (global-treesit-auto-mode)) - -;; -;;; Nix -;; - -(after! nix - (after! lsp-mode - (add-to-list 'lsp-language-id-configuration '(nix-mode . "nix")) - (lsp-register-client (make-lsp-client - :new-connection (lsp-stdio-connection "nixd") - :activation-fn (lsp-activate-on "nix") - :server-id 'nixd - :major-modes 'nix-mode)) - (add-hook 'nix-mode-hook 'lsp-deferred))) - -;; -;;; Go -;; +;; Go (setq! lsp-go-analyses '((unsedvariable . t) (unusedparams . t) (unusedwrite . t))) -;; -;;; Org -;; +;; Python + +(after! dap-mode + (setq dap-python-debugger 'debugpy)) + +;; Org (setq! org-directory "~/doc/org/" org-roam-directory "~/doc/roam/" @@ -149,88 +123,86 @@ (add-hook 'org-capture-mode-hook 'evil-insert-state) -;; -;;; LaTeX -;; +;; LaTeX (map! :map cdlatex-mode-map :i "TAB" #'cdlatex-tab) -;; -;;; Typst -;; +;; Typst (use-package! typst-ts-mode :custom (typst-ts-watch-options "--open") :config - (add-to-list 'lsp-language-id-configuration '(typst-ts-mode . "typst")) - (lsp-register-client (make-lsp-client - :new-connection (lsp-stdio-connection "tinymist") - :server-id 'tinymist - :major-modes '(typst-ts-mode))) - (add-hook 'typst-ts-mode-hook 'lsp-deferred) - - (when (boundp 'treesit-auto-recipe-list) - (add-to-list 'treesit-auto-recipe-list - (make-treesit-auto-recipe - :lang 'typst - :ts-mode 'typst-ts-mode - :url "https://github.com/uben0/tree-sitter-typst" - :revision "master" - :source-dir "src")))) - -;; -;;; PlantUML -;; + (after! lsp-mode + (add-to-list 'lsp-language-id-configuration '(typst-ts-mode . "typst")) + (lsp-register-client + (make-lsp-client + :new-connection (lsp-stdio-connection "tinymist") + :server-id 'tinymist + :major-modes '(typst-ts-mode))) + (add-hook 'typst-ts-mode-hook 'lsp-deferred)) + + (after! apheleia + (add-to-list 'apheleia-mode-alist '(typst-ts-mode . prettypst)) + (add-to-list 'apheleia-formatters '(prettypst "prettypst" "--use-std-in" "--use-std-out")))) + +(use-package! typst-preview + :custom + (typst-preview-invert-colors "never") + (typst-preview-open-browser-automatically t) + :config + (advice-add 'typst-preview-start :before (lambda (&rest r) + (setq tp--master-file buffer-file-name)))) + +;; PlantUML (setq! plantuml-default-exec-mode 'executable org-plantuml-exec-mode 'plantuml) -;; -;;; Elisp -;; +;; Elisp (after! flycheck (pushnew! flycheck-disabled-checkers 'emacs-lisp-checkdoc)) -;; -;;; Haskell -;; +;; Haskell (setq! lsp-haskell-formatting-provider "ormolu") -;; -;;; Nickel -;; +;; Nickel (use-package! nickel-mode :config (after! lsp-mode (add-to-list 'lsp-language-id-configuration '(nickel-mode . "nickel")) - (lsp-register-client (make-lsp-client - :new-connection (lsp-stdio-connection "nls") - :server-id 'nls - :major-modes '(nickel-mode))) + (lsp-register-client + (make-lsp-client + :new-connection (lsp-stdio-connection "nls") + :activation-fn (lsp-activate-on "nickel") + :server-id 'nls + :major-modes 'nickel-mode)) (add-hook 'nickel-mode-hook 'lsp-deferred))) -;; -;;; YAML -;; +;; YAML ;; Turn off `flycheck-mode' and `lsp-mode' for Helm templates. -(add-hook! 'yaml-mode-hook - (defun nixfiles/disable-flycheck-for-helm-templates-h () - (when (and buffer-file-name - (string-match-p "/templates/" buffer-file-name) - (or (string-suffix-p ".yaml" buffer-file-name) - (string-suffix-p ".yml" buffer-file-name))) - (remove-hook! 'yaml-mode-local-vars-hook #'lsp!)))) +;; (add-hook! 'yaml-mode-hook +;; (defun nixfiles/disable-flycheck-for-helm-templates-h () +;; (when (and buffer-file-name +;; (string-match-p "/templates/" buffer-file-name) +;; (or (string-suffix-p ".yaml" buffer-file-name) +;; (string-suffix-p ".yml" buffer-file-name))) +;; (remove-hook! 'yaml-mode-local-vars-hook #'lsp!)))) + +;; (setq-hook! 'yaml-mode-hook +format-with-lsp nil) -(setq-hook! 'yaml-mode-hook +format-with-lsp nil) +;; Magit -;; -;;; Elfeed -;; +(setq! code-review-auth-login-marker 'forge) + +(add-hook 'code-review-mode-hook (lambda () + (persp-add-buffer (current-buffer)))) + +;; Elfeed (setq! elfeed-db-directory "~/.elfeed" elfeed-enclosure-default-dir (concat elfeed-db-directory "/enclosures") @@ -239,9 +211,7 @@ elfeed-goodies/entry-pane-size 0.75 elfeed-goodies/entry-pane-position 'bottom) -;; -;;; mu4e -;; +;; mu4e (after! mu4e (setq! sendmail-program (executable-find "msmtp") @@ -256,9 +226,7 @@ (setq-hook! 'mu4e-main-mode-hook mu4e-update-interval 30) -;; -;;; Circe -;; +;; Circe (setq! circe-network-options (mapcar (lambda (server) @@ -273,44 +241,12 @@ (+pass-get-secret "server/soju.shire.net/azahi")))) '("libera" "oftc" "hackint" "rizon"))) -;; -;;; Sops -;; +;; Sops (use-package! sops :hook (doom-first-file . global-sops-mode)) -;; -;;; Hledger -;; - -(use-package! hledger-mode - :disabled - :mode ("\\.journal\\'") - :hook ((hledger-view-mode . hl-line-mode) - (hledger-view-mode . center-text-for-reading)) - :init - (setq! hledger-jfile "~/doc/accounting/current.journal") - :config - (set-company-backend! 'hledger-mode 'hledger-company) - (add-hook! 'hledger-mode-hook - (lambda (&rest _) - (make-local-variable 'company-backends) - (add-to-list 'company-backends 'hledger-company)))) - -(use-package! hledger-input - :disabled - :hook ((hledger-input-post-commit . hledger-show-new-balances) - (hledger-input-mode . auto-fill-mode) - (hledger-input-mode . (lambda (&rest _) - (make-local-variable 'compay-idle-delay) - (setq-local company-idle-delay 0.1)))) - :init - (setq! hledger-input-buffer-height 20)) - -;; -;;; LLM -;; +;; LLM (use-package! gptel :config |