diff options
author | Case Duckworth | 2021-10-05 08:32:54 -0500 |
---|---|---|
committer | Case Duckworth | 2021-10-05 08:32:54 -0500 |
commit | 3dd81b2efe906f664c0bca802058e525ed322a87 (patch) | |
tree | cea1b6fe37ef6fb20ed5ef0e6a69888dfaa36940 | |
parent | Add TODOs (diff) | |
download | emacs-3dd81b2efe906f664c0bca802058e525ed322a87.tar.gz emacs-3dd81b2efe906f664c0bca802058e525ed322a87.zip |
Add spongebob-case
Studlify is ... too complicated.
-rw-r--r-- | init.el | 8 | ||||
-rw-r--r-- | lisp/acdw.el | 26 |
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. | ||
816 | If 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) |