Следующая функция действия для display-buffer (см. Функции действия для отображения буфера) создаёт или повторно использует боковое окно для
отображения указанного буфера.
Эта функция отображает buffer в боковом окне выбранного
кадра. Она возвращает окно, используемое для отображения buffer,
или nil, если такое окно не найдено или не может быть создано.
alist — это ассоциативный список символов и значений, как и для
display-buffer. Следующие символы в alist являются специальными
для этой функции:
sideОбозначает сторону кадра, на которой должно располагаться окно. Допустимые
значения: left (слева), top (сверху), right (справа) и bottom (снизу). Если
не указано, окно располагается в нижней части кадра.
slotОбозначает слот на указанной стороне, в котором следует расположить окно.
Значение ноль означает предпочтительное размещение окна в середине
указанной стороны. Отрицательное значение означает использование слота,
предшествующего (то есть выше или слева от) среднему слоту. Положительное значение
означает использование слота, следующего (то есть ниже или справа от)
среднего слота. Таким образом, все окна на конкретной стороне упорядочиваются по
их значению slot. Если не указано, окно располагается в середине
указанной стороны.
dedicatedФлаг выделенности (см. Выделенные окна) имеет несколько иное
значение для боковых окон. Когда боковое окно создаётся, этот флаг
устанавливается в значение side, чтобы предотвратить использование
этого окна display-buffer в других функциях действия. Его значение сохраняется при вызовах
quit-window, kill-buffer, previous-buffer и
next-buffer.
В частности, эти команды воздерживаются от показа в боковом окне
буферов, которые ранее не отображались в этом окне.
Они также воздерживаются от того, чтобы обычное, не боковое окно показывало
буфер, который уже был отображён в боковом окне. Заметное
исключение из последнего правила возникает, когда приложение после
отображения буфера сбрасывает локальные переменные этого буфера.
Чтобы переопределить эти правила и всегда удалять боковое окно с помощью
quit-window или kill-buffer, и в конечном счёте предотвратить использование
previous-buffer и next-buffer, установите это значение в
t или укажите значение через display-buffer-mark-dedicated.
Если вы указываете один и тот же слот на одной и той же стороне для двух или более разных буферов, последний отображённый буфер показывается в соответствующем окне. Таким образом, слоты можно использовать для совместного использования одного и того же бокового окна между буферами.
Эта функция устанавливает параметры window-side и window-slot
(см. Параметры окна) и делает их постоянными. Она
не устанавливает никакие другие параметры окна, если они не были
явно предоставлены через запись window-parameters в alist.
По умолчанию боковые окна нельзя разделить с помощью split-window
(см. Разделение окон). Кроме того, боковое окно не используется повторно и не
разделяется никаким действием отображения буфера (см. Функции действия для отображения буфера), если только оно явно не указано как цель этого
действия. Также обратите внимание, что delete-other-windows не может сделать боковое
окно единственным окном на своём кадре (см. Удаление окон).