Mery本体のバージョンチェック
ナビゲーションに移動
検索に移動
Mery のバージョンがマクロの要件以上かチェックします。
Mery の更新状態を確認(最新版を確認)するマクロではありません。
用途として、「ベータ版」で新設されたメソッドやプロパティを使用するさいに「正式版」や古いベータ版などでのエラー回避を想定したものです。
VersionCheck() 関数[編集]
- 組み込み関数 VersionCheck()
マクロを動作させるうえでの必要条件として Mery 本体のバージョンチェックをおこないます。
要件以上のバージョンであれば true、要件を満たさなければ false を返します。
組み込み関数本体 を任意のマクロのソースコード内にペーストして使用します。
使い方は 使用例 を参考にしてください。
ソースコード[編集]
// #title = "Mery のバージョンチェック" /** * 組み込み関数 VersionCheck( versionStr ) * Mery 本体が引数で指定したバージョン以上かチェックする( e.g. "2.7.0" ) * 戻り値は、真偽値 true/false */
function VersionCheck( versionStr ) {
var Pad2 = function( string ) {
return string.replace( /[0-9]+/g , function( $0 ) {
return $0.length < 2 ? "0" + $0 : $0;
} );
}
var editorVer = Number( Pad2( editor.Version ).replace( /\./g, "" ).slice( 0, 6 ) );
var requirement = Number( Pad2( versionStr ).replace( /\./g, "" ).slice( 0, 6 ) );
return ( editorVer >= requirement );
}
使い方[編集]
/** * 【使い方】 * * 要件以上のバージョンであればメインのコードを実行し * 要件未満のバージョンであれば別のコードを実行する * * ※引数に指定するバージョンNo.は "ダブルクオート" で囲うこと */
// 例1 Begin/EndUndoGroup() メソッドを使えるのは ver 2.7.0 以降
// 文書の先頭/末尾に <html> </html> 、改行部分に <br/> を挿入する
if ( VersionCheck( "2.7.0" ) ) {
// ブックマーク設定を維持して置換
BeginUndoGroup();
document.selection.Replace( "\n", "<br/>\n", meFindReplaceRegExp + meReplaceAll );
document.selection.StartOfDocument();
document.selection.Text = "<html>\n";
document.selection.EndOfDocument();
document.selection.Text = "\n</html>";
EndUndoGroup();
}
else {
var confirmStr = "Mery 2.7.0 以上でないとブックマーク設定がふっ飛びます。"
+ "\n\n実行しますか?";
if ( Confirm( confirmStr ) ) {
// ブックマーク設定を無視して一括置換
document.Text = "<html>\n" + document.Text.replace( /$/gm, "<br/>" ) + "\n</html>";
}
}
// Begin/EndUndoGroup() のみを囲うだけでもよいが、古いバージョンでマクロを実行するとアンドゥするとき面倒なことに… if ( VersionCheck( "2.7.0" ) ) { BeginUndoGroup(); }
// 例2 ChangeCase() メソッドで定数 meCaseCapitalize を使えるのは ver 2.6.10 以降
if ( document.Selection.IsEmpty ) {
document.selection.SelectLine();
}
if ( VersionCheck( "2.6.10" ) ) {
// 単語の最初の文字を大文字に変換
document.selection.ChangeCase( meCaseCapitalize );
}
else {
// 小文字に変換
document.selection.ChangeCase( meCaseLowerCase );
Status = "小文字でごめん。";
}
スポンサーリンク