15.4 Типы настройки

Когда вы определяете пользовательский параметр с помощью defcustom, вы должны указать его тип настройки. Это объект Lisp, который описывает (1) какие значения допустимы и (2) как отображать значение в буфере настройки для редактирования.

Вы указываете тип настройки в defcustom с ключевым словом :type. Аргумент :type вычисляется, но только один раз при выполнении defcustom, поэтому он не подходит для значения, которое должно меняться. Обычно мы используем заключенную в кавычки константу. Например:

(defcustom diff-command "diff"
  "Команда, используемая для запуска diff."
  :type '(string)
  :group 'diff)

В общем случае, тип настройки — это список, первый элемент которого — символ, один из имен типов настройки, определенных в следующих разделах. После этого символа следует ряд аргументов, в зависимости от символа. Между символом типа и его аргументами вы можете опционально указать пары ключ-значение (см. Ключевые слова типов).

Некоторые символы типов не используют аргументов; они называются простыми типами. Для простого типа, если вы не используете пары ключ-значение, вы можете опустить скобки вокруг символа типа. Например, просто string в качестве типа настройки эквивалентно (string).

Все типы настройки реализованы как виджеты; см. Введение в Библиотека виджетов Emacs для получения подробной информации.