branch: elpa/magit
commit 0254d201537f93eedae79cc0fdd8bd9c74e1c2f0
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
magit-section-paint: Cosmetics
The old way was nicer but starting with the next commit
we use different faces for different parts of each line.
---
lisp/magit-diff.el | 67 ++++++++++++++++++++++++++++++------------------------
1 file changed, 37 insertions(+), 30 deletions(-)
diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 7a1f2340ed..4d07e1f360 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -3418,39 +3418,46 @@ actually a `diff' but a `diffstat' section."
(forward-line)
(while (< (point) end)
(let ((bol (point))
- (eol (line-end-position)))
+ (eol (line-end-position))
+ (line-face nil))
(when (and magit-diff-hide-trailing-cr-characters
(char-equal ?\r (char-before eol)))
(put-text-property (1- eol) eol 'invisible t))
- (put-text-property
- bol (1+ eol) 'font-lock-face
- (cond
- ((looking-at "^\\+\\+?\\([<=|>]\\)\\{7\\}")
- (setq stage (pcase (list (match-str 1) highlight)
- ('("<" nil) 'magit-diff-our)
- ('("<" t) 'magit-diff-our-highlight)
- ('("|" nil) 'magit-diff-base)
- ('("|" t) 'magit-diff-base-highlight)
- ('("=" nil) 'magit-diff-their)
- ('("=" t) 'magit-diff-their-highlight)
- ('(">" nil) nil)))
- (if highlight
- 'magit-diff-conflict-heading-highlight
- 'magit-diff-conflict-heading))
- ((looking-at (if merging "^\\(\\+\\| \\+\\)" "^\\+"))
- (magit-diff-paint-tab merging tab-width)
- (magit-diff-paint-whitespace merging 'added diff-type)
- (or stage
- (if highlight 'magit-diff-added-highlight 'magit-diff-added)))
- ((looking-at (if merging "^\\(-\\| -\\)" "^-"))
- (magit-diff-paint-tab merging tab-width)
- (magit-diff-paint-whitespace merging 'removed diff-type)
- (if highlight 'magit-diff-removed-highlight 'magit-diff-removed))
- (t
- (magit-diff-paint-tab merging tab-width)
- (magit-diff-paint-whitespace merging 'context diff-type)
- (if highlight 'magit-diff-context-highlight 'magit-diff-context))))
- (forward-line))))
+ (cond
+ ((looking-at "^\\+\\+?\\([<=|>]\\)\\{7\\}")
+ (setq line-face
+ (if highlight
+ 'magit-diff-conflict-heading-highlight
+ 'magit-diff-conflict-heading))
+ (setq stage
+ (pcase (list (match-str 1) highlight)
+ ('("<" nil) 'magit-diff-our)
+ ('("<" t) 'magit-diff-our-highlight)
+ ('("|" nil) 'magit-diff-base)
+ ('("|" t) 'magit-diff-base-highlight)
+ ('("=" nil) 'magit-diff-their)
+ ('("=" t) 'magit-diff-their-highlight)
+ ('(">" nil) nil))))
+ ((looking-at (if merging "^\\(\\+\\| \\+\\)" "^\\+"))
+ (magit-diff-paint-tab merging tab-width)
+ (magit-diff-paint-whitespace merging 'added diff-type)
+ (setq line-face (cond (stage)
+ (highlight 'magit-diff-added-highlight)
+ ('magit-diff-added))))
+ ((looking-at (if merging "^\\(-\\| -\\)" "^-"))
+ (magit-diff-paint-tab merging tab-width)
+ (magit-diff-paint-whitespace merging 'removed diff-type)
+ (setq line-face (if highlight
+ 'magit-diff-removed-highlight
+ 'magit-diff-removed)))
+ (t
+ (magit-diff-paint-tab merging tab-width)
+ (magit-diff-paint-whitespace merging 'context diff-type)
+ (setq line-face (if highlight
+ 'magit-diff-context-highlight
+ 'magit-diff-context))))
+ (put-text-property bol (1+ eol) 'font-lock-face line-face))
+ (forward-line)))
(when (eq magit-diff-refine-hunk 'all)
(magit-diff-update-hunk-refinement section))
(oset section painted (if highlight 'highlight 'plain)))