(smerge-mode 1))))
(add-hook 'find-file-hook 'mdw-try-smerge t)
+(defcustom mdw-magit-new-window-modes
+ '(magit-diff-mode
+ magit-log-mode
+ magit-process-mode
+ magit-revision-mode
+ magit-stash-mode
+ magit-status-mode)
+ "Magit modes which should cause a new window to be used."
+ :type '(repeat symbol))
+
+(defun mdw-display-magit-buffer (buffer)
+ "Like `magit-display-buffer-traditional'.
+But uses `mdw-magit-new-window-modes' for its list of modes
+rather than baking the list into the function."
+ (display-buffer buffer
+ (if (and (not mdw-designated-window)
+ (derived-mode-p 'magit-mode)
+ (not (memq (with-current-buffer buffer major-mode)
+ mdw-magit-new-window-modes)))
+ '(display-buffer-same-window . nil)
+ nil)))
+(setq magit-display-buffer-function 'mdw-display-magit-buffer)
+
;;;--------------------------------------------------------------------------
;;; GUD, and especially GDB.