MeryToys
ナビゲーションに移動
検索に移動
概要[編集]
Mery の隠しオプションを簡単に設定できるマクロです。
注意事項[編集]
- Mery Ver 3.7.17 以降で動作します。
- 一部の設定は、Mery の再起動が必要です。
使い方[編集]
- マクロを実行します。
- ポップアップ メニューが表示されるので、設定したい項目を選択します。
- 値を切り替えるか、必要に応じて入力します。
- 設定内容によっては、Mery を再起動する必要があります。設定が反映されていない場合は、Mery を再起動してみてください。
ソースコード (MeryToys.js)[編集]
#title = "MeryToys"
var options = [
{
name: "基本",
items: [
{
name: "折り返しモードを同期する",
section: "General",
ident: "SyncWrap",
default: 0,
description: "0: なし, 1: 同期, 2: すべて",
},
{
name: "システム ダーク モードを使用する",
section: "General",
ident: "UseSysDarkMode",
default: true,
},
{
name: "行番号の増分",
section: "General",
ident: "LineNumbersCountBy",
default: 10,
},
{
name: "従来のルーラーを使用する",
section: "General",
ident: "UseClassicRuler",
default: true,
},
{
name: "IME 候補ウィンドウの位置を後ろにする",
section: "General",
ident: "ImeCandidatePos",
default: false,
},
{
name: "Alt + Tab キーの動作を改善",
section: "General",
ident: "AltTabFix",
default: false,
},
{
name: "Ctrl + ホイールでフォント サイズを変更",
section: "General",
ident: "WheelFont",
default: true,
},
{
name: "文字単位で元に戻す",
section: "General",
ident: "UndoCharByChar",
default: false,
},
{
name: "ファイルから検索のスレッド数",
section: "General",
ident: "MaxThreads",
default: 4,
},
]
},
{
name: "ファイル",
items: [
{
name: "無題のタブの名前",
section: "General",
ident: "Untitled",
default: "",
},
{
name: "無題の文書に連番を付ける",
section: "General",
ident: "UntitledSeqNum",
default: true,
},
{
name: "初期フォルダー",
section: "File",
ident: "InitialFolder",
default: "",
},
{
name: "ファイル監視を使用する",
section: "File",
ident: "UseFileWatcher",
default: false,
},
{
name: "ファイル名をフルパスで表示",
section: "File",
ident: "ShowFullPath",
default: true,
},
{
name: "非アクティブ時フルパスにしない",
section: "File",
ident: "NoFullPathIfNotActive",
default: true,
},
]
},
{
name: "タブ/インデント",
items: [
{
name: "従来のタブ幅を使用する",
section: "General",
ident: "UseLegacyTabWidth",
default: false,
},
]
},
{
name: "検索",
items: [
{
name: "厳密な検索",
section: "Search",
ident: "FindStrict",
default: true,
},
{
name: "厳密な置換",
section: "Search",
ident: "ReplaceStrict",
default: true,
},
]
},
{
name: "表示",
items: [
{
name: "Zen モード",
items: [
{
name: "行番号を非表示",
section: "View",
ident: "HideLineNumbers",
default: true,
},
{
name: "ルーラーを非表示",
section: "View",
ident: "HideRuler",
default: true,
},
{
name: "記号を非表示",
section: "View",
ident: "HideMarks",
default: true,
},
{
name: "文字数を非表示",
section: "View",
ident: "HideWordCount",
default: true,
},
]
},
{
name: "-"
},
{
name: "文字最小幅",
section: "Display",
ident: "CharacterMinWidth",
default: 0,
description: "px",
},
{
name: "DirectWrite の文字幅を GDI 互換にする",
section: "Display",
ident: "GdiCompatible",
default: false,
},
{
name: "正規表現モード",
section: "Display",
ident: "RegExMode",
default: 0,
description: "0: 従来, 1: 柔軟, 2: 厳密",
},
{
name: "上マージン",
section: "Display",
ident: "TopMargin",
default: 0,
description: "px",
},
{
name: "左マージン",
section: "Display",
ident: "LeftMargin",
default: 0,
description: "px",
},
{
name: "右マージン",
section: "Display",
ident: "RightMargin",
default: 3,
description: "文字",
},
{
name: "カーソル幅",
section: "Display",
ident: "CaretWidth",
default: 0,
description: "px",
},
{
name: "カーソル高",
section: "Display",
ident: "CaretHeight",
default: 0,
description: "px",
},
{
name: "カーソル幅 (IME 有効)",
section: "Display",
ident: "ImeCaretWidth",
default: 0,
description: "px",
},
{
name: "カーソル高 (IME 有効)",
section: "Display",
ident: "ImeCaretHeight",
default: 0,
description: "px",
},
{
name: "テキスト カーソル インジケーターを有効にする",
section: "Display",
ident: "CursorIndicator",
default: false,
},
]
},
{
name: "スクロール",
items: [
{
name: "システム スクロール バーを使用する",
section: "Scroll",
ident: "UseSystemScrollBar",
default: false,
},
{
name: "タイプライター スクロール オフセット",
section: "Scroll",
ident: "TypewriterScrollOffset",
default: 0,
description: "行",
},
]
},
{
name: "ウィンドウ",
items: [
{
name: "ダイアログ",
items: [
{
name: "フォント名",
section: "MainForm",
ident: "FontName",
default: "",
},
{
name: "フォント サイズ",
section: "MainForm",
ident: "FontSize",
default: 8,
description: "pt",
},
]
},
{
name: "アウトプット バー",
items: [
{
name: "フォント名",
section: "ChildForm",
ident: "OutputBarFontName",
default: "",
},
{
name: "フォント サイズ",
section: "ChildForm",
ident: "OutputBarFontSize",
default: 8,
description: "pt",
},
]
},
{
name: "-"
},
{
name: "スクリーンの縁にスナップ",
section: "ChildForm",
ident: "ScreenSnap",
default: false,
},
{
name: "スクリーンスナップの距離",
section: "ChildForm",
ident: "SnapBuffer",
default: 8,
description: "px",
},
]
},
{
name: "スペル チェック",
items: [
{
name: "大文字小文字を区別しない",
section: "File",
ident: "IgnoreUpperCase",
default: true,
},
]
},
{
name: "自動保存",
items: [
{
name: "遅延",
section: "AutoSave",
ident: "AutoSaveDelay",
default: 1000,
description: "ms",
},
{
name: "保存しないで終了する場合、最後に自動保存されたバージョンを残す",
section: "AutoSave",
ident: "AutoSaveKeepUnsavedChanges",
default: true,
},
]
},
{
name: "バックアップ",
items: [
{
name: "最大数",
section: "Backup",
ident: "BackupMaxCount",
default: 0,
},
]
},
{
name: "履歴",
items: [
{
name: "クリップボード履歴の遅延",
section: "History",
ident: "ClipbrdDelay",
default: 200,
description: "ms",
},
{
name: "クリップボード履歴の最大文字数",
section: "History",
ident: "ClipbrdMaxLength",
default: 0,
},
]
},
{
name: "アウトライン",
items: [
{
name: "フォント名",
section: "Outline",
ident: "FontName",
default: "",
},
{
name: "フォント サイズ",
section: "Outline",
ident: "FontSize",
default: 8,
description: "pt",
},
{
name: "文字色",
section: "Outline",
ident: "ForeColor",
default: "",
description: "#RGB, #RRGGBB",
},
{
name: "背景色",
section: "Outline",
ident: "BackColor",
default: "",
description: "#RGB, #RRGGBB",
},
]
},
];
var commandId = 1;
var commandMap = {};
function addMenuItems(items, parentMenu) {
for (var i = 0; i < items.length; i++) {
var item = items[i];
if (item.items && item.items.length > 0) {
var subMenu = CreatePopupMenu();
addMenuItems(item.items, subMenu);
parentMenu.AddPopup(item.name, subMenu);
} else if (item.name === "-") {
parentMenu.Add("", 0, meMenuSeparator);
} else {
var d = item.default;
switch (typeof d) {
case "boolean":
d = Boolean(editor.ReadSettingInteger(item.section, item.ident, Number(d)));
break;
case "number":
d = editor.ReadSettingInteger(item.section, item.ident, d);
break;
case "string":
d = editor.ReadSettingString(item.section, item.ident, d);
break;
default:
break;
}
parentMenu.Add(item.name + ": " + d, commandId);
commandMap[commandId] = {
section: item.section,
ident: item.ident,
value: d,
name: item.name,
description: item.description
};
commandId++;
}
}
}
var menu = CreatePopupMenu();
for (var i = 0; i < options.length; i++) {
var option = options[i];
var subMenu = CreatePopupMenu();
addMenuItems(option.items, subMenu);
menu.AddPopup(option.name, subMenu);
}
var result = menu.Track(mePosMouse);
if (result !== 0) {
var d = commandMap[result];
switch (typeof d.value) {
case "boolean":
editor.WriteSettings();
editor.WriteSettingInteger(d.section, d.ident, Number(!d.value));
editor.ReadSettings();
break;
case "number":
var s = prompt(d.name + (d.description ? " (" + d.description + "):" : ":"), d.value);
if (s !== null) {
s ? (!isNaN(s) && (editor.WriteSettings(), editor.WriteSettingInteger(d.section, d.ident, Number(s)), editor.ReadSettings())) : editor.DeleteSetting(d.section, d.ident);
}
break;
case "string":
var s = prompt(d.name + (d.description ? " (" + d.description + "):" : ":"), d.value);
if (s !== null) {
s ? (editor.WriteSettings(), editor.WriteSettingString(d.section, d.ident, s), editor.ReadSettings()) : editor.DeleteSetting(d.section, d.ident);
}
break;
default:
break;
}
}
ToDo[編集]
- 各オプションの説明 (うーん、できれば避けたいお仕事)
- Mery の再起動が必要なときに、それっぽく教えてくれるやつ?
- Mery のバージョンチェック (正直やりたくないし、どのバージョンで作ったかも忘れた)
スペシャルサンクス[編集]
本マクロの制作にあたり、開発者さえ忘れていた隠しオプションについては、MSY-07 さんが作成された「隠しオプション一覧」を参考にさせていただきました。MSY-07 さんの詳細な記事に深く感謝しつつ、このマクロをお届けします。
スポンサーリンク