最終更新日 2024-09-25

hmPyが持つ特別な関数一覧 その①

ヒアドキュメント

hmPyの機能ではなく、秀丸マクロの機能となりますが、hmPyと関係が深いものとして、
秀丸エディタ 8.66では、C++の「R""」やC#の「@」のようなものが秀丸マクロで利用可能となっています。

このため、秀丸マクロ内に、IronPythonをそのまま直接書き込めるようになりました。
これは非常に大きなメリットと言えるでしょう。

又、8.66以前のバージョンでは秀丸マクロの文字列リテラル(べた書きの文字列)の最大長は4Kバイトでしたが、
8.66以降では、64Kバイトとなりました。
これは、「連続1500行程度のIronPythonをマクロ内に直接張り付けることが出来る」ことを意味します。

デバッグ用途関数

デバッグ用途として以下の関数を利用し、「秀丸デバッグモニター」などに値や文字列を表示することが出来ます。

秀丸本体のバージョン

秀丸本体のバージョンを数値として取得します。

#PY = loaddll( hidemarudir + @"\hmPy.dll" );
 
#_ = dllfuncw( #PY, "DoString", R"PY(

hm.debuginfo(hm.version)

)PY"
);
 
freedll( #PY );

DestroyScope関数

IronPython内に「DestroyScope」という名前の関数を用意しておくと、
マクロ終了時に自動的にその関数が実行されます。

#PY = loaddll( hidemarudir + @"\hmPy.dll" );
 
#_ = dllfuncw( #PY, "DoString", R"PY(

def DestroyScope():
    hm.debuginfo("マクロ終了する直前に自動的にこの関数が呼び出される。\n")

)PY"
);
 
freedll( #PY );