Emacsでもできるらしいのですが、例えば「Chapter (\d+)」を検索し、それを
「js: "Chapter " + (+$1+1)」に置換することで、章番号を 1ずつ増加させる
ようなことができたらいいなと思って WSH関連のコードを眺めていました。
その過程で、IUnknownと IDispatchを実装した CWSHIfObj(旧CInterfaceObject)
が、マクロと一体になっていて再利用しにくいことに気付きました。これでは
ちょっとしたスクリプトを実行するために、(無視することも含めて)マクロに対
応するか、IDispatchを再実装するかしなければいけない気がします。
r1715<
http://sakura-editor.svn.sourceforge.net/viewvc/sakura-editor?view=rev&revision=1715>以前はそうではなかったことを知って、気付かなかったことを後悔しています。
また、ReadyCommands()と MacroCommand()が CWSHMacroManagerの配下から
CWSHIfObj(旧CInterfaceObject)配下に移動していますが、これは危険では
ないでしょうか。MacroCommand()の1行目の reinterpret_castは
CWSHClientが CEditView* を伴って作成されたことを前提にしていますが、
それを保証していたのは CWSHMacroManager::ExecKeyMacro()に思えます。
# 自分がやりたいことは CInterfaceObject::AddProperty()を追加するだけで
# 済みそうに思えてきたところなのですが、今は手を付けることが難しいです。