|
From: | Gregory Heytings |
Subject: | bug#45068: [PATCH] Modus themes 1.2.0 |
Date: | Sat, 06 Mar 2021 13:24:01 +0000 |
+(deftheme modus-vivendi + "Accessible and customizable light theme (WCAG AAA standard).^^^^^ dark[ Answer only if it is easy: how do you draw those ^^^ below the text? ]
Here's a more polished version, which takes care of the prefix / fill-prefix, and works on multiple lines:
(defun undercaret (&optional arg) (interactive "p") (let* ((begin (if (region-active-p) (region-beginning) (line-beginning-position))) (end (if (region-active-p) (region-end) (line-end-position))) (lines (- (line-number-at-pos end) (line-number-at-pos begin) -1)) (comment (and (/= arg 1) (= lines 1))) (final-forward-line -1)) (goto-char begin) (dotimes (i lines) (let* ((line-begin (if (zerop i) begin (line-beginning-position))) (line-end (if (= (1+ i) lines) end (line-end-position))) (begin-column (progn (goto-char line-begin) (current-column))) (prefix-begin (line-beginning-position)) (prefix-end (progn (beginning-of-line-text) (point))) (prefix-end-column (progn (goto-char prefix-end) (current-column))) (delta (if (< begin-column prefix-end-column) (- prefix-end-column begin-column) 0)) (prefix-string (buffer-substring-no-properties prefix-begin prefix-end)) (prefix (if (string-blank-p prefix-string) "" prefix-string)) (whitespace (make-string (- (+ begin-column delta) (length prefix)) ?\ )) (do-under (< delta (- line-end line-begin))) (under (if do-under (make-string (- line-end line-begin delta) ?^) "")) (under-string (concat prefix whitespace under "\n"))) (forward-line 1) (if do-under (insert under-string) (setq final-forward-line -2)) (setq end (+ end (length under-string))) (when comment (insert prefix whitespace "\n")))) (forward-line final-forward-line) (goto-char (line-end-position))))
[Prev in Thread] | Current Thread | [Next in Thread] |