SMIEは、インデント規則機能での使用に特化して設計された各種関数を提供しています(これらの関数の中には、別のコンテキストで使用すると動作しなくなるものがいくつかあります)。これらの関数はすべて、接頭辞
smie-rule- で始まります。
現在のトークンが行の先頭である場合は、non-nil を返す。
現在のトークンがハング状態である場合は、nil以外の値を返します。トークンがハング状態であるとは、そのトークンが行の最後のトークンであり、かつその前に他のトークンが存在することを指します。行内に単独で存在するトークンはハング状態ではありません。
次のトークンが tokens に含まれる場合は、non-nil を返す。
直前のトークンが tokens に含まれる場合は、非 nil を返す。
現在のトークンの親が parents に含まれる場合は、non-nil を返す。
現在のトークンの親が実際には兄弟である場合は、non-nil を返します。例えば、"," の親が単に直前の "," である場合などがこれに該当します。
現在のトークンを親と揃えるための適切なオフセットを返してください。nil 以外の場合、offset には適用する追加オフセットを示す整数を指定してください。
現在のトークンを区切り文字としてインデントする。
ここで区切り記号とは、ある包含的な構文構造内のさまざまな要素を区切ることのみを目的としたトークンであり、それ自体には意味的な意義を持たないものを指す(すなわち、通常、抽象構文木のノードとしては存在しない)。
このようなトークンは、連想的な構文を持ち、構文上の親と密接に結びついていることが期待される。代表的な例としては、引数リスト内の ","(括弧で囲まれている)や、命令シーケンス内の ";"({...} または begin...end ブロックで囲まれている)などが挙げられる。
method は、smie-rules-function に渡されたメソッド名である必要があります。