Объявления настройки, которые мы опишем в следующих нескольких
разделах — defcustom, defgroup и т. д. — все принимают
аргументы ключевых слов (см. Переменные, которые никогда не меняются)
для указания различной информации. В этом разделе описываются ключевые слова,
применимые ко всем типам объявлений настройки.
Все эти ключевые слова, кроме :tag, могут использоваться более
один раз в одном элементе. Каждое использование ключевого слова имеет
независимый эффект. Ключевое слово :tag является исключением,
поскольку любой элемент может отображать только одно имя.
:tag label ¶Используйте label, строку, вместо имени элемента, чтобы пометить элемент в меню настройки и буферах. Не используйте тег, который существенно отличается от реального имени элемента; это вызовет путаницу.
:group groupПоместите этот элемент настройки в группу group. Если это ключевое слово отсутствует в элементе настройки, он будет помещен в ту же группу, которая была последней определена (в текущем файле).
Когда вы используете :group в defgroup,
это делает новую группу подгруппой group.
Если вы используете это ключевое слово более одного раза, вы можете поместить один элемент в более одной группы. Отображение любой из этих групп покажет этот элемент. Пожалуйста, не злоупотребляйте этим, так как результат будет неприятным.
:link link-data ¶Включите внешнюю ссылку после строки документации для этого элемента. Это предложение, содержащее кнопку, которая ссылается на другую документацию.
Существует несколько альтернатив, которые вы можете использовать для link-data:
(custom-manual info-node)Ссылка на узел Info; info-node — это строка, которая
указывает имя узла, как в "(emacs)Top". Ссылка
появляется как ‘[Manual]’ в буфере
настройки и вызывает встроенный читатель Info по info-node.
(info-link info-node)Подобно custom-manual, за исключением того, что ссылка
появляется в буфере настройки с именем узла Info.
(url-link url)Ссылка на веб-страницу; url — это строка, которая
указывает URL. Ссылка появляется в буфере
настройки как url и вызывает браузер WWW, указанный
browse-url-browser-function.
(emacs-commentary-link library)Ссылка на раздел комментариев библиотеки; library — это строка, которая указывает имя библиотеки. См. Конвенциональные заголовки для библиотек Emacs.
(emacs-library-link library)Ссылка на файл библиотеки Emacs Lisp; library — это строка, которая указывает имя библиотеки.
(file-link file)Ссылка на файл; file — это строка, которая
указывает имя файла, который будет посещен с помощью find-file,
когда пользователь вызывает эту ссылку.
(function-link function)Ссылка на документацию функции; function — это
строка, которая указывает имя функции, которую нужно описать с помощью
describe-function, когда пользователь вызывает эту ссылку.
(variable-link variable)Ссылка на документацию переменной; variable — это
строка, которая указывает имя переменной, которую нужно описать с помощью
describe-variable, когда пользователь вызывает эту ссылку.
(face-link face)Ссылка на документацию фейса; face — это строка,
которая указывает имя фейса, который нужно описать с помощью describe-face,
когда пользователь вызывает эту ссылку.
(custom-group-link group)Ссылка на другую группу настройки. Вызов создает новый буфер настройки для group.
Вы можете указать текст, который будет использоваться в буфере настройки,
добавив :tag name после первого
элемента link-data; например, (info-link :tag "foo" "(emacs)Top")
создает ссылку на руководство Emacs, которая появляется в буфере как ‘foo’.
Вы можете использовать это ключевое слово более одного раза, чтобы добавить несколько ссылок.
:load file ¶Загрузить файл file (строка) перед отображением
этого элемента настройки (см. Загрузка).
Загрузка выполняется с помощью load и только если
файл еще не загружен.
:require feature ¶Выполнить (require 'feature) при
сохранении настроек, если значение этого элемента установлено. feature
должен быть символом.
Наиболее частая причина использования :require возникает,
когда переменная включает функцию, например, режим, и простое
установка переменной не даст никакого эффекта, если не загружен код,
реализующий этот режим.
:version version ¶Это ключевое слово указывает, что элемент был впервые представлен в версии Emacs version, или что его значение по умолчанию было изменено в этой версии. Значение version должно быть строкой.
:package-version '(package . version) ¶Это ключевое слово указывает, что элемент был впервые представлен в
версии version пакета package, или что
его значение или значение по умолчанию было изменено в этой версии. Это
ключевое слово имеет приоритет над :version.
package должен быть официальным именем пакета, как символом
(например, MH-E). version должен быть
строкой. Если пакет package выпускается как часть Emacs,
package и version должны появиться в значении
customize-package-emacs-version-alist.
Пакеты, распространяемые как часть Emacs, которые используют ключевое слово
:package-version, также должны обновлять переменную
customize-package-emacs-version-alist.
Этот список предоставляет сопоставление версий Emacs, связанных с
версиями пакета, перечисленными в ключевом слове :package-version.
Его элементы:
(package (pversion . eversion)…)
Для каждого package, который является символом, есть один или более элементов, содержащих версию пакета pversion с связанной версией Emacs eversion. Эти версии — строки. Например, пакет MH-E обновляет этот список следующим образом:
(add-to-list 'customize-package-emacs-version-alist
'(MH-E ("6.0" . "22.1") ("6.1" . "22.1") ("7.0" . "22.1")
("7.1" . "22.1") ("7.2" . "22.1") ("7.3" . "22.1")
("7.4" . "22.1") ("8.0" . "22.1")))
Значение package должно быть уникальным и должно соответствовать
значению package, появляющемуся в ключевом слове
:package-version. Поскольку пользователь может увидеть это
значение в сообщении об ошибке, хорошим выбором является официальное имя
пакета, такое как MH-E или Gnus.