最終更新日 2024-07-21

hmEdgeJS (秀丸マクロ用 Node.js)

概要

秀丸マクロを可能な限り、「Node.js 及び v8 ECMAScript」で記述可能とするためのライブラリです。

nodeサーバーとして利用する目的のものではありません。
visual studio codeの「拡張機能スクリプト環境」と同様の立ち位置のものとなります。

をシームレスに取り扱えるようにしたものとなります。

ダウンロード(秀丸エディタ 通常版用)

Windowsのbit数ではなく、秀丸のビット数 Windows OSが64bit版か32bit版かは関係ありません。秀丸エディタが32bit版か64bit版かでダウンロード対象を選択してください。

動作環境

インストール

制限事項

実行するマクロ&JavaScriptが存在するフォルダ名に「日本語(マルチバイト文字)」
が含まれていると実行できません。

繰り返しとなりますが、

実行するマクロ&JavaScriptが格納されているフォルダが、日本語などマルチバイト文字を含んでいないこと

という制限があります。

ソース例

秀丸マクロ側のソース

mytest.mac
#NODE = loaddll( hidemarudir + @"\hmEdgeJS" );

#r = dllfuncw( #NODE, "DoFile", currentmacrodirectory + @"\mytest.js" );

freedll(#NODE);

// node内で$abcに文字列を代入してあるので、それを秀丸マクロのファイル内で表示
message ($abc+$abc);

js側のソース

mytest.js
var fmt = require("util").format;
let str = fmt("yen", [1,2,3], 100);

// node側から秀丸のマクロ変数$abcへと代入
hm.Macro.Var["$abc"] = "あいうえお♬";

// 「date」という秀丸マクロの文字列変数をnode側の変数へと読み取り
let date = hm.Macro.Var["date"];

message("OK"); // 秀丸マクロのjsmodeのJavaScriptの関数群と同じ関数群のほとんどを備えている

moveto(3,4); // 秀丸マクロのjsmodeのJavaScriptの関数群と同じ関数群のほとんどを備えている

var result = question("そうしますか?"); // 秀丸マクロのjsmodeのJavaScriptの関数群と同じ関数群のほとんどを備えている

var result2 = input("なにがいいですか?"); // 秀丸マクロのjsmodeのJavaScriptの関数群と同じ関数群のほとんどを備えている

hm.OutputPane.Output(result2); // アウトプットパネルにもすぐに出せる。

console.log(str, date);

hm.Macro.Eval( f => { /*
    message $abc;
    message "nodeの中から秀丸マクロ記述を実行";
*/ })

ライセンス