Spec-Zone.ru › Elisp

Фронтальные битовые карты

Фронтальные битовые карты — это фактические битовые карты, представляющие логические индикаторы фрейма для усечённых или продолженных линий, границ буфера, стрелок наложения и т. д. Каждая битовая карта представлена символом. Эти символы ссылаются на переменную fringe-indicator-alist, которая сопоставляет индикаторы фрейма битовым картам (см. Индикаторы фрейма), и переменную fringe-cursor-alist, которая сопоставляет курсоры фрейма битовым картам (см. Курсоры фрейма).

Программы Lisp также могут напрямую отображать битовую карту в левом или правом фрейме, используя свойство display для одного из символов, появляющихся в строке (см. Другие параметры отображения). Такое описание отображения имеет вид

(fringe bitmap [face])

fringe — это либо символ left-fringe, либо right-fringe. bitmap — это символ, идентифицирующий отображаемую битовую карту. Необязательное face задаёт шрифт, цвета переднего и заднего плана которого используются для отображения битовой карты, используя атрибуты шрифта fringe для цветов, которые face не указал. Если face опущен, это означает использование атрибутов шрифта default для цветов, которые шрифт fringe не указал. Для предсказуемых результатов, не зависящих от атрибутов шрифтов default и fringe, рекомендуется никогда не опускать face, а всегда предоставлять конкретный шрифт. В частности, если вы хотите, чтобы битовая карта всегда отображалась в шрифте fringe, используйте fringe в качестве face.

Например, чтобы отобразить стрелку в левом фрейме, используя шрифт warning, можно сказать что-то вроде:

(overlay-put
 (make-overlay (point) (point))
 'before-string (propertize
                 "x" 'display
                 `(left-fringe right-arrow warning)))

Вот список стандартных фронтальных битовых карт, определённых в Emacs, и как они в настоящее время используются в Emacs (через fringe-indicator-alist и fringe-cursor-alist):

left-arrow, right-arrow

Используется для указания усечённых строк.

left-curly-arrow, right-curly-arrow

Используется для указания продолженных строк.

right-triangle, left-triangle

Первый используется стрелками наложения. Второй не используется.

up-arrow, down-arrow
bottom-left-angle, bottom-right-angle
top-left-angle, top-right-angle
left-bracket, right-bracket
empty-line

Используется для указания границ буфера.

filled-rectangle, hollow-rectangle
filled-square, hollow-square
vertical-bar, horizontal-bar

Используются для различных типов курсоров фрейма.

exclamation-mark, question-mark

Не используются основными функциями Emacs.

В следующей секции описывается, как определить свои собственные фронтальные битовые карты.

Функция: fringe-bitmaps-at-pos &optional pos window

Эта функция возвращает фронтальные битовые карты строки отображения, содержащей позицию pos в окне window. Возвращаемое значение имеет вид (left right ov), где left — символ битовой карты в левом фрейме (или nil, если битовой карты нет), right — аналогично для правого фрейма, а ov — не-nil, если в левом фрейме есть стрелка наложения.

Значение равно nil, если pos не видна в window. Если window — nil, это означает выбранное окно. Если pos — nil, это означает значение точки в window.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Fringe-Bitmaps.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API