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

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


== ダウンロード ==
== ダウンロード ==
[[ファイル:折り返しトグル切り替えセット.zip]] (※Bleat版 2019/02/13)<br>
[[ファイル:折り返しトグル切り替えセット.zip]] (※Bleat版 2019/02/13)<br>
[[ファイル:折り返しトグル切り替え.zip]] (アイコン入り ※sukemaru版 2020/03/15 更新)
[[ファイル:折り返しトグル切り替え.zip]] (アイコン入り ※sukemaru版 2020/10/30 更新)


'''内容'''
'''内容'''
----
----
Bleat版
Bleat版
* 折り返しトグル切り替えA.js : 折り返さない⇔指定文字数で折り返しのスクリプト
* 折り返しトグル切り替えA.js : 折り返さない ⇔ 指定文字数で折り返し のスクリプト
* 折り返しトグル切り替えB.js : 折り返さない⇔ウィンドウ端で折り返しのスクリプト
* 折り返しトグル切り替えB.js : 折り返さない ⇔ ウィンドウ端で折り返し のスクリプト
* 折り返しトグル切り替えC.js : 指定文字数で折り返し⇔ウィンドウ端で折り返しのスクリプト
* 折り返しトグル切り替えC.js : 指定文字数で折り返し ⇔ ウィンドウ端で折り返し のスクリプト
----
----
sukemaru版
sukemaru版
* 折り返しトグル切り替えD.js : 3つの折り返しモードを順々にトグルするスクリプト <br> (折り返さない → 指定文字数で折り返し → ウインドウの右端で折り返し)
* 折り返しトグル切り替えD.js : 3つの折り返しモードを順々にトグルするスクリプト <br> (折り返さない → 指定文字数で折り返し → ウインドウの右端で折り返し)
: <span style="color:#c00;">※ Mery ver 3.0.0 以降であれば「includeライブラリ」不要</span>
: <span style="color:#c00;">※ Mery ver 3.0.0 以降であれば「includeライブラリ」不要</span> (設定ファイルを作らない)
----
----


109行目: 109行目:


// ※ Mery ver 2.8.x 以下のばあい、要:includeライブラリ(外部に設定ファイルを生成する)
// ※ Mery ver 2.8.x 以下のばあい、要:includeライブラリ(外部に設定ファイルを生成する)
//   ver 3.0.0 以上のばあいは、 #include "include/IO.js"  の行を削除可(includeライブラリ:不要)
// ver 3.0.0 以上のばあいは、 #include "include/IO.js"  の行を削除可(includeライブラリ:不要)
// ※ ver 3.1.0a 以上のばあいは、文書ごとに折り返し方法をトグル切り替え


/**
// ---------- ▼ Mery ver 3.1.0a 以降 ▼ ---------- //
* ・折り返さない → 指定文字数で折り返し → ウインドウ右端で折り返し
*  を順々にトグル切り替えする。
*  ひとつのショートカットキー/ツールバーアイコンで 3 in 1 トグル操作可
*
* ・このマクロで折り返し方法を切り替えた場合は
*  順番どおりにひとつずつ切り替えて、設定を JSON ファイルまたはメモリ領域に保存する。
*
*  次にこのマクロを実行したさいには ...
*  ・最後に JSON ファイルに書き込まれた状態をもとにトグル切り替えする(~ Mery 2.8.x)。
*  ・このマクロ用の記憶領域に書き込まれた状態をもとにトグル切り替えする
*    (Mery 3.0.0 ~ ※Mery.exe のプロセス再起動ごとに揮発)。
*
* ※ Mery のオプションパネルや [表示] メニュー、標準ツールバーアイコン、
*  または標準ショートカットキー(Ctrl+1 ~ Ctrl+3)等から切り替えした場合は
*  折り返し方法の状態は保存/参照されない。
* ----------------------------------------------------------------------------
*/


var setting = {};
// [表示] メニュー内の折り返し方法のチェック状態に応じてトグル切り替え
if ( "QueryStatusByID" in editor
&& typeof editor.QueryStatusByID( 2148 ) === "number" ) {


// Mery.exe のバージョン確認
if ( editor.QueryStatusByID( 2148 ) === 3 ) {
var meryVer = Number( editor.Version.replace( /[0-9]+/g , function( digit ) {
editor.ExecuteCommandByID( MEID_VIEW_WRAP_NONE = 2146 );
                        return digit.length < 2 ? "0" + digit : digit;
Status = " 折り返さない";
                    } ).split( "\." ).join( "" ) );
}
 
else if ( editor.QueryStatusByID( 2146 ) === 3 ) {
// 動作方式: TAGモード (Mery 3.0.0 ~)  /  JSONモード (~ Mery 2.8.x  ※外部ファイル読み書き)
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_CHAR = 2147 );
var tagEnable = ( meryVer >= 30000 );
Status = " 指定文字数で折り返し";
 
}
if ( tagEnable ) {
else if ( editor.QueryStatusByID( 2147 ) === 3 ) {
var tagKey = "wrapModeToggle_D";
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_WINDOW = 2148 );
if ( editor.Tag.exists( tagKey ) ) {
Status = " ウインドウの右端で折り返し";
setting.wrapMode = editor.Tag( tagKey );
}
}
}
else {
  setting = IO.Deserialize( setting ); // JSON 読み込み
}
}


if ( setting.wrapMode == 0 ) {
// ---------- ▼ Mery ver 3.0.0 以降の Tag プロパティ対応バージョン ▼ ---------- //
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_CHAR = 2147 );
// ※ Mery 2.x.x では要 include ライブラリ
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 {
else {
IO.Serialize( setting ); // JSON 書き込み
// 動作方式
// Status += "\t (折り返しトグル切り替え: JSONモード)";
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>
</source>
178行目: 178行目:
== メモ ==
== メモ ==
* 2019/02/19 (sukemaru) <br> sukemaru版を追加させていただきました。マテリアルアイコンの「折り返さない」と「指定文字数で折り返し」用を翻案した「マテリアルデザインっぽいアイコン」2点をいれてあります。Bleat版とあわせて、お好みのスクリプトと組み合わせてお使いください。
* 2019/02/19 (sukemaru) <br> sukemaru版を追加させていただきました。マテリアルアイコンの「折り返さない」と「指定文字数で折り返し」用を翻案した「マテリアルデザインっぽいアイコン」2点をいれてあります。Bleat版とあわせて、お好みのスクリプトと組み合わせてお使いください。
* 2020/03/15 (sukemaru版) <br> Mery Ver 3.0.0 以降の Tag プロパティに対応。
* 2020/10/30 (sukemaru版) <br> Mery アルファ版 Ver 3.1.0 から折り返しの切り替えが文書単位に変更になったので、それにも対応。

2020年10月30日 (金) 01:49時点における版

概要

好みの折り返し方式をトグル切り替えできるようにするマクロ。組み合わせは3+1種類。
利点は覚えるショートカットキーがひとつ減るくらいです。

ダウンロード

ファイル:折り返しトグル切り替えセット.zip (※Bleat版 2019/02/13)
ファイル:折り返しトグル切り替え.zip (アイコン入り ※sukemaru版 2020/10/30 更新)

内容


Bleat版

  • 折り返しトグル切り替えA.js : 折り返さない ⇔ 指定文字数で折り返し のスクリプト
  • 折り返しトグル切り替えB.js : 折り返さない ⇔ ウィンドウ端で折り返し のスクリプト
  • 折り返しトグル切り替えC.js : 指定文字数で折り返し ⇔ ウィンドウ端で折り返し のスクリプト

sukemaru版

  • 折り返しトグル切り替えD.js : 3つの折り返しモードを順々にトグルするスクリプト
    (折り返さない → 指定文字数で折り返し → ウインドウの右端で折り返し)
※ Mery ver 3.0.0 以降であれば「includeライブラリ」不要 (設定ファイルを作らない)


各スクリプト実行時にMacroSettingsフォルダ(includeライブラリで用意されているもの)に設定ファイルが自動作成されます。
(例)折り返しトグル切り替えAを実行で、設定ファイル「折り返しトグル切り替えA.json」が作成

  • ポータブル版では Mery 本体フォルダ内の Macros\MacroSettings\折り返しトグル切り替えX.json
  • インストーラ/ZIP版では %APPDATA% フォルダ内の Mery\MacroSettings\折り返しトグル切り替えX.json

使用上の注意

設定ファイルの管理にincludeライブラリの関数 を利用しています。 このマクロの前に導入してください。
また、動作保証がないMeryの機能IDを指定して直接呼び出すメソッドを使用しています。

本体の仕様変更で使えなくなっても泣かない。

折り返さない⇔指定文字数で折り返し

#include "include/IO.js"
#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);	// 指定文字数で折り返す
}

折り返さない⇔ウィンドウ端で折り返し

#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);	// ウィンドウの右端で折り返す
}

指定文字数で折り返し⇔ウィンドウ端で折り返し

#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);	// 指定文字数で折り返す
} else {	
	editor.ExecuteCommandByID(2148);	// ウィンドウの右端で折り返す
}

3つの折り返しモードを順々にトグルする

※ Mery ver 3.0.0 以上で仕様する場合は #include "include/IO.js" の行を削除すること

#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ライブラリ:不要)
// ※ ver 3.1.0a 以上のばあいは、文書ごとに折り返し方法をトグル切り替え

// ---------- ▼ Mery ver 3.1.0a 以降 ▼ ---------- //

// [表示] メニュー内の折り返し方法のチェック状態に応じてトグル切り替え
if ( "QueryStatusByID" in editor
&& typeof editor.QueryStatusByID( 2148 ) === "number" ) {

	if ( editor.QueryStatusByID( 2148 ) === 3 ) {
		editor.ExecuteCommandByID( MEID_VIEW_WRAP_NONE = 2146 );
		Status = " 折り返さない";
	}
	else if ( editor.QueryStatusByID( 2146 ) === 3 ) {
		editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_CHAR = 2147 );
		Status = " 指定文字数で折り返し";
	}
	else if ( editor.QueryStatusByID( 2147 ) === 3 ) {
		editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_WINDOW = 2148 );
		Status = " ウインドウの右端で折り返し";
	}
}

// ---------- ▼ Mery ver 3.0.0 以降の Tag プロパティ対応バージョン ▼ ---------- //
// ※ Mery 2.x.x では要 include ライブラリ

else {
	// 動作方式
	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モード)";
	}
}

メモ

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