From 088e2b3f14f0ea02038e20dccbb62e05d4eec9b2 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 30 Aug 2025 12:13:52 -0500 Subject: email, ai, and miscellaneous refactor setup-email script - Enable "set -euo pipefail" for safer execution - Quote all variable references in test conditions - Update script header with usage notes and email setup steps email and org-msg changes - Configure org-msg with inline CSS, greeting, images, citations, and signature - Enable org-msg-mode in all mu4e compose buffers - Advise mu4e-compose-reply and mu4e-compose-wide-reply to use org-msg-edit-mode - Move no-auto-fill hook into mu4e-compose-mode-hook - Disable mu4e-compose-format-flowed and set mu4e-html2text-command - Update gnus-blocked-images comment and remove default signature-file setting - remove org-contact configurations ai changes - historian directive added - added all new directives to menu - changed default directive to default-directive! misc changes - org complains when tab-widths aren't at 8 - refactor and improve delete blank lines region or buffer - change name of add-header function to be more specific - updated tasks - updated abbrevs - documentation for local-arch-wiki-search --- modules/custom-functions.el | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) (limited to 'modules/custom-functions.el') diff --git a/modules/custom-functions.el b/modules/custom-functions.el index 710623fe..16b68c51 100644 --- a/modules/custom-functions.el +++ b/modules/custom-functions.el @@ -435,16 +435,31 @@ and all articles are considered minor words." (while (search-forward "" nil t) (replace-match "" nil t)))) -;; ----------------------------- Clear Blank Lines ----------------------------- - -(defun cj/clear-blank-lines (beginning end) - "Remove blank lines in the region or the buffer if no region is selected. -BEGINNING and END describe the selected region." - (interactive "r") +;; -------------------- Remove Blank Lines Region Or Buffer -------------------- +;; removes lines contiaining whitespace from region or buffer. + +(defun cj/delete-blank-lines-region-or-buffer (start end) + "Delete all blank lines in the region between START and END. +Blank lines are lines that contain only whitespace (spaces or tabs). +If called interactively with an active region, operate on that region. +If no active region, prompt user before operating on the whole buffer. +Otherwise signal a user-error and do nothing. The point is restored +to its original position after deletion." + (interactive + (if (use-region-p) + ;; grab its boundaries if there's a region + (list (region-beginning) (region-end)) + ;; or ask if user intended operating on whole buffer + (if (yes-or-no-p "Delete blank lines in entire buffer? ") + (list (point-min) (point-max)) + (user-error "Aborted")))) (save-excursion - (goto-char beginning) - (while (re-search-forward "^[ \t]*\n" end t) - (replace-match "")))) + (save-restriction + (widen) + ;; Regexp "^[[:space:]]*$" matches lines of zero or more spaces/tabs. + (flush-lines "^[[:space:]]*$" start end))) + ;; Return nil (Emacs conventions). Point is already restored. + nil) ;; ---------------------- Fixup Whitespace Line Or Region ---------------------- @@ -635,8 +650,9 @@ Uses `sortable-time-format' for the formatting the date/time." (define-key map "A" 'cj/unarrayify) ;; de/duplicate lines (define-key map "d" 'cj/duplicate-line-or-region) - (define-key map "D" 'cj/remove-duplicate-lines-from-region-or-buffer) + (define-key map "D" 'cj/remove-duplicate-lines-from-region-or-buffer) + (define-key map "D" 'cj/remove-duplicate-lines-from-region-or-buffer) (define-key map ")" #'cj/jump-to-matching-paren) (define-key map "/" #'cj/replace-fraction-glyphs) (define-key map "L" #'cj/clear-blank-lines) -- cgit v1.2.3