hmV8が持つ特別な関数一覧

ここでは、hmJSとの差分だけ記載します。

  • ヒアドキュメント用の関数「R」

    hmJSに特別に追加されている「R」という関数はヒアドキュメントのリテラル文字列そのまま、に相当近い機能です。
    一方、ECMAScript6には、「テンプレートリテラル」がありますが、2つは少し役割が異なりますので、
    気を付けて使い分けて下さい。

  • hm.Macro.Eval(..)

    こちらも、同様です。
    「ソースコードとして書いてある通りに実行する」という意味では、
    やはりhmJSの方のサンプルと同じ書き方の方が良いと思われます。

  • 秀丸マクロの変数の読み書き ~hmJSとは別の記述方法~

    hmJSの書き方だけではなく、hmV8では、「hmPy/hmRb/hmPS/hmLoadCLR」と同じように["..."]による、「より自然な記述法」も提供しています。

    • hm.Macro.Var['変数名']

      対象の「秀丸マクロ」としてのシンボル名に対応する値を取得する。

    • hm.Macro.Var['変数名'] = 新たな値

      対象の「秀丸マクロ」としてのシンボル名に、新たな値を設定する。
      (読み取り専用の値には設定出来ません)

    #JS = loaddll( hidemarudir + @"\hmV8.dll" );
    
    #_ = dllfuncw( #JS, "DoString", R"JS(
    
        // 秀丸マクロの「#aaa」という変数に3を設定。
        hm.Macro.Var['#aaa'] = 3;
    
        // 秀丸マクロの「$bbb」という変数に「あいうえお」を設定。
        hm.Macro.Var['$bbb'] ="あいうえお。";
    
        // 秀丸マクロとして一連の文字列を実行
        hm.Macro.Eval( f => {
        /*
            message($bbb);
            $$message = $bbb + $bbb;
            message($$message);
    
            // アウトプット枠へ出力
            #OP = loaddll("HmOutputPane.dll");
            #ret = dllfunc(#OP, "Output",hidemaruhandle(0), $$message);
            freedll(#OP);
        */
        } );
    
        hm.debuginfo( hm.Macro.Var['$bbb'] );
        hm.debuginfo( hm.Macro.Var['filename'] );
    
        var hmdate = hm.Macro.Var['date'];
        hm.debuginfo( hmdate );
    
    )JS"
    );
    
    freedll( #JS );