Macro/投稿/19

http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F19


Top > Macro > 投稿 > 19

カーソル位置から対括弧までを選択する

  • ページ: Macro/投稿
  • 作者: しみづ?
  • カテゴリー: js
  • 投稿日: 2004-01-27 (火) 10:02:37

メッセージ

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
//【brasel.js】
// カーソル位置から選択を開始し、最初に見つけた(か{の対括弧までを選択するWSHマクロ
// 括弧以前も選択できることにより、例えば関数呼び出し部分を全部選択できる
// また、(を判定して抜ける処理部分をコメントアウトして作り直しておけば、最初に見つけた{の対括弧までを選択するため、関数定義を全部選択できる
// ※ファルイ最終行にある括弧は選択できません
 
var inp = " ";
var type = " ";
var last = 99;
var tmp = " ";
var i = 1;
 
Editor.MoveHistSet();
Editor.GoFileEnd();
last = Number(Editor.ExpandParameter('$y'));  // 最後の行数を取得
Editor.MoveHistPrev();
Editor.BeginSelect();
for ( i=0; ; i++ ) {  // (か{を検索ループ
  Editor.Right();
  inp = Editor.GetSelectedString(0);
  tmp = inp.substr(i, 1);  // 次の一文字を取得し
  if ( -1 != tmp.indexOf("\n", 0) ) {  // 改行は選択にスキップされるので、次の一文字を取り直し
    i++;
    tmp = inp.substr(i, 1);
  }
  if ( -1 != tmp.indexOf("{", 0) ) {  // {を判定
    type = "{";
      break;
  }
  if ( -1 != tmp.indexOf("(", 0) ) {  // (を判定
    type = "(";
      break;
  }
  if ( Number(Editor.ExpandParameter("$y")) >= last )  // ファイル最後にきたらやめる
    break;
}
if ( type == " " ) {  // 見つからなかったら戻る
  Editor.MoveHistPrev();
}
else {  // 見つかったら
  if ( i > 0 )  // いきなり最初で見つかったのでなかったら
    Editor.Left();  // 一つもどって
  Editor.BracketPair();  // 対括弧まで行って
  Editor.Right();  // 選択
}


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2006-07-29 (土) 23:43:08 (6474d)