JURIA @Wiki
Alpha の設定
最終更新:
juria
-
view
Alpha の設定
修正・追記[2007-02-21][2007-02-17]
スクリプトとは無縁の一般人向け設定例です。
将来的には機能や設定方法が変更される可能性があります。
将来的には機能や設定方法が変更される可能性があります。
付属の(デフォルトの)設定ファイル(events.js)の記述に沿って、カスタマイズ
する部分のみ例示・抜粋しています。詳細は Ambient リファレンスを参照して下さい。
する部分のみ例示・抜粋しています。詳細は Ambient リファレンスを参照して下さい。
\macros\events.js(抜粋)
■起動時に呼び出される設定
Alpha 全体の動作・操作の設定を以下に記述。
function OnApplicationInitialized(args){
文書タイプを定義
ここでの記述順が [ツール]→[適用文書タイプ] メニューの表示の順番になる。
適用するファイル名や拡張子、そのタイプのファイルを開くコマンド等を登録。
コマンド未定義ならシステムの関連付け利用)
コマンドの実行は、F5(変更可能)、または[ツール]→[実行]で。
適用するファイル名や拡張子、そのタイプのファイルを開くコマンド等を登録。
コマンド未定義ならシステムの関連付け利用)
コマンドの実行は、F5(変更可能)、または[ツール]→[実行]で。
var conf = Ambient.configurations;
/**
["登録名","文書タイプ(ファイル名・拡張子)","コマンド $F",boolean(false)]
$F ファイルパスに置換
true : 他のタイプでの登録から除外、[適用文書タイプ] メニューに表示しない
*/
// readme.txt 専用(ファイル名に readme を含む)
conf.addDocumentType("ReadMe", "*readme*.txt", "", true);
// 登録するマクロのリストファイル
conf.addDocumentType("マクロスクリプト構成", "macros.xml", "", true);
// readme.txt 以外のテキストファイル
// ファイルオープン時、上にある方が優先
conf.addDocumentType("Wiki", "*.txt");
conf.addDocumentType("テキスト", "*.txt");
// AutoHotkey スクリプトファイル
conf.addDocumentType("AHK", "*.ahk", "D:\\path\\to\\AutoHotkey.exe $F");
// 文書タイプごとの表示設定を適用する拡張子を追加登録
// Ambient.configurations.addDocumentType("テキスト", "*.cfg")
キーバインドの設定
var keys = conf.keyboardSchemes("basic");
assignWinStandardKeys(keys);
// キーバインドの変更・追加
/**
変更を有効にし保存する場合には、assignWinStandardKeys(keys); と
keys.save("ファイル名"); のコメント // を外す。
*/
// キー名(組み合わせ)とコマンド番号を列挙(Emacs風の例)
keys.assign("C-x C-s", 1005); // 保存
keys.assign("Ctrl+X Ctrl+W", 1006); // 別名で保存
keys.assign("C-x s", 1007); // 全て保存
keys.assign("C-x C-k", 1003); // カレントバッファを閉じる
keys.assign("C-x h", 2055); // 全て選択
keys.assign("C-a", 2029); // 行頭に移動
keys.assign("C-e", 2030); // 行末に移動
keys.assign("C-x k", 2004); // 現在行削除
keys.assign("Ctrl+d", 2000); // キャレットの後の1文字を削除
keys.assign("Ctrl+h", 2001); // キャレットの前の1文字を削除
keys.assign("Ctrl+b", 2032); // 1文字戻る
// キーバインドの設定・変更・追加をファイルに保存
/**
変更は次回起動時に、指定したバイナリファイル(keyboardSchemes\*.akm)に
保存される。全て変更・保存し終わったら、変更部分を events.js から削除、
再度コメント化すれば、常にキーバインド設定ファイルから読み込むようになる。
その方(バイナリを読み込む方)が起動が早い。気にならなければ設定ファイル
に保存しなくてもOK。
*/
keys.save("custum"); // ファイルに保存(ファイル名)
keys.load("custum"); // ファイルから読み(ファイル名)
起動時のウインドウの位置・サイズ
Ambient.left = 0; Ambient.top = 0;
メッセージを表示する/しない
// コードページの確認などのメッセージを表示しない Ambient.Interactive = false
短縮形の読み込み・管理
// 短縮形の読み込み
loadAbbreviations();
// 短縮語句の追加と削除
// abbreviations ファイルに保存後は削除してもよい
// Ambient.abbreviations.register("A", "Alpha")
// Ambient.abbreviations.Revoke("A")
} // ここまで起動時に呼び出される設定
■終了時に呼び出される設定
function OnApplicationTerminating() {
短縮形の保存
saveAbbreviations(); } // ここまで終了時に呼び出される設定
■文書タイプ適用時に呼び出される設定
function OnApplyDocumentType(typeName, editor) {
var lexer = editor.lexer;
var pref = editor.preferences;
var cookies = new Object;
pref.reset();
// 検索一致テキストの色→機能して無い
// pref.tokenDecoration("matchText").color = 0xADDBF5;
// 改行の矢印 (MeiryoKe_Gothic フォントOK)
// 改行マークを表示する設定にした全ての文書タイプで変更する場合
// pref.lineBreakSubstitutionChar(LineBreak.Crlf) = 0x21B2;
文書タイプ別字句解析設定
シンタックス定義など
//(コメント文字、キーワードの強調表示、マッチさせる位置、
// それぞれの表示色、背景色、下線/枠線など)
// default
if(typeName == "default") {
// 字句解析、表示色設定を無効に
pref.lexicalParsingEnabled = false;
}
// テキスト、Wiki 共通
else if(typeName == "テキスト"
|| typeName == "Wiki") {
// タブ幅
pref.tabWidth = 4;
/// トークン名 = メソッド():解析に使用する字句(トークン)を指定して定義
/// メソッド:単一行(AddSinglelineAnnotation)、複数行(AddMultilineAnnotation)
/// キーワード(AddKeywords)、単語構成文字(SetAdditionalAlphabets)
/// カッコ(SetBrackets)、演算子(SetOperators)
// ■Annotation(注釈)
// コメント行を定義
// 単一行or複数行(始(startDelimiter),終(endDelimiter),補足規則(constraint))
// endDelimiter が ""(空文字)なら行末まで
// 補足規則:行頭のみマッチ,行頭の空白文字を許す,出現位置制限無し
// 行頭、または行頭の空白文字直後の > から行末までの単一行を "quotation"
// として定義(引用を想定)
cookies.quotation = lexer.addSinglelineAnnotation(">", "", AnnotationConstraint.OnlyHeadOfLine);
// "quotation" として定義した字句(トークン)の色(タイプ別の表示色設定)
pref.tokenDecoration("annotation_".concat(cookies.quotation)).Color = 0x990000; // darkred
//
cookies.additional = lexer.addSinglelineAnnotation("#", "", AnnotationConstraint.OnlyHeadOfLine);
pref.tokenDecoration("annotation_".concat(cookies.additional)).Color = 0x000066; // darkblue
//
cookies.list1 = lexer.addSinglelineAnnotation("■");
pref.tokenDecoration("annotation_".concat(cookies.list1)).Color = 0x545FC4
cookies.list2 = lexer.addSinglelineAnnotation("▼");
pref.tokenDecoration("annotation_".concat(cookies.list2)).Color = 0x545FC4
cookies.list3 = lexer.addSinglelineAnnotation("●");
pref.tokenDecoration("annotation_".concat(cookies.list3)).Color = 0x000066; // darkblue
}
// Wiki 原稿 PukiWiki記法
// juria@Wiki に見た目を近づけるだけ
if(typeName == "Wiki") {
// 見出しリストっぽく、行頭のみマッチ
// 同一文字列を定義する時は、数の多い順に記述(文字列中先に出現する定義が適用されるので)
// h4
cookies.subtitle = lexer.addSinglelineAnnotation("****", "", AnnotationConstraint.OnlyStartOfLine);
// h4:下線のスタイルと下線の色
// 注:うちでは、その行にスペースが無いと下線が表示されないのだけど。
pref.tokenDecoration("annotation_".concat(cookies.subtitle)).borderStyle = BorderType.UnderlineDashed;
pref.tokenDecoration("annotation_".concat(cookies.subtitle)).borderColor = 0x54368F;
// h3
cookies.title = lexer.addSinglelineAnnotation("***", "", AnnotationConstraint.OnlyStartOfLine);
// h3:文字色・太字
pref.tokenDecoration("annotation_".concat(cookies.title)).Color = 0x54368F;
pref.tokenDecoration("annotation_".concat(cookies.title)).boldFont = true;
// h2
cookies.date = lexer.addSinglelineAnnotation("**", "", AnnotationConstraint.OnlyStartOfLine);
// h2:文字色・背景色
pref.tokenDecoration("annotation_".concat(cookies.date)).Color = 0x54368F;
pref.tokenDecoration("annotation_".concat(cookies.date)).backgroundColor = 0xC2C2C2;
// 強調 strong
cookies.strong = lexer.addSinglelineAnnotation("''", "''");
pref.tokenDecoration("annotation_".concat(cookies.strong)).boldFont = true;
// ↑と併せてシングルクォートを無効に
lexer.tokenEnabled("singleQuotation") = false;
}
// AutoHotkey
else if(typeName == "AHK") {
pref.tabWidth = 4;
// キーワードの大文字・小文字を区別しない
// 字句解析定義よりも前に記述すること
lexer.caseSensitive = false;
// 複数の文書タイプに共通のトークン(コメント行など)の強調表示色は
// 共通設定にしてもOK(下記参照)
// コメント(単一行)出現位置制限無し
cookies.singlelineComment = lexer.addSinglelineAnnotation(";");
// コメント(複数行)行頭のみマッチ
cookies.multilineComment = lexer.addMultilineAnnotation("/*", "*/", AnnotationConstraint.OnlyStartOfLine);
//cookies.multilineComment2 = lexer.addMultilineAnnotation("%", "%");
// ■AddKeywords(キーワード)
// 強調表示するキーワードを定義
// cookies.トークン名 = lexer.AddKeywords(キーワード 半角スペース区切り)
// 表示スペースの都合により、各トークンの登録キーワードは一部のみ掲載
// control(実行制御) 表示色は共通設定
cookies.control = lexer.addKeywords("If IfInString IfNotInString IfWinNotActive");
// operator(演算) 表示色は共通設定
cookies.operator = lexer.addKeywords("And Is Not Or between contains in");
// command(コマンド 1) 表示色は共通設定
cookies.command = lexer.addKeywords("AutoTrim BlockInput ByRef Click ClipWait");
// command2(コマンド 2) キーワードと表示色
cookies.command2 = lexer.addkeywords("#AllowSameLineComments #ClipboardTimeout");
pref.tokenDecoration("keyword_".concat(cookies.command2)).color = 0xAF6161;
// variables(変数)
cookies.variable = lexer.addkeywords("A_AhkPath A_AhkVersion A_AppData A_AppDataCommon");
pref.tokenDecoration("annotation_".concat(cookies.variable)).Color = 0x408000;
// keys(キー名)
cookies.keys = lexer.addKeywords("ENTER CTRLDOWN CTRLUP SHIFTDOWN SHIFTUP TAB ESC");
pref.tokenDecoration("annotation_".concat(cookies.keys)).Color = 0x990000;
// ■setOperators(演算子)
// 演算子を定義
lexer.setOperators("+ & && ~ | ^ . / // = == > >= << < <= - * ! != || ** * >> { }");
// ■setAdditionalAlphabets(単語構成文字の追加)
// 標準の単語構成文字以外に単語構成文字として認識させる文字(区切り不要)
lexer.setAdditionalAlphabets("#:");
// ■setBrackets(括弧)
// 対応する括弧を強調表示させたい(区切り不要)
lexer.setBrackets("([{");
}
バッファの表示設定(文書タイプ別)
// 制御文字など
// 文書タイプを指定する場合
if(typeName == "default");
else if(typeName == "ReadMe" // テキスト用の設定
|| typeName == "テキスト"{
pref.selectEndOfLine = false; // 改行マークまで選択範囲とする/しない
pref.showEndOfFile = true; // ファイルの終わり
pref.showEndOfLine = true; // 改行マーク
// 改行マーク指定(Meiryo_KeGothic フォント使用)
pref.lineBreakSubstitutionChar(LineBreak.Crlf) = 0x21B2;
pref.showCurrentUnderline = false; // カレント行に下線を表示
pref.showWhiteSpaceAlternative = false; // 空白文字・タブの表示・非表示
pref.thinCaret = true; // キャレットの幅
pref.showIndicatorMargin = true; // *行番号左のマージン
pref.showLineNumber = true; // *行番号を表示↑この二つはセットで設定
// 行番号の区切り線種。指定しなければ BorderSolid
pref.lineNumberBorderStyle = BorderType.BorderDotted;
// pref.LineSpan = 10; // 行間隔
// pref.ShowHandOnLink = true; // リンク上のポインタ
// pref.ShowHintOnLink = true; // 操作ヒント
}
// 共通設定(指定外の文書タイプ共通のトークン・強調表示名)
else {
pref.selectEndOfLine = true;
pref.showEndOfFile = true;
pref.showEndOfLine = true;
pref.lineBreakSubstitutionChar(LineBreak.Crlf) = 0x21B2;
pref.showCurrentUnderline = true;
pref.showWhiteSpaceAlternative = true;
pref.thinCaret = true;
pref.showIndicatorMargin = true;
pref.showLineNumber = true;
pref.lineNumberBorderStyle = BorderType.BorderDotted;
// Unicode 引用符
lexer.tokenEnabled("otherQuotation") = false;
/* 強調表示色などの設定
color = 文字色(16進数)、backgroundColor = 背景色(16進数)
borderStyle = 下線/枠線のスタイル BorderType.BorderSolid;
borderColor = 下線/枠線の色
*/
// 通常のテキスト
//pref.tokenDecoration("normal").color = 0x333333;
//pref.tokenDecoration("normal").backgroundColor = 0xFFFFF9;
// 空白文字
pref.tokenDecoration("whiteSpace").color = 0xD0E0E0;
// タブ
pref.tokenDecoration("tab").color = 0xD0E0E0;
// コメント行
if("singlelineComment" in cookies)
pref.tokenDecoration("annotation_".concat(cookies.singlelineComment)).color = 0x008000;
if("multilineComment" in cookies)
pref.tokenDecoration("annotation_".concat(cookies.multilineComment)).color = 0x008000;
//if("multilineComment2" in cookies)
// pref.tokenDecoration("annotation_".concat(cookies.multilineComment2)).color = 0x008000;
// キーワード
if("control" in cookies)
pref.tokenDecoration("keyword_".concat(cookies.control)).color = 0x0000FF;
if("operator" in cookies)
pref.tokenDecoration("keyword_".concat(cookies.operator)).color = 0x800080;
if("command" in cookies)
pref.tokenDecoration("keyword_".concat(cookies.command)).color = 0x0000FF;
// その他(数値、クォーテーション、行番号、制御文字など)
pref.tokenDecoration("number").color = 0x800000;
pref.tokenDecoration("singleQuotation").color = 0x000066;
pref.tokenDecoration("singleQuotation").backgroundColor = 0xF6FFF6; // ↑の背景色
pref.tokenDecoration("doubleQuotation").color = 0x000066;
pref.tokenDecoration("doubleQuotation").backgroundColor = 0xF9F9FF;
// 例外指定
// Wiki 行番号と区切り線の色
if(typeName == "Wiki")
pref.tokenDecoration("lineNumber").color = 0xAD5F8F;
}
} // ここまで文書タイプ適用時に呼び出される設定
■キーボードスキーム
// デフォルトの設定は Windows 標準のキーバインド
// キーバインドの追加・変更(方法2)
// assignWinStandardKeys(keys); keys.save("ファイル名"); を有効にしている場合、
// ここでの変更も可能だが、ここは弄らない方がいいかも。(上記参照)
// "Ctrl+X Ctrl+W" のようなコンビネーションは不可
function assignWinStandardKeys(keys) {
var keymap = [
// 編集
"Bs", 2001,
// "Ctrl+H", 2001, // キャレットの前の1文字を削除
"Del", 2000,
// "Ctrl+D", 2000, // キャレットの後の1文字を削除
];
for(var i = 0; i < keymap.length; i += 2)
keys.assign(keymap[i], keymap[i + 1]);
}
-
添付ファイル