More font-lock improvements for diff-mode
* lisp/vc/diff-mode.el (diff-font-lock-keywords): Use diff-header face for git index lines (like already used for bzr index lines). Use diff-file-header face for binary file headers. (diff-find-source-location): Use expand-file-name for vc-find-revision. (diff--font-lock-prettify): Use diff-indicator-* faces for left-fringe indicators. (diff-syntax-fontify-props): Optimize to not use text-property-not-all for font-lock-ensure. * lisp/replace.el (occur-engine-line): Simplify to use font-lock-ensure without text-property-not-all.
This commit is contained in:
parent
8cbbf4ba25
commit
fb16313025
2 changed files with 15 additions and 15 deletions
|
@ -1907,10 +1907,8 @@ See also `multi-occur'."
|
|||
global-matches)))
|
||||
|
||||
(defun occur-engine-line (beg end &optional keep-props)
|
||||
(if (and keep-props (if (boundp 'jit-lock-mode) jit-lock-mode)
|
||||
(text-property-not-all beg end 'fontified t))
|
||||
(if (fboundp 'jit-lock-fontify-now)
|
||||
(jit-lock-fontify-now beg end)))
|
||||
(if (and keep-props font-lock-mode)
|
||||
(font-lock-ensure beg end))
|
||||
(if (and keep-props (not (eq occur-excluded-properties t)))
|
||||
(let ((str (buffer-substring beg end)))
|
||||
(remove-list-of-text-properties
|
||||
|
|
|
@ -255,7 +255,7 @@ in wrong fontification. This is the fastest option, but less reliable."
|
|||
"Keymap for `diff-minor-mode'. See also `diff-mode-shared-map'.")
|
||||
|
||||
(define-minor-mode diff-auto-refine-mode
|
||||
"Toggle automatic diff hunk highlighting (Diff Auto Refine mode).
|
||||
"Toggle automatic diff hunk finer highlighting (Diff Auto Refine mode).
|
||||
|
||||
Diff Auto Refine mode is a buffer-local minor mode used with
|
||||
`diff-mode'. When enabled, Emacs automatically highlights
|
||||
|
@ -435,7 +435,9 @@ and the face `diff-added' for added lines.")
|
|||
'diff-removed))))))
|
||||
("^\\(?:Index\\|revno\\): \\(.+\\).*\n"
|
||||
(0 'diff-header) (1 'diff-index prepend))
|
||||
("^\\(?:index .*\\.\\.\\|diff \\).*\n" . 'diff-header)
|
||||
("^Only in .*\n" . 'diff-nonexistent)
|
||||
("^Binary files .* differ\n" . 'diff-file-header)
|
||||
("^\\(#\\)\\(.*\\)"
|
||||
(1 font-lock-comment-delimiter-face)
|
||||
(2 font-lock-comment-face))
|
||||
|
@ -1785,7 +1787,7 @@ NOPROMPT, if non-nil, means not to prompt the user."
|
|||
(vc-working-revision file)))))
|
||||
(buf (if revision
|
||||
(let ((vc-find-revision-no-save t))
|
||||
(vc-find-revision file revision diff-vc-backend))
|
||||
(vc-find-revision (expand-file-name file) revision diff-vc-backend))
|
||||
(find-file-noselect file))))
|
||||
;; Update the user preference if he so wished.
|
||||
(when (> (prefix-numeric-value other-file) 8)
|
||||
|
@ -2321,9 +2323,9 @@ fixed, visit it in a buffer."
|
|||
;; FIXME: Include the first space for context-style hunks!
|
||||
(while (re-search-forward "^[-+! ]" limit t)
|
||||
(let ((spec (alist-get (char-before)
|
||||
'((?+ . (left-fringe diff-fringe-add diff-added))
|
||||
(?- . (left-fringe diff-fringe-del diff-removed))
|
||||
(?! . (left-fringe diff-fringe-rep diff-changed))
|
||||
'((?+ . (left-fringe diff-fringe-add diff-indicator-added))
|
||||
(?- . (left-fringe diff-fringe-del diff-indicator-removed))
|
||||
(?! . (left-fringe diff-fringe-rep diff-indicator-changed))
|
||||
(?\s . (left-fringe diff-fringe-nul))))))
|
||||
(put-text-property (match-beginning 0) (match-end 0) 'display spec))))
|
||||
;; Mimicks the output of Magit's diff.
|
||||
|
@ -2523,14 +2525,14 @@ hunk text is not found in the source file."
|
|||
|
||||
(when (and beg end)
|
||||
(goto-char beg)
|
||||
(when (text-property-not-all beg end 'fontified t)
|
||||
(if file
|
||||
;; In a temporary or cached buffer
|
||||
(if file
|
||||
;; In a temporary or cached buffer
|
||||
(when (text-property-not-all beg end 'fontified t)
|
||||
(save-excursion
|
||||
(font-lock-fontify-region beg end)
|
||||
(put-text-property beg end 'fontified t))
|
||||
;; In an existing buffer
|
||||
(font-lock-ensure beg end)))
|
||||
(put-text-property beg end 'fontified t)))
|
||||
;; In an existing buffer
|
||||
(font-lock-ensure beg end))
|
||||
|
||||
(while (< (point) end)
|
||||
(let* ((bol (point))
|
||||
|
|
Loading…
Add table
Reference in a new issue