マクロソースの自動コンパイルについてのY.Nakamuraさんとのやりとり(ビレッジセンター掲示板、WZユーザ広場1の#2372、 #2373)からちょっと脇道へ……。
WZの既存のコマンドをフックするだけのプラグインなどでは、操作といえばプラグインに登録するだけで、[マクロの実行]ダイアログから実行する機会のないようなもの(ここの例でいえば「Cファイル入力支援」とか)もあります。そういったマクロでは、あえてmain関数を用意する理由は乏しいのですが、僕は、TX-Cライブラリに公開するようなマクロでは基本的に(一見必要ないように見えても)main関数を用意するようにしてます。
mainは[マクロの実行]ダイアログでマクロ名のみを入力して実行したときに呼び出されるコマンドでもあるので、いわばそのマクロ全体を代表しているインタフェースであるとも考えられます。だから、ユーザーにとって使いかたのよくわからないマクロでも、とりあえず[マクロの実行]ダイアログでマクロ名を入れてOKボタンを押せば、そのマクロの使用法についてなんらかのヒントが得られるようにしておこう、という発想です。
そんなわけで、じつはここで公開している中規模以上のマクロのほとんどは、基本的に「マクロが(設定ダイアログなどの)対話的なインタフェースを持つ場合は、mainコマンドからそのすべてにアクセスできるようになっているべき」というのを理想に作ってあったりします。使う側からしてみればキーやメニューをマクロに割り当てるときに1つきりで足りるということや、マクロ製作者の気分しだいで変わりかねない、configとかoptionとかsetteiといった関数名を把握しなくてすむ、といったメリットもあるかと。