Next: , Previous: , Up: SMIE   [Contents][Index]


22.7.1.7 インデントルールにたいするヘルパー関数

SMIEはインデントを決定する関数内で使用するために特別にデザインされたさまざまな関数を提供します(これらの関数のうちのいくつかは異なるコンテキスト内で使用された場合に中断する)。これらの関数はすべてプレフィックスsmie-rule-で始まります。

Function: smie-rule-bolp

カレントトークンが行の先頭にあれば非nilをリターンする。

Function: smie-rule-hanging-p

カレントトークンがhanging(ぶら下がり)なら非nilをリターンする。トークンがその行の最後のトークンであり、他のトークンが先行する場合、そのトークンはhangingである。行に単独のトークンはhangingではない。

Function: smie-rule-next-p &rest tokens

次のトークンがtokens内にあれば非nilをリターンする。

Function: smie-rule-prev-p &rest tokens

前のトークンがtokens内にあれば非nilをリターンする。

Function: smie-rule-parent-p &rest parents

カレントトークンのparentがparents内にあれば非nilをリターンする。

Function: smie-rule-sibling-p

カレントトークンのparentが実際はsibling(兄弟)なら非nilをリターンする。たとえば","のparentが直前の","のような場合が該当。

Function: smie-rule-parent &optional offset

カレントトークンをparentとアライン(align: 桁揃え)するための適切なオフセットをリターンする。offsetが非nilなら、それは追加オフセットとして適用される整数であること。

Function: smie-rule-separator method

セパレーター(separator)としてカレントトークンをインデントする。

ここでのセパレーターとは周囲を取り囲む何らかの構文構造内でさまざまな要素を区切ることを唯一の目的とするトークンであり、それ自体は何も意味をもたないトークン(通常は抽象構文木内でノードとして存在しないこと)を意味する。

このようなトークンは結合構文をもち、その構文的parentと密に結び付けられることが期待される。典型的な例としては引数リスト内の"," (カッコで括られた内部)、または命令文シーケンス内の";" ({...}begin...endで括られたブロックの内部)が挙げられる。

methodは、‘smie-rules-function’に渡されるメソッド名であること。