Программы могут настраивать отображение своих предупреждений, связывая переменные, описанные в этом разделе.
Этот список определяет значение и порядок серьезности уровней предупреждений. Каждый элемент определяет один уровень серьезности, и они расположены в порядке убывания серьезности.
Каждый элемент имеет вид (level string [function]), где level — это уровень серьезности, который он определяет. string указывает текстовое описание этого уровня. string должен использовать ‘%s’ для указания, где разместить информацию о типе предупреждения, или он может опустить ‘%s’, чтобы не включать эту информацию.
Необязательная function, если она не равна nil, — это функция, которая вызывается без аргументов, чтобы привлечь внимание пользователя. Примером может служить ding (см. Звуковой сигнал).
Обычно вам не следует изменять значение этой переменной.
Если не равна nil, значение является функцией для генерации префисного текста для предупреждений. Программы могут привязать переменную к подходящей функции.
display-warning вызывает эту функцию с буфером предупреждений в качестве текущего буфера, и функция может вставить в него текст. Этот текст становится началом сообщения предупреждения.
Функция вызывается с двумя аргументами: уровнем серьезности и его записью в warning-levels. Она должна вернуть список, чтобы использовать его вместо этой записи (значение не обязательно должно быть фактическим членом warning-levels, но оно должно иметь ту же структуру). По конструированию этого значения функция может изменить серьезность предупреждения или указать разную обработку для данного уровня серьезности.
Если значение переменной равно nil, то перед отображением предупреждения не будет префисного текста, начиная с части string записи в warning-levels, соответствующей уровню предупреждения.
Программы могут привязать эту переменную к t, чтобы указать, что следующее предупреждение должно начать серию. Когда несколько предупреждений образуют серию, это означает, что курсор остается на первом предупреждении серии, а не продолжает перемещаться для каждого предупреждения, чтобы он появился в последнем. Серия заканчивается, когда локальная привязка этой переменной отменяется, и warning-series снова становится nil.
Значение также может быть символом с определением функции. Это эквивалентно t, за исключением того, что следующее предупреждение также вызовет функцию без аргументов с буфером предупреждений в качестве текущего буфера. Функция может, например, вставить текст, который послужит заголовком для серии предупреждений.
Как только серия началась, значение этой переменной является маркером, который указывает на позицию в буфере предупреждений в начале серии.
Нормальное значение переменной — nil, что означает обработку каждого предупреждения отдельно.
Когда эта переменная не равна nil, она указывает префикс заполнения для заполнения текста каждого предупреждения.
Столбец, в котором заполняются предупреждения.
Эта переменная указывает формат отображения типа предупреждения в тексте предупреждения. Результат форматирования типа таким образом включается в сообщение под контролем строки в записи warning-levels. Значение по умолчанию — " (%s)". Если вы привяжете ее к пустой строке "", то тип предупреждения вообще не появится.