diff --git a/home-manager/modules/emacs/config.org b/home-manager/modules/emacs/config.org index d0a6fa4..e10ef62 100644 --- a/home-manager/modules/emacs/config.org +++ b/home-manager/modules/emacs/config.org @@ -133,34 +133,6 @@ By default packages should always be installed from the package manager. This is (setq use-package-always-ensure t) #+end_src -** Bootstrap straight.el and use-package [DISABLED] - -[[https://github.com/radian-software/straight.el][straight.el]] is a pure functional package manager and installs packages from git instead of downloading tars - -#+begin_src emacs-lisp :tangle no - (defvar bootstrap-version) - ;; Workaround for flycheck. See https://github.com/radian-software/straight.el/issues/508 for more info - (setq straight-fix-flycheck t) - (let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 6)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage)) -#+end_src - -Install =use-package= and make it use =straight.el= by default. - -#+begin_src emacs-lisp :tangle no - (straight-use-package 'use-package) - (setq straight-use-package-by-default t) -#+end_src - ** general.el [[https://github.com/noctuid/general.el][general.el]] provides a more convenient way for binding keys in emacs. It also integrates with =use-package= with the =:general= keyword. @@ -180,27 +152,6 @@ Install =use-package= and make it use =straight.el= by default. #+end_src -** Setup asdf [DISABLED] - -[[https://asdf-vm.com][asdf]] is a tool to install and use multiple versions of development tools and programming languages. - -#+begin_src emacs-lisp :tangle no - (when (executable-find "asdf") - (use-package asdf-vm - :straight (:host github :repo "delonnewman/asdf-vm.el") - ;; :load-path "~/.config/emacs/elisp/asdf-vm.el/" - :config - (asdf-vm-init))) -#+end_src - -** Set custom settings to load in temp file [DISABLED] - -Setting =custom-file= stops emacs from adding customised settings to =init.el=. I prefer to specify everything in this file, so this creates a temporary file where the customisations are stored. This effectively localises customisations to a session - -#+begin_src emacs-lisp :tangle no - (setq custom-file (make-temp-file "emacs-custom")) -#+end_src - ** Disable the customize interface The =customize= functionality is annoying and messes up regularly. Stuff it has done so far: @@ -1016,99 +967,6 @@ Automatically use the =-ts-mode= when it is available (global-treesit-auto-mode)) #+end_src -*** lsp-mode - -[[https://emacs-lsp.github.io/lsp-mode][lsp-mode]] adds Language Server Protocol support to emacs. - -#+begin_src emacs-lisp :tangle no - (use-package lsp-mode - :init - (setq lsp-keymap-prefix "C-c l" - lsp-use-plists nil) - (defun eb/lsp-mode-setup-completion () - (setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults)) - '(orderless))) - :hook ((conf-toml-mode - python-mode - sh-mode) . lsp-deferred) - (lsp-mode . lsp-enable-which-key-integration) - (lsp-completion-mode . eb/lsp-mode-setup-completion) - :commands - (lsp lsp-deferred) - :custom - (lsp-completion-provider :none) ;; I'm using corfu - :config - (setq lsp-typescript-surveys-enabled nil - lsp-completion-enable t - lsp-enable-suggest-server-download nil)) -#+end_src - -[[https://emacs-lsp.github.io/lsp-ui/][lsp-ui]] provides higher level UI elements for =lsp-mode=, like code lenses and flycheck support. - -#+begin_src emacs-lisp :tangle no - (use-package lsp-ui - :ghook 'lsp-mode-hook - :config - (setq lsp-ui-doc-enable t - lsp-ui-peek-enable t - lsp-ui-sideline-enable t - lsp-ui-imenu-enable t) - :custom - (lsp-ui-doc-position 'bottom)) -#+end_src - -[[https://github.com/emacs-lsp/lsp-ivy][lsp-ivy]] integrates =ivy= into =lsp-mode= - -#+begin_src emacs-lisp :tangle no - (use-package lsp-ivy - :commands lsp-ivy-workspace-symbol) -#+end_src - -[[https://github.com/gagbo/consult-lsp][consult-lsp]] integrates =consult= into =lsp-mode= - -#+begin_src emacs-lisp :tangle no - (use-package consult-lsp) -#+end_src - -[[https://github.com/emacs-lsp/lsp-treemacs][lsp-treemacs]] provides an integration between =lsp-mode= and [[https://github.com/Alexander-Miller/treemacs][treemacs]]. - -#+begin_src emacs-lisp :tangle no - (use-package lsp-treemacs - :commands lsp-treemacs-errors-list) -#+end_src - -*** dap-mode - -[[http://emacs-lsp.github.io/dap-mode][dap-mode]] provides debugging facilities using the [[https://microsoft.github.io/debug-adapter-protocol/][Debug Adapter Protocol]] - -#+begin_src emacs-lisp :tangle no - (use-package dap-mode - :defer t - :custom - (dap-auto-configure-mode t) - (dap-auto-configure-features '(sessions locals breakpoints expressions tooltip)) - :config - (require 'dap-lldb) - (require 'dap-cpptools) - (setq dap-lldb-debugged-program-function (lambda () (read-file-name "Select program executable to debug"))) - - (dap-register-debug-template "C++ LLDB" - (list :type "lldb-vscode" - :dap-server-path (executable-find "lldb-vscode") - :cwd nil - :args nil - :request "launch" - :program nil)) - (defun dap-debug-create-or-edit-json-template () - "Edit C++ debugging configuration or create and edit if none exists" - (interactive) - (let ((filename (concat (lsp-workspace-root) "/launch.json")) - (default (concat user-emacs-directory "/default-launch.json"))) - (unless (file-exists-p filename) - (copy-file default filename)) - (find-file-existing filename)))) -#+end_src - *** eglot [[https://joaotavora.github.io/eglot/][eglot]] is an alternative to =lsp-mode= that is builtin with emacs >= 29