「編集モードの自動選択」の版間の差分
ナビゲーションに移動
検索に移動
ページを新規作成 |
正規表現を修正(エラーが出るため) |
||
| (3人の利用者による、間の28版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | |||
拡張子で適切に判別できないファイルの「編集モード」を、ファイル名で自動割り振りします。 | |||
また、普段は再編集の必要がないファイルをファイル名で自動割り振りして「書き換え禁止」で開くようにします。 | |||
※「書き換え禁止」はMery上で編集禁止(仮ロック)にする機能で、[編集] メニューの項目「書き換え禁止」で解除できます。ファイル属性を「読み取り専用」にするわけではありません。 | |||
== 注意事項 == | |||
「ファイルを開いた時」専用のイベントマクロです([[ヘルプ:マクロ#カスタマイズ|カスタマイズ]]を参照)。 | |||
== | == コマンドラインオプション == | ||
マクロ上でMeryの[[ヘルプ:目次#コマンドラインオプション|コマンドラインオプション]]指定に相当する記述法は以下の通りになります。 | |||
# | |||
※このページのソースコードに書き足す場合は「document.」の部分は省略可。 | |||
* document.[[マクロリファレンス:Document_インターフェイス#ReadOnly プロパティ|ReadOnly]] '''= true;''' | |||
** コマンドラインオプション (<u>Mery.exe'''/r'''</u>) | |||
** 書き換え禁止に設定します | |||
* document.[[マクロリファレンス:Document_インターフェイス#Mode_プロパティ|Mode]] '''= "ModeName";''' | |||
** コマンドラインオプション (<u>Mery.exe'''/m''' ''"ModeName"''</u>) | |||
** 編集モードを指定します | |||
== ソースコード == | |||
<syntaxhighlight lang="javascript" copy> | |||
#title = "編集モード自動判別" | |||
#tooltip = "表示モード自動判別" | |||
// ----------------------------------------------------------------------------- | |||
// ファイル名に含まれる特定ワードで表示モードを変更するマクロ | |||
// イベント実行「ファイルを開いた時」または「アクティブな文書が変更された時」 | |||
// ----------------------------------------------------------------------------- | |||
const type = { | |||
n: document.Name, | |||
f: document.FullName | |||
}; | |||
//-----------------------------------設定------------------------------------ | |||
const n = type.f; // 検索対象の種類:type.n:ファイル名と拡張子 type.f:フルパス | |||
const RO = "書禁"; // 書き換え禁止フラグ名(編集モード名と被る場合に変更してください) | |||
const m = [ | |||
// [/ファイル名(正規表現可)/検索フラグ(省略可), "編集モード名(省略可)", "書禁フラグ(省略可)"], | |||
[/(readme|README)\.txt$/, "Markdown"], | |||
[/青空文庫|[\\\/]book[\\\/]/i, "書禁"], | |||
[/\\Mery\\Macros\\.+\.js$/i, "Mery_Macro_JS"], | |||
]; | |||
//-----------------------------------本体------------------------------------ | |||
for (let i = 0, imax = m.length; i < imax; i = (i + 1) | 0) { | |||
if (n.match(m[i][0])) { | |||
if (m[i][1] != RO) { | |||
editor.ActiveDocument.mode = m[i][1]; | |||
if (m[i][2] === RO) { | |||
editor.ActiveDocument.ReadOnly = true; | |||
} | |||
} else { | |||
editor.ActiveDocument.ReadOnly = true; | |||
} | |||
break; | |||
} | |||
} | } | ||
</ | </syntaxhighlight> | ||
2026年9月11日 (金) 08:23時点における最新版
概要[編集]
拡張子で適切に判別できないファイルの「編集モード」を、ファイル名で自動割り振りします。
また、普段は再編集の必要がないファイルをファイル名で自動割り振りして「書き換え禁止」で開くようにします。
※「書き換え禁止」はMery上で編集禁止(仮ロック)にする機能で、[編集] メニューの項目「書き換え禁止」で解除できます。ファイル属性を「読み取り専用」にするわけではありません。
注意事項[編集]
「ファイルを開いた時」専用のイベントマクロです(カスタマイズを参照)。
コマンドラインオプション[編集]
マクロ上でMeryのコマンドラインオプション指定に相当する記述法は以下の通りになります。
※このページのソースコードに書き足す場合は「document.」の部分は省略可。
- document.ReadOnly = true;
- コマンドラインオプション (Mery.exe/r)
- 書き換え禁止に設定します
- document.Mode = "ModeName";
- コマンドラインオプション (Mery.exe/m "ModeName")
- 編集モードを指定します
ソースコード[編集]
#title = "編集モード自動判別"
#tooltip = "表示モード自動判別"
// -----------------------------------------------------------------------------
// ファイル名に含まれる特定ワードで表示モードを変更するマクロ
// イベント実行「ファイルを開いた時」または「アクティブな文書が変更された時」
// -----------------------------------------------------------------------------
const type = {
n: document.Name,
f: document.FullName
};
//-----------------------------------設定------------------------------------
const n = type.f; // 検索対象の種類:type.n:ファイル名と拡張子 type.f:フルパス
const RO = "書禁"; // 書き換え禁止フラグ名(編集モード名と被る場合に変更してください)
const m = [
// [/ファイル名(正規表現可)/検索フラグ(省略可), "編集モード名(省略可)", "書禁フラグ(省略可)"],
[/(readme|README)\.txt$/, "Markdown"],
[/青空文庫|[\\\/]book[\\\/]/i, "書禁"],
[/\\Mery\\Macros\\.+\.js$/i, "Mery_Macro_JS"],
];
//-----------------------------------本体------------------------------------
for (let i = 0, imax = m.length; i < imax; i = (i + 1) | 0) {
if (n.match(m[i][0])) {
if (m[i][1] != RO) {
editor.ActiveDocument.mode = m[i][1];
if (m[i][2] === RO) {
editor.ActiveDocument.ReadOnly = true;
}
} else {
editor.ActiveDocument.ReadOnly = true;
}
break;
}
}
スポンサーリンク