「編集モードの自動選択」の版間の差分

Sukemaru (トーク | 投稿記録)
編集の要約なし
Sukemaru (トーク | 投稿記録)
sukemaru 版2: 「サブマクロ」を追加。ZIP を更新
152行目: 152行目:




= sukemaru 版2 =
= sukemaru 版2(include版) =
;ダウンロード: 「[[ファイル:編集モードの自動選択(include版).zip]]」
;ダウンロード: 「[[ファイル:編集モードの自動選択(include版).zip]]」
*2019/04/22 更新:
*2019/04/22 更新:
158行目: 158行目:
: マクロを上書き更新する場合は「Main 関数」の部分だけを上書きしてください(「設定」部分のコードには変更なし)。
: マクロを上書き更新する場合は「Main 関数」の部分だけを上書きしてください(「設定」部分のコードには変更なし)。
: おまけマクロを追加(編集モードのプロパティパネルを開く)
: おまけマクロを追加(編集モードのプロパティパネルを開く)
*2019/04/24 更新:
: サブマクロを追加(「ファイルを保存したとき」専用のイベントマクロ)


<br>
<br>
190行目: 192行目:


<b style="color:#c00;">  
<b style="color:#c00;">  
※ご利用の環境で Mery の動作が不安定になるようなら、使用を中止し、このマクロを削除してください。
※ご利用の環境で Mery の動作が不安定になる場合は、使用を中止し、このマクロを削除してください。
</b>
</b>
<br>
<br>
<br>
<br>
;ソースコード: 「[[ファイル:編集モードの自動選択(include版).zip]]」(2019/04/24 更新)
----
----
;ソースコード: 「[[ファイル:編集モードの自動選択(include版).zip]]」(2019/04/22 更新)
 
== メインマクロ ==
ソースコード内の「ファイル名」や「編集モード名」などは サンプル ですので、ご利用の環境にあわせて適宜書き換えてください。
ソースコード内の「ファイル名」や「編集モード名」などは サンプル ですので、ご利用の環境にあわせて適宜書き換えてください。
<source lang="javascript" style="height:80em; overflow:auto;">
<source lang="javascript" style="height:80em; overflow:auto;">
#title = "編集モードの自動選択"
#title = "編集モードの自動選択"
#include "include/IO.js"
#include "include/IO.js"
#include "include/MeryInfo.js"
// または
// または
// "書き換え禁止で開く"
// "書き換え禁止で開く"
421行目: 425行目:


  */
  */
</source>
== サブマクロ ==
メインマクロだけでは、「無題」ドキュメントに名前を付けて保存したあとに別のタブを 開く/閉じる と、この新規作成・保存したドキュメントはメインマクロの処理対象になり「書き換え禁止」などが適用されることがあるので、それを防ぎます。<br>
*<span style="color:#0000c0;"> マクロのカスタマイズダイアログ内の'''イベント'''設定で「'''ファイルを保存したとき'''」にチェックを付けてください。</span>
このマクロ自体は「編集モード」や「書き換え禁止」などを変更しません。<br>
「編集モードの自動選択」マクロ(include版)のファイルのリストを更新し、新規保存されたドキュメントを書きくわえます。<br>
<source lang="javascript">
#title = "編集モードの自動選択(保存)"
#include "include/IO.js"
/**
* --------------------------------------------------
* 「編集モードの自動選択」(include版)の機能補完
* sukemaru (include版 2019/04/24)
* --------------------------------------------------
* 「ファイルを保存したとき」専用のイベントマクロ。
*/
var jsonName = "編集モードの自動選択";
var setting = {};
// 前回のファイルリストを JSON から読みこむ
setting = IO.Deserialize( setting, jsonName );
var s = setting.fileList || [];
// 最新の「開いているファイル」リスト
var files = [], file, filePath;
var eCount = Editors.Count, dCount;
// 最新の「開いているファイル」のリストを生成する
for ( var ee = 0; ee < eCount; ee ++ ) {
  dCount = Editors.Item( ee ).Documents.Count;
  for ( var dd = 0; dd < dCount; dd ++ ) {
    file = Editors.Item( ee ).Documents.Item( dd );
    filePath = file.FullName || "";
    files.push( filePath );
  }
}
// 最新のファイルリストを JSON に保存する
if ( s.toString() != files.toString() ) {
  setting.fileList = files;
  IO.Serialize( setting, jsonName );
}
</source>
</source>


スポンサーリンク