mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
Fix 'whitespace-mode' with 'missing-newline-at-eof'
* lisp/whitespace.el (whitespace-post-command-hook): Refontify when point moves if 'missing-newline-at-eof' is in 'whitespace-active-style'. (Bug#73332)
This commit is contained in:
parent
eced135120
commit
01ebe6de89
@ -2319,10 +2319,22 @@ Also refontify when necessary."
|
||||
(font-lock-flush whitespace-eob-marker (1+ (buffer-size)))))
|
||||
(setq-local whitespace-buffer-changed nil)
|
||||
(setq whitespace-point (point)) ; current point position
|
||||
(let ((refontify (and (eolp) ; It is at end of line ...
|
||||
;; ... with trailing SPACE or TAB
|
||||
(or (memq (preceding-char) '(?\s ?\t)))
|
||||
(line-beginning-position)))
|
||||
(let ((refontify (or (and (eolp) ; It is at end of line ...
|
||||
;; ... with trailing SPACE or TAB
|
||||
(or (memq (preceding-char) '(?\s ?\t)))
|
||||
(line-beginning-position))
|
||||
(and (memq 'missing-newline-at-eof
|
||||
;; If user requested to highlight
|
||||
;; EOB without a newline...
|
||||
whitespace-active-style)
|
||||
;; ...and the buffer is not empty...
|
||||
(not (= (point-min) (point-max)))
|
||||
(= (point-max) (without-restriction (point-max)))
|
||||
;; ...and no newline at EOB...
|
||||
(not (eq (char-before (point-max)) ?\n))
|
||||
;; ...then refontify the last character in
|
||||
;; the buffer
|
||||
(max (1- (point-max)) (point-min)))))
|
||||
(ostart (overlay-start whitespace-point--used)))
|
||||
(cond
|
||||
((not refontify)
|
||||
|
Loading…
Reference in New Issue
Block a user