hmV8 (秀丸マクロ用 .NET Framework ライブラリ via V8 ECMAScript 2021)概要
秀丸マクロを、「ECMAScript2021 V8エンジン」で記述可能とするためのライブラリです。
ダウンロード![]() 更新日 2023/04/26
for 秀丸エディタ 32bit版 ![]() 更新日 2023/04/26
for 秀丸エディタ 64bit版 動作環境
インストール
各種説明は、hmJSとの差分のみ
hmJSとhmV8は、ECMAScriptの「旧」と「新」という関係ですので、基本的にはhmV8はhmJSの上位の互換となります。 hmV8の意義
秀丸マクロファイルや「.js」ファイルの文字コード
hmV8を利用する秀丸マクロファイルや、.jsファイルは、全て「utf8」の「BOM付き」を前提としています。 詳細は、「hmJSの基礎中の基礎のAPI」の「SetCodePage」の項目を参照してください。 ソース例① (jsmode相当関数が大部分使える)#JS = loaddll( hidemarudir + @"\hmV8.dll" ); #_ = dllfuncw( #JS, "DoString", R"JS( message("OK"); moveto(3,4); )JS" ); freedll(#JS); ソース例②#JS = loaddll( hidemarudir + @"\hmV8.dll" ); #_ = dllfuncw( #JS, "DoString", R"( // .NETアセンブリの読み込みが可能 // "System.Windows.Forms"だけでも問題はない。 lib = host.lib("System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"); class MyForm { constructor(start) { this.count = 0; } SetForm() { this.Forms = lib.System.Windows.Forms; this.frm= new this.Forms.Form(); this.frm.Text = "こんにちわ"; } SetButton() { this.btn = new this.Forms.Button() this.btn.Text = "クリック"; this.btn.Left = 16; this.btn.Top = 16; this.btn.Tag = 0; // イベントハンドラも作れる this.btn.Click.connect((sender, e) => this.btn_Click(sender, e)); this.frm.Controls.Add(this.btn); } Show() { this.SetForm(); this.SetButton(); this.frm.ShowDialog(); } btn_Click(sender, event) { this.count++; let count = this.count; // デバッグモニター用の関数 hm.OutputPane.Output("ボタンが押されたよ!!" + "\r\n"); hm.OutputPane.Output(count.toString() + "\r\n"); // 秀丸マクロの「変数」とのやりとりも自由自在 const filename2 = hm.Macro.Var('filename2'); // const filename2 = hm.Macro.Var['filename2']; と記述してもOK hm.OutputPane.Output(filename2); // 秀丸マクロの「変数」とのやりとりも自由自在 hm.Macro.Var('$count', count.toString() ); // hm.Macro.Var['$count'] = count.toString(); と記述してもOK // V8の中から秀丸マクロを一連のコマンドとして実行することも出来る。 // ECMAScript6なら「テンプレートストリングス」が使えるのでちょうどよい hm.Macro.Eval( ` // アウトプット枠へ出力。秀丸マクロを直接使った原始的な方法 #OP = loaddll("HmOutputPane.dll"); #ret = dllfunc(#OP, "Output",hidemaruhandle(0), $count); freedll(#OP); ` ); } } var f = new MyForm(0); f.Show(); )" ); // V8から秀丸マクロへと書き込まれた変数は、当然秀丸マクロからも見える。 message("ボタンは" + $count + "回クリックされました"); freedll(#JS); Google Chromeに搭載されている V8 エンジンとのバージョン
ChromeのURLアドレスバーに「chrome://version」などと入力することにより、
V8のサイトを詳細に追えば、どのバージョンで何が実装されたのか追うことも不可能ではないですが、 ライセンス
|