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

  • 概要

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

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

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

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

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

    hmEdgeJSSetup_x86.msiファイル。ver 1.011
    └更新日 2018/02/23
  • ダウンロード(秀丸エディタ 64bit版用)(OSではなく秀丸のビット数です)

    hmEdgeJSSetup_x64.msiファイル。ver 1.011
    └更新日 2018/02/23
  • 動作環境

    • 秀丸

      秀丸エディタ ver8.66以上

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

      Visual Studio 2015 C++ ランタイム

      • hmEdgeJSSetup_x86.msi でインストールされた方は、Visual Stduio 2015 C++ ランタイムも x86版をインストールしてください。
      • hmEdgeJSSetup_x64.msi でインストールされた方は、Visual Stduio 2015 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」「EdgeJS.dll」「License.txt」がコピーされます。
      又、「edgeというサブフォルダ」が出来上がり、
      その中にいくつかのファイルがコピーされます。
  • 制限事項

    実行するマクロ&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"];
    
    console.log(str, date);
    
    hm.Macro.Eval( f => { /*
        message $abc;
        message "nodeの中から秀丸マクロ記述を実行";
    */ })
    
  • ライセンス

    • hmEdgeJS

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

      ソースの場所

      Githubにソースがあります。

      (※ Githubでリポジトリの「サブディレクトリ」だけをダウンロードする簡単な方法は、こちら)

    • Edge.js や node.js

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