dotfiles/emacs.d/dev.el

115 lines
2.7 KiB
EmacsLisp

(use-package emacs
:ensure nil
:hook ((prog-mode . electric-pair-mode)))
;; (use-package idle-highlight-mode
;; :ensure t
;; :hook ((prog-mode . idle-highlight-mode)))
(use-package treesit-auto
:ensure t
:custom
(treesit-auto-install 'prompt)
:config
(treesit-auto-add-to-auto-mode-alist 'all)
(global-treesit-auto-mode))
(defun gud-quit ()
"Quits out of the current GDB session."
(interactive)
(gud-basic-call "quit"))
(defun gud-start ()
"Starts execution of the program in GDB."
(interactive)
(gud-basic-call "start"))
(defun gud-kill ()
"Terminates execution of the running program in GDB."
(interactive)
(gud-basic-call "kill"))
(defun gud-step-into ()
"Steps execution to the next line."
(interactive)
(gud-step 1))
(defun gud-step-over ()
"Steps execution to the next line, skipping over functions."
(interactive)
(gud-next 1))
(defun gud-step-out ()
"Steps execution out of the current function."
(interactive)
(gud-finish 1))
(defun gud-set-breakpoint ()
"Sets a debugger breakpoint on the current line."
(interactive)
(gud-break 1))
(defun gud-remove-breakpoint ()
"Removes a debugger breakpoint from the current line."
(interactive)
(gud-remove 1))
(use-package gdb-mi
:bind
( :map gud-minor-mode-map
("<f5>" . 'gud-start)
("S-<f5>" . 'gud-kill)
("<f9>" . 'gud-cont)
("<f7>" . 'gud-step-into)
("<f8>" . 'gud-step-over)
("S-<f8>" . 'gud-step-out)
("C-c b" . 'gud-set-breakpoint)
("C-c B" . 'gud-remove-breakpoint)
("C-q" . 'gud-quit))
:config
(setq gdb-many-windows t)
(setq gdb-restore-window-configuration-after-quit 'if-gdb-many-windows)
(setq gdb-debuginfod-enable-setting nil)
(gud-tooltip-mode t))
(defun gered/enable-lsp ()
(interactive)
(add-hook 'prog-mode-hook 'lsp)
(message "Adding lsp hook to prog-modes"))
(defun gered/disable-lsp ()
(interactive)
(remove-hook 'prog-mode-hook 'lsp)
(message "Removing lsp hook from prog-modes"))
(use-package lsp-mode
:ensure t
:init
(setq lsp-keymap-prefix "M-z")
:hook
((prog-mode . lsp)
(lsp-mode . lsp-enable-which-key-integration))
:config
(setq lsp-enable-on-type-formatting nil)
(setq lsp-headerline-breadcrumb-enable nil)
(setq lsp-enable-snippet nil)
;; seems to remove the semi-annoying "Unable to autoconfigure company-mode" warning
;; but still leaves completion via corfu working?
(setq lsp-completion-provider :none)
:commands lsp)
(use-package lsp-ui
:ensure t
:commands lsp-ui)
(use-package lsp-treemacs
:ensure t
:after lsp-mode
:commands lsp-treemacs-errors-list)
(use-package dap-mode
:ensure t
:commands dap-mode
:config
(use-package dap-gdb))