「折り返しトグル切り替え」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Sukemaru (トーク | 投稿記録)
sukemaru版を更新
MSY-07 (トーク | 投稿記録)
SyntaxHighlightにcopyの追加
 
(3人の利用者による、間の14版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
好みの折り返し方式をトグル切り替えできるようにするマクロ。組み合わせは3種類。<br>
好みの折り返し方式をトグル切り替えできるようにするマクロです。
利点は覚えるショートカットキーがひとつ減るくらいです。<br>


== ダウンロード ==
利点は覚えるショートカットキーがひとつ減るくらいです。
[[ファイル:折り返しトグル切り替えセット.zip]] (※Bleat版 2019/02/13)<br>
[[ファイル:折り返しトグル切り替え.zip]] (アイコン入り ※sukemaru版 2020/03/15 更新)


'''内容'''
== 注意事項 ==
----
* 動作確認はMery Ver 3.1.0以降のアルファ版で行いました。
Bleat版
* 今回の更新で[[includeライブラリ]]が不要になりました。
* 折り返しトグル切り替えA.js : 折り返さない⇔指定文字数で折り返しのスクリプト
** 以前から使用している方は、MacroSettingsフォルダ内の設定ファイルを削除してください。そのままでも特に影響はありません。
* 折り返しトグル切り替えB.js : 折り返さない⇔ウィンドウ端で折り返しのスクリプト
*** (例)折り返しトグル切り替えAを実行で、設定ファイル「折り返しトグル切り替えA.json」が作成。
* 折り返しトグル切り替えC.js : 指定文字数で折り返し⇔ウィンドウ端で折り返しのスクリプト
* サポート対象外のQueryStatusByIDメソッドとExecuteCommandByIDメソッドを使用しています。仕様変更で使えなくなっても泣かない。
----
sukemaru版
* 折り返しトグル切り替えD.js : 3つの折り返しモードを順々にトグルするスクリプト <br> (折り返さない → 指定文字数で折り返し → ウインドウの右端で折り返し)
: <span style="color:#c00;">※ Mery ver 3.0.0 以降であれば「includeライブラリ」不要</span>
----


== 2種トグル切り替え ==
<syntaxhighlight lang="javascript" copy>
#title="折り返しトグル切り替え"


各スクリプト実行時にMacroSettingsフォルダ(includeライブラリで用意されているもの)に設定ファイルが自動作成されます。<br>
//-----------------------------------設定------------------------------------
(例)折り返しトグル切り替えAを実行で、設定ファイル「折り返しトグル切り替えA.json」が作成 <br>
const n = [1,2]; // (例)折り返さない⇔指定文字数で折り返し
* ポータブル版では Mery 本体フォルダ内の Macros\MacroSettings\折り返しトグル切り替えX.json <br>
// 1:折り返さない 2:指定文字数 3:右端
* インストーラ/ZIP版では %APPDATA% フォルダ内の Mery\MacroSettings\折り返しトグル切り替えX.json


== 使用上の注意 ==
//-------------------------------ここから本体--------------------------------
<div class="warningbox">
const m = [1,2,3];
設定ファイルの管理に[[includeライブラリ]]の関数 を利用しています。
if(m.indexOf(n[0]) >= 0 && m.indexOf(n[1]) >= 0 && n[0] !== n[1] ) {
このマクロの前に導入してください。<br>
if ( editor.QueryStatusByID( 2145 + n[0] ) !== 3 ) {
また、動作保証がないMeryの機能IDを指定して直接呼び出すメソッドを使用しています。<br>
editor.ExecuteCommandByID( 2145 + n[0] );
本体の仕様変更で使えなくなっても泣かない。</div>
} else {
 
editor.ExecuteCommandByID( 2145 + n[1] );
== 折り返さない⇔指定文字数で折り返し ==
}
<source lang="javascript">
} else {
#include "include/IO.js"
alert("折り返し指定が不正です");
#title="折り返し切替A"
#tooltip = "折り返さない⇔指定文字数で折り返し"
var data = {count:1};
data = IO.Deserialize(data);
data.count++;
 
if(data.count > 2){
var data = {count:1};
}
IO.Serialize(data);
 
if ( ( data.count % 2 ) != 0 ) {
editor.ExecuteCommandByID(2146); // 折り返さない
} else {
editor.ExecuteCommandByID(2147); // 指定文字数で折り返す
}
}
</source>
</syntaxhighlight>


== 折り返さない⇔ウィンドウ端で折り返し ==
=== 設定方法 ===
<syntaxhighlight lang="javascript">
const n = [1,2];
</syntaxhighlight>


<source lang="javascript">
4行目の配列内で折り返しを指定できます。折り返し方法に対応した番号を「半角数字」で書き換えてください。
#include "include/IO.js"
#title="折り返し切替B"
#tooltip = "折り返さない⇔ウィンドウ端で折り返し"
var data = {count:1};
data = IO.Deserialize(data);
data.count++;


if(data.count > 2){
半角数字以外の文字や [3,3] など同じ折り返し方法を指定するとエラーになります。
var data = {count:1};
}
IO.Serialize(data);
 
if ( ( data.count % 2 ) != 0 ) {
editor.ExecuteCommandByID(2146); // 折り返さない
} else {
editor.ExecuteCommandByID(2148); // ウィンドウの右端で折り返す
}
</source>


== 指定文字数で折り返し⇔ウィンドウ端で折り返し ==
== 3種トグル切り替え ==
<source lang="javascript">
<syntaxhighlight lang="javascript" copy>
#include "include/IO.js"
#title="折り返しトグル切り替えZ"
#title="折り返し切替C"
#tooltip = "指定文字数で折り返し⇔ウィンドウ端で折り返し"
var data = {count:1};
data = IO.Deserialize(data);
data.count++;


if(data.count > 2){
//-----------------------------------設定------------------------------------
var data = {count:1};
const n = [1,2,3]; // 折り返さない→指定文字数→ウィンドウ右端 のトグル
}
// const n = [3,2,1]; // ウィンドウ右端→指定文字数→折り返さない のトグル
IO.Serialize(data);


if ( ( data.count % 2 ) != 0 ) {
//-------------------------------ここから本体--------------------------------
editor.ExecuteCommandByID(2147); // 指定文字数で折り返す
if(n.join("")==="123" || n.join("")==="321" ) {
} else {
if ( editor.QueryStatusByID( 2145 + n[2] ) === 3 ) {
editor.ExecuteCommandByID(2148); // ウィンドウの右端で折り返す
editor.ExecuteCommandByID( 2145 + n[0] );
} else if ( editor.QueryStatusByID( 2145 + n[0] ) === 3 ) {
editor.ExecuteCommandByID( 2145 + n[1] );
} else if ( editor.QueryStatusByID( 2145 + n[1] ) === 3 ) {
editor.ExecuteCommandByID( 2145 + n[2] );
}
} else  {
alert("折り返し指定が不正です");
}
}
</source>
</syntaxhighlight>
 
== 3つの折り返しモードを順々にトグルする ==
<span style="color:#c00;">※ Mery ver 3.0.0 以上</span>で仕様する場合は <syntaxhighlight lang="javascript" inline>#include "include/IO.js"</syntaxhighlight> の行を削除すること</span>
<source lang="javascript">
#include "include/IO.js"
#title="折り返し切替D"
#tooltip = "折り返しなし/指定文字数/ウインドウ右端"
// #icon = "wrap_mode[2].ico"
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",285


// ※ Mery ver 2.8.x 以下のばあい、要:includeライブラリ(外部に設定ファイルを生成する)
=== 設定方法 ===
//    ver 3.0.0 以上のばあいは、 #include "include/IO.js"  の行を削除可(includeライブラリ:不要)
<syntaxhighlight lang="javascript">
const n = [1,2,3];
</syntaxhighlight>


/**
4行目の配列で [3,2,1] にすると、逆順でトグル切り替えできます。
* ・折り返さない → 指定文字数で折り返し → ウインドウ右端で折り返し
*  を順々にトグル切り替えする。
*  ひとつのショートカットキー/ツールバーアイコンで 3 in 1 トグル操作可
*
* ・このマクロで折り返し方法を切り替えた場合は
*  順番どおりにひとつずつ切り替えて、設定を JSON ファイルまたはメモリ領域に保存する。
*
*  次にこのマクロを実行したさいには ...
*  ・最後に JSON ファイルに書き込まれた状態をもとにトグル切り替えする(~ Mery 2.8.x)。
*  ・このマクロ用の記憶領域に書き込まれた状態をもとにトグル切り替えする
*    (Mery 3.0.0 ~ ※Mery.exe のプロセス再起動ごとに揮発)。
*
* ※ Mery のオプションパネルや [表示] メニュー、標準ツールバーアイコン、
*  または標準ショートカットキー(Ctrl+1 ~ Ctrl+3)等から切り替えした場合は
*  折り返し方法の状態は保存/参照されない。
* ----------------------------------------------------------------------------
*/
 
var setting = {};
 
// Mery.exe のバージョン確認
var meryVer = Number( editor.Version.replace( /[0-9]+/g , function( digit ) {
                        return digit.length < 2 ? "0" + digit : digit;
                    } ).split( "\." ).join( "" ) );
 
// 動作方式: TAGモード (Mery 3.0.0 ~)  /  JSONモード (~ Mery 2.8.x  ※外部ファイル読み書き)
var tagEnable = ( meryVer >= 30000 );
 
if ( tagEnable ) {
var tagKey = "wrapModeToggle_D";
if ( editor.Tag.exists( tagKey ) ) {
setting.wrapMode = editor.Tag( tagKey );
}
}
else {
  setting = IO.Deserialize( setting ); // JSON 読み込み
}
 
if ( setting.wrapMode == 0 ) {
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_CHAR = 2147 );
setting.wrapMode = 1;
Status = " 指定文字数で折り返し";
}
else if ( setting.wrapMode == 1 ) {
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_WINDOW = 2148 );
setting.wrapMode = 2;
Status = " ウインドウの右端で折り返し";
}
else /* ( setting.wrapMode == 2 ) */ {
editor.ExecuteCommandByID( MEID_VIEW_WRAP_NONE = 2146 );
setting.wrapMode = 0;
Status = " 折り返さない";
}
 
if ( tagEnable ) {
editor.Tag( tagKey ) = setting.wrapMode;
// Status += "\t (折り返しトグル切り替え: TAGモード)";
}
else {
IO.Serialize( setting ); // JSON 書き込み
// Status += "\t (折り返しトグル切り替え: JSONモード)";
}
</source>


== メモ ==
== 変更履歴 ==
* 2019/02/19 (sukemaru) <br> sukemaru版を追加させていただきました。マテリアルアイコンの「折り返さない」と「指定文字数で折り返し」用を翻案した「マテリアルデザインっぽいアイコン」2点をいれてあります。Bleat版とあわせて、お好みのスクリプトと組み合わせてお使いください。
* 1.0.1 (2021-02-13)
** Mery ver3.1以降用にスクリプト刷新
** 3種のトグル切り替えスクリプトを追加
* 1.0.0 (2019-02-13)
** 公開

2025年6月30日 (月) 00:55時点における最新版

概要[編集]

好みの折り返し方式をトグル切り替えできるようにするマクロです。

利点は覚えるショートカットキーがひとつ減るくらいです。

注意事項[編集]

  • 動作確認はMery Ver 3.1.0以降のアルファ版で行いました。
  • 今回の更新でincludeライブラリが不要になりました。
    • 以前から使用している方は、MacroSettingsフォルダ内の設定ファイルを削除してください。そのままでも特に影響はありません。
      • (例)折り返しトグル切り替えAを実行で、設定ファイル「折り返しトグル切り替えA.json」が作成。
  • サポート対象外のQueryStatusByIDメソッドとExecuteCommandByIDメソッドを使用しています。仕様変更で使えなくなっても泣かない。

2種トグル切り替え[編集]

#title="折り返しトグル切り替え"

//-----------------------------------設定------------------------------------
const n = [1,2]; // (例)折り返さない⇔指定文字数で折り返し
// 1:折り返さない 2:指定文字数 3:右端

//-------------------------------ここから本体--------------------------------
const m = [1,2,3];
if(m.indexOf(n[0]) >= 0 && m.indexOf(n[1]) >= 0 && n[0] !== n[1] ) {
	if ( editor.QueryStatusByID( 2145 + n[0] ) !== 3 ) {
		editor.ExecuteCommandByID( 2145 + n[0] );
		} else {
		editor.ExecuteCommandByID( 2145 + n[1] );
		}
	} else {
		alert("折り返し指定が不正です");
}

設定方法[編集]

const n = [1,2];

4行目の配列内で折り返しを指定できます。折り返し方法に対応した番号を「半角数字」で書き換えてください。

半角数字以外の文字や [3,3] など同じ折り返し方法を指定するとエラーになります。

3種トグル切り替え[編集]

#title="折り返しトグル切り替えZ"

//-----------------------------------設定------------------------------------
const n = [1,2,3];	// 折り返さない→指定文字数→ウィンドウ右端 のトグル
// const n = [3,2,1];	// ウィンドウ右端→指定文字数→折り返さない のトグル

//-------------------------------ここから本体--------------------------------
if(n.join("")==="123" || n.join("")==="321" ) {
	if ( editor.QueryStatusByID( 2145 + n[2] ) === 3 ) {
		editor.ExecuteCommandByID( 2145 + n[0] );
	} else if ( editor.QueryStatusByID( 2145 + n[0] ) === 3 ) {
		editor.ExecuteCommandByID( 2145 + n[1] );
		} else if ( editor.QueryStatusByID( 2145 + n[1] ) === 3 ) {
		editor.ExecuteCommandByID( 2145 + n[2] );
		}
} else  {
	alert("折り返し指定が不正です");
}

設定方法[編集]

const n = [1,2,3];

4行目の配列で [3,2,1] にすると、逆順でトグル切り替えできます。

変更履歴[編集]

  • 1.0.1 (2021-02-13)
    • Mery ver3.1以降用にスクリプト刷新
    • 3種のトグル切り替えスクリプトを追加
  • 1.0.0 (2019-02-13)
    • 公開
スポンサーリンク