Added casual. Updated clojure support.

This commit is contained in:
Micheal Smith 2026-02-10 23:29:40 -06:00
parent a74b8b0f9f
commit b44d7d1c91
Signed by: xulfer
GPG key ID: E40750BFE6702504
7 changed files with 150 additions and 150 deletions

View file

@ -426,8 +426,9 @@ breeze.
:init :init
(setq parinfer-rust-auto-download t) (setq parinfer-rust-auto-download t)
:hook :hook
emacs-lisp-mode (emacs-lisp-mode . parinfer-rust-mode)
clojure-ts-mode) (clojure-mode . parinfer-rust-mode)
(clojure-ts-mode . parinfer-rust-mode))
#+end_src #+end_src
I also have =smart-parens= for parentheses matching in modes where =parinfer= would I also have =smart-parens= for parentheses matching in modes where =parinfer= would
@ -697,6 +698,63 @@ bar.
:config (global-anzu-mode)) :config (global-anzu-mode))
#+end_src #+end_src
** Casual
I'd like to start using transient over hydra. [[https://github.com/kickingvegas/casual][Casual]] does a lot of the
leg work for us.
#+begin_src emacs-lisp
(use-package casual
:ensure t
:bind
("C-o" . casual-editkit-main-tmenu) ;; Global EditKit menu
(:map dired-mode-map
("C-o" . casual-dired-tmenu)
("s" . casual-dired-sort-by-tmenu)
("/" . casual-dired-search-replace-tmenu))
(:map org-agenda-mode-map
("C-o" . casual-agenda-tmenu)
("M-j" . org-agenda-clock-goto)
("J" . bookmark-jump))
(:map ibuffer-mode-map
("C-o" . casual-ibuffer-tmenu)
("F" . casual-ibuffer-filter-tmenu)
("s" . casual-ibuffer-sortby-tmenu)
("{" . ibuffer-backwards-next-marked)
("}" . ibuffer-forward-next-marked)
("[" . ibuffer-backward-filter-group)
("]" . ibuffer-forward-filter-group)
("$" . ibuffer-toggle-filter-group))
(:map calc-mode-map
("C-o" . casual-calc-tmenu))
(:map calc-alg-map
("C-o" . casual-calc-tmenu))
(:map eshell-mode-map
("C-o" . casual-eshell-tmenu))
(:map eww-mode-map
("C-o" . casual-eww-tmenu))
(:map eww-bookmark-mode-map
("C-o" . casual-eww-bookmarks-tmenu))
(:map help-mode-map
("C-o" . casual-help-tmenu))
(:map Info-mode-map
("C-o" . casual-info-tmenu))
:config
;; Dired configuration
(add-hook 'dired-mode-hook #'hl-line-mode)
(add-hook 'dired-mode-hook #'context-menu-mode)
;; IBuffer configuration
(add-hook 'ibuffer-mode-hook #'hl-line-mode)
(add-hook 'ibuffer-mode-hook #'ibuffer-auto-mode)
(keymap-set ibuffer-mode-map "<double-mouse-1>" #'ibuffer-visit-buffer)
(keymap-set ibuffer-mode-map "M-<double-mouse-1>" #'ibuffer-visit-buffer-other-window)
;; Info configuration
(add-hook 'Info-mode-hook #'hl-line-mode)
(add-hook 'Info-mode-hook #'scroll-lock-mode))
#+end_src
** Embark ** Embark
[[https://github.com/oantolin/embark][Embark]] is like a DWIM version of which-key in a sense. Though it is more [[https://github.com/oantolin/embark][Embark]] is like a DWIM version of which-key in a sense. Though it is more
@ -783,83 +841,13 @@ _l_ → _c_ lose
(global-set-key (kbd "C-c t") 'hydra-tab/body) (global-set-key (kbd "C-c t") 'hydra-tab/body)
#+end_src #+end_src
** Windows
Quite a helpful window hydra. I cannot take credit for this. I copied it
from somewhere. When I find the link I'll add it here.
#+name: window-hydra
#+begin_src emacs-lisp :tangle no
(defhydra hydra-window (:color red :hint nil)
"
Movement^^ ^Split^ ^Switch^ ^Resize^
----------------------------------------------------------------
_h_ ← _v_ertical _b_uffer _q_ X←
_j__x_ horizontal _f_ind files _w_ X↓
_k__z_ undo _a_ce 1 _e_ X↑
_l__Z_ reset _s_wap _r_ X→
_F_ollow _D_lt Other _S_ave max_i_mize
_SPC_ cancel _o_nly this _d_elete
"
("h" windmove-left )
("j" windmove-down )
("k" windmove-up )
("l" windmove-right )
("q" hydra-move-splitter-left)
("w" hydra-move-splitter-down)
("e" hydra-move-splitter-up)
("r" hydra-move-splitter-right)
("b" consult-buffer)
("f" consult-fd)
("F" follow-mode)
("a" (lambda ()
(interactive)
(ace-window 1)
(add-hook 'ace-window-end-once-hook
'hydra-window/body))
)
("v" (lambda ()
(interactive)
(split-window-right)
(windmove-right))
)
("x" (lambda ()
(interactive)
(split-window-below)
(windmove-down))
)
("s" (lambda ()
(interactive)
(ace-window 4)
(add-hook 'ace-window-end-once-hook
'hydra-window/body)))
("S" save-buffer)
("d" delete-window)
("D" (lambda ()
(interactive)
(ace-window 16)
(add-hook 'ace-window-end-once-hook
'hydra-window/body))
)
("o" delete-other-windows)
("i" ace-maximize-window)
("z" (progn
(winner-undo)
(setq this-command 'winner-undo))
)
("Z" winner-redo)
("SPC" nil))
(global-set-key (kbd "C-c w") 'hydra-window/body)
#+end_src
** Pulling it all together ** Pulling it all together
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package hydra (use-package hydra
:demand t :demand t
:config :config
<<tab-hydra>> <<tab-hydra>>)
<<window-hydra>>)
#+end_src #+end_src
# #+INCLUDE: "config/bufferlo.org" :minlevel 1 # #+INCLUDE: "config/bufferlo.org" :minlevel 1
@ -1532,6 +1520,7 @@ the package.
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
(c-ts-mode . lsp-deferred) (c-ts-mode . lsp-deferred)
(c++-ts-mode . lsp-deferred) (c++-ts-mode . lsp-deferred)
(clojure-mode . lsp-deferred)
(clojure-ts-mode . lsp-deferred) (clojure-ts-mode . lsp-deferred)
(crystal-mode . lsp-deferred) (crystal-mode . lsp-deferred)
(elixir-ts-mode . lsp-deferred) (elixir-ts-mode . lsp-deferred)
@ -1615,9 +1604,19 @@ bother with an explanation on each.
;; Clojure ;; Clojure
(use-package clojure-mode (use-package clojure-mode
:ensure t :ensure t
:after (rainbox-mode) :after (rainbow-mode)
:hook :hook
cider-mode) (clojure-mode . cider-mode)
(clojure-mode . (lambda () (setq-local lsp-semantic-tokens-enable nil))))
(use-package clojure-ts-mode
:ensure t
:mode (("\\.clj\\'" . clojure-ts-mode)
("\\.cljs\\'" . clojure-ts-mode)
("\\.cljc\\'" . clojure-ts-mode))
:hook
(clojure-ts-mode . cider-mode)
(clojure-ts-mode . (lambda () (setq-local lsp-semantic-tokens-enable nil))))
;; Gleam ;; Gleam
(use-package gleam-ts-mode (use-package gleam-ts-mode
@ -1665,6 +1664,7 @@ and managing my notes.
(use-feature org (use-feature org
:defer t :defer t
:config :config
(require 'org-agenda)
(setq org-confirm-babel-evaluate nil) (setq org-confirm-babel-evaluate nil)
:custom :custom
(org-ellipsis (nth 5 '("↴" "˅" "…" " ⬙" " ▽" "▿"))) (org-ellipsis (nth 5 '("↴" "˅" "…" " ⬙" " ▽" "▿")))

View file

@ -13,8 +13,9 @@ breeze.
:init :init
(setq parinfer-rust-auto-download t) (setq parinfer-rust-auto-download t)
:hook :hook
emacs-lisp-mode (emacs-lisp-mode . parinfer-rust-mode)
clojure-ts-mode) (clojure-mode . parinfer-rust-mode)
(clojure-ts-mode . parinfer-rust-mode))
#+end_src #+end_src
I also have =smart-parens= for parentheses matching in modes where =parinfer= would I also have =smart-parens= for parentheses matching in modes where =parinfer= would

View file

@ -25,81 +25,11 @@ _l_ → _c_ lose
(global-set-key (kbd "C-c t") 'hydra-tab/body) (global-set-key (kbd "C-c t") 'hydra-tab/body)
#+end_src #+end_src
** Windows
Quite a helpful window hydra. I cannot take credit for this. I copied it
from somewhere. When I find the link I'll add it here.
#+name: window-hydra
#+begin_src emacs-lisp :tangle no
(defhydra hydra-window (:color red :hint nil)
"
Movement^^ ^Split^ ^Switch^ ^Resize^
----------------------------------------------------------------
_h_ ← _v_ertical _b_uffer _q_ X←
_j__x_ horizontal _f_ind files _w_ X↓
_k__z_ undo _a_ce 1 _e_ X↑
_l__Z_ reset _s_wap _r_ X→
_F_ollow _D_lt Other _S_ave max_i_mize
_SPC_ cancel _o_nly this _d_elete
"
("h" windmove-left )
("j" windmove-down )
("k" windmove-up )
("l" windmove-right )
("q" hydra-move-splitter-left)
("w" hydra-move-splitter-down)
("e" hydra-move-splitter-up)
("r" hydra-move-splitter-right)
("b" consult-buffer)
("f" consult-fd)
("F" follow-mode)
("a" (lambda ()
(interactive)
(ace-window 1)
(add-hook 'ace-window-end-once-hook
'hydra-window/body))
)
("v" (lambda ()
(interactive)
(split-window-right)
(windmove-right))
)
("x" (lambda ()
(interactive)
(split-window-below)
(windmove-down))
)
("s" (lambda ()
(interactive)
(ace-window 4)
(add-hook 'ace-window-end-once-hook
'hydra-window/body)))
("S" save-buffer)
("d" delete-window)
("D" (lambda ()
(interactive)
(ace-window 16)
(add-hook 'ace-window-end-once-hook
'hydra-window/body))
)
("o" delete-other-windows)
("i" ace-maximize-window)
("z" (progn
(winner-undo)
(setq this-command 'winner-undo))
)
("Z" winner-redo)
("SPC" nil))
(global-set-key (kbd "C-c w") 'hydra-window/body)
#+end_src
** Pulling it all together ** Pulling it all together
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package hydra (use-package hydra
:demand t :demand t
:config :config
<<tab-hydra>> <<tab-hydra>>)
<<window-hydra>>)
#+end_src #+end_src

View file

@ -16,6 +16,7 @@ the package.
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
(c-ts-mode . lsp-deferred) (c-ts-mode . lsp-deferred)
(c++-ts-mode . lsp-deferred) (c++-ts-mode . lsp-deferred)
(clojure-mode . lsp-deferred)
(clojure-ts-mode . lsp-deferred) (clojure-ts-mode . lsp-deferred)
(crystal-mode . lsp-deferred) (crystal-mode . lsp-deferred)
(elixir-ts-mode . lsp-deferred) (elixir-ts-mode . lsp-deferred)

View file

@ -30,9 +30,19 @@ bother with an explanation on each.
;; Clojure ;; Clojure
(use-package clojure-mode (use-package clojure-mode
:ensure t :ensure t
:after (rainbox-mode) :after (rainbow-mode)
:hook :hook
cider-mode) (clojure-mode . cider-mode)
(clojure-mode . (lambda () (setq-local lsp-semantic-tokens-enable nil))))
(use-package clojure-ts-mode
:ensure t
:mode (("\\.clj\\'" . clojure-ts-mode)
("\\.cljs\\'" . clojure-ts-mode)
("\\.cljc\\'" . clojure-ts-mode))
:hook
(clojure-ts-mode . cider-mode)
(clojure-ts-mode . (lambda () (setq-local lsp-semantic-tokens-enable nil))))
;; Gleam ;; Gleam
(use-package gleam-ts-mode (use-package gleam-ts-mode

View file

@ -8,6 +8,7 @@ and managing my notes.
(use-feature org (use-feature org
:defer t :defer t
:config :config
(require 'org-agenda)
(setq org-confirm-babel-evaluate nil) (setq org-confirm-babel-evaluate nil)
:custom :custom
(org-ellipsis (nth 5 '("↴" "˅" "…" " ⬙" " ▽" "▿"))) (org-ellipsis (nth 5 '("↴" "˅" "…" " ⬙" " ▽" "▿")))

View file

@ -24,6 +24,63 @@ bar.
:config (global-anzu-mode)) :config (global-anzu-mode))
#+end_src #+end_src
** Casual
I'd like to start using transient over hydra. [[https://github.com/kickingvegas/casual][Casual]] does a lot of the
leg work for us.
#+begin_src emacs-lisp
(use-package casual
:ensure t
:bind
("C-o" . casual-editkit-main-tmenu) ;; Global EditKit menu
(:map dired-mode-map
("C-o" . casual-dired-tmenu)
("s" . casual-dired-sort-by-tmenu)
("/" . casual-dired-search-replace-tmenu))
(:map org-agenda-mode-map
("C-o" . casual-agenda-tmenu)
("M-j" . org-agenda-clock-goto)
("J" . bookmark-jump))
(:map ibuffer-mode-map
("C-o" . casual-ibuffer-tmenu)
("F" . casual-ibuffer-filter-tmenu)
("s" . casual-ibuffer-sortby-tmenu)
("{" . ibuffer-backwards-next-marked)
("}" . ibuffer-forward-next-marked)
("[" . ibuffer-backward-filter-group)
("]" . ibuffer-forward-filter-group)
("$" . ibuffer-toggle-filter-group))
(:map calc-mode-map
("C-o" . casual-calc-tmenu))
(:map calc-alg-map
("C-o" . casual-calc-tmenu))
(:map eshell-mode-map
("C-o" . casual-eshell-tmenu))
(:map eww-mode-map
("C-o" . casual-eww-tmenu))
(:map eww-bookmark-mode-map
("C-o" . casual-eww-bookmarks-tmenu))
(:map help-mode-map
("C-o" . casual-help-tmenu))
(:map Info-mode-map
("C-o" . casual-info-tmenu))
:config
;; Dired configuration
(add-hook 'dired-mode-hook #'hl-line-mode)
(add-hook 'dired-mode-hook #'context-menu-mode)
;; IBuffer configuration
(add-hook 'ibuffer-mode-hook #'hl-line-mode)
(add-hook 'ibuffer-mode-hook #'ibuffer-auto-mode)
(keymap-set ibuffer-mode-map "<double-mouse-1>" #'ibuffer-visit-buffer)
(keymap-set ibuffer-mode-map "M-<double-mouse-1>" #'ibuffer-visit-buffer-other-window)
;; Info configuration
(add-hook 'Info-mode-hook #'hl-line-mode)
(add-hook 'Info-mode-hook #'scroll-lock-mode))
#+end_src
** Embark ** Embark
[[https://github.com/oantolin/embark][Embark]] is like a DWIM version of which-key in a sense. Though it is more [[https://github.com/oantolin/embark][Embark]] is like a DWIM version of which-key in a sense. Though it is more