書き換え禁止モード色反転
概要
フォーラムの意見より作成。
書き換え禁止ファイルに切り替えたとき、自動で色反転するマクロセットです。
タブ無効中やステータスバー非表示の状態でも、書禁モードが区別できます。
ダウンロード
内容
- 書き換え禁止モード色反転.js : イベント実行用スクリプト
- 書き換え禁止.js : ショートカット・ツールバー実行用スクリプト
- 書き換え禁止a.ico :ツールバーアイコン
- 書き換え禁止b.ico :ツールバーアイコン(ダークモード用)
使用上の注意
includeライブラリ を利用しています。このマクロの前に導入してください。
書き換え禁止モード色反転
マクロ実行イベント専用
- フォーカスを受け取った時:タブ無効・複数ウィンドウ
- アクティブな文書が変更された時:タブ有効
(注)設定ファイルを移動させたい場合は、「設定ファイルのパス」を書き換えてください。
#title = "書き換え禁止モード色反転"
#tooltip = "書き込み禁止モードで色反転"
#include "include/MeryInfo.js"
#include "include/IO.js"
/* -----------------------------------------------------------------------------
* アクティブなファイルが書禁状態だったら色反転するマクロ
* 実行イベント「フォーカスを受け取った時」「アクティブな文書が変更された時」専用
* ----------------------------------------------------------------------------- */
const macroPath = MeryInfo.GetMacroFolderPath();
const file_FullName = macroPath + "\\MacroSettings\\書禁モード反転.txt"; // 設定ファイルのパス
const flag = IO.LoadFromFile( file_FullName , "utf-8"); // 読み込み
const on = "1";
const off = "0";
if ( flag == null){ // 初回(セーブファイル作成)
if (Editor.ActiveDocument.ReadOnly){ // 書禁
editor.ExecuteCommandByID(2145); // 色を反転
IO.SaveToFile( file_FullName , on , "utf-8"); // フラグを立てて保存
} else {
IO.SaveToFile( file_FullName , off , "utf-8"); // フラグを折って保存
}
} else {
if (Editor.ActiveDocument.ReadOnly && flag == off){ // 通常 → 書禁
editor.ExecuteCommandByID(2145); // 色を反転
IO.SaveToFile( file_FullName , on , "utf-8"); // フラグを立てて保存
}
if (!Editor.ActiveDocument.ReadOnly && flag == on){// 書禁 → 通常
editor.ExecuteCommandByID(2145); // 色を反転
IO.SaveToFile( file_FullName , off, "utf-8"); // フラグを折って保存
}
}
書き換え禁止
トグル切り替えのタイミングで色反転をします。(注)読み取り専用の属性変更はしません。
マクロ「書き換え禁止モード色反転」と同じ設定ファイルを参照しています。
保存場所を移動させた場合は、ファイルパスを書き換えてください。
ショートカット設定例:Int
同梱アイコンはIcon-rainbowの素材「鍵・錠の無料アイコン素材 1」をお借りしました。
#title = "書き換え禁止"
#icon = "書き換え禁止.ico"
#tooltip = "書き換え禁止+色反転"
#include "include/MeryInfo.js"
#include "include/IO.js"
const macroPath = MeryInfo.GetMacroFolderPath(); // Macrosフォルダのパス
const file_FullName = macroPath + "\\MacroSettings\\書禁モード色反転.txt"; // 設定ファイルのパス
const flag = IO.LoadFromFile( file_FullName , "utf-8"); // 読み込み
const on = "1";
const off = "0";
if (!Editor.ActiveDocument.ReadOnly && flag == off || !Editor.ActiveDocument.ReadOnly && flag == on){
document.ReadOnly = true;
editor.ExecuteCommandByID(2145); // 色反転ON
IO.SaveToFile( file_FullName , on , "utf-8"); // フラグを立てて保存
} else if (Editor.ActiveDocument.ReadOnly && flag == off || Editor.ActiveDocument.ReadOnly && flag == on){
document.ReadOnly = false;
editor.ExecuteCommandByID(2145); // 色反転OFF
IO.SaveToFile( file_FullName , off, "utf-8"); // フラグを折って保存
}
【おまけ】書き換え禁止ファイルを閉じる
特定キーの単打で書禁ファイルのタブ・ウィンドウを閉じるマクロです。
割当キーごとにマクロスクリプトを登録する必要があります。
Enterで閉じる
ショートカット割当:Enter
#title = "書禁ファイルを閉じる(Enter)"
#tooltip = "書き込み禁止ファイルを閉じる"
if (!Editor.ActiveDocument.ReadOnly){ // 通常モード
Document.Selection.NewLine(1); // Enter(改行)
Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
Editor.ActiveDocument.Close(); // ファイルを閉じる
}
BackSpaceで閉じる
ショートカット割当:BackSpace
#title = "書禁ファイルを閉じる(BS)"
#tooltip = "書き込み禁止ファイルを閉じる"
if (!Editor.ActiveDocument.ReadOnly){ // 通常モード
Document.Selection.DeleteLeft(1); // Backspase
Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
Editor.ActiveDocument.Close(); // ファイルを閉じる
}
Qで閉じる
ショートカット割当:Q
#title = "書禁ファイルを閉じる(Q)"
#tooltip = "書き込み禁止ファイルを閉じる"
if (!Editor.ActiveDocument.ReadOnly){ // 通常モード
Document.Selection.Text = "q"; // Q
Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
Editor.ActiveDocument.Close(); // ファイルを閉じる
}
Escで閉じる
ショートカット割当:Esc
#title = "書禁ファイルを閉じる(Esc)"
#tooltip = "書き込み禁止ファイルを閉じる"
if (!Editor.ActiveDocument.ReadOnly){ // 通常モード
const WshShell = new ActiveXObject( "WScript.Shell" );
WshShell.SendKeys ( "{ESC}" ); // Escape
Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
Editor.ActiveDocument.Close(); // ファイルを閉じる
}
スポンサーリンク