Spec-Zone.ru › Elisp

Определение групп настройки

Каждый пакет Emacs Lisp должен иметь одну основную группу настройки, содержащую все параметры, начертания и другие группы пакета. Если в пакете мало параметров и начертаний, используйте одну группу и поместите в неё всё. Если параметров и начертаний больше примерно двадцати, структурируйте их в подгруппы и поместите подгруппы в основную группу настройки пакета. Допускается помещать некоторые параметры и начертания в основную группу пакета наряду с подгруппами.

Основная или единственная группа пакета должна входить в одну или несколько стандартных групп настройки. (Чтобы отобразить полный список, выполните M-x customize.) Выберите одну или несколько таких групп (но не слишком много) и добавьте свою группу в каждую из них с помощью ключевого слова :group.

Новые группы настройки объявляются с помощью defgroup.

Макрос: defgroup group members doc [keyword value]…

Объявляет group как группу настройки, содержащую members. Не заключайте символ group в кавычки. Аргумент doc задаёт строку документации для группы.

Аргумент members — это список, задающий исходный набор элементов настройки, входящих в группу. Однако чаще всего members — это nil, а элементы группы задаются с помощью ключевого слова :group при их определении.

Если вы хотите задать элементы группы через members, каждый элемент должен иметь вид (name widget). Здесь name — это символ, а widget — тип виджета для редактирования этого символа. Полезные виджеты: custom-variable для переменной, custom-face для начертания и custom-group для группы.

Добавляя в Emacs новую группу, используйте ключевое слово :version в defgroup; тогда его не потребуется использовать для отдельных элементов группы.

Помимо общих ключевых слов (см. Общие ключевые слова элементов), в defgroup можно также использовать это ключевое слово:

:prefix prefix

Если имя элемента группы начинается с prefix, а настраиваемая переменная custom-unlispify-remove-prefixes не равна nil, тег элемента не будет содержать prefix. У группы может быть любое количество префиксов.

Переменные, начертания и подгруппы группы хранятся в свойстве custom-group символа группы. См. Доступ к свойствам символов. Значение этого свойства — список пар, у которых car — это символ переменной, начертания или подгруппы, а cdr — один из соответствующих символов custom-variable, custom-face или custom-group.

Пользовательская переменная: custom-unlispify-remove-prefixes

Если значение этой переменной не равно nil, префиксы, указанные с помощью ключевого слова :prefix группы, исключаются из имён тегов при настройке группы пользователем.

Значение по умолчанию — nil, то есть функция удаления префиксов отключена. Это связано с тем, что удаление префиксов часто приводит к запутанным именам параметров и начертаний.

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/Group-Definitions.html

Spec-Zone.ru

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