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]); }
-
添付ファイル