Фронтальные битовые карты
Фронтальные битовые карты — это фактические битовые карты, представляющие логические индикаторы фрейма для усечённых или продолженных линий, границ буфера, стрелок наложения и т. д. Каждая битовая карта представлена символом. Эти символы ссылаются на переменную 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