「文書が変更されていなければ変更マークを消す」の版間の差分
ナビゲーションに移動
検索に移動
注意事項の追加 |
注意書きの修正 |
||
| 1行目: | 1行目: | ||
この機能はVer 3.0. | この機能はVer 3.0.0でMery本体に実装されたため、それ以降のバージョンを使用しているユーザはこのマクロを導入する必要はありません。 | ||
== 概要 == | == 概要 == | ||
2023年7月2日 (日) 01:05時点における版
この機能はVer 3.0.0でMery本体に実装されたため、それ以降のバージョンを使用しているユーザはこのマクロを導入する必要はありません。
概要
Meryでは一度編集してUndo等で元の状態に戻しても、変更マーク(タブに表示される「*」マーク)が消えない仕様になっています。 このマクロを使用すると、結果変更されていないタブの変更マークを消すことができます。
少し便利な Undo/RedoでもUndo/Redoのタイミングで変更マークを消すことができますが、Undo/Redoの度に変更されているかチェックするには私のPCでは少し重かったため任意のタイミングで実行できるように切り出しました。
注意点
includeライブラリのIO.jsを使用しています。 このマクロを使用する前にincludeライブラリをダウンロードし、Macrosフォルダ内に配置してください。
ソースコード
#title = "文書が変更されていなければ変更マークを消す"
#include "include/IO.js"
// チェックする文書の最大文字数。マイナスを指定すると無制限。
var maxLength = 10000000;
for (var e = new Enumerator(editor.documents); !e.atEnd(); e.moveNext()) {
var d = e.item();
// 保存済みならスキップ
if (d.Saved) {
continue;
}
// 未保存はスキップ
if (!d.FullName) {
continue;
}
// サイズ制限
if (maxLength > 0 && d.Text.length > maxLength) {
continue;
}
// テキストのロード
var loadText = IO.LoadFromFile(d.FullName, d.Encoding);
// 一致していれば変更マークを消す
if (loadText === d.Text) {
d.Saved = true;
}
}
更新履歴
- 2019/03/03 初版
スポンサーリンク