]> git.earman.xyz Git - emacsinit.git/commitdiff
Auto prettyprint and auto-removal of duplicate lines on save
authorrearman <rearman@r717.net>
Fri, 12 Jul 2024 21:09:56 +0000 (17:09 -0400)
committerrearman <rearman@r717.net>
Fri, 12 Jul 2024 21:09:56 +0000 (17:09 -0400)
init.el
re/re-bindings.el
re/re-editing-defuns.el
sedit-mouse

diff --git a/init.el b/init.el
index 79c683061bdd2d50f75699e81df63a0cbfb1dbe5..c52421a70e8cafbc76cf589e248b1d9e14500d48 100644 (file)
--- a/init.el
+++ b/init.el
 
 ;; Cleanup on write
 (setq require-final-newline t)
+(add-hook 'before-save-hook #'re/flush-extra-lines)
 (add-hook 'before-save-hook #'whitespace-cleanup)
 (add-hook 'after-save-hook #'executable-make-buffer-file-executable-if-script-p)
 
index 7e24cf2860ad5439851550b334e413ac104c671e..00a078370f487a7081c4e69cc7f3ab4741fd0363 100644 (file)
@@ -8,19 +8,11 @@
 (keymap-global-set "C-\\" #'undo-redo)
 (keymap-global-set "C-S-K" #'kill-whole-line)
 (keymap-global-set "C-w" #'re/kill-bword-or-region)
-(keymap-global-set "C-u"
-                   (lambda
-                     ()
-                     (interactive)
-                     (kill-line 0))) ; kill-line backwards
+(keymap-global-set "C-u" (lambda () (interactive) (kill-line 0))) ; kill-line backwards
 (keymap-set key-translation-map "C-h" "<DEL>") ; Rather F1 for help
 (keymap-global-set "C-o" #'re/open-line-below)
 (keymap-global-set "M-o" #'re/open-line-above)
-(keymap-global-set "M-j"
-                   (lambda
-                     ()
-                     (interactive)
-                     (join-line 0))) ; join-line other way
+(keymap-global-set "M-j" (lambda () (interactive) (join-line 0))) ; join-line other way
 (keymap-global-set "C-z" #'zap-up-to-char)
 (keymap-global-set "C-c s" #'sort-lines)
 (keymap-global-set "M-;" #'re/comment-dwim)
 ;; (E)Lisp
 (keymap-global-set "C-M-z" #'eval-region)
 (keymap-global-set "C-M-S-q"
-                   (lambda
-                     ()
-                     (interactive)
-                     (sedit-auto-prettify-sexp)))
+                   (lambda () (interactive) (sedit-auto-prettify-sexp)))
+
 (defvar *re/lisp-mode-hooks*
-  '(emacs-lisp-mode-hook
-    lisp-mode-hook
-    slime-mode-hook
-    scheme-mode-hook))
+  '(emacs-lisp-mode-hook lisp-mode-hook slime-mode-hook scheme-mode-hook))
 
-(dolist
-    (hook *re/lisp-mode-hooks*)
+(dolist (hook *re/lisp-mode-hooks*)
   (add-hook hook
-            (lambda
-              ()
-              (keymap-set lisp-mode-shared-map "]"
-                          (re/balance-and-eval-sexp
-                           (lambda
-                             ()
-                             (interactive)
-                             (sedit-auto-prettify-sexp)
-                             (forward-sexp)))))))
+            (lambda ()
+              (keymap-set lisp-mode-shared-map
+                          "]"
+                          (re/balance-and-eval-sexp #'sedit-auto-prettify-sexp)))))
 
 (add-hook 'lisp-interaction-mode-hook
-          (lambda
-            ()
-            (keymap-set lisp-interaction-mode-map "]"
+          (lambda ()
+            (keymap-set lisp-interaction-mode-map
+                        "]"
                         (re/balance-and-eval-sexp #'eval-print-last-sexp))))
 
 ;; IELM
 (keymap-global-set "C-c i" #'ielm)
 
 (add-hook 'ielm-mode-hook
-          (lambda
-            ()
-            (keymap-set inferior-emacs-lisp-mode-map "C-l" #'comint-clear-buffer)
-            (let
-                ((eval-function #'ielm-send-input))
-              (keymap-set inferior-emacs-lisp-mode-map ")"
+          (lambda ()
+            (keymap-set inferior-emacs-lisp-mode-map
+                        "C-l"
+                        #'comint-clear-buffer)
+            (let ((eval-function #'ielm-send-input))
+              (keymap-set inferior-emacs-lisp-mode-map
+                          ")"
                           (re/send-on-close-paren eval-function))
-              (keymap-set inferior-emacs-lisp-mode-map "]"
+              (keymap-set inferior-emacs-lisp-mode-map
+                          "]"
                           (re/balance-and-eval-sexp eval-function)))))
 
+
 ;; Eshell
 (keymap-global-set "C-c e" #'eshell)
 
 (add-hook 'eshell-mode-hook
-          (lambda
-            ()
+          (lambda ()
             (keymap-set eshell-mode-map "C-d" #'eshell-quit-or-delete-char)
-            (let
-                ((eval-function #'eshell-send-input))
-              (keymap-set eshell-mode-map ")"
+            (let ((eval-function #'eshell-send-input))
+              (keymap-set eshell-mode-map
+                          ")"
                           (re/send-on-close-paren eval-function))
-              (keymap-set eshell-mode-map "]"
+              (keymap-set eshell-mode-map
+                          "]"
                           (re/balance-and-eval-sexp eval-function)))))
 
 ;; SLIME REPL
 (add-hook 'slime-repl-mode-hook
-          (lambda
-            ()
+          (lambda ()
             (let ((eval-function #'slime-repl-return))
-              (keymap-set slime-repl-mode-map ")"
+              (keymap-set slime-repl-mode-map
+                          ")"
                           (re/send-on-close-paren eval-function))
-              (keymap-set slime-repl-mode-map "]"
+              (keymap-set slime-repl-mode-map
+                          "]"
                           (re/balance-and-eval-sexp eval-function)))))
 
 ;; Org Starters
index a69ec48685297b3a2f22d1bd94b22ee471852667..75d480330a8c539067986067afc969e7cbf64e68 100644 (file)
   (open-line n)
   (indent-for-tab-command))
 
+(defun re/flush-extra-lines ()
+  "Change all groups of blank lines to 1 blank line."
+  (interactive)
+  (save-excursion (mark-whole-buffer)
+                  (replace-regexp "^\n+" "\n" nil (region-beginning) (region-end))))
+
 (defun re/comment-dwim ()
   "Comment region if active, otherwise comment line.
 Stolen from https://depp.brause.cc/dotemacs"
@@ -64,6 +70,7 @@ Stolen from https://depp.brause.cc/dotemacs"
     (comment-or-uncomment-region
      (line-beginning-position)
      (line-end-position))))
+
 (defun re/kill-bword-or-region ()
   "Kill region if active, otherwise kill back one word."
   (interactive)
index e7fc56d9e756fa4dfebfdba429dfec5b6ca2e0bb..e79a1de4d2329b150322ccf2d785decce4ebee30 160000 (submodule)
@@ -1 +1 @@
-Subproject commit e7fc56d9e756fa4dfebfdba429dfec5b6ca2e0bb
+Subproject commit e79a1de4d2329b150322ccf2d785decce4ebee30