about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--init.el18
-rw-r--r--lisp/+expand-region.el24
2 files changed, 41 insertions, 1 deletions
diff --git a/init.el b/init.el index 13284d1..49e549e 100644 --- a/init.el +++ b/init.el
@@ -944,7 +944,10 @@ See also `crux-reopen-as-root-mode'."
944 (exec-path-from-shell-initialize)) 944 (exec-path-from-shell-initialize))
945 945
946(setup (:straight expand-region) 946(setup (:straight expand-region)
947 (:+key "C-=" #'er/expand-region)) 947 (:also-load +expand-region)
948 (:option expand-region-fast-keys-enabled nil)
949 (:+key "C-=" #'er/expand-region
950 "C--" #'+er/contract-or-negative-argument))
948 951
949(setup (:straight (fill-sentences-correctly 952(setup (:straight (fill-sentences-correctly
950 :host github 953 :host github
@@ -1303,6 +1306,19 @@ See also `crux-reopen-as-root-mode'."
1303 whitespace-cleanup-mode-only-if-initially-clean nil) 1306 whitespace-cleanup-mode-only-if-initially-clean nil)
1304 (global-whitespace-cleanup-mode +1)) 1307 (global-whitespace-cleanup-mode +1))
1305 1308
1309(setup (:straight wrap-region)
1310 (:require wrap-region)
1311 (wrap-region-add-wrappers
1312 '(("*" "*" nil org-mode)
1313 ("~" "~" nil org-mode)
1314 ("/" "/" nil org-mode)
1315 ("=" "=" nil org-mode)
1316 ("+" "+" nil org-mode)
1317 ("_" "_" nil org-mode)
1318 ("$" "$" nil (org-mode latex-mode))))
1319 (:hook-into org-mode
1320 latex-mode))
1321
1306(setup (:straight zoom-frm)) 1322(setup (:straight zoom-frm))
1307 1323
1308(setup (:straight zzz-to-char) 1324(setup (:straight zzz-to-char)
diff --git a/lisp/+expand-region.el b/lisp/+expand-region.el new file mode 100644 index 0000000..8aac3ce --- /dev/null +++ b/lisp/+expand-region.el
@@ -0,0 +1,24 @@
1;;; +expand-region.el -*- lexical-binding: t; -*-
2
3;;; Commentary:
4
5;;
6
7;;; Code:
8
9;; Because of `wrap-region', I can't use `expand-region-fast-keys-enabled'. So
10;; instead of that, I'm adding this to the binding to C--, but I also want to be
11;; able to use the negative argument. So there's this.
12(defun +er/contract-or-negative-argument (arg)
13 "Contract the region if the last command expanded it.
14Otherwise, pass the ARG as a negative argument."
15 (interactive "p")
16 (cond ((memq last-command '(er/expand-region
17 er/contract-region
18 +er/contract-or-negative-argument))
19
20 (er/contract-region arg))
21 (t (call-interactively #'negative-argument))))
22
23(provide '+expand-region)
24;;; +expand-region.el ends here