(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 ("" . 'gud-start) ("S-" . 'gud-kill) ("" . 'gud-cont) ("" . 'gud-step-into) ("" . 'gud-step-over) ("S-" . 'gud-step-out) ("C-c C-d b" . 'gud-set-breakpoint) ("C-c C-d 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 :bind ( :map dap-mode-map ("" . 'dap-continue) ("" . 'dap-step-in) ("" . 'dap-next) ("S-" . 'dap-step-out) ("C-c C-d b" . 'dap-breakpoint-add) ("C-c C-d B" . 'dap-breakpoint-delete) ("C-c C-d e" . 'dap-eval-thing-at-point) ("C-c C-d E" . 'dap-eval) ("C-c C-d s" . 'dap-switch-stack-frame) ("C-q" . 'dap-disconnect) ("M-" . 'dap-up-stack-frame) ("M-" . 'dap-down-stack-frame)) :commands dap-mode :init (setq dap-auto-configure-features '(sessions locals tooltip breakpoints expressions)) :config (use-package dap-gdb))