Spec-Zone.ru › Elisp

Отображение face

Когда Emacs отображает фрагмент текста, внешний вид текста может определяться начертаниями (faces), полученными из различных источников. Если эти различные источники вместе задают более одного face для конкретного символа, Emacs объединяет атрибуты этих разных face. Ниже приведен порядок объединения face в Emacs от наивысшего приоритета к наинизшему:

  • Если текст состоит из специального глифа, этот глиф может определять конкретный face. См. Glyphs.
  • Если текст находится внутри активного региона, Emacs выделяет его с помощью face region. См. Standard Faces в The GNU Emacs Manual.
  • Если текст находится внутри оверлея со свойством face, отличным от nil, Emacs применяет face, указанный(-ые) этим свойством. Если у оверлея есть свойство mouse-face и курсор мыши находится достаточно близко к оверлею, Emacs вместо этого применяет face или атрибуты face, указанные свойством mouse-face. См. Overlay Properties.

    Когда один и тот же символ перекрывается несколькими оверлеями, оверлей с более высоким приоритетом переопределяет оверлеи с более низким приоритетом. См. Overlays.

  • Если текст содержит свойство face или mouse-face, Emacs применяет указанные face и атрибуты face. См. Properties with Special Meanings. (Именно так применяются face режима Font Lock. См. Font Lock Mode.)
  • Если текст находится в строке режима (mode line) выбранного окна, Emacs применяет face mode-line. Для строки режима невыбранного окна Emacs применяет face mode-line-inactive. Для строки заголовка (header line) Emacs применяет face header-line. Для строки вкладок (tab line) Emacs применяет face tab-line.
  • Если текст получен из строки оверлея через свойства before-string или after-string (см. Overlay Properties) либо из строки отображения (см. Other Display Specifications), и эта строка не содержит свойства face или mouse-face, либо эти свойства оставляют некоторые атрибуты face неопределенными, но текст буфера, на который влияет свойство оверлея/отображения, задает face или эти атрибуты, Emacs применяет атрибуты face «базового» текста буфера. Однако это не относится к строкам, отображаемым на полях (display margins), которые вместо этого используют face margin в качестве основы (см. Displaying in the Margins).
  • Если текст должен отображаться на полях (display margins), Emacs использует face margin в качестве базового, поэтому любой атрибут, не заданный собственным face строки, берется из face margin.
  • Если какой-либо атрибут не был задан на предыдущих шагах, Emacs применяет атрибут face default.

На каждом этапе, если face имеет допустимый атрибут :inherit, Emacs обрабатывает любой атрибут со значением unspecified как имеющий соответствующее значение, полученное из родительского(-их) face. См. Face Attributes. Обратите внимание, что родительский(-ие) face также могут оставлять атрибут неопределенным; в этом случае атрибут остается неопределенным и на следующем уровне слияния face.

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

Spec-Zone.ru

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