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形式に整形すると楽です。