SciTEのLuaでキャレットのあるブロックの開始位置を取得する

SciTEをLua拡張しているとたまに、今のブロック(スコープ)の開始位置を知りたいことがある。例えばJavaScriptで new Backbone.Model.extend({ ってやってたら Model のプロパティをオートコンプリートで表示させたい、とかそんな感じ。
これって、キャレットの位置から一行ずつさかのぼって、カッコの数を数えて…うげぇ、ってのを想像してたが、実は Scintilla のドキュメントを眺めてたところ案外簡単にできることが分かった。

scite.SendEditor(SCI_GETFOLDPARENT, editor:LineFromPosition(editor.CurrentPos))

これだけ。
SCI_GETFOLDPARENT は引数の位置と同一レベルかつ、直近の折り畳み位置を取得するというもの。折り畳み位置は各ファイルタイプのブロック単位で設定されるので、引数にキャレットの現在位置を与えれば、直近のブロック開始位置を求められる、というワケだ。
夢が広がりますね。