;;; -*- lexical-binding: t; -*- (setq tab-stop-list (number-sequence 4 200 4)) (use-package eglot) (add-hook 'prog-mode-hook 'subword-mode) ;; Only used to get better eglot snippets. (use-package yasnippet :config (add-to-list 'yas-snippet-dirs (expand-file-name "yasnippets" user-emacs-directory)) (yas-global-mode)) (use-package rustic :after eglot :bind (("C-c C-r C-s" . rustic-popup) ("C-c C-r C-n" . kj/rustic-nextest-all)) :config (defun kj/rustic-nextest-all () (interactive) (setq rustic-cargo-nextest-exec-command "nextest run --run-ignored all") (rustic-cargo-run-nextest)) (setq ;; eglot seems to be the best option right now. rustic-lsp-client 'eglot rustic-format-on-save nil ;; Prevent automatic syntax checking, which was causing lags and stutters. ;; eglot-send-changes-idle-time (* 60 60) ) :hook (rustic-mode . eglot-ensure) ;; Disable the annoying doc popups in the minibuffer. ;; (add-hook 'eglot-managed-mode-hook (lambda () (eldoc-mode -1))) ) (use-package markdown-mode :ensure t :mode ("README\\.md\\'" . gfm-mode) :init (setq markdown-command "multimarkdown")) (straight-use-package '(nix-mode :type git :host github :repo "NixOS/nix-mode")) (use-package nix-mode :mode "\\.nix\\'") (use-package ledger-mode :mode "\\.journal") (use-package unobtrusive-magit-theme) (use-package editorconfig :ensure t :config (editorconfig-mode 1)) (use-package tree-sitter :config (global-tree-sitter-mode) (add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode)) (use-package tree-sitter-langs :after tree-sitter) (use-package clojure-mode) ;; Devicetree mode for keyboard configs. (use-package dts-mode :mode "\\.keymap\\'") (use-package yaml-mode :mode "\\.\(yml|yaml\)\\'") (use-package ansi-color :hook (compilation-filter . ansi-color-compilation-filter)) (use-package diff-hl :config (global-diff-hl-mode)) (use-package graphviz-dot-mode :ensure t) (use-package haskell-mode) (use-package tidal :config (setq tidal-boot-script-path "~/projects/audio/BootTidal.hs")) (provide 'kj-development)