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

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


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


'''内容'''
== 注意事項 ==
----
* 動作確認は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>
 
== 折り返さない⇔ウィンドウ端で折り返し ==
 
<source lang="javascript">
#include "include/IO.js"
#title="折り返し切替B"
#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(2148); // ウィンドウの右端で折り返す
}
}
</source>
</syntaxhighlight>
 
== 指定文字数で折り返し⇔ウィンドウ端で折り返し ==
<source lang="javascript">
#include "include/IO.js"
#title="折り返し切替C"
#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(2147); // 指定文字数で折り返す
<syntaxhighlight lang="javascript">
} else {
const n = [1,2];
editor.ExecuteCommandByID(2148); // ウィンドウの右端で折り返す
</syntaxhighlight>
}
</source>


== 3つの折り返しモードを順々にトグルする ==
4行目の配列内で折り返しを指定できます。折り返し方法に対応した番号を「半角数字」で書き換えてください。
<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ライブラリ(外部に設定ファイルを生成する)
半角数字以外の文字や [3,3] など同じ折り返し方法を指定するとエラーになります。
// ※ ver 3.0.0 以上のばあいは、 #include "include/IO.js"  の行を削除可(includeライブラリ:不要)
// ※ ver 3.1.0a 以上のばあいは、文書ごとに折り返し方法をトグル切り替え


// ---------- ▼ Mery ver 3.1.0a 以降 ▼ ---------- //
== 3種トグル切り替え ==
<syntaxhighlight lang="javascript" copy>
#title="折り返しトグル切り替えZ"


// [表示] メニュー内の折り返し方法のチェック状態に応じてトグル切り替え
//-----------------------------------設定------------------------------------
if ( "QueryStatusByID" in editor
const n = [1,2,3]; // 折り返さない→指定文字数→ウィンドウ右端 のトグル
&& typeof editor.QueryStatusByID( 2148 ) === "number" ) {
// const n = [3,2,1]; // ウィンドウ右端→指定文字数→折り返さない のトグル


if ( editor.QueryStatusByID( 2148 ) === 3 ) {
//-------------------------------ここから本体--------------------------------
editor.ExecuteCommandByID( MEID_VIEW_WRAP_NONE = 2146 );
if(n.join("")==="123" || n.join("")==="321" ) {
Status = " 折り返さない";
if ( editor.QueryStatusByID( 2145 + n[2] ) === 3 ) {
}
editor.ExecuteCommandByID( 2145 + n[0] );
else if ( editor.QueryStatusByID( 2146 ) === 3 ) {
} else if ( editor.QueryStatusByID( 2145 + n[0] ) === 3 ) {
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_CHAR = 2147 );
editor.ExecuteCommandByID( 2145 + n[1] );
Status = " 指定文字数で折り返し";
} else if ( editor.QueryStatusByID( 2145 + n[1] ) === 3 ) {
}
editor.ExecuteCommandByID( 2145 + n[2] );
else if ( editor.QueryStatusByID( 2147 ) === 3 ) {
}
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_WINDOW = 2148 );
} else  {
Status = " ウインドウの右端で折り返し";
alert("折り返し指定が不正です");
}
}
}
</syntaxhighlight>


// ---------- ▼ Mery ver 3.0.0 以降の Tag プロパティ対応バージョン ▼ ---------- //
=== 設定方法 ===
// ※ Mery 2.x.x では要 include ライブラリ
<syntaxhighlight lang="javascript">
const n = [1,2,3];
</syntaxhighlight>


else {
4行目の配列で [3,2,1] にすると、逆順でトグル切り替えできます。
// 動作方式
var tagEnable = ( "Tag" in window ); // TAGモード (Mery 3.0.0 ~)
var ioEnable  = ( typeof IO == "object" ); // JSONモード (~ Mery 2.8.x  ※外部ファイル読み書き)
var tagKey    = "wrapModeToggle_D";
var setting  = {};
if ( tagEnable && editor.Tag.exists( tagKey ) ) {
setting.wrapMode = editor.Tag( tagKey );
}
else if ( ioEnable ) {
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 if ( ioEnable ) {
IO.Serialize( setting ); // JSON 書き込み
// Status += "\t (折り返しトグル切り替え: JSONモード)";
}
}
</source>


== メモ ==
== 変更履歴 ==
* 2019/02/19 (sukemaru) <br> sukemaru版を追加させていただきました。マテリアルアイコンの「折り返さない」と「指定文字数で折り返し」用を翻案した「マテリアルデザインっぽいアイコン」2点をいれてあります。Bleat版とあわせて、お好みのスクリプトと組み合わせてお使いください。
* 1.0.1 (2021-02-13)
* 2020/03/15 (sukemaru版) <br> Mery Ver 3.0.0 以降の Tag プロパティに対応。
** Mery ver3.1以降用にスクリプト刷新
* 2020/10/30 (sukemaru版) <br> Mery アルファ版 Ver 3.1.0 から折り返しの切り替えが文書単位に変更になったので、それにも対応。
** 3種のトグル切り替えスクリプトを追加
* 1.0.0 (2019-02-13)
** 公開
スポンサーリンク