「コメントマーク付け外し」の版間の差分
ナビゲーションに移動
検索に移動
ページの作成:「 <pre> // コメントマーク.js // 行頭コメントマーク( cMark )を付けたり外したり。 // 空白文字の後ろには対応するけど、つけ...」 |
編集の要約なし |
||
| 1行目: | 1行目: | ||
*コメントマークの付け外しをするマクロです。 | |||
*js以外の拡張子に対応させる時は、最後の関数に追加してください。 | |||
<pre> | <pre> | ||
| 5行目: | 8行目: | ||
// 空白文字の後ろには対応するけど、つけるときは行頭。 | // 空白文字の後ろには対応するけど、つけるときは行頭。 | ||
var cMark = | var cMark = commentMark( Editor.ActiveDocument.name ); | ||
var reg = new RegExp( "^[ \\t]*" + cMark ) | var reg = new RegExp( "^[ \\t]*" + cMark ) | ||
var sel = Editor.ActiveDocument.Selection; | var sel = Editor.ActiveDocument.Selection; | ||
| 16行目: | 19行目: | ||
sel.EndOfLine( true, mePosLogical ); | sel.EndOfLine( true, mePosLogical ); | ||
// 上二行とどちらがいいか? | // 上二行とどちらがいいか? | ||
// sel.SetActivePoint( mePosLogical, document.GetLine( by, 0 ).length + 1, by, true ); | //sel.SetActivePoint( mePosLogical, document.GetLine( by, 0 ).length + 1, by, true ); | ||
| 31行目: | 34行目: | ||
sel.Text = s.join( "\n" ); | sel.Text = s.join( "\n" ); | ||
sel.SetActivePoint( mePosLogical, 1, ty, false ) | sel.SetActivePoint( mePosLogical, 1, ty, false ) | ||
function commentMark( filename ){ | |||
var f = filename.split( "\\" ).pop().split( "." ); | |||
var fext = ( f.length >= 2 ) ? f.slice( -1 ).join( "" ).toLowerCase() : "" ; | |||
switch( fext ){ | |||
case "js" : return "//"; | |||
default : "//"; | |||
} | |||
} | |||
</pre> | </pre> | ||
2013年3月27日 (水) 09:27時点における版
- コメントマークの付け外しをするマクロです。
- js以外の拡張子に対応させる時は、最後の関数に追加してください。
// コメントマーク.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 ){
var f = filename.split( "\\" ).pop().split( "." );
var fext = ( f.length >= 2 ) ? f.slice( -1 ).join( "" ).toLowerCase() : "" ;
switch( fext ){
case "js" : return "//";
default : "//";
}
}
スポンサーリンク