プログラムは、本節で説明する変数をバインドすることで、警告の表示方法をカスタマイズできます。
このリストでは、警告の深刻度レベルの意味と深刻度の順序を定義しています。各要素は1つの深刻度レベルを定義しており、深刻度の降順で並べられています。
各要素は (level string [function])
という形式をとり、ここで level はその要素が定義する深刻度レベルです。string はこのレベルのテキストによる説明を指定します。string では、‘%s’
を用いて警告タイプ情報の記載場所を指定するか、あるいは ‘%s’
を省略してその情報を含まないようにします。
オプションの function は、nil
でない場合、ユーザーの注意を引くために引数なしで呼び出す関数となります。代表的な例として ding
が挙げられます(Beeping を参照)。
通常、この変数の値は変更すべきではありません。
nil
以外の場合、その値は警告用のプレフィックステキストを生成する関数となります。プログラムはこの変数に適切な関数をバインドできます。display-warning
は、警告バッファを現在のバッファとしてこの関数を呼び出し、関数はそこにテキストを挿入できます。そのテキストが警告メッセージの冒頭となります。
この関数は、深刻度レベルとwarning-levelsにおけるそのエントリという2つの引数で呼び出されます。この関数は、当該エントリの代わりに使用するリストを返す必要があります(値は必ずしもwarning-levelsの実際のメンバである必要はありませんが、同じ構造である必要があります)。この値を構築することで、関数は警告の深刻度を変更したり、特定の深刻度レベルに対して異なる処理を指定したりすることができます。
変数の値が nil
の場合、警告が表示される前にプレフィックステキストは存在せず、警告レベルに対応する warning-levels 内のエントリの string
部分から始まります。
プログラムはこの変数を t
にバインドすることで、次の警告を一連の警告の開始とすることができます。複数の警告が一連の警告を構成する場合、警告ごとにポイントを移動させて最後の警告に表示させるのではなく、その系列の最初の警告にポイントを留めておくことを意味します。この系列は、この変数のローカルバインドが解除され、warning-series が再び nil
になったときに終了します。
値には、関数定義を持つシンボルを指定することもできます。これは t
と同等ですが、次の警告時に引数なしで関数が呼び出され、warnings
が現在のバッファをバッファとして使用する点が異なります。例えば、この関数を用いて、一連の警告のヘッダーとなるテキストを挿入することができます。
シリーズが開始されると、この変数の値は、シリーズ開始時点における警告バッファ内のバッファ位置を示すマーカーとなります。
変数の通常値は nil であり、これは各警告を個別に処理することを意味します。
この変数が nil
以外の場合、各警告のテキストを埋める際に使用する塗りつぶしプレフィックスを指定します。
警告を記入する列。
この変数は、警告テキスト内で警告タイプを表示する際の形式を指定します。このようにタイプをフォーマットした結果は、warning-levels エントリ内の文字列の制御下でメッセージに組み込まれます。デフォルト値は " (%s)" です。空文字列 "" にバインドした場合、警告タイプは一切表示されません。