Files
dotfiles/laptop/.config/emacs/dev-settings.el
2026-04-29 14:21:17 -04:00

88 lines
2.2 KiB
EmacsLisp

;;; dev-settings.el --- Laptop development environment
;;; DAP Mode
(use-package dap-mode
:defer t
:commands (dap-mode dap-debug)
:config
(require 'dap-gdb-lldb)
(require 'dap-cpptools))
;;; C / C++
(use-package c-ts-mode
:ensure nil
:mode (("\\.c\\'" . c-ts-mode)
("\\.h\\'" . c-ts-mode)
("\\.cpp\\'" . c++-ts-mode)
("\\.hpp\\'" . c++-ts-mode)
("\\.cc\\'" . c++-ts-mode)
("\\.cxx\\'" . c++-ts-mode))
:hook ((c-ts-mode . eglot-ensure)
(c++-ts-mode . eglot-ensure))
:config
(setq c-ts-mode-indent-offset 4))
;;; Go
(use-package go-ts-mode
:ensure nil
:mode "\\.go\\'"
:hook (go-ts-mode . eglot-ensure)
:config
(setq go-ts-mode-indent-offset 4))
(with-eval-after-load 'dap-mode
(require 'dap-dlv-go))
;;; Rust
(use-package rust-ts-mode
:ensure nil
:mode "\\.rs\\'"
:hook (rust-ts-mode . eglot-ensure)
:config
(setq rust-ts-mode-indent-offset 4))
;; rust-analyzer is installed via: rustup component add rust-analyzer
(with-eval-after-load 'eglot
(add-to-list 'eglot-server-programs
'(rust-ts-mode . ("rust-analyzer"))))
;;; Common Lisp
(use-package slime
:defer t
:commands slime
:config
(setq inferior-lisp-program "sbcl")
(setq slime-contribs '(slime-fancy slime-company))
(setq slime-lisp-implementations
'((sbcl ("sbcl") :coding-system utf-8-unix)
(ccl ("ccl") :coding-system utf-8-unix))))
(use-package slime-company
:defer t
:after (slime company)
:config
(setq slime-company-completion 'fuzzy))
;;; DAP Keybindings
(with-eval-after-load 'dap-mode
(keymap-set dap-mode-map "C-c d d" #'dap-debug)
(keymap-set dap-mode-map "C-c d b" #'dap-breakpoint-toggle)
(keymap-set dap-mode-map "C-c d c" #'dap-continue)
(keymap-set dap-mode-map "C-c d n" #'dap-next)
(keymap-set dap-mode-map "C-c d i" #'dap-step-in)
(keymap-set dap-mode-map "C-c d o" #'dap-step-out)
(keymap-set dap-mode-map "C-c d r" #'dap-restart-frame)
(keymap-set dap-mode-map "C-c d q" #'dap-disconnect)
(keymap-set dap-mode-map "C-c d e" #'dap-eval)
(keymap-set dap-mode-map "C-c d l" #'dap-ui-locals)
(keymap-set dap-mode-map "C-c d s" #'dap-ui-sessions))
(provide 'dev-settings)
;;; dev-settings.el ends here