ide.el (3034B)
1 ;; -*- lexical-binding: t; -*- 2 ;;; Configuration for IDE-related functionality. 3 4 (setq-default tab-width 4) 5 (setq indent-tabs-mode nil) 6 (add-to-list 'exec-path (format "%s/go/bin" (getenv "HOME"))) 7 (add-to-list 'exec-path (format "%s/.cargo/bin" (getenv "HOME"))) 8 (add-to-list 'exec-path "/usr/local/go/bin") 9 10 (c-set-offset 'innamespace 0) 11 12 (use-package deadgrep) 13 (use-package transient) 14 (use-package magit) 15 16 (use-package hl-todo 17 :config 18 (setq hl-todo-keyword-faces 19 `(("TODO" . ,(doom-color 'green)) 20 ("FIXME" . ,(doom-color 'red)) 21 ("DEBUG" . ,(doom-color 'magenta)) 22 ("HACK" . ,(doom-color 'violet)) 23 ("NOTE" . ,(doom-color 'cyan)))) 24 :hook (prog-mode . hl-todo-mode)) 25 26 (use-package consult-todo) 27 28 (use-package haskell-mode) 29 (use-package go-mode) 30 (use-package sml-mode) 31 (use-package rust-mode) 32 33 (use-package lsp-mode 34 :config 35 ;; Disable annoying headerline 36 (setq lsp-headerline-breadcrumb-enable nil) 37 ;; Don't show unneeded function info in completions 38 (setq lsp-completion-show-detail nil) 39 ;; Disable annoying autoformatting! 40 (setq-default lsp-enable-indentation nil) 41 (setq-default lsp-enable-on-type-formatting nil) 42 :commands lsp 43 ;; Add languages of your choice! 44 :hook ((c++-mode . lsp) 45 (python-mode . lsp) 46 (typescript-mode . lsp) 47 (rust-mode . lsp) 48 (lsp-mode . (lambda () (lsp-lens-mode 0))))) 49 50 (use-package lsp-ui 51 :after lsp 52 :config 53 (setq lsp-ui-doc-delay 5) 54 (eval `(set-face-attribute 'lsp-ui-doc-background nil :background ,(doom-darken 'bg .2))) 55 :hook ((flycheck-mode . lsp-ui-mode) ;; HACK 56 (lsp-mode . lsp-ui-mode))) 57 58 (use-package company 59 :config 60 (setq company-idle-delay 0) 61 (setq company-tooltip-maximum-width 40) 62 :hook 63 (lsp-mode . company-mode)) 64 65 66 (use-package eros 67 :config 68 (defun slime-eval-last-expression-eros () 69 (interactive) 70 (cl-destructuring-bind (output value) 71 (slime-eval `(swank:eval-and-grab-output ,(slime-last-expression))) 72 (eros--make-result-overlay (concat output value) 73 :where (point) 74 :duration eros-eval-result-duration)))) 75 76 (use-package slime 77 :after eros 78 :config 79 (setq inferior-lisp-program "sbcl") 80 81 :bind (:map slime-mode-map 82 ("C-x C-e" . slime-eval-last-expression-eros)) 83 :hook ((lisp-mode . slime) 84 (lisp-mode . slime-mode))) 85 86 (use-package eat :ensure 87 (:host codeberg 88 :repo "akib/emacs-eat" 89 :files ("*.el" ("term" "term/*.el") "*.texi" 90 "*.ti" ("terminfo/e" "terminfo/e/*") 91 ("terminfo/65" "terminfo/65/*") 92 ("integration" "integration/*") 93 (:exclude ".dir-locals.el" "*-tests.el"))) 94 :config 95 (setq eat-shell-prompt-annotation-position 'right-margin) 96 (setq eat-shell-prompt-annotation-failure-margin-indicator "⛌ ") 97 (setq eat-shell-prompt-annotation-success-margin-indicator "✓ ") 98 (setq eat-shell-prompt-annotation-running-margin-indicator "⋯ "))