From d143df5a4ecff352470f09019364310ec8e2202b Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 28 Dec 2014 02:48:05 +0200 Subject: [PATCH] Use diff faces for compare-windows * lisp/vc/compare-w.el: Require diff-mode for diff faces. (compare-windows-removed, compare-windows-added): New faces inheriting from diff faces. (compare-windows): Define obsolete face alias. (compare-windows-highlight): Replace face `compare-windows' with new faces `compare-windows-added' and `compare-windows-removed'. (compare-windows-get-recent-window): Signal an error when no other window is found. Fixes: debbugs:19451 --- etc/NEWS | 5 ++++- lisp/ChangeLog | 12 ++++++++++++ lisp/vc/compare-w.el | 25 ++++++++++++++++++------- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 14933aa8b0c..4d632783812 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -401,10 +401,13 @@ and comments. the color range from `vc-annotate-color-map' is applied to the background or to the foreground. -*** compare-windows now compares text with the most recently used window +*** `compare-windows' now compares text with the most recently used window instead of the next window. The new option `compare-windows-get-window-function' allows to customize this. +*** Two new faces `compare-windows-removed' and `compare-windows-added' +replace the obsolete face `compare-windows'. + ** Calculator: decimal display mode uses "," groups, so it's more fitting for use in money calculations; factorial works with non-integer inputs. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 57103be22a0..bfe2dfb6f2e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2014-12-28 Juri Linkov + + * vc/compare-w.el: Require diff-mode for diff faces. + (compare-windows-removed, compare-windows-added): New faces + inheriting from diff faces. + (compare-windows): Define obsolete face alias. + (compare-windows-highlight): Replace face `compare-windows' with + new faces `compare-windows-added' and `compare-windows-removed' + (bug#19451). + (compare-windows-get-recent-window): Signal an error when + no other window is found (bug#19170). + 2014-12-27 Dmitry Gutov * progmodes/elisp-mode.el (elisp--xref-identifier-file): diff --git a/lisp/vc/compare-w.el b/lisp/vc/compare-w.el index 3b8293cda24..454139e9025 100644 --- a/lisp/vc/compare-w.el +++ b/lisp/vc/compare-w.el @@ -30,6 +30,8 @@ ;;; Code: +(require 'diff-mode) ; For diff faces. + (defgroup compare-windows nil "Compare text between windows." :prefix "compare-" @@ -128,11 +130,19 @@ out all highlighting later with the command `compare-windows-dehighlight'." :group 'compare-windows :version "22.1") -(defface compare-windows - '((t :inherit lazy-highlight)) - "Face for highlighting of compare-windows difference regions." +(defface compare-windows-removed + '((t :inherit diff-removed)) + "Face for highlighting of compare-windows removed regions." :group 'compare-windows - :version "22.1") + :version "25.1") + +(defface compare-windows-added + '((t :inherit diff-added)) + "Face for highlighting of compare-windows added regions." + :group 'compare-windows + :version "25.1") + +(define-obsolete-face-alias 'compare-windows 'compare-windows-added "25.1") (defvar compare-windows-overlay1 nil) (defvar compare-windows-overlay2 nil) @@ -158,7 +168,8 @@ then try to get a window on an iconified frame, and finally consider all existing frames." (or (get-mru-window 'visible t t) (get-mru-window 0 t t) - (get-mru-window t t t))) + (get-mru-window t t t) + (error "No other window"))) (defun compare-windows-get-next-window () "Return the window next in the cyclic ordering of windows. @@ -393,13 +404,13 @@ on third call it again advances points to the next difference and so on." (if compare-windows-overlay1 (move-overlay compare-windows-overlay1 beg1 end1 b1) (setq compare-windows-overlay1 (make-overlay beg1 end1 b1)) - (overlay-put compare-windows-overlay1 'face 'compare-windows) + (overlay-put compare-windows-overlay1 'face 'compare-windows-added) (overlay-put compare-windows-overlay1 'priority 1000)) (overlay-put compare-windows-overlay1 'window w1) (if compare-windows-overlay2 (move-overlay compare-windows-overlay2 beg2 end2 b2) (setq compare-windows-overlay2 (make-overlay beg2 end2 b2)) - (overlay-put compare-windows-overlay2 'face 'compare-windows) + (overlay-put compare-windows-overlay2 'face 'compare-windows-removed) (overlay-put compare-windows-overlay2 'priority 1000)) (overlay-put compare-windows-overlay2 'window w2) (if (not (eq compare-windows-highlight 'persistent)) -- 2.39.2