「説明を出力」の版間の差分
ナビゲーションに移動
検索に移動
作成 |
jsonのハイライトを修正 |
||
| 54行目: | 54行目: | ||
= 定義ファイル例 = | = 定義ファイル例 = | ||
<source> | <source lang="javascript"> | ||
[ | [ | ||
{ | { | ||
2015年8月16日 (日) 12:55時点における版
概要
マッチした文字列が選択されたら、アウトプットバーに説明を出力します 既定ではこのマクロと同じディレクトリのhelp.jsonを定義ファイルとして参照します 「選択範囲が変更されたとき」のイベントで実行することを前提に作成しています 定義ファイルの書き方はjsonで例を下に載せてあります
更新履歴
2015/08/16 作成
コード
#title = "ヘルプをアウトプットバーに出力"
// 定義ファイルのパス
var libPath = "help.json";
var fso = new ActiveXObject('Scripting.FileSystemObject');
// 相対パス修正
if (libPath.indexOf(':') <= 0) {
libPath = fso.BuildPath(fso.GetParentFolderName(Document.FullName), libPath);
}
// 読み込み
if(fso.FileExists(libPath)) {
var fsIn = fso.OpenTextFile(libPath, 1, false, -2);
var fileJsonText = fsIn.ReadAll();
var fileJson = JsonParse(fileJsonText);
fsIn.Close();
// 定義ファイル内検索
var selectText = document.selection.Text;
var outputText = "";
for(var i = 0; i < fileJson.length; i++) {
regexp = new RegExp(fileJson[i].text, fileJson[i].flags)
if(regexp.exec(selectText)) {
outputText = fileJson[i].description;
}
}
}
// 出力
if(selectText !== "" && outputbar.visible && outputText !== "") {
outputbar.Writeln(outputText);
}
// Libs
// JSONText To JSONObj
function JsonParse(data){
var obj = (new Function("return " + data))();
return obj;
}
定義ファイル例
[
{
"text": "正規表現",
"flags": "正規表現のフラグ",
"description": "出力する説明"
},
{
"text": "正規表現",
"flags": "正規表現のフラグ",
"description": "出力する説明"
}
]
スポンサーリンク