comparison lisp/smerge-mode.el @ 96854:b9de9e7dceed

Make auto-refining a minor mode, and diff- and smerge- use it. * diff-mode.el (diff-auto-refine): Delete defcustom. (diff-auto-refine-mode): New func/var via define-minor-mode. Update var ref to use diff-auto-refine-mode. * smerge-mode.el (diff-mode): Require when compiling. (smerge-auto-refine): Delete defcustom. Update smerge-auto-refine ref to use diff-auto-refine-mode.
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Mon, 21 Jul 2008 14:20:24 +0000
parents 4ea0e968c7af
children 35155d8e5360
comparison
equal deleted inserted replaced
96853:89f46e95065e 96854:b9de9e7dceed
42 42
43 ;; - if requested, ask the user whether he wants to call ediff right away 43 ;; - if requested, ask the user whether he wants to call ediff right away
44 44
45 ;;; Code: 45 ;;; Code:
46 46
47 (eval-when-compile (require 'cl)) 47 (eval-when-compile (require 'cl) (require 'diff-mode))
48 48
49 49
50 ;;; The real definition comes later. 50 ;;; The real definition comes later.
51 (defvar smerge-mode) 51 (defvar smerge-mode)
52 52
72 :group 'smerge 72 :group 'smerge
73 :type '(repeat string)) 73 :type '(repeat string))
74 74
75 (defcustom smerge-auto-leave t 75 (defcustom smerge-auto-leave t
76 "Non-nil means to leave `smerge-mode' when the last conflict is resolved." 76 "Non-nil means to leave `smerge-mode' when the last conflict is resolved."
77 :group 'smerge
78 :type 'boolean)
79
80 (defcustom smerge-auto-refine t
81 "Automatically highlight changes in detail as the user visits conflicts."
82 :group 'smerge 77 :group 'smerge
83 :type 'boolean) 78 :type 'boolean)
84 79
85 (defface smerge-mine 80 (defface smerge-mine
86 '((((min-colors 88) (background light)) 81 '((((min-colors 88) (background light))
257 ;;;; Actual code 252 ;;;; Actual code
258 ;;;; 253 ;;;;
259 254
260 ;; Define smerge-next and smerge-prev 255 ;; Define smerge-next and smerge-prev
261 (easy-mmode-define-navigation smerge smerge-begin-re "conflict" nil nil 256 (easy-mmode-define-navigation smerge smerge-begin-re "conflict" nil nil
262 (if smerge-auto-refine 257 (if diff-auto-refine-mode
263 (condition-case nil (smerge-refine) (error nil)))) 258 (condition-case nil (smerge-refine) (error nil))))
264 259
265 (defconst smerge-match-names ["conflict" "mine" "base" "other"]) 260 (defconst smerge-match-names ["conflict" "mine" "base" "other"])
266 261
267 (defun smerge-ensure-match (n) 262 (defun smerge-ensure-match (n)