Variable: ediff-window-setup-function

ediff-window-setup-function is a customizable variable defined in ediff-wind.el.gz.

Value

ediff-setup-windows-default

Documentation

Function called to set up windows.

Ediff provides a choice of three functions:
 (1) ediff-setup-windows-multiframe, which sets the control panel
     in a separate frame.
 (2) ediff-setup-windows-plain, which does everything in one frame
 (3) ediff-setup-windows-default (the default), which does (1)
     on a graphical display and (2) on a text terminal.

The command M-x ediff-toggle-multiframe (ediff-toggle-multiframe) can be used to toggle between the multiframe display and the single frame display. If the multiframe function detects that one of the buffers A/B is seen in some other frame, it will try to keep that buffer in that frame.

If you don't like any of the two provided functions, write your own one. The basic guidelines:
    1. It should leave the control buffer current and, if showing,
       the control window selected if showing these windows.
    2. It should set ediff-window-A, ediff-window-B, ediff-window-C,
       and ediff-control-window to contain window objects that display
       the corresponding buffers or nil if the corresponding window
       is not shown.
    3. It should accept the following arguments:
       buffer-A, buffer-B, buffer-C, control-buffer
       Buffer C may not be used in jobs that compare only two buffers.
If you plan to do something fancy, take a close look at how the two provided functions are written.

Set ediff-select-control-window-on-setup to nil to prevent the window ediff-control-window being selected by ediff after this function returns.

This variable was added, or its default value changed, in Emacs 24.3.

Probably introduced at or before Emacs version 31.1.

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-wind.el.gz
(defcustom ediff-window-setup-function #'ediff-setup-windows-default
  "Function called to set up windows.
Ediff provides a choice of three functions:
 (1) `ediff-setup-windows-multiframe', which sets the control panel
     in a separate frame.
 (2) `ediff-setup-windows-plain', which does everything in one frame
 (3) `ediff-setup-windows-default' (the default), which does (1)
     on a graphical display and (2) on a text terminal.

The command \\[ediff-toggle-multiframe] can be used to toggle
between the multiframe display and the single frame display.  If
the multiframe function detects that one of the buffers A/B is
seen in some other frame, it will try to keep that buffer in that
frame.

If you don't like any of the two provided functions, write your own one.
The basic guidelines:
    1. It should leave the control buffer current and, if showing,
       the control window selected if showing these windows.
    2. It should set `ediff-window-A', `ediff-window-B', `ediff-window-C',
       and `ediff-control-window' to contain window objects that display
       the corresponding buffers or `nil' if the corresponding window
       is not shown.
    3. It should accept the following arguments:
       buffer-A, buffer-B, buffer-C, control-buffer
       Buffer C may not be used in jobs that compare only two buffers.
If you plan to do something fancy, take a close look at how the two
provided functions are written.

Set `ediff-select-control-window-on-setup' to nil to prevent the window
`ediff-control-window' being selected by ediff after this
function returns. "
  :type '(choice (const :tag "Choose Automatically" ediff-setup-windows-default)
		 (const :tag "Multi Frame" ediff-setup-windows-multiframe)
		 (const :tag "Single Frame" ediff-setup-windows-plain)
		 (function :tag "Other function"))
  :version "24.3")