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

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


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


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


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


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


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


<source lang="javascript">
=== 設定方法 ===
#include "include/IO.js"
<syntaxhighlight lang="javascript">
#title="折り返し切替B"
const n = [1,2];
#tooltip = "折り返さない⇔ウィンドウ端で折り返し"
</syntaxhighlight>
var data = {count:1};
data = IO.Deserialize(data);
data.count++;


if(data.count > 2){
4行目の配列内で折り返しを指定できます。折り返し方法に対応した番号を「半角数字」で書き換えてください。
var data = {count:1};
}
IO.Serialize(data);


if ( ( data.count % 2 ) != 0 ) {
半角数字以外の文字や [3,3] など同じ折り返し方法を指定するとエラーになります。
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つの折り返しモードを順々にトグルする ==
=== 設定方法 ===
<source lang="javascript">
<syntaxhighlight lang="javascript">
#include "include/IO.js"
const n = [1,2,3];
#title="折り返し切替D"
</syntaxhighlight>
#tooltip = "折り返しなし/指定文字数/ウインドウ右端"
// #icon = "wrap_mode[2].ico"
 
/**
* ・折り返さない → 指定文字数で折り返し → ウインドウ右端で折り返し
*  を順にトグル切り替えする。
*  ひとつのショートカットキー/ツールバーアイコンで操作可。
* ・このマクロから折り返し方法を切り替えた場合は
*  順番どおりににひとつずつ切り替えて、設定を JSON ファイルに保存する。
* ・Mery のオプションパネルや [表示] メニュー、標準ツールバーアイコン、
*  または標準ショートカットキー(Ctrl+1 ~ Ctrl+3)から切り替えした場合は
*  折り返し方法の状態が JSON ファイルに保存されないので、
*  次にこのマクロを実行したさいには
*  最後に JSON ファイルに書き込まれた状態をもとにトグル切り替えする。
*/
 
var setting = {};
setting = IO.Deserialize( setting ); // JSON 読み込み
 
if ( setting.wrapMode == 0 ) {
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_CHAR = 2147 );
Status = "指定文字数で折り返し";
setting.wrapMode = 1;
}
else if ( setting.wrapMode == 1 ) {
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_WINDOW = 2148 );
Status = "ウインドウの右端で折り返し";
setting.wrapMode = 2;
}
else {
editor.ExecuteCommandByID( MEID_VIEW_WRAP_NONE = 2146 );
Status = "折り返さない";
setting.wrapMode = 0;
}


IO.Serialize( setting ); // JSON 書き込み
4行目の配列で [3,2,1] にすると、逆順でトグル切り替えできます。
</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)
    • 公開
スポンサーリンク