about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCase Duckworth2021-10-05 08:32:54 -0500
committerCase Duckworth2021-10-05 08:32:54 -0500
commit3dd81b2efe906f664c0bca802058e525ed322a87 (patch)
treecea1b6fe37ef6fb20ed5ef0e6a69888dfaa36940
parentAdd TODOs (diff)
downloademacs-3dd81b2efe906f664c0bca802058e525ed322a87.tar.gz
emacs-3dd81b2efe906f664c0bca802058e525ed322a87.zip
Add spongebob-case
Studlify is ... too complicated.
-rw-r--r--init.el8
-rw-r--r--lisp/acdw.el26
2 files changed, 28 insertions, 6 deletions
diff --git a/init.el b/init.el index 52eab26..a810370 100644 --- a/init.el +++ b/init.el
@@ -386,16 +386,12 @@
386 386
387 (:with-map case-map 387 (:with-map case-map
388 (require 'titlecase) 388 (require 'titlecase)
389 (require 'acdw)
389 (:bind "c" #'capitalize-dwim 390 (:bind "c" #'capitalize-dwim
390 "t" #'titlecase-dwim 391 "t" #'titlecase-dwim
391 "u" #'upcase-dwim 392 "u" #'upcase-dwim
392 "l" #'downcase-dwim 393 "l" #'downcase-dwim
393 "s" (defun studlify-dwim (count) 394 "s" #'spongebob-case-dwim))
394 "Studlify region if active, or COUNT words if not."
395 (interactive "*p")
396 (if (region-active-p)
397 (studlify-region (region-beginning) (region-end))
398 (studlify-word count)))))
399 395
400 (add-hook 'after-make-frame-functions 396 (add-hook 'after-make-frame-functions
401 (defun after-make-frame@maximize (frame) 397 (defun after-make-frame@maximize (frame)
diff --git a/lisp/acdw.el b/lisp/acdw.el index 792b9ef..e013fbc 100644 --- a/lisp/acdw.el +++ b/lisp/acdw.el
@@ -793,6 +793,32 @@ This function is internal. Use `acdw/make-password-fetcher' instead."
793 (insert "💩") 793 (insert "💩")
794 (setq n (1- n))))) 794 (setq n (1- n)))))
795 795
796(defun spongebob-case-region (beg end)
797 "Make region, defined by BEG and END, lOoK lIkE tHiS."
798 (interactive "*r")
799 (save-excursion
800 (let (case)
801 (goto-char beg)
802 (while (< (point) end)
803 (if (looking-at "[[:alpha:]]")
804 (if (setq case (not case))
805 (upcase-region (point) (progn (forward-char 1) (point)))
806 (downcase-region (point) (progn (forward-char 1) (point))))
807 (forward-char 1))))))
808
809(defun spongebob-case-word (n)
810 "Spongebob-case N words forward, beginning at point, moving over."
811 (interactive "*p")
812 (spongebob-case-region (point) (progn (forward-word n) (point))))
813
814(defun spongebob-case-dwim (arg)
815 "Spongebob-case words in the region if active, else word at point.
816If ARG exists, it's passed to `spongebob-case-word'."
817 (interactive "*p")
818 (if (use-region-p)
819 (spongebob-case-region (region-beginning) (region-end))
820 (spongebob-case-word arg)))
821
796 822
797;;; Fat finger solutions 823;;; Fat finger solutions
798(defun acdw/fat-finger-exit (&optional prefix) 824(defun acdw/fat-finger-exit (&optional prefix)