From 75669df3a514f41ab86c4acede4219972d5be9a5 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 5 Jun 2024 15:09:36 -0400 Subject: [PATCH] Major Revisions, Much Cleaner --- custom.el | 161 +---------- main.org | 785 +++++++++++++++++++++++++++++------------------------- 2 files changed, 423 insertions(+), 523 deletions(-) diff --git a/custom.el b/custom.el index 0dbc69a..4484fbb 100644 --- a/custom.el +++ b/custom.el @@ -3,167 +3,8 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - '(conda-anaconda-home "~/opt/anaconda3") '(custom-safe-themes - '("5f79df6b4c56021d173c178d90b5a600c678a192d78cc639553915985b67c4ea" "8cda1cfae8e393bfb23f1d448d4be10720835d086f7db080908a7c8d01566516" "a27f7b52fe66bacaec9059f8afd04d055a4ac3c2fba9eb9128c81e10152fc566" "1ba7196d8e7b883272ea8818a5163aec21b57023368febf55255816226f7b370" "8256e7e03444834d34915a226dc24933b0d680a0a1da568ec03f852be776f168" "4ac2f45e6b46e5bb50826d4250df71a57124169b82cc0ad75e436de6e70a9690" "29addd67feb95ca1179e60d476bb92c1f11835548e2efaec15c9ac6af2a8e6a8" "9b7a425c38c4894e161887c26381c2a6fc1de3c1407158507caaf469d76eb27b" "bce055e1681dd343659957710af77f7a6ad106677d42c61f86ebeedf637c4493" "f62c69472d3f506179d797131c014fe4095d9609dddf14542c50e0388f1e8d6d" "cf143bf23fa8160f87331893cdadc40b876556634621dfa373fcf93c4c97c444" "f459dfd377e9cb98d90e53383dcca7d73396cc0a22b31d39af24fb1cf3548fb5" "fcc14e1a22c99d77f7b1455b0c8a320f8afd0c1f4a9c5c50b45f676eb0c54ba2" "a6bae299481c3c0058e611d2c32ca169fa27203345a880806a5a8554cdd2e588" "feb9556e03558588e29e6659c8e01ea3d2a17a1e7a13e9bf9fc9e59cacba4b72" default)) - '(delete-selection-mode nil) - '(dired-listing-switches "-alh") - '(elpy-rpc-python-command "python3") - '(lsp-dart-flutter-sdk-dir "~/flutter") - '(lsp-file-watch-ignored-directories - '("[/\\\\]\\.git\\'" "[/\\\\]\\.github\\'" "[/\\\\]\\.circleci\\'" "[/\\\\]\\.hg\\'" "[/\\\\]\\.bzr\\'" "[/\\\\]_darcs\\'" "[/\\\\]\\.svn\\'" "[/\\\\]_FOSSIL_\\'" "[/\\\\]\\.idea\\'" "[/\\\\]\\.ensime_cache\\'" "[/\\\\]\\.eunit\\'" "[/\\\\]node_modules" "[/\\\\]\\.yarn\\'" "[/\\\\]\\.fslckout\\'" "[/\\\\]\\.tox\\'" "[/\\\\]dist\\'" "[/\\\\]dist-newstyle\\'" "[/\\\\]\\.stack-work\\'" "[/\\\\]\\.bloop\\'" "[/\\\\]\\.metals\\'" "[/\\\\]target\\'" "[/\\\\]\\.ccls-cache\\'" "[/\\\\]\\.vscode\\'" "[/\\\\]\\.venv\\'" "[/\\\\]\\.mypy_cache\\'" "[/\\\\]\\.deps\\'" "[/\\\\]build-aux\\'" "[/\\\\]autom4te.cache\\'" "[/\\\\]\\.reference\\'" "[/\\\\]\\.lsp\\'" "[/\\\\]\\.clj-kondo\\'" "[/\\\\]\\.shadow-cljs\\'" "[/\\\\]\\.babel_cache\\'" "[/\\\\]\\.cpcache\\'" "[/\\\\]\\checkouts\\'" "[/\\\\]\\.m2\\'" "[/\\\\]bin/Debug\\'" "[/\\\\]obj\\'" "[/\\\\]_opam\\'" "[/\\\\]_build\\'" "[/\\\\]\\.elixir_ls\\'" "[/\\\\]\\.direnv\\'" "[/\\\\]\\.tmp\\'")) - '(lsp-java-format-on-type-enabled nil) - '(lsp-java-format-settings-profile nil) - '(lsp-pylsp-plugins-jedi-use-pyenv-environment t) - '(org-agenda-files - '("/home/universe/Documents/research/DBS/TechnicalEvaluation/technicaldraft.org")) - '(org-export-backends '(ascii beamer html icalendar latex odt)) - '(org-latex-classes - '(("beamer" "\\documentclass[presentation]{beamer}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) - ("article" "\\documentclass[11pt]{article}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) - ("report" "\\documentclass[11pt]{report}" - ("\\part{%s}" . "\\part*{%s}") - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) - ("book" "\\documentclass[11pt]{book}" - ("\\part{%s}" . "\\part*{%s}") - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) - ("thesis" "\\documentclass[11pt]{ut-thesis}" - ("\\part{%s}" . "\\part*{%s}") - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}")))) - '(org-preview-latex-process-alist - '((dvipng :programs - ("latex" "dvipng") - :description "dvi > png" :message "you need to install the programs: latex and dvipng." :image-input-type "dvi" :image-output-type "png" :image-size-adjust - (2.0 . 2.0) - :latex-compiler - ("latex -interaction nonstopmode -output-directory %o %f") - :image-converter - ("dvipng -D %D -T tight -o %O %f") - :transparent-image-converter - ("dvipng -D %D -T tight -bg Transparent -o %O %f")) - (dvisvgm :programs - ("latex" "dvisvgm") - :description "dvi > svg" :message "you need to install the programs: latex and dvisvgm." :image-input-type "dvi" :image-output-type "svg" :image-size-adjust - (1.7 . 1.5) - :latex-compiler - ("latex -interaction nonstopmode -output-directory %o %f") - :image-converter - ("dvisvgm %f -n -b min -c %S -o %O")) - (imagemagick :programs - ("latex" "convert") - :description "pdf > png" :message "you need to install the programs: latex and imagemagick." :image-input-type "pdf" :image-output-type "png" :image-size-adjust - (1.0 . 1.0) - :latex-compiler - ("pdflatex -interaction nonstopmode -output-directory %o %f") - :image-converter - ("convert -density %D -trim -antialias %f -quality 100 %O")))) - '(package-selected-packages - '(dockerfile-mode :ensure slint-mode ox-reveal lsp-dart dart-mode gnuplot auctex ox-pandoc pdf-tools org-ref helm-bibtex ivy-bibtex geiser-racket rainbow-delimiters rust-mode company-ghci lsp-haskell haskell-mode meson-mode company-c-headers company-ctags poetry python-mode which-key dap-mode helm-lsp lsp-treemacs flycheck lsp-ui lsp-mode company yaml-mode d2-mode php-mode web-mode nix-mode direnv magit esup ligature exec-path-from-shell transient-dwim leaf-convert leaf-tree blackout hydra el-get leaf-keywords leaf)) - '(python-shell-completion-native-enable nil) - '(sql-sqlite-program "sqlite3") - '(warning-suppress-types '((comp) (comp) (comp) (comp) (comp)))) -'(org-latex-classes - '(("thesis" "\\documentclass{ut-thesis}" - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) - ("labtemplate" "\\documentclass{labtemplate}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) - ("beamer" "\\documentclass[presentation]{beamer}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) - ("article" "\\documentclass[11pt]{article}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) - ("report" "\\documentclass[11pt]{report}" - ("\\part{%s}" . "\\part*{%s}") - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) - ("letter" "\\documentclass{letter}" - ("" . "")) - ("book" "\\documentclass[11pt]{book}" - ("\\part{%s}" . "\\part*{%s}") - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") - ("\\subsubsection{%s}" . "\\subsubsection*{%s}")))) -'(org-latex-default-packages-alist - '(("AUTO" "inputenc" t - ("pdflatex")) - ("T1" "fontenc" t - ("pdflatex")) - ("" "graphicx" t nil) - ("" "grffile" t nil) - ("" "longtable" nil nil) - ("" "wrapfig" nil nil) - ("" "rotating" nil nil) - ("normalem" "ulem" t nil) - ("" "amsmath" t nil) - ("" "textcomp" t nil) - ("" "amssymb" t nil) - ("" "capt-of" nil nil) - ("" "hyperref" nil nil))) -'(org-pandoc-menu-entry - '((61 "to ms-pdf and open." org-pandoc-export-to-ms-pdf-and-open) - (45 "to ms-pdf." org-pandoc-export-to-ms-pdf) - (106 "to json and open." org-pandoc-export-to-json-and-open) - (74 "as json." org-pandoc-export-as-json) - (80 "to pptx." org-pandoc-export-to-pptx) - (120 "to docx and open." org-pandoc-export-to-docx-and-open) - (88 "to docx." org-pandoc-export-to-docx))) -'(python-shell-completion-native-enable nil) -'(warning-suppress-log-types - '((direnv) - (lsp-mode) - (comp) - (comp) - (comp) - (comp) - (comp) - (comp) - (comp) - (comp))) -'(warning-suppress-types - '((lsp-mode) - (comp) - (comp) - (comp) - (comp) - (comp) - (comp) - (comp) - (comp))) - + '("5f79df6b4c56021d173c178d90b5a600c678a192d78cc639553915985b67c4ea" "8cda1cfae8e393bfb23f1d448d4be10720835d086f7db080908a7c8d01566516" "a27f7b52fe66bacaec9059f8afd04d055a4ac3c2fba9eb9128c81e10152fc566" "1ba7196d8e7b883272ea8818a5163aec21b57023368febf55255816226f7b370" "8256e7e03444834d34915a226dc24933b0d680a0a1da568ec03f852be776f168" "4ac2f45e6b46e5bb50826d4250df71a57124169b82cc0ad75e436de6e70a9690" "29addd67feb95ca1179e60d476bb92c1f11835548e2efaec15c9ac6af2a8e6a8" "9b7a425c38c4894e161887c26381c2a6fc1de3c1407158507caaf469d76eb27b" "bce055e1681dd343659957710af77f7a6ad106677d42c61f86ebeedf637c4493" "f62c69472d3f506179d797131c014fe4095d9609dddf14542c50e0388f1e8d6d" "cf143bf23fa8160f87331893cdadc40b876556634621dfa373fcf93c4c97c444" "f459dfd377e9cb98d90e53383dcca7d73396cc0a22b31d39af24fb1cf3548fb5" "fcc14e1a22c99d77f7b1455b0c8a320f8afd0c1f4a9c5c50b45f676eb0c54ba2" "a6bae299481c3c0058e611d2c32ca169fa27203345a880806a5a8554cdd2e588" "feb9556e03558588e29e6659c8e01ea3d2a17a1e7a13e9bf9fc9e59cacba4b72" default))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. diff --git a/main.org b/main.org index d5d7d03..da81375 100644 --- a/main.org +++ b/main.org @@ -14,53 +14,56 @@ We must initialize =leaf.el=, which we use as a use-package replacement for defining configs and relations between packages etc. -#+begin_src elisp :tangle yes - (eval-and-compile - (customize-set-variable - 'package-archives '(("org" . "https://orgmode.org/elpa/") - ("melpa" . "https://melpa.org/packages/") - ("gnu" . "https://elpa.gnu.org/packages/"))) - (package-initialize) - (unless (package-installed-p 'leaf) - (package-refresh-contents) - (package-install 'leaf)) +#+begin_src elisp :tangle yes :exports code +(eval-and-compile + (customize-set-variable + 'package-archives '(("org" . "https://orgmode.org/elpa/") + ("melpa" . "https://melpa.org/packages/") + ("gnu" . "https://elpa.gnu.org/packages/"))) + (package-initialize) + (unless (package-installed-p 'leaf) + (package-refresh-contents) + (package-install 'leaf)) - (leaf leaf-keywords - :ensure t - :init - (leaf el-get :ensure t) - (leaf hydra :ensure t) - (leaf blackout :ensure t) + (leaf leaf-keywords + :ensure t + :init + (leaf el-get :ensure t) + (leaf hydra :ensure t) + (leaf blackout :ensure t) - :config - ;; initialize leaf-keywords.el - (leaf-keywords-init))) + :config + ;; initialize leaf-keywords.el + (leaf-keywords-init))) - (leaf leaf-tree :ensure t) - (leaf leaf-convert :ensure t) - (leaf transient-dwim :ensure t - :bind (("M-=" . transient-dwim-dispatch))) +(leaf leaf-tree :ensure t) +(leaf leaf-convert :ensure t) +(leaf transient-dwim :ensure t + :bind (("M-=" . transient-dwim-dispatch))) #+end_src ** MacOS Specific -#+begin_src elisp :tangle yes - (when (eq system-type 'darwin) - (setq mac-option-modifier 'meta)) +#+begin_src elisp :tangle yes :exports code +(leaf macos + :hook (after-init hook) + :when (eq system-type 'darwin) + :init + (setq mac-option-modifier 'meta)) #+end_src ** Performance *** Garbage Collection -#+begin_src elisp :tangle yes - (leaf gcmh :ensure t - :hook (after-init-hook)) +#+begin_src elisp :tangle yes :exports code +(leaf gcmh :ensure t + :hook (after-init-hook)) #+end_src *** Profiling -#+begin_src elisp :tangle yes - (leaf esup :disabled nil :ensure t) +#+begin_src elisp :tangle yes :exports code +(leaf esup :disabled nil :ensure t) #+end_src ** Emacs Paths @@ -69,24 +72,24 @@ replacement for defining configs and relations between packages etc. Ensure that the =custom.el= resides in the users' emacs directory. -#+begin_src elisp :tangle yes - (leaf custom-el - :config - ;; Ensure custom writes to specific file - (setq custom-file (expand-file-name "custom.el" user-emacs-directory)) - (load custom-file 'noerror 'nomessage)) +#+begin_src elisp :tangle yes :exports code +(leaf custom-el + :config + ;; Ensure custom writes to specific file + (setq custom-file (expand-file-name "custom.el" user-emacs-directory)) + (load custom-file 'noerror 'nomessage)) #+end_src *** Backups Set the backups directory to reside in the users' emacs directory. -#+begin_src elisp :tangle yes - (leaf backup - :config - ;; Change the location of file backups/locks into the emacs.d/backups/ - (setq backup-directory-alist - `(("." . ,(concat user-emacs-directory "backups"))))) +#+begin_src elisp :tangle yes :exports code +(leaf backup + :config + ;; Change the location of file backups/locks into the emacs.d/backups/ + (setq backup-directory-alist + `(("." . ,(concat user-emacs-directory "backups"))))) #+end_src ** Shell Path Preservation @@ -94,382 +97,442 @@ Set the backups directory to reside in the users' emacs directory. Exec-path-from-shell ensures that path variable is preserved from shell. -#+begin_src elisp :tangle yes - (leaf exec-path-from-shell :ensure t - :config - (exec-path-from-shell-initialize)) +#+begin_src elisp :tangle yes :exports code +(leaf exec-path-from-shell :ensure t + :config + (exec-path-from-shell-initialize)) #+end_src * Visual Customization Visual Theme of Emacs config: defined in the =themes= directory. -#+begin_src elisp :tangle yes - (leaf visual - :doc "Visual Changes to Emacs" - :tag "builtin" "internal" - :custom ((menu-bar-mode . nil) - (tool-bar-mode . nil) - (scroll-bar-mode . nil)) - :custom-face ((default . '((t (:family "JuliaMono" - :height 150 - :weight normal))))) - :config - ;; Set location of custom theme dir - (setq custom-theme-directory (concat user-emacs-directory "themes")) - (load-theme 'UniverseHighContrast)) +#+begin_src elisp :tangle yes :exports code +(leaf visual + :doc "Visual Changes to Emacs" + :tag "builtin" "internal" + :custom ((menu-bar-mode . nil) + (tool-bar-mode . nil) + (scroll-bar-mode . nil)) + :custom-face ((default . '((t (:family "JuliaMono" + :height 150 + :weight normal))))) + :config + ;; Set location of custom theme dir + (setq custom-theme-directory (concat user-emacs-directory "themes")) + (load-theme 'UniverseHighContrast)) #+end_src -** Font Related - -*** Ligature - -Font related ligatures, combining multiple characters into "one". - -#+begin_src elisp :tangle yes - (leaf ligature - :ensure t - :config - ;; Enable the "www" ligature in every possible major mode - (ligature-set-ligatures 't '("www")) - ;; Enable traditional ligature support in eww-mode, if the - ;; `variable-pitch' face supports it - (ligature-set-ligatures 'eww-mode '("ff" "fi" "ffi")) - ;; Enable all Cascadia Code ligatures in programming modes - (ligature-set-ligatures 'prog-mode '("|||>" "<|||" "<==>" "" "---" "-<<" - "<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" - "<--" "<-<" "<<=" "<<-" "<<<" "<+>" "" "###" "#_(" "..<" - "..." "+++" "/==" "///" "_|_" "www" "&&" "^=" "~~" "~@" "~=" - "~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|" - "[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:" - ">=" ">>" ">-" "-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" - "<$" "<=" "<>" "<-" "<<" "<+" "" "++" "?:" - "?=" "?." "??" ";;" "/*" "/=" "/>" "//" "__" "~~" "(*" "*)" - "\\\\" "://")) - ;; Enables ligature checks globally in all buffers. You can also do it - ;; per mode with `ligature-mode'. - (global-ligature-mode t)) +* Version Control +#+begin_src elisp :tangle yes :exports code +(leaf magit :ensure t :require t) #+end_src -* Package Configuration +* Nix Related -** Version Control -#+begin_src elisp :tangle yes - (leaf magit :ensure t :require t) -#+end_src - -** Nix Related - -*** Direnv +** Direnv In order to support direnv (loading =nix-shell= / =nix develop=) -#+begin_src elisp :tangle yes - (leaf direnv - :ensure t - :config - (direnv-mode)) +#+begin_src elisp :tangle yes :exports code +(leaf direnv + :ensure t + :config + (direnv-mode)) #+end_src -*** Nix-mode +** Nix-mode =.nix= file mode -#+begin_src elisp :tangle yes - (leaf nix-mode :ensure t) +#+begin_src elisp :tangle yes :exports code +(leaf nix-mode :ensure t) #+end_src -** WEB +* IDE Like Things -We all know the web is the future, obviously, of course. +** Which Key Again? -#+begin_src elisp :tangle yes - (leaf web-mode - :ensure t - :mode - "\\.p?html?\\'" - "\\.djtml\\'" - "\\.jsx?\\'" - "\\.tsx?\\'") - (leaf php-mode - :ensure t) +#+begin_src elisp :tangle yes :exports code +(leaf which-key :ensure t + :config (which-key-mode)) #+end_src -** D2 - -#+begin_src elisp :tangle yes - (leaf d2-mode :ensure t) -#+end_src - -** YAML - -#+begin_src elisp :tangle yes - (leaf yaml-mode :ensure t) -#+end_src - -** IDE Like Things -*** Company Completion! +** Company Completion! We like autocomplete, it... is nice, okay? -#+begin_src elisp :tangle yes - (leaf company :ensure t - :bind - (("C-" . company-complete)) - :hook after-init-hook - :config (global-company-mode)) +#+begin_src elisp :tangle yes :exports code +(leaf company :ensure t + :bind + (("C-" . company-complete)) + :hook after-init-hook + :config (global-company-mode)) #+end_src -*** Language Server Protocol + +** Language Server Protocol We love language features that make languages nice -#+begin_src elisp :tangle yes - (leaf lsp-mode - :ensure t - :init - (setq lsp-keymap-prefix "C-c l") - :hook - ((dart-mode-hook . lsp) - (python-mode-hook . lsp) - (c-mode-hook . lsp) - (c++-mode-hook . lsp) - (haskell-mode-hook . lsp) - (java-mode-hook . lsp) - (rust-mode-hook . lsp) - ;; which key support v v v - (lsp-mode-hook . lsp-enable-which-key-integration)) - :commands lsp - :config - (leaf lsp-ui :ensure t - :commands lsp-ui-mode) - (leaf flycheck :ensure t) - (leaf lsp-treemacs :ensure t - :commands lsp-treemacs-errors-list) - (leaf helm-lsp :ensure t - :commands helm-lsp-workspace-symbol) - (leaf dap-mode :ensure t) - (leaf which-key :ensure t - :config (which-key-mode))) +#+begin_src elisp :tangle yes :exports code +(leaf lsp-mode + :ensure t + :init + (setq lsp-keymap-prefix "C-c l") + :commands lsp lsp-deferred + :hook + ;; which key support v v v + ((lsp-mode-hook . lsp-enable-which-key-integration) #+end_src -**** Projectile (Projects) -#+begin_src elisp :tangle yes - (leaf projectile - :commands projectile-mode - :config - (projectile-mode +1)) + +*** IDE Languages + +**** Dart/Flutter + +#+begin_src elisp :tangle yes :exports code +(dart-mode . lsp-deferred) #+end_src -** Python Things -*** Python-mode + +**** Python + +#+begin_src elisp :tangle yes :exports code +(python-mode . lsp-deferred) +#+end_src + +**** C/C++ + +#+begin_src elisp :tangle yes :exports code +(c-mode-hook . lsp-deferred) +(c++-mode-hook . lsp-deferred) +#+end_src + +**** Haskell + +#+begin_src elisp :tangle yes :exports code +(haskell-mode-hook . lsp-deferred) +#+end_src + +**** Java + +#+begin_src elisp :tangle yes :exports code +(java-mode-hook . lsp-deferred) +#+end_src + +**** Rust + +#+begin_src elisp :tangle yes :exports code +(rust-mode-hook . lsp-deferred)) +#+end_src + +#+begin_src elisp :tangle yes :exports code +) +#+end_src + +*** LSP Plugins: + +We do want some nice to haves of course + +- A pretty UI: +#+begin_src elisp :tangle yes :exports code +(leaf lsp-ui :ensure t + :commands lsp-ui-mode) +#+end_src +- Flycheck compat: +#+begin_src elisp :tangle yes :exports code +(leaf flycheck :ensure t) +#+end_src +- Debugger Compatibility +#+begin_src elisp :tangle yes :exports code +(leaf dap-mode :ensure t) +#+end_src + +*** Projectile (Projects) + +#+begin_src elisp :tangle yes :exports code +(leaf projectile + :commands projectile-mode + :config + (projectile-mode +1)) +#+end_src + +* WEB + +We all know the web is the future, obviously, of course. + +#+begin_src elisp :tangle yes :exports code +(leaf web-mode + :ensure t + :mode + "\\.p?html?\\'" + "\\.djtml\\'" + "\\.jsx?\\'" + "\\.tsx?\\'") +(leaf php-mode + :ensure t) +#+end_src + +* D2 + +#+begin_src elisp :tangle yes :exports code +(leaf d2-mode :ensure t) +#+end_src + +* YAML + +#+begin_src elisp :tangle yes :exports code +(leaf yaml-mode :ensure t) +#+end_src + +* Python Things + +** Python-mode Using python-mode is to have more up to date features (and highlighting) compared to builtin python-mode. -#+begin_src elisp :tangle yes - (leaf python-mode :ensure t - :config - (setq python-shell-interpreter "ipython" - python-shell-interpreter-args "-i --simple-prompt --InteractiveShell.display_page=True")) +#+begin_src elisp :tangle yes :exports code +(leaf python-mode :ensure t + :config + (setq python-shell-interpreter "ipython" + python-shell-interpreter-args "-i --simple-prompt --InteractiveShell.display_page=True")) #+end_src -*** Poetry + +** Poetry For when we aren't nix'ing things, and want some nice poetry. -#+begin_src elisp :tangle yes - (leaf poetry :ensure t) +#+begin_src elisp :tangle yes :exports code +(leaf poetry :ensure t) #+end_src -** Java -LSP for java is /nice/. +* C -#+begin_src elisp :tangle yes - (leaf lsp-java - :hook (java-mode-hook . lsp)) -#+end_src -** C Who even needs C++, not me, no way, no how. -#+begin_src elisp :tangle yes + +#+begin_src elisp :tangle yes :exports code +(leaf c-config + :hook c-mode-hook c++-mode-hook + :config (leaf company-ctags :ensure t) (leaf company-c-headers :ensure t) - (leaf meson-mode :ensure t) + (leaf meson-mode :ensure t)) #+end_src -** Haskell -#+begin_src elisp :tangle yes - (leaf haskell-mode :ensure t - :config - (leaf lsp-haskell :ensure t) - (leaf company-ghci :ensure t)) + +* Haskell + +#+begin_src elisp :tangle yes :exports code +(leaf haskell-mode :ensure t) +(leaf lsp-haskell :ensure t) +(leaf company-ghci :ensure t) #+end_src -** Rust -#+begin_src elisp :tangle yes - (leaf rust-mode :ensure t - (leaf slint-mode :ensure t)) + +* Rust + +#+begin_src elisp :tangle yes :exports code +(leaf rust-mode :ensure t + :init + (leaf slint-mode :ensure t)) #+end_src -** Minecraft?? + +* Minecraft?? + Minecraft =mcfunction= support, because, it can be annoying to type this stuff otherwise. -#+begin_src elisp :tangle yes - (leaf mcf-mode - :el-get rasensuihei/mcf) +#+begin_src elisp :tangle yes :exports code +(leaf mcf-mode + :el-get rasensuihei/mcf) #+end_src -** Lisps + +* Lisps Gonna need to have pretty brackets -#+begin_src elisp :tangle yes - (leaf rainbow-delimiters - :ensure t - :commands rainbow-delimiters-mode - :config - (leaf rainbow - :hook (emacs-lisp-mode-hook . rainbow-delimiters-mode) - (geiser-mode-hook . rainbow-delimiters-mode))) +#+begin_src elisp :tangle yes :exports code +(leaf rainbow-delimiters + :ensure t + :commands rainbow-delimiters-mode + :config + (leaf rainbow + :hook (emacs-lisp-mode-hook . rainbow-delimiters-mode) + (geiser-mode-hook . rainbow-delimiters-mode))) #+end_src -*** Racket + +** Racket Makes using racket so much nicer -#+begin_src elisp :tangle yes - (leaf geiser-racket :ensure t) +#+begin_src elisp :tangle yes :exports code +(leaf geiser-racket :ensure t) #+end_src -** Org + +* Org + +We ensure that org is available (though it is builtin) + +#+begin_src elisp :tangle yes :exports code +(leaf org :ensure t + :require t org-tempo + :hook + (org-mode-hook . auto-fill-mode) + :config + (setq document-dir (expand-file-name (if (eq system-type 'darwin) "~/Nextcloud" "~/Documents"))) + (setq org-directory (concat document-dir "/org")) + (set-fill-column 100) + (setq org-src-fontify-natively t + org-confirm-babel-evaluate nil + org-src-preserve-indentation t)) +;; (tempo-define-template "Fig. Caption" +;; '("" (P "Image: " image t) +;; (P "Caption: " caption t) +;; (P "Figure Name: " name t) +;; "#+CAPTION: " (s caption) > n > +;; "#+NAME: fig:" (s name) > n > +;; "#+ATTR_LaTeX: :placement [H]" > n > +;; "[[" (s image) "]]" > n > p >) +;; " n > - "#+NAME: fig:" (s name) > n > - "#+ATTR_LaTeX: :placement [H]" > n > - "[[" (s image) "]]" > n > p >) - "