PPxでは指定ハイライトが1~7まで用意されている。
カレントディレクトリに指定ハイライトがある場合、それを順次マークできるようにする。
以下のスクリプトを保存。これは、引数に1~7の数値を取り、その数値以上かつ最も近い数値の指定ハイライトをマークするスクリプト。また、マークした指定ハイライトの数値+1を戻り値として返す。
highlightmark.js
//!*script // 第一引数 : 1~7の数値 // 戻り値 : マークした指定ハイライトの数値+1(数値が7のときは1) // // 第一引数の数値以上かつ最も近い数値の指定ハイライトをマークする if (PPx.Arguments.Length < 1){ PPx.SetPopLineMessage("引数が正しくありません。"); PPx.Quit(); } var arg = parseInt(PPx.Arguments.Item(0)); var hl_1st_num = 0; var hl_last_num = 0; if (arg > 7 || arg <1 ) PPx.Quit(); // 指定ハイライトnの値を取得 // 最小値をhl_1st_numへ、引数の数値以上かつ最も近い値をhl_last_numへ // hl_last_numが存在する場合、エントリマークを実行 for (var i = 1; i < 8; i++) { for (var j = 0; j < PPx.EntryAllCount; j++) { if(PPx.Entry(j).Highlight == i){ if (!hl_1st_num) { hl_1st_num = i; } if (arg > i) continue; hl_last_num = i; PPx.Entry(j).Mark = 1; } } if (hl_last_num) break; } // hl_last_numが存在しない場合のエントリーマーク実行 if (hl_1st_num && !hl_last_num) { for (var i = 0; i < PPx.EntryAllCount; i++) { if(PPx.Entry(i).Highlight == hl_1st_num){ PPx.Entry(i).Mark = 1; } } } // 返り値の処理 if (hl_last_num == 7) { PPx.Result = 1; } else if (!hl_1st_num && !hl_last_num) { PPx.Result = 1; } else if (hl_last_num) { PPx.Result = hl_last_num+1; } else if (hl_1st_num) { PPx.Result = hl_1st_num+1; }
以下のコマンドを適当なキーに登録する。
*ifmatch 0,0%si"hl" %: *string i,hl = 1 *unmarkentry *string i,hl=%*script(%0\Script\highlightmark.js,%si"hl")
0 件のコメント:
コメントを投稿