Macro/投稿/64

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


Top > Macro > 投稿 > 64

選択行コメントアウト

  • ページ: Macro/投稿
  • 作者: maru
  • カテゴリー: js
  • 投稿日: 2005-07-21 (木) 00:03:54

メッセージ

よくある選択範囲コメントマクロです。

  • コメントアウト化
      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
    
    //Comment.js
    //拡張子別に行コメント文字を定義
    var aExt = new Array();
    aExt["c"] = "//";   aExt["cpp"] = "//"; aExt["h"] = "//";
    aExt["js"] = "//";
    aExt["vbs"] = "'";  aExt["bas"] = "'";  aExt["frm"] = "'";  aExt["cls"] = "'";
    aExt["mac"] = "//";
    aExt["pl"] = "#";   aExt["pm"] = "#";   aExt["cgi"] = "#";
    aExt["tex"] = "%";
    aExt["php"] = "//";
    aExt["asm"] = ";";
    aExt["uws"] = "//";
    aExt["conf"] = ";"; aExt["cnf"] = ";";  aExt["ini"] = ";";  aExt["inf"] = ";";
    aExt["ppa"] = "//";
    aExt["cmd"] = "rem";    aExt["bat"] = "rem";
     
    //行選択されていなくても
    GoLineTop(13);
    sSelect = GetSelectedString(0);
    if (sSelect.length == 0) GoLineEnd_Sel();
     
    //拡張子を切り出し
    sExt = ExpandParameter("$f");
    sExt = sExt.substring( sExt.lastIndexOf(".") + 1);
    sExt = sExt.toLowerCase()
     
    //選択範囲を置換
    if (aExt[sExt] == "rem"){
        //コメントアウト用
        ReplaceAll ("^.", "rem\t$&", 148);
        //コメント解除用
        //ReplaceAll ("^([    \s]*)rem[    \s]", "$1", 148);
    }
    else {
        //コメントアウト用
        ReplaceAll ("^.", aExt[sExt] + "$&", 148);
        //コメント解除用
        //ReplaceAll ("^([    \s]*)" + aExt[sExt], "$1", 148);
    }
    CancelMode();
    SearchClearMark();
    ReDraw(0);
    
  • コメントアウト解除
      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
    
    //CommentUndo.js
    //拡張子別に行コメント文字を定義
    var aExt = new Array();
    aExt["c"] = "//";   aExt["cpp"] = "//"; aExt["h"] = "//";
    aExt["js"] = "//";
    aExt["vbs"] = "'";  aExt["bas"] = "'";  aExt["frm"] = "'";  aExt["cls"] = "'";
    aExt["mac"] = "//";
    aExt["pl"] = "#";   aExt["pm"] = "#";   aExt["cgi"] = "#";
    aExt["tex"] = "%";
    aExt["php"] = "//";
    aExt["asm"] = ";";
    aExt["uws"] = "//";
    aExt["conf"] = ";"; aExt["cnf"] = ";";  aExt["ini"] = ";";  aExt["inf"] = ";";
    aExt["ppa"] = "//";
    aExt["cmd"] = "rem";    aExt["bat"] = "rem";
     
    //行選択されていなくても
    GoLineTop(13);
    sSelect = GetSelectedString(0);
    if (sSelect.length == 0) GoLineEnd_Sel();
     
    //拡張子を切り出し
    sExt = ExpandParameter("$f");
    sExt = sExt.substring( sExt.lastIndexOf(".") + 1);
    sExt = sExt.toLowerCase()
     
    //選択範囲を置換
    if (aExt[sExt] == "rem"){
        //ReplaceAll ("^.", "rem    $&", 148);        //コメントアウト
        ReplaceAll ("^([\t\s]*)rem[\t\s]", "$1", 148);  //コメント解除
    }
    else {
        //ReplaceAll ("^.", aExt[sExt] + "$&", 148);        //コメントアウト
        ReplaceAll ("^([\t\s]*)" + aExt[sExt], "$1", 148);  //コメント解除
    }
    CancelMode();
    SearchClearMark();
    ReDraw(0);
    

  • 新規編集の時undefinedを避ける定義 その1aExt["(無題)"] = "> "; その2aExt["nonext"] = "> "; として切り出しのところを置き換える if ( sExt.lastIndexOf(".") == -1) {sExt = "nonext";} else {sExt = sExt.substring( sExt.lastIndexOf(".") + 1); sExt = sExt.toLowerCase();} jscript未学習です。学習する気はありません。お粗末ですが、工夫しまてみました。 -- お粗末ですが? 2011-01-21 (金) 17:59:17
  • CommentUndo.js、「行頭+空白文字+//」のような場合にコメント外せませんでした。 ReplaceAll( "\^\(\\s\*\)" + aExt[sExt], "$1", 148); のようにエスケープすれば上手くいくようです。 -- 2014-12-09 (火) 12:09:01

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

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2014-12-09 (火) 12:09:01 (1293d)