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

概要

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

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

  • V8 ECMAScript
  • nodejsのライブラリ
  • 秀丸マクロ

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

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

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

動作環境

  • 秀丸

    秀丸エディタ ver8.73以上
    秀丸エディタ (ver8.98以上を強く推奨)

  • Microsoft VC++ 再頒布可能パッケージ

    Visual Studio 2017 C++ ランタイム

    • hmEdgeJSSetup_x86.msi でインストールされた方は、Visual Stduio 2017 C++ ランタイムも x86版をインストールしてください。
    • hmEdgeJSSetup_x64.msi でインストールされた方は、Visual Stduio 2017 C++ ランタイムも x64版をインストールしてください。

    繰り返しとなりますが、OSのbit数は問題とはなりません。
    秀丸エディタが32bit版か64bit版かが問題となります。

  • Microsoft .NET

    .NET Framework 4.5以上。

  • node.js がインストール済かは不問

    node.jsがすでにPCにインストールされているか、されていないのか、
    は動作に影響はありません。

    但し、外部パッケージを利用する際には、nodeがインストールされている環境下では、
    「npmコマンド」を流用することが出来ますので、
    hmEdgeJSとは別にnodeがインストールされていることはメリットとなります。

インストール

  • hmEdgeJSSetup_x86.msi(or x64.msi)をダウンロードする。
  • hmEdgeJSSetup_x86.msiを実行。
    インストール先は、「必ず秀丸があるフォルダ(hidemaru.exeがあるフォルダ)と同じフォルダにする必要があります。
    サブフォルダや別フォルダでは動作しません。
  • インストールすると、 秀丸直下に「hmEdgeJS.dll」「License.txt」がコピーされます。
    又、「HmEdgeJSというサブフォルダ」が出来上がり、
    その中にいくつかのファイルがコピーされます。

制限事項

実行するマクロ&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の中から秀丸マクロ記述を実行";
*/ })

ライセンス

  • hmEdgeJS

    hmEdgeJSは、Apache License 2.0となります。

    ソースの場所

    Githubにソースがあります。

  • Edge.js や node.js

    hmEdjgeJSはEdge.jsやnode.jsが含まれています。
    それぞれのライセンスも、インストール時に秀丸ディレクトリ直下に含まれるLicense.txtに記載されています。