コメントマーク付け外し

提供: MeryWiki
2013年3月28日 (木) 10:49時点における211.121.58.21 (トーク)による版
ナビゲーションに移動 検索に移動
概要
  • コメントマークの付け外しをするマクロです。
  • js以外の拡張子に対応させる時は、最後の関数に追加してください。
更新履歴
20130328
  • 無題のときに対応しました。
ソースコード
// コメントマーク.js
// 行頭コメントマーク( cMark )を付けたり外したり。
// 空白文字の後ろには対応するけど、つけるときは行頭。

var cMark = commentMark( Editor.ActiveDocument.name );
var reg = new RegExp( "^[ \\t]*" + cMark )
var sel = Editor.ActiveDocument.Selection;
var ty = sel.GetTopPointY( mePosLogical )
var bx = sel.GetBottomPointX( mePosLogical )
var by = sel.GetBottomPointY( mePosLogical )
sel.SetActivePoint( mePosLogical,  1, ty, false )
if ( ( bx == 1 ) && ( ty != by ) ){ by--; }
sel.SetActivePoint( mePosLogical, bx, by,  true )
sel.EndOfLine( true, mePosLogical );
// 上二行とどちらがいいか?
//sel.SetActivePoint( mePosLogical, document.GetLine( by, 0 ).length + 1, by, true );


var ary = sel.Text.split( "\n" );
var s = new Array();
for ( var i = 0; i < ary.length; i++ ) {
    var ai = ary[ i ]
    if ( reg.test( ai )) {
        s.push( ai.replace( cMark, "" ) )
    } else {
        s.push( cMark + ai )
    }
}
sel.Text = s.join( "\n" );
sel.SetActivePoint( mePosLogical, 1, ty, false )


function commentMark( filename ){
    if ( filename == "" ){ return "//" }
    var f = filename.split( "\\" ).pop().split( "." );
    var fext = ( f.length >= 2 ) ? f.slice( -1 ).join( "" ).toLowerCase() : "" ;
    switch( fext ){
    case "js" : return "//";
    default : "//";
    }
}

スポンサーリンク