Next: , Previous: , Up: 適切なウィンドウへのバッファーの表示   [Contents][Index]


29.13.3 バッファー表示用のアクションalist

アクションalist(action alist)とはアクション関数が認識可能な事前定義されたシンボルと、それに応じてそれらの関数が解釈することを意図した値をマップする連想リストです。各呼び出しにおいてdisplay-bufferは新たなアクションalist(空の場合もある)を作成して、呼び出すすべてのアクション関数にそのリスト全体を渡します。

仕様によりアクション関数はアクションalist全体を自由に解釈できます。実際のところallow-no-windowprevious-windowのようないくつかのエントリーはいくつかのアクション関数によってのみ意味があり、他のアクション関数では無視されます。それ以外のinhibit-same-windowwindow-parametersのようなエントリーは、アプシケーションプログラムや外部パッケージから提供されるものも含めて、ほとんどのアクション関数がしたがいます。

前のサブセクションでは、個別のアクション関数がアクションエントリーを処理する方法の詳細を説明しました。ここでは既知のアクションalistエントリーに対応するすべてのシンボル、およびそれらの値とそれらを認識するアクション関数(バッファー表示用のアクション関数を参照)とともに示すリファレンスリストを提供します。このリストにおいて用語“バッファー”はdisplay-bufferが表示しようとするバッファー、“値”はそのエントリーの値を意味しています。

inhibit-same-window

値が非nilなら、バッファーの表示に選択されたウィンドウを使用してはならないことを告げる。既存のウィンドウを(再)使用するすべてのアクション関数は、このエントリーにしたがう必要がある。

previous-window

値には以前にバッファーを表示した可能性のあるウィンドウを指定しなければならない。そのようなウィンドウがまだ生きていて他のバッファー専用でなれば、display-buffer-in-previous-windowはそのウィンドウを優先する。

mode

値はメジャーモードかメジャーモードのリスト。このエントリーが指定する値がウィンドウのバッファーのメジャーモードにマッチすれば、display-buffer-reuse-mode-windowは常にそのウィンドウを再利用する。これ以外のアクション関数はこのエントリーを無視する。

frame-predicate

値はのそのフレームがバッファーを表示する候補なら非nilをリターンする単一の引数(フレーム)を受け取る関数でなければならない。このエントリーはdisplay-buffer-use-some-frameが使用する。

reusable-frames

値はバッファーをすでに表示していたことにより再利用可能なウィンドウを検索するためのフレームセットを指定する。以下をセット可能:

  • nilは選択されたフレーム(実際にはミニバッファーフレーム以外の最後に使用されたフレーム)上のウィンドウだけを考慮することを意味する。
  • tはすべてのフレーム上のウィンドウを考慮することを意味する。
  • visibleはすべての可視フレーム上のウィンドウを考慮することを意味する。
  • 0はすべての可視またはアイコン化されたフレーム上のウィンドウを考慮することを意味する。
  • フレームを指定すると、そのフレーム上のウィンドウだけを考慮することを意味する。

nilの意味はnext-windowにたいするall-frames引数の場合の意味とは若干異なることに注意(ウィンドウのサイクル順を参照)。

これの主要クライアントはdisplay-buffer-reuse-windowだが、ウィンドウの再利用を試みる他のすべてのアクション関数も同様に影響を受ける。display-buffer-in-previous-windowはバッファーを以前に表示していたウィンドウを別フレーム上で検索する際にこれを参照する。

inhibit-switch-frame

nil値の場合には、display-bufferにより選択されたウィンドウがすでに表示されていれば別のフレームのraiseや選択を抑制する。これにより主に影響を受けるのはdisplay-buffer-use-some-framedisplay-buffer-reuse-window。理想的にはdisplay-buffer-pop-up-frameも同様に影響を受けるべきだが、ウィンドウマネージャーがこれに準拠する保証はない。

window-parameters

値は選択したウィンドウに与えるウィンドウパラメーターのalist。ウィンドウを選択するすべてのアクション関数は、このエントリーを処理する必要がある。

window-min-height

値は使用するウィンドウの最小高さを行数で指定する。ウィンドウの高さがこのエントリーで指定した高さではない、あるいはできなければウィンドウの使用を考慮しない。このエントリーのクライアントは現在のところdisplay-buffer-below-selectedのみ。

このようなエントリーを単独で提供しても、ウィンドウがその値で指定した高さになるとは限らないことに注意。既存ウィンドウを実際にリサイズしたり新たなウィンドウの高さを指定した値にするためには、同様にこの値を指定するwindow-heightエントリーを提供する必要がある。しかしこのようなwindow-heightエントリーでまったく異なる値を指定したり、ウィンドウ高さをバッファーにフィットするように要請することができる。そのような場合にはwindow-min-height使用するウィンドウの最小高さにたいする保証を与える。

window-height

値は選択したウィンドウの高さを調節するかとその方法を指定する。以下のいずれか:

  • nilは選択したウィンドウの高さを変更しないことを意味する。
  • 整数値は選択したウィンドウの望ましい高さを行数で指定する。
  • 浮動小数点値は選択したウィンドウの望ましい高さをフレームのルートウィンドウのトータル高さにたいする比率で指定する。
  • 値が関数を指定する場合には、その関数は選択したウィンドウを引数として呼び出される関数。この関数はそのウィンドウの高さを調整することを期待されておりリターン値は無視される。これに適した関数はfit-window-to-buffershrink-window-if-larger-than-bufferウィンドウのリサイズを参照のこと。

慣例により選択したウィンドウの高さは、そのウィンドウが垂直コンビネーション(ウィンドウとフレームを参照)の一部であり、他の無関係のウィンドウの高さの変更を避ける場合のみ調整される。さらにこのエントリーはこのリストの後に指定する特定の条件下でのみ処理される必要がある。

window-width

これは上述のwindow-heightと同様だが、かわりに選択したウィンドウの幅の調節に使用される。値は以下のいずれか:

  • nilは選択したウィンドウの幅を変更しないことを意味する。
  • 整数値は選択したウィンドウの望ましい幅を列数で指定する。
  • 浮動小数点値は選択したウィンドウの望ましい幅をフレームのルートウィンドウのトータル幅にたいする比率で指定する。
  • 値が関数を指定する場合には、その関数は選択したウィンドウを引数として呼び出される関数。この関数はそのウィンドウの高さを調整することを期待されておりリターン値は無視される。

慣例により選択したウィンドウの幅は、そのウィンドウが水平コンビネーション(ウィンドウとフレームを参照)の一部であり、他の無関係のウィンドウの幅の変更を避ける場合のみ調整される。さらにこのエントリーはこのリストの後に指定する特定の条件下でのみ処理される必要がある。

dedicated

このようなエントリーが非nilなら、display-bufferは作成するすべてのウィンドウをそのバッファー専用であるとマークする(専用のウィンドウを参照)。これは最初の引数に選択したウィンドウ、2つ目の引数にエントリーの値を指定してset-window-dedicated-pを呼び出すことにより行われる。サイドウィンドウはデフォルトでは値sideで専用となる(サイドウィンドウのオプションと関数を参照)。

preserve-size

このようなエントリーが非nilなら、選択したウィンドウのサイズを維持するようにEmacsに指示する(ウィンドウサイズの保持を参照)。値は(t . nil) (ウィンドウの幅を維持)、(nil . t) (高さを維持)、または(t . t) (幅と高さの両方を維持)のいずれか。このエントリーはこのリストの後に指定する特定の条件下でのみ処理される必要がある。

pop-up-frame-parameters

この値は新たにフレームが作成された場合に与えるフレームパラメーターのalist。display-buffer-pop-up-frameがけが参照する。

parent-frame

値は子フレームにバッファーを表示時に使用する親フレームを指定する。このエントリーを使用するのはdisplay-buffer-in-child-frameのみ。

child-frame-parameters

値は子フレームにバッファー表示時に使用するフレームパラメーターのalistを指定する。このエントリーを使用するのはdisplay-buffer-in-child-frameのみ。

side

値はバッファーを表示する新たなウィンドウを、フレームやバッファーのどのサイドに作成するかを示す。このエントリーは新たなサイドウィンドウをフレームのどのサイドに配置するかを示すためにdisplay-buffer-in-side-windowが使用する(サイドウィンドウへのバッファーの表示を参照)。さらに新たなサイドウィンドウを既存ウィンドウのどのサイドに配置するかを示すためにdisplay-buffer-in-atom-windowにも使用される(アトミックウィンドウを参照)。

slot

値が非nilならバッファーを表示するサイドウィンドウのスロットを指定する。このエントリーを使用するのはdisplay-buffer-in-side-windowのみ。

direction

この値はwindowエントリーとともに、display-buffer-in-directionがバッファーを表示するウィンドウ位置を決定するための方向を指定する。

window

値はdisplay-bufferで選択されたウィンドウと何らかの関連があるウィンドウを指定する。このエントリーは現在のところ新たなウィンドウが作成されるサイドのウィンドウを示すためにdisplay-buffer-in-atom-windowが使用する。これは結果のウィンドウが出現する側の参照ウィンドウを指定するためにdisplay-buffer-in-directionも使用する。

allow-no-window

値が非nilならdisplay-bufferは必ずしもバッファーを表示する必要はなく、呼び出し側はそれを受け入れる準備がある。display-bufferの任意の呼び出し手がバッファーを表示するウィンドウが存在しないケースを処理できる保証がないので、、このエントリーはユーザーのカスタマイゼーションを意図したものではない。このエントリーを考慮するアクション関数はdisplay-buffer-no-windowのみ。

body-function

値は1つの引数(表示されるウィンドウ)を受け取る関数でなければならない。この関数は表示されるウィンドウのサイズに応じて、表示されるウィンドウのbodyを何らかのコンテンツで充填するために使用できるかもしれない。これはバッファー表示の、かつ挿入したコンテンツに適合するようにリサイズを適用できるwindow-heightwindow-widthpreserve-sizeの開始のに呼び出される。

慣例によりエントリーwindow-heightwindow-widthpreserve-sizeは選択したウィンドウのバッファーのセットアップ後、かつそのウィンドウが以前に他のバッファーを表示していない場合のみ適用されます。後者はより正確にはカレントのdisplay-buffer呼び出しによりウィンドウが作成されたか、以前にそのバッファーを表示するためにdisplay-bufferによりウィンドウが作成されて、カレントのdisplay-buffer呼び出しによる再利用まで他のバッファーの表示に使用されたことがないことを意味します。