Next: Auto Filling, Previous: Margins, Up: Text [Contents][Index]
Adaptive Fillモードが有効なとき、Emacsは事前定義された値を使用するのではなく、フィルされる各パラグラフのテキストから自動的にフィルプレフィクスを決定します。FillingとAuto Fillingで説明されているように、このフィルプレフィクスはフィルの間にそのパラグラフの2行目以降の行頭に挿入されます。
この変数が非nil
ならAdaptive Fillモードは有効。デフォルトはt
。
この関数はAdaptive Fillモード実装の肝である。これはfromからto、通常はパラグラフの開始から終了にあるテキストにもとづいてフィルプレフィクスを選択する。これは以下で説明する変数にもとづき、そのパラグラフの最初の2行を調べることによりこれを行う。
この関数は通常は文字列としてフィルプレフィクスをリターンする。しかしこれを行う前に、この関数はそのプレフィクスで始まる行がパラグラフの開始とは見えないだろうか、最終チェックを行う(以降では特に明記しない)。これが発生した場合には、この関数はかわりにnil
をリターンすることにより異常を通知する。
以下はfill-context-prefix
が行う詳細:
adaptive-fill-function
内の関数、次にadaptive-fill-regexp
(以下参照)の正規表現を試みる。これらの非nil
の最初の結果、いずれもnil
なら空文字列が1行目の候補となる。
adaptive-fill-first-line-regexp
の説明を参照)。
nil
をリターンする。
Adaptive Fillモードは、(もしあれば)行の左マージン空白文字の後から開始されるテキストにたいしてこの正規表現をマッチする。マッチする文字列がその行のフィルプレフィクス候補。
デフォルト値は空白文字と特定の句読点文字が混在した文字列にマッチする。
この正規表現は1行だけのパラグラフに使用され、1つの可能なフィルプレフィクス候補の追加の妥当性評価として機能する。その候補は、この正規表現にマッチするか、comment-start-skip
にマッチしなければならない。マッチしなければ、fill-context-prefix
はその候補を“同じ幅”のスペース文字列に置き換える。
この変数のデフォルト値は "\\`[ \t]*\\'"
であり、これは空白文字列だけにマッチする。このデフォルトの効果は1行パラグラフで見つかったフィルプレフィクスが、常に純粋な空白文字となるよう強制することである。
この変数に関数をセットすることにより、自動的なフィルプレフィクス選択にたいして、より複雑な方法を指定することが可能になる。その関数は、(もしあれば)行の左マージンの後のポイントで呼び出され、かつポイントを保たなければならない。その関数は、“その行”のフィルプレフィクス、またはプレフィクスの判断に失敗したことを意味するnil
のいずれかをリターンすること。