Spec-Zone.ru › Elisp

Свойство display

Свойство текста display (или свойство наложения) используется для вставки изображений в текст и управления другими аспектами отображения текста. Спецификации отображения в одном и том же значении свойства display обычно применяются параллельно к охватываемому ими тексту.

Если несколько источников (наложения и/или свойство текста) задают значения свойства display, вступает в силу только одно из них — согласно правилам get-char-property. См. Изучение свойств текста.

Значением свойства display должна быть спецификация отображения либо список или вектор, содержащий несколько спецификаций отображения.

Функция: get-display-property position spec &optional object properties

Эта вспомогательная функция позволяет получить значение конкретной спецификации отображения независимо от того, является ли свойство display вектором, списком или отдельной спецификацией отображения. Она работает подобно get-text-property (см. Изучение свойств текста), но только со свойством display. Для спецификаций с одним значением (например, height) возвращается само значение; для свойств со списком значений (например, slice) возвращается список значений.

position — позиция в буфере или строке, которую нужно проверить, а spec — CAR спецификации отображения, которую нужно вернуть. Необязательный аргумент object должен быть строкой или буфером; по умолчанию используется текущий буфер. Если необязательный аргумент properties не равен nil, он должен быть свойством display; в этом случае аргументы position и object игнорируются. (Это может быть полезно, например, если вы уже получили свойство display с помощью get-char-property (см. Изучение свойств текста).

Функция: add-display-text-property start end spec value &optional object

Добавляет спецификацию отображения (prop value) к тексту от start до end.

Если какой-либо текст в области имеет свойство display, не равное nil, эти свойства сохраняются. Например:

(add-display-text-property 4 8 'height 2.0)
(add-display-text-property 2 12 'raise 0.5)

После этого область от 2 до 4 будет иметь спецификацию отображения raise, область от 4 до 8 — обе спецификации отображения, raise и height, а область от 8 до 12 — только спецификацию отображения raise.

object — строка или буфер, к которому нужно добавить спецификацию. Если аргумент опущен, по умолчанию используется текущий буфер.

Функция: remove-display-text-property start end spec &optional object

Удаляет спецификацию отображения spec из текста от start до end. spec — это CAR спецификации отображения, которую нужно удалить, например height или '(margin nil).

Если какой-либо текст в области имеет другие свойства display, они сохраняются. Например:

(add-display-text-property 1 8 'raise 0.5)
(add-display-text-property 4 8 'height 2.0)
(remove-display-text-property 2 6 'raise)

После этого текст будет иметь следующие свойства display:

  • Область от 1 до 2 — только raise
  • Область от 2 до 4 — без свойств
  • Область от 4 до 6 — только height
  • Область от 6 до 8 — оба свойства, raise и height

object — строка или буфер, из которого нужно удалить спецификацию. Если аргумент опущен, по умолчанию используется текущий буфер.

Некоторые спецификации отображения позволяют включать формы Lisp, которые вычисляются во время отображения. В определённых ситуациях это может быть небезопасно, например, если спецификация отображения была создана внешней программой или агентом. Если заключить спецификацию отображения в список, начинающийся со специального символа disable-eval, как в (disable-eval spec), вычисление любого кода Lisp в spec будет отключено, при этом все остальные возможности свойства отображения сохранятся.

В оставшейся части этого раздела описываются различные виды спецификаций отображения и их значение.

  • Спецификации отображения, заменяющие текст
  • Заданные пробелы
  • Задание пробелов в пикселях
  • Другие спецификации отображения
  • Отображение на полях

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/Display-Property.html

Spec-Zone.ru

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