From d7f1ccfdcaec2d68af76c64ee6681d878db3965e Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Sat, 21 Sep 2024 09:32:29 +0200 Subject: [PATCH] experimenting with hydra/expand region --- emacs/feature/feature-base.el | 2 ++ emacs/module/module-hydra.el | 51 ++++++++++++++++++++++++++++++++++ emacs/module/module-region.el | 13 +++++++++ emacs/module/module-scratch.el | 26 ----------------- 4 files changed, 66 insertions(+), 26 deletions(-) create mode 100644 emacs/module/module-hydra.el create mode 100644 emacs/module/module-region.el diff --git a/emacs/feature/feature-base.el b/emacs/feature/feature-base.el index e99535f..c74a036 100644 --- a/emacs/feature/feature-base.el +++ b/emacs/feature/feature-base.el @@ -8,6 +8,8 @@ ;;; Code: (require 'module-base) +(require 'module-region) +(require 'module-hydra) (require 'module-detached) (require 'module-dired) (require 'module-async) diff --git a/emacs/module/module-hydra.el b/emacs/module/module-hydra.el new file mode 100644 index 0000000..8c877f6 --- /dev/null +++ b/emacs/module/module-hydra.el @@ -0,0 +1,51 @@ +;;; module-hydra.el --- better keybindings +;;; +;;; Commentary: +;;; +;;; Setup more convenient keybindings for Emacs. +;;; +;;; Code: + +(require 'module-pkg) +(require 'module-region) + +(pkg/require 'hydra) + +(defhydra hydra-vertical-nav (:color red) + "Vertical navigation" + ("n" next-line "down") + ("p" previous-line "up") + ("C-n" next-line "down") + ("C-p" previous-line "up") + ("f" forward-paragraph "forward paragraph") + ("b" backward-paragraph "backward paragraph") + ("q" nil "quit" :exit t)) + +(defhydra hydra-expand-region (:color red :hint nil) + " +Expand/Contract region +" + ("e" er/expand-region "expand") + ("c" er/contract-region "contract") + ("w" er/mark-word "word") + ("s" er/mark-symbol "symbol") + ("d" er/mark-defun "function") + ("p" er/mark-inside-pairs "inside pairs") + ("P" er/mark-outside-pairs "outside pairs") + ("q" er/mark-inside-quotes "inside quotes") + ("Q" er/mark-outside-quotes "outside quotes") + ("." er/mark-text-sentence "sentence") + ("h" er/mark-html-attribute "html attribute") + ("t" er/mark-inner-tag "inner tag") + ("T" er/mark-outer-tag "outer tag") + ("u" undo "undo" :color blue) + ("r" redo "redo" :color blue) + ("q" nil "quit" :color blue)) + +(global-set-key (kbd "C-c v") 'hydra-vertical-nav/body) +(global-set-key (kbd "C-c r") 'hydra-expand-region/body) + + +(provide 'module-hydra) + +;;; module-hydra.el ends here. diff --git a/emacs/module/module-region.el b/emacs/module/module-region.el new file mode 100644 index 0000000..2cd39e4 --- /dev/null +++ b/emacs/module/module-region.el @@ -0,0 +1,13 @@ +;;; module-region.el --- region selection +;;; +;;; Commentary: +;;; +;;; Setup more convenient region selection. +;;; +;;; Code: + +(require 'module-pkg) +(pkg/require 'expand-region) + +(provide 'module-region) +;;; module-region.el ends here. diff --git a/emacs/module/module-scratch.el b/emacs/module/module-scratch.el index 643f010..bf2e1a0 100644 --- a/emacs/module/module-scratch.el +++ b/emacs/module/module-scratch.el @@ -8,32 +8,6 @@ (require 'module-pkg) (pkg/require 'scratch) -(pkg/require 'persistent-scratch) - -(defvar persistent-scratch-directory "~/.local/state/emacs/" - "The place to save persistent scratch buffers.") - -(defun my-set-scratch-mode () - "Set default scratch mode." - (funcall 'text-mode)) - -(persistent-scratch-setup-default) -(setq persistent-scratch-directory "~/.local/state/emacs/" - persistent-scratch-autosave-interval 30 - persistent-scratch-what-to-save '(((:current . "*scratch*") . - (major-mode point narrowing))) - persistent-scratch-save-file (expand-file-name - "scratch" persistent-scratch-directory)) - -(unless (file-exists-p persistent-scratch-directory) - (make-directory persistent-scratch-directory t)) - -(add-hook 'scratch-create-buffer-hook 'my-set-scratch-mode) -(add-hook 'after-init-hook #'persistent-scratch-autosave-mode) - -(global-set-key (kbd "C-c s") #'persistent-scratch-save) -(global-set-key (kbd "C-c r") #'persistent-scratch-restore) - (provide 'module-scratch) ;;; module-scratch.el ends here.