SHIORIイベントに対する解説テキストをアウトプットバーに表示するマクロです。
Mery wiki掲載の「説明を出力.js」を改変しました。
公開:2018年4月14日 最終更新:2018年4月30日
SHIORIイベントに対する解説テキストをアウトプットバーに表示するマクロです。
Mery wiki掲載の「説明を出力.js」を改変しました。
動作確認:Windows10 / 32bit版 Mery ver2.6.7
改造元の「説明を出力.js」と合わせてご確認ください。
#include "include/MeryInfo.js" #title = "SHIORI_Helper" //=====定義ファイル指定====== //サブフォルダ以下に配置する時は「"subFolder名//ファイル名.json"」 var libPath = ["shiori_event.json","shiori_event_ex.json","satori.json"]; //=====表示オプション====== //アウトプットバーを自動表示するか var barAuto = true; // 表示履歴を残すか(falseでアウトプットバーには常に1件のみ表示) var noClear = false; // 「履歴を残す」がtrueの時、それぞれの説明の間に空白行を入れるか var addLine = true; // 説明の出力形式(trueで説明の前に【イベント名】を表示) var descCfg = true; //=====オプションここまで====== // 以下本体の処理 var fso = new ActiveXObject("Scripting.FileSystemObject"); //マクロフォルダの相対パス修正 var macroPath= MeryInfo.GetMacroFolderPath(); for(var i = 0; i < libPath.length; i++) { if (libPath[i].indexOf(":") <= 0) { libPath[i] = macroPath+"\\" + libPath[i] ; } } // 読み込み var selectText = document.selection.Text; var outputText = ""; var outputTitle = ""; for(var i = 0; i < libPath.length; i++) { if(fso.FileExists(libPath[i])) { var fsIn = fso.OpenTextFile(libPath[i], 1, false, -2); var fileJsonText = fsIn.ReadAll(); var fileJson = JSON.parse(fileJsonText); fsIn.Close(); // 定義ファイル内検索 for(var j = 0; j < fileJson.length; j++) { regexp = new RegExp(fileJson[j].text, fileJson[j].flags) if(regexp.exec(selectText)) { outputText = fileJson[j].description; if(fileJson[j].title) { outputTitle = fileJson[j].title; } else { outputTitle = fileJson[j].text; } } } } } // アウトプットバー出力 if(selectText !== "" && outputText !== "") { if (!OutputBar.Visible && barAuto){ //アウトプットバー自動表示 OutputBar.Visible = true; editor.ExecuteCommandByID(2189); //エディタにフォーカスを戻す } if(!noClear) { //アウトプットバー内のテキストリセット OutputBar.Clear(); } if(descCfg) { //タイトルとテキスト表示 OutputBar.Writeln("【" + outputTitle + "】" + outputText); } else { OutputBar.Writeln(outputText); } if(noClear && addLine) { // 空白行挿入 OutputBar.Writeln(""); } }
項目と解説文は自由に編集ができます。
定義ファイルを新規作成する場合は、シフトJIS形式で保存し本体スクリプトの「定義ファイル指定」にファイル名を書き足してください。
[ { "title": "イベント名。↓のキーワードとは別の文字列を表示する際に使用。省略可", "text": "対象キーワード(正規表現可)", "flags": "正規表現のフラグ(i:大文字小文字を区別しない)。省略可", "description": "キーワードに対する解説(改行は\n、タブ文字は\tなど特殊記号が使える)" }, { "text": "対象キーワード", "description": "キーワードに対する解説" } ]
追加したい項目が多い場合は、エクセルでデータを作り、「csvjson」などでJSON形式に整形すると楽です。