「説明を出力」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
作成
 
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": "出力する説明"
  }
]
スポンサーリンク