hmV8が持つ特別な関数一覧ここでは、hmJSとの差分だけ記載します。 ヒアドキュメント用の関数「R」hmJSに特別に追加されている「R」という関数はヒアドキュメントのリテラル文字列そのまま、に相当近い機能です。 #JS = loaddll( hidemarudir + @"\hmV8.dll" ); #_ = dllfuncw( #JS, "DoString", R"JS( var str = R( f => { /* あいうえお かきくけこ \n\n */ } ); // /*~*/が「書いたままの文字列である」ヒアドキュメント化される。 hm.debuginfo(str) hm.Macro.Var['$str'] = str; // 秀丸マクロの方に伝達 )JS" ); message($str); freedll( #JS ); hm.Macro.Eval(..)こちらも、同様です。 秀丸マクロの変数の読み書き ~hmJSとは別の記述方法~hmJSの書き方だけではなく、hmV8では、「hmPy/hmRb/hmPS/hmPython」と同じように["..."]による、「より自然な記述法」も提供しています。
#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.OutputPane.Output( hm.Macro.Var['$bbb'] ); hm.OutputPane.Output( hm.Macro.Var['filename'] + "\r\n"); var hmdate = hm.Macro.Var['date']; hm.OutputPane.Output( hmdate + "\r\n"); )JS" ); freedll( #JS ); |