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

ヒアドキュメント

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

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

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

デバッグ用途関数

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

  • $hm.debuginfo( 文字列 )

    対象の文字列を、システムデバッガへと文字列を転送します。
    「秀丸デバッグモニター」などに値や文字列を確認することが可能です。

秀丸本体のバージョン

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

  • $hm.version

    秀丸 8.7.3.β3 の場合は、873.03、
    秀丸 8.7.3.β10 の場合は、873.10、
    秀丸 8.7.3 正式版 の場合は、873.99、
    といったような値が返ってきます。

#RB = loaddll( hidemarudir + @"\hmRb.dll" );

#_ = dllfuncw( #RB, "DoString", R"RB(

$hm.debuginfo($hm.version);

)RB"
);

freedll( #RB );

DestroyScope関数

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

#RB = loaddll( hidemarudir + @"\hmRb.dll" );

#_ = dllfuncw( #RB, "DoString", R"RB(

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

)RB"
);

freedll( #RB );