Macro/投稿/20 の変更点

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


Top > Macro > 投稿 > 20
  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • Macro/投稿/20 へ行く。

* "/*"から"*/"までを選択 [#wc08bfb3]
-ページ: [[Macro/投稿]]
-作者: [[しみづ]]
-カテゴリー: js
-投稿日: 2004-01-27 (火) 10:01:42

** メッセージ [#w2818c05]
#code(javascript){{
//【commsel.js】
// カーソル位置からさかのぼってブロックコメント"/*"を探し、そこから"*/"までを選択するWSHマクロ
// ※ファルイ先頭行・最終行にあるコメントは選択できません

var inp = " ";
var type = " ";
var last = 99;
var i = 0;
var tmp = " ";
var crlf = 0;
var rc = 0;

Editor.MoveHistSet();
Editor.GoFileEnd();
last = Number(Editor.ExpandParameter("$y"));  // 最後の行数を取得
Editor.MoveHistPrev();
for ( ; ; ) {  // /*をさかのぼって検索ループ
  Editor.Left_Sel();
  inp = Editor.GetSelectedString(0);
  tmp = inp.substr(0, 1);  // 頭の一文字を取得し
  if ( -1 != tmp.indexOf("*", 0) ) {  // *なら
    type = "*";
  }
  else if ( -1 != tmp.indexOf("/", 0) ) {  // その前が/か調べる
    if ( type == "*" ) {
      type = "/";
      break;
    }
  }
  else {
    type = " ";
  }
  if ( 1 == Number(Editor.ExpandParameter("$y")) )  // ファイル先頭にきたらやめる
    break;
}

if ( type == " " ) {  // 見つからなかったら戻る
  Editor.MoveHistPrev();
}
else {  // 見つかったら
  Editor.Left();  // 選択をやめて
  for ( i=0; ;i++ ) {  // */を検索ループ
    Editor.Right_Sel();
    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 = "*";
    }
    else if ( -1 != tmp.indexOf("/", 0) ) {  // その前が/か調べる
      if ( type == "*" )
        break;
    }
    else {
      type = " ";
    }
    if ( Number(Editor.ExpandParameter("$y")) >= last ) {  // ファイル最後にきたらやめて戻る
      Editor.Left();
      break;
    }
  }
}
}}

----

#comment

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS