Outlineマイナーモードとは、バッファーの一部を隠してヘッダー行だけを見えるように残すバッファーローカルなマイナーモードです。このマイナーモードは、他のメジャーモードと組み合わせて使用することができます(Outline Minor Mode in the Emacs Manualを参照)。
どの行をヘッダーとするかは変数outline-regexp
、またはoutline-search-function
で定義する2つの方法があります。
この変数には正規表現をセットする。行頭がこのregexpにマッチするすべての行がヘッダー行とみなされる。行中(左マージン以外)のマッチは勘定されない。
ヘッダー行にマッチする regexpの作成が不可能なら、Outlineマイナーモードにかわりにヘッダー行を見つけるヘルパー関数を定義できる。
変数outline-search-function
はbound、move、backward、looking-atという4つの引数を受け取る関数を指定する。この関数はカレントヘッダー行へのマッチ、および次または前のヘッダー行を探すという2つのタスクを完遂する。引数looking-atが非nil
の場合には、ポイントがoutlineヘッダー行の先頭にあれば関数は非nil
をリターンすること。引数looking-atがnil
の場合には、最初の3つの引数が使用される。引数boundは検索の境界となるバッファー位置であり、検索の終了はこの位置より後であってはならない。値nilはバッファーのアクセス可能範囲終端まで検索することを意味する。引数moveが非nil
の場合には、検索の失敗により検索限界まで移動してnilをリターンすること。引数backwardが非nil
の場合には、関数は後方に向かって前のヘッダー行を検索すること。
この変数は引数を受け取らずカレントヘッダーのレベルをリターンする関数である。この関数はoutline-regexp
またはoutline-search-function
のいずれかを定義する際に必要となる。
tree-sitterとともにEmacsをビルドしていてメジャーモードが以下の変数をセットしていれば、自動的にOutlineマイナーモードを使用します。
この変数はoutlineヘッダーとなる行を探す方法をEmacsに指示する。ヘッダー行のノードにマッチする術後であること。