42.5.2 警告相关变量

程序可以通过绑定本节所述变量,来自定义其警告的显示方式。

Variable: warning-levels

该列表定义了警告严重级别的含义与优先级顺序。每个元素定义一个严重级别,并按严重程度从高到低排列。

每个元素的格式为 (level string [function]),其中 level 为所定义的严重级别。string 指定该级别的文本描述。string 应使用 ‘%s’ 表示警告类型信息的插入位置,也可省略 ‘%s’ 以不包含该类信息。

可选参数 function 若为非 nil,则是一个无参函数,用于吸引用户注意。典型例子为 ding(see 蜂鸣提示)。

通常情况下不应修改该变量的值。

Variable: warning-prefix-function

若为非 nil,其值为一个用于生成警告前缀文本的函数。程序可将该变量绑定至合适的函数。display-warning 会以警告缓冲区为当前缓冲区调用该函数,函数可向其中插入文本,该文本将作为警告信息的开头。

该函数接收两个参数:严重级别及其在 warning-levels 中的条目。函数应返回一个列表 替代 该条目(返回值不必是 warning-levels 中的实际成员,但结构必须一致)。通过构造该返回值,函数可修改警告的严重级别,或为指定严重级别指定不同的处理方式。

若该变量值为 nil,则警告显示前无前缀文本,直接使用 warning-levels 中与警告级别对应的条目中的 string 部分。

Variable: warning-series

程序可将该变量绑定为 t,表示下一个警告应开启一个警告系列。当多个警告构成系列时,点会停留在系列的第一个警告处,而非随每个警告移动至最后一个。当该变量的局部绑定被解除、warning-series 恢复为 nil 时,系列结束。

该变量值也可以是一个有函数定义的符号。其效果等同于 t,区别在于下一个警告还会以警告缓冲区为当前缓冲区无参调用该函数。例如,该函数可插入文本作为警告系列的标题。

系列一旦开始,该变量的值会变为一个标记,指向警告缓冲区中系列起始的位置。

该变量的默认值为 nil,表示单独处理每个警告。

Variable: warning-fill-prefix

若该变量为非 nil,则指定用于填充每条警告文本的填充前缀。

Variable: warning-fill-column

填充警告文本时所依据的列数。

Variable: warning-type-format

该变量指定在警告文本中显示警告类型的格式。按照该方式格式化类型后的结果,会在 warning-levels 条目中字符串的控制下插入信息。默认值为 " (%s)"。若将其绑定为空字符串 "",则警告类型将完全不显示。