feat(aspen/emacs): Update from lusca

whatever dude

Change-Id: Ie0e01ccc49e82125d77dbf05fce5b1c53f630783
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11296
Reviewed-by: aspen <root@gws.fyi>
Autosubmit: aspen <root@gws.fyi>
Tested-by: BuildkiteCI
This commit is contained in:
Aspen Smith 2024-03-31 13:40:29 -04:00 committed by clbot
parent 8bccc9dca9
commit 5b43bd705a
4 changed files with 146 additions and 23 deletions

View file

@ -1,4 +1,5 @@
# Local variables: # Local variables:
# lexical-binding: t
# eval: (paxedit-mode 1) # eval: (paxedit-mode 1)
# eval: (display-line-numbers-mode 1) # eval: (display-line-numbers-mode 1)
# eval: (flyspell-mode -1) # eval: (flyspell-mode -1)
@ -7,6 +8,10 @@
#+title: Emacs Config #+title: Emacs Config
#+begin_src emacs-lisp :tangle yes
;; -*- lexical-binding: t; -*-
#+end_src
* Utils * Utils
#+begin_src elisp :tangle yes #+begin_src elisp :tangle yes
(use-package! dash) (use-package! dash)
@ -191,7 +196,7 @@ Returns nil if the regex did not match, non-nil otherwise"
(let ((font-family (pcase system-type (let ((font-family (pcase system-type
('darwin "MesloLGSDZ NF") ('darwin "MesloLGSDZ NF")
('gnu/linux "Meslo LGSDZ Nerd Font")))) ('gnu/linux "Meslo LGSDZ Nerd Font"))))
(setq doom-font (font-spec :family font-family :size 14) (setq doom-font (font-spec :family font-family :height 113)
doom-big-font (font-spec :family font-family :size 24) doom-big-font (font-spec :family font-family :size 24)
doom-big-font-increment 5 doom-big-font-increment 5
doom-variable-pitch-font (font-spec :family font-family) doom-variable-pitch-font (font-spec :family font-family)
@ -340,6 +345,16 @@ Get the hell out of here, snipe!
(remove-hook 'doom-first-input-hook #'evil-snipe-mode) (remove-hook 'doom-first-input-hook #'evil-snipe-mode)
#+end_src #+end_src
#+begin_src emacs-lisp :tangle yes
(map!
(:leader
"b" #'consult-buffer
"r" #'consult-recent-file))
#+end_src
#+RESULTS:
: consult-recent-file
** Flycheck ** Flycheck
#+begin_src elisp :tangle yes #+begin_src elisp :tangle yes
(evil-set-command-property 'flycheck-next-error :repeat nil) (evil-set-command-property 'flycheck-next-error :repeat nil)
@ -681,7 +696,8 @@ fireplace-esque eval binding
** org-mode ** org-mode
#+begin_src elisp :tangle yes #+begin_src elisp :tangle yes
(after! org (after! org
(load! "org-config")) (load! "org-config")
(load! "org-query"))
#+end_src #+end_src
#+RESULTS: #+RESULTS:
@ -763,11 +779,16 @@ fireplace-esque eval binding
(map! (map!
(:after org (:after org
:n "C-c C-x C-o" #'org-clock-out :n "C-c C-x C-o" #'org-clock-out
(:leader
"n k" #'org-archive-subtree-default)
(:map org-capture-mode-map (:map org-capture-mode-map
:n "g RET" #'org-capture-finalize :n "g RET" #'org-capture-finalize
:n "g \\" #'org-captue-refile))) :n "g \\" #'org-captue-refile)))
#+end_src #+end_src
#+RESULTS:
** magit ** magit
#+begin_src elisp :tangle yes #+begin_src elisp :tangle yes
(after! magit (after! magit
@ -1058,11 +1079,7 @@ nil
(interactive) (interactive)
(+evil-embrace-angle-bracket-modes-hook-h) (+evil-embrace-angle-bracket-modes-hook-h)
(setq-local whitespace-line-column 100 (setq-local whitespace-line-column 100
fill-column 100) fill-column 100))
(setq lsp-rust-analyzer-cargo-watch-command "clippy"
lsp-rust-analyzer-cargo-watch-args ["--target-dir" "/home/grfn/code/readyset/readyset/target/rust-analyzer"]
rustic-format-trigger 'on-save
lsp-ui-doc-enable t))
(add-hook 'rust-mode-hook #'aspen/rust-setup) (add-hook 'rust-mode-hook #'aspen/rust-setup)
#+end_src #+end_src
@ -1094,11 +1111,91 @@ nil
#+RESULTS: #+RESULTS:
| doom--customize-themes-h-30 | doom--customize-themes-h-31 | doom--customize-themes-h-32 | doom--customize-themes-h-33 | doom--customize-themes-h-54 | | doom--customize-themes-h-30 | doom--customize-themes-h-31 | doom--customize-themes-h-32 | doom--customize-themes-h-33 | doom--customize-themes-h-54 |
* Fuzzy search ** common-lisp
*** Commands
#+begin_src emacs-lisp :tangle yes
(defun aspen/sly-panettone ()
(interactive)
(sly
(concat
(s-trim
(shell-command-to-string
"nix-build -o sbcl -E 'with import ~/code/depot {}; nix.buildLisp.sbclWith [web.panettone]'"))
"/bin/sbcl")))
(defun aspen/setup-lisp ()
(interactive)
(rainbow-delimiters-mode)
(paxedit-mode 1)
(flycheck-mode -1))
(add-hook 'common-lisp-mode-hook #'aspen/setup-lisp)
(defun sly-run-tests ()
(interactive)
;; TODO: handle other test frameworks
(let ((orig-window (get-buffer-window)))
(sly-eval '(fiveam:run!))
(funcall-interactively #'sly-mrepl-sync)
(select-window orig-window)))
#+end_src
#+RESULTS:
: sly-run-tests
*** Bindings
#+begin_src emacs-lisp :tangle yes
(map!
(:map sly-mode-map
:n "g \\" #'sly-mrepl-sync
:n "g d" #'sly-edit-definition
:n "K" #'sly-documentation
:n "g SPC" #'sly-compile-and-load-file
:n "g RET" #'sly-run-tests)
(:map sly-mrepl-mode-map
"C-k" #'sly-mrepl-previous-prompt
"C-r" #'isearch-backward))
#+end_src
#+RESULTS:
* Completion
** Corfu
#+begin_src emacs-lisp :tangle yes
(setopt +corfu-want-ret-to-confirm nil)
(use-package! corfu
:demand t
:bind (:map corfu-map
("TAB" . corfu-next)
([tab] . corfu-next)
("S-TAB" . corfu-previous)
([backtab] . corfu-previous))
:init (setopt corfu-on-exact-match 'insert
corfu-preselect 'prompt
completion-cycle-threshold 1
corfu-quit-no-match t
corfu-quit-at-boundary t)
:config
(map! :map corfu-map
:i "TAB" #'corfu-next
:i [tab] #'corfu-next
:i "S-TAB" #'corfu-previous
:i [backtab] #'corfu-previous))
#+end_src
#+RESULTS:
: t
** Fuzzy search
#+begin_src emacs-lisp :tangle yes #+begin_src emacs-lisp :tangle yes
(use-package! hotfuzz (use-package! hotfuzz
:after (orderless corfu)
:config :config
(setopt completion-styles '(hotfuzz))) (setopt completion-styles '(hotfuzz basic)
completion-ignore-case t))
#+end_src #+end_src
#+RESULTS: #+RESULTS:
@ -1121,10 +1218,40 @@ nil
message-sendmail-f-is-evil 't message-sendmail-f-is-evil 't
message-sendmail-envelope-from 'header message-sendmail-envelope-from 'header
message-sendmail-extra-arguments '("--read-envelope-from"))) message-sendmail-extra-arguments '("--read-envelope-from")))
(defun aspen/notmuch-sync ()
(interactive)
(let* ((search-buffer (current-buffer))
(proc (start-process-shell-command
"notmuch-sync"
"*notmuch-sync*"
"cd ~/mail/personal/ && gmi sync"))
(buf (process-buffer proc)))
(set-process-sentinel
proc
(lambda (proc msg)
(internal-default-process-sentinel proc msg)
(when (and (string= msg "finished\n"))
(kill-buffer buf)
(with-current-buffer search-buffer
(when (eq major-mode 'notmuch-search-mode)
(notmuch-refresh-this-buffer))))))
(with-current-buffer buf
(+popup-buffer-mode))
(display-buffer buf '(display-buffer-at-bottom . ()))))
(set-popup-rule!
"^\\*notmuch-sync\\*$"
:select nil
:quit 'other)
(map! :map notmuch-search-mode-map
:n "g SPC" #'aspen/notmuch-sync)
#+end_src #+end_src
#+RESULTS: #+RESULTS:
| --read-envelope-from |
** Bindings ** Bindings
#+begin_src emacs-lisp :tangle yes #+begin_src emacs-lisp :tangle yes
@ -1150,13 +1277,6 @@ nil
| doom--customize-themes-h-91 | doom--customize-themes-h-92 | doom--customize-themes-h-93 | doom--customize-themes-h-94 | doom--customize-themes-h-95 | doom--customize-themes-h-96 | doom--customize-themes-h-97 | doom--customize-themes-h-98 | doom--customize-themes-h-99 | doom--customize-themes-h-100 | | doom--customize-themes-h-91 | doom--customize-themes-h-92 | doom--customize-themes-h-93 | doom--customize-themes-h-94 | doom--customize-themes-h-95 | doom--customize-themes-h-96 | doom--customize-themes-h-97 | doom--customize-themes-h-98 | doom--customize-themes-h-99 | doom--customize-themes-h-100 |
* Misc * Misc
** Make underscores word chars
#+begin_src elisp :tangle yes
(modify-syntax-entry ?_ "w")
#+end_src
#+RESULTS:
** Matchit ** Matchit
#+begin_src elisp :tangle yes #+begin_src elisp :tangle yes
(use-package! evil-matchit) (use-package! evil-matchit)

View file

@ -21,7 +21,8 @@
;;layout ; auie,ctsrnm is the superior home row ;;layout ; auie,ctsrnm is the superior home row
:completion :completion
company ; the ultimate code completion backend ;; company ; the ultimate code completion backend
corfu
;;helm ; the *other* search engine for love and life ;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine... ;;ido ; the other *other* search engine...
;;ivy ; a search engine for love and life ;;ivy ; a search engine for love and life
@ -30,7 +31,7 @@
:ui :ui
;;deft ; notational velocity for Emacs ;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does doom ; what makes DOOM look the way it does
;; doom-dashboard ; a nifty splash screen for Emacs doom-dashboard ; a nifty splash screen for Emacs
;;doom-quit ; DOOM quit-message prompts when you quit Emacs ;;doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +unicode) ; 🙂 (emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
@ -95,7 +96,7 @@
(eval +overlay) ; run code, run (also, repls) (eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists ;;gist ; interacting with github gists
lookup ; navigate your code and its documentation lookup ; navigate your code and its documentation
(lsp +eglot) ; M-x vscode lsp ; M-x vscode
magit ; a git porcelain for Emacs magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs ;;make ; run make tasks from Emacs
pass ; password manager for nerds pass ; password manager for nerds
@ -142,7 +143,7 @@
;;idris ; a language you can depend on ;;idris ; a language you can depend on
json ; At least it ain't XML json ; At least it ain't XML
;;(java +lsp) ; the poster child for carpal tunnel syndrome ;;(java +lsp) ; the poster child for carpal tunnel syndrome
;;javascript ; all(hope(abandon(ye(who(enter(here)))))) (javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB ;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script) ;;kotlin ; a better, slicker Java(Script)
;;latex ; writing papers in Emacs has never been so fun ;;latex ; writing papers in Emacs has never been so fun
@ -156,7 +157,8 @@
(org ; organize your plain life in plain text (org ; organize your plain life in plain text
+gnuplot +gnuplot
+present +present
+pretty) +pretty
)
;;php ; perl's insecure younger brother ;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more ;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional ;;purescript ; javascript, but functional

View file

@ -128,7 +128,7 @@
("nw" "Next @Work" tags-todo "@work&next") ("nw" "Next @Work" tags-todo "@work&next")
("nt" "Next tooling" tags-todo "tooling") ("nt" "Next tooling" tags-todo "tooling")
("p" . "Project...") ;; ("p" . "Project...")
;; ,@(aspen/org-projects->agenda-commands (aspen/org-projects)) ;; ,@(aspen/org-projects->agenda-commands (aspen/org-projects))
) )

View file

@ -5,6 +5,7 @@
(package! paxedit) (package! paxedit)
(package! predd (package! predd
:recipe (:host github :repo "skeeto/predd")) :recipe (:host github :repo "skeeto/predd"))
(package! direnv)
(package! alert) (package! alert)
(package! flycheck-clojure) (package! flycheck-clojure)
(package! evil-matchit) (package! evil-matchit)