aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElías Gabriel Pérez2025-02-22 12:19:07 -0600
committerEli Zaretskii2025-03-09 11:10:56 +0200
commit2322dea77cc2f3e1f1eb08a5b03f97afdd3a4cde (patch)
treed3842388846e79be94ab32b54537eb73f2d128c7
parent31ebc00ece7d7234868a2a1e95f138473ea6646c (diff)
downloademacs-2322dea77cc2f3e1f1eb08a5b03f97afdd3a4cde.tar.gz
emacs-2322dea77cc2f3e1f1eb08a5b03f97afdd3a4cde.zip
Highlight fill-column-indicator when current line is too long
* lisp/display-fill-column-indicator.el (display-fill-column-indicator-warning): New user option. (display-fill-column-indicator-warning-face): New face. (display-fill-column-indicator-mode): Add post-command-hook if `display-fill-column-indicator-warning' is ON. (Bug#76494)
-rw-r--r--lisp/display-fill-column-indicator.el30
1 files changed, 29 insertions, 1 deletions
diff --git a/lisp/display-fill-column-indicator.el b/lisp/display-fill-column-indicator.el
index c55a03533bd..e2395bb1f01 100644
--- a/lisp/display-fill-column-indicator.el
+++ b/lisp/display-fill-column-indicator.el
@@ -42,6 +42,30 @@
42 :group 'display 42 :group 'display
43 :link '(info-link "(emacs)Displaying Boundaries")) 43 :link '(info-link "(emacs)Displaying Boundaries"))
44 44
45(defcustom display-fill-column-indicator-warning nil
46 "Highlight fill-column-indicator when current column is too long.
47Non-nil means highlight fill-column-indicator when current column exceeds
48`display-fill-column-indicator-column'."
49 :type 'boolean
50 :version "31.1")
51
52(defface display-fill-column-indicator-warning-face
53 '((t :inherit error :stipple nil))
54 "Face used to highlight `display-fill-column-indicator' when column is too long."
55 :version "31.1")
56
57(defun fill-indicator--set-warning ()
58 "Set the warning face for the fill column indicator."
59 (if-let* ((column (if (integerp display-fill-column-indicator-column)
60 display-fill-column-indicator-column
61 fill-column))
62 ((> (save-excursion (end-of-line) (current-column))
63 column)))
64 (progn
65 (face-remap-set-base
66 'fill-column-indicator
67 'display-fill-column-indicator-warning-face))
68 (face-remap-reset-base 'fill-column-indicator)))
45 69
46;;;###autoload 70;;;###autoload
47(define-minor-mode display-fill-column-indicator-mode 71(define-minor-mode display-fill-column-indicator-mode
@@ -68,7 +92,11 @@ See Info node `Displaying Boundaries' for details."
68 (eq (aref (query-font (car (internal-char-font nil ?\u2502))) 0) 92 (eq (aref (query-font (car (internal-char-font nil ?\u2502))) 0)
69 (face-font 'default)))) 93 (face-font 'default))))
70 ?\u2502 94 ?\u2502
71 ?|)))) 95 ?|)))
96 (if display-fill-column-indicator-warning
97 (add-hook 'post-command-hook #'fill-indicator--set-warning nil t)))
98 (if display-fill-column-indicator-warning
99 (remove-hook 'post-command-hook #'fill-indicator--set-warning t))
72 (setq display-fill-column-indicator nil))) 100 (setq display-fill-column-indicator nil)))
73 101
74(defun display-fill-column-indicator--turn-on () 102(defun display-fill-column-indicator--turn-on ()