「編集モードの自動選択」の版間の差分
細編集の要約なし |
→sukemaru 版2: 「サブマクロ」を追加。ZIP を更新 |
||
| 152行目: | 152行目: | ||
= sukemaru | = 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 更新) | |||
---- | ---- | ||
== メインマクロ == | |||
ソースコード内の「ファイル名」や「編集モード名」などは サンプル ですので、ご利用の環境にあわせて適宜書き換えてください。 | ソースコード内の「ファイル名」や「編集モード名」などは サンプル ですので、ご利用の環境にあわせて適宜書き換えてください。 | ||
<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" | ||
// または | // または | ||
// "書き換え禁止で開く" | // "書き換え禁止で開く" | ||
| 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> | ||
スポンサーリンク