diff options
| author | Elías Gabriel Pérez | 2025-02-22 12:19:07 -0600 |
|---|---|---|
| committer | Eli Zaretskii | 2025-03-09 11:10:56 +0200 |
| commit | 2322dea77cc2f3e1f1eb08a5b03f97afdd3a4cde (patch) | |
| tree | d3842388846e79be94ab32b54537eb73f2d128c7 | |
| parent | 31ebc00ece7d7234868a2a1e95f138473ea6646c (diff) | |
| download | emacs-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.el | 30 |
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. | ||
| 47 | Non-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 () |