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


22.7.1.1 SMIEのセットアップと機能

SMIEは構造的な操作とコードの構造的構造にもとづくその他さまざまな機能、特に自動インデントにたいするワンストップショップ(一カ所で必要な全ての買い物ができる店やそのような場所)であることを意図しています。メインのエントリーポイントはsmie-setupで、これは通常はメジャーモードセットアップの間に呼び出される関数です。

Function: smie-setup grammar rules-function &rest keywords

SMIEの操作とインデントをセットアップする。grammarsmie-prec2->grammarにより生成される文法テーブル(grammar table)、rules-functionsmie-rules-functionで使用されるインデントルールのセット、keywordsは追加の引数であり以下のキーワードを含むことができる:

この関数を呼び出せばforward-sexpbackward-sexptranspose-sexpsのようなコマンドが、すでに構文テーブルにより処理されている単なるカッコのペア以外の、構造的な要素を正しく扱うことができるようになります。たとえば与えられた文法が十分に明快ならば、transpose-sexpsはその言語の優先順位のルールを考慮して+演算子の2つの引数を正しく入れ替えることができます。

‘smie-setup’の呼び出しもまた、TABによるインデントを期待通り機能させ、begin...endのような要素に適用するためにblink-matching-parenを拡張し、そのメジャーモードのキーマップ内でバインドできるいくつかのコマンドを提供するのに十分です。

Command: smie-close-block

このコマンドは、もっとも最近オープンされた(まだクローズされていない)ブロックをクローズする。

Command: smie-down-list &optional arg

このコマンドはdown-listと似ているが、begin...endのようなカッコ以外のネストされたトークンにも注意を払う。