※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。



Alpha の設定

修正・追記[2007-02-21][2007-02-17]

Alpha ver.0.7.5.16α fix10
JIS2004 他、多数のコードページに対応したテキストエディタ(参照

スクリプトとは無縁の一般人向け設定例です。
将来的には機能や設定方法が変更される可能性があります。

付属の(デフォルトの)設定ファイル(events.js)の記述に沿って、カスタマイズ
する部分のみ例示・抜粋しています。詳細は Ambient リファレンスを参照して下さい。


\macros\events.js(抜粋)


■起動時に呼び出される設定

Alpha 全体の動作・操作の設定を以下に記述。
function OnApplicationInitialized(args){

文書タイプを定義
ここでの記述順が [ツール]→[適用文書タイプ] メニューの表示の順番になる。
適用するファイル名や拡張子、そのタイプのファイルを開くコマンド等を登録。
コマンド未定義ならシステムの関連付け利用)
コマンドの実行は、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]);
}


-
  
添付ファイル