*****************************************************************
***                 Coder AkelPad plugin v20.0                ***
*****************************************************************

2007-2017 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)


***  ***

̵ĸӹܡ


***  ***

Coder::HighLight
﷨ʾ

Coder::CodeFold
۵֧֡

Coder::AutoComplete
ԶʡʱĹܡһΪһı顣磬༭ C++ ļʱ "for" ȼ (Ĭֵ Ctrl+ո)"for" ַ:
for (; ; )
{
}

Coder::Settings
öԻ


***  ***

ʹб:
һ - ʹһı滻д
ֹһ - ʾ滻дб

б / תµλ:
һȷƥ - ʹһı滻д
ֹһ - ȼһ
滻֮ - תıλá

ת֮ǰλ:
תı֮ǰλá

ѼŵĴСд:
Сдļ﷨⣬ҪǿΪĵѼŵĴСдĻʹ Shift+Enter бѡ


*** ⲿ Coder::HighLight ***

Call("Coder::HighLight", 2, "#RRGGBB", "#RRGGBB", FLAGS, FONTSTYLE, ID, "TEXT", TEXTLENGTH)
  :
    2
      ѡָı
    "#RRGGBB"
      ıɫ"0" ʾԡ
    "#RRGGBB"
      ɫ"0" ʾԡ
    FLAGS (еĺ):
      1  ִСд (Ĭֵ)
      2  "TEXT" Ϊʽ
      4  ʡ
         Ĭֵ: 1
    FONTSTYLE (֮һ):
      0   (Ĭֵ)
      1  档
      2  塣
      3  б塣
      4  б塣
    ID
       ID (ĬֵΪ -1)ֵΪ -1Զ䡣
    "TEXT"
      Ҫǵıָѡ
    TEXTLEN
      ı (ĬֵΪ -1)ֵΪ -1ıַ NULL ʱֹ
  :
    Call("Coder::HighLight", 2, "#000000", "#9BFF9B", 1, 0, 1)

Call("Coder::HighLight", 3, ID, "#RRGGBB", "#RRGGBB")
  :
    3
      ȡı
    ID
       ID (ĬֵΪ 0)Ϊȥбǡ
      ֵΪ -1ɫɾԶ ID
      ֵΪ -2ɾѡııǡ
    "#RRGGBB"
      ıɫֵΪ "0" ʱԡ
    "#RRGGBB"
      ɫֵΪ "0" ʱԡ
  :
    Call("Coder::HighLight", 3, 0)

Call("Coder::HighLight", 4, ID, "#RRGGBB", "#RRGGBB", DIRECTION)
  :
    4
      ұǡ
    ID
       ID (ĬֵΪ 0)Ϊ㣬καǡ
      Ϊ -1Զɫѷ ID
      Ϊ -2, ѡııǡ
    "#RRGGBB"
      ıɫֵΪ "0" ʱԡ
    "#RRGGBB"
      ɫֵΪ "0" ʱԡ
    DIRECTION (֮һ):
      0 ² (Ĭֵ)
      1 ϲҡ
  :
    Call("Coder::HighLight", 4, 0, 0, 0, 1)


*** ⲿ Coder::CodeFold ***

Call("Coder::CodeFold", 1, *WINDOW)
  :
    1
      ʾ/б
    *WINDOW
      ѡָָһղʽھı
   (òʽھ):
    WScript.Echo(GetCodeFoldWindow());

    function GetCodeFoldWindow()
    {
      var lpWnd;
      var hWnd=0;

      if (lpWnd=AkelPad.MemAlloc(_X64?8:4 /*sizeof(HWND)*/))
      {
        AkelPad.CallW("Coder::CodeFold", 1, lpWnd);
        hWnd=AkelPad.MemRead(lpWnd, 2 /*DT_QWORD*/);
        AkelPad.MemFree(lpWnd);
      }
      return hWnd;
    }


Call("Coder::CodeFold", 2)
  :
    2
      ת


*** ⲿ Coder::Settings ***

Call("Coder::Settings", 1, "EXTENSION")
  :
    1
      չֶ﷨⡣
    "EXTENSION"
      չ: "html"ȱչȡֶá
      չ "?"Ϊĵ⡣

Call("Coder::Settings", 2, *USECACHE)
  :
    2
      »档
    *USECACHE
      ѡָָһջֵ֮͡һ:
      0  //UC_NONE   ޻档
      1  //UC_FAST   ٻ档
      2  //UC_SMART  ܻ档

Call("Coder::Settings", 3, PAGE)
  :
    3
      ָҳöԻ
    PAGE
      ҳ

Call("Coder::Settings", 4, FLAGS, "FILE")
  :
    4
      ı RTF
    FLAGS (ĺ):
         1  ļ
        16  Ƶ塣
        32  ʹı䴿ıʽļ塣 16 ʹá
        64  ʹôʽı䴿ıʽļ塣 16 ʹá
       256  ѡıɫ
       512  ǰеɫ
      1024  еɫ
      2048  ıɫ
      4096  ɫ
     65536  ѡĬǵѡѡΪʱĵȫ
    131072  ǿƵĵȫĬǵѡѡΪʱĵȫ
             Ĭֵ: 16+32=48
    "FILE"
      ļΪ 1 ʱʹáĬǴѡļĶԻ

Call("Coder::Settings", 5, "COLORTHEME")
  :
    5
      ɫ⡣
    "COLORTHEME"
      ɫƣ: "Bespin"

Call("Coder::Settings", 6, "ALIAS")
  :
    6
      ݱֶ﷨⡣
    "ALIAS"
      : ".html". ʡԣֶýȡ
       "?"ĵΪĵ

Call("Coder::Settings", 12, "ALIAS", *BOOL)
  :
    12
      ݱ﷨ʹ Scripts 
    "ALIAS"
      , : ".html"
    *BOOL
      ָָһ﷨Եı
  :
    WScript.Echo(CheckAlias(".html"));

    function CheckAlias(pAlias)
    {
      var lpActive;
      var bActive=false;

      if (lpActive=AkelPad.MemAlloc(4 /*sizeof(BOOL)*/))
      {
        AkelPad.CallW("Coder::Settings", 12, pAlias, lpActive);
        bActive=AkelPad.MemRead(lpActive, 3 /*DT_DWORD*/);
        AkelPad.MemFree(lpActive);
      }
      return bActive;
    }

Call("Coder::Settings", 14, "COLORTHEME", *BOOL)
  :
    14
      Ƽɫʹ Scripts 
    "COLORTHEME"
      ɫƣ: "Bespin"
    *BOOL
      ָָһɫԵı
  :
    WScript.Echo(CheckVarTheme("Bespin"));

    function CheckVarTheme(pVarTheme)
    {
      var lpActive;
      var bActive=false;

      if (lpActive=AkelPad.MemAlloc(4 /*sizeof(BOOL)*/))
      {
        AkelPad.CallW("Coder::Settings", 14, pVarTheme, lpActive);
        bActive=AkelPad.MemRead(lpActive, 3 /*DT_DWORD*/);
        AkelPad.MemFree(lpActive);
      }
      return bActive;
    }

Call("Coder::Settings", 16, WINDOW, *SYNTAXFILE, SYNTAXFILELENGTH)
  :
    16
      ݴھȡ﷨ļơʹ Scripts 
    WINDOW
      ༭ھΪ  ʹûı༭ڡ
    *SYNTAXFILE
      ָָһ﷨ļƵĻ档
    SYNTAXFILELENGTH
      Խյ SYNTAXFILE 
  :
    WScript.Echo(GetSyntaxFile(0));

    function GetSyntaxFile(hWndEdit)
    {
      var pSyntaxFile="";
      var lpSyntaxFile;

      if (lpSyntaxFile=AkelPad.MemAlloc(256 * 2 /*sizeof(wchar_t)*/))
      {
        AkelPad.CallW("Coder::Settings", 16, hWndEdit, lpSyntaxFile, 256);
        pSyntaxFile=AkelPad.MemRead(lpSyntaxFile, 1 /*DT_UNICODE*/);
        AkelPad.MemFree(lpSyntaxFile);
      }
      return pSyntaxFile;
    }

Call("Coder::Settings", 18, WINDOW, DOCUMENT, *ALIAS, *ALIASLENGTH)
  :
    18
      ݴھñʹ Scripts 
    WINDOW
      ༭ھΪ  ʹûı༭ڡ
    DOCUMENT
      ༭ĵΪ  Զ⡣
    *ALIAS
      ָָһձĻ档Ϊ NULL
    *ALIASLENGTH
      ָָһѸƵ ALIAS ķΪ NULL
  :
    WScript.Echo(GetAlias(0, 0));

    function GetAlias(hWndEdit, hDocEdit)
    {
      var pAlias="";
      var lpAlias;

      if (lpAlias=AkelPad.MemAlloc(256 * 2 /*sizeof(wchar_t)*/))
      {
        AkelPad.CallW("Coder::Settings", 18, hWndEdit, hDocEdit, lpAlias, 0);
        pAlias=AkelPad.MemRead(lpAlias, 1 /*DT_UNICODE*/);
        AkelPad.MemFree(lpAlias);
      }
      return pAlias;
    }

Call("Coder::Settings", 20, WINDOW, *COLORTHEME, COLORTHEMELENGTH)
  :
    20
      ݴھɫơʹ Scripts 
    WINDOW
      ༭ڵľΪ  ʹûı༭ڡ
    *COLORTHEME
      ָָһɫƵĻ档
    COLORTHEMELENGTH
      COLORTHEME Խյ
  :
    WScript.Echo(GetVarTheme(0));

    function GetVarTheme(hWndEdit)
    {
      var pVarTheme="";
      var lpVarTheme;

      if (lpVarTheme=AkelPad.MemAlloc(256 * 2 /*sizeof(wchar_t)*/))
      {
        AkelPad.CallW("Coder::Settings", 20, hWndEdit, lpVarTheme, 256);
        pVarTheme=AkelPad.MemRead(lpVarTheme, 1 /*DT_UNICODE*/);
        AkelPad.MemFree(lpVarTheme);
      }
      return pVarTheme;
    }

Call("Coder::Settings", 22, WINDOW, DOCUMENT, "VARNAME", *VARVALUE, *VARVALUELENGTH)
  :
    22
      ݴھɫлñֵʹ Scripts 
    WINDOW
      ༭ڵľΪ  ʹûı༭ڡ
    DOCUMENT
      ༭ĵΪ  Զ⡣
    "VARNAME"
      : "AutoComplete_Indent"
    *VARVALUE
      ָָһձֵĻ档
    *VARVALUELENGTH
      ָָһѸƵ VARVALUE ķΪ NULL
  :
    WScript.Echo(GetVariable(0, 0, "STR"));

    function GetVariable(hWndEdit, hDocEdit, pVarName)
    {
      var pVarValue="";
      var lpVarValue;

      if (lpVarValue=AkelPad.MemAlloc(32 * 2 /*sizeof(wchar_t)*/))
      {
        AkelPad.CallW("Coder::Settings", 22, hWndEdit, hDocEdit, pVarName, lpVarValue);
        pVarValue=AkelPad.MemRead(lpVarValue, 1 /*DT_UNICODE*/);
        AkelPad.MemFree(lpVarValue);
      }
      return pVarValue;
    }


*** ļĽṹ ***

[Cache]
bat.coder=257CB20001CEE2DA:"*.bat" "*.cmd"
cpp.coder=DCD8500001CF30A3,1:"*.cpp" "*.c"

cpp.coder
  ﷨ļ
DCD8500001CF30A3
  cpp.coder ޸ʱ䡣
1
  ѡֶΪ 1ô cpp.coder ļϢ
"*.cpp" "*.c"
  ļ͡

*** ʹ *.coder ļеĲνṹ˵ ***

Rule ID, Parent ID
  ָ Rule ID ʶǸ򡣶ָ Parent ID ʶӹ򣬽ڸá

  磺ָ "/"  "<"  ">" ֮űֺ͸ʾΪ "#FF0000"
  Quotes:
  ;===================================================================================
  ;Flags  Font    Color   Color   Quote   Quote   Escape  Quote   Quote   Parent  Rule
  ;       style   text    bkgrnd  start   end     char    include exclude ID      ID
  ;===================================================================================
  ;5=1+4
  5       0       0       0       "<"     ">"     ""      ""      ""      0       123

  Delimiters:
  ;===============================================
  ;Flags  Font    Color   Color   Char(s)   Parent
  ;       style   text    bkgrnd            ID
  ;===============================================
  1       0       #FF0000 0       "/"       123

  - ʹͬһ Rule ID ʶ£ Parent ID ָʶӹκθжá
  - "Delimiters:" ʹõ Parent ID  "Quotes:""QuotesRE:""Folds:"
  - "Words:" ʹõ Parent ID  "Quotes:""QuotesRE:""Folds:"
  - "Quotes:" ʹõ Parent ID  "Quotes:""QuotesRE:""Folds:"
  - "QuotesRE:" ʹõ Parent ID  "Quotes:""QuotesRE:""Folds:"
  - "Folds:" ʹõ Parent ID  "Folds:"
  -  Parent ID Ϊ 0 (Ĭֵ):
    - Чʽ ("Quotes:", "QuotesRE:")С
    - ʽ ("Quotes:", "QuotesRE:")бԡ
    - Чʽ۵ ("Folds:") С
    -  "Folds:" ĹЧʽ۵ ("Folds:") Уıԡ
  -  Parent ID Ϊ -1, ôܲиʶ (Rule ID) > 0 ġ
  -  Parent ID Ϊ -2:
    - ڸʶ (Rule ID) == 0 У򱻺ԡ
    - ڸʶ (Rule ID) > 0 :
      - ʶ (Rule ID) ʡԣִС
      - ʶ (Rule ID) <> ʶ (Rule ID)ʱִС
      - ʶ (Rule ID) == ʶ (Rule ID)ʱ򱻺ԡ
  -  Parent IDΪ -3:
    - ڸʶ (Rule ID) == 0 ,  Parent ID  0 
    - ڸʶ (Rule ID) > 0 :
      - ʶ (Rule ID) ԣִС
      - ʶ (Rule ID) <> ʶ (Rule ID)ʱִС
      - ʶ (Rule ID) == ʶ (Rule ID)ʱ򱻺ԡ

Rule file
  Rule file - Ϊһģ飬ض﷨ .coder ļ

  - ۵ʼ۵ʽƥıݵǰ .coder ļ͹ļʾ
  - ַļй涨ض .coder ļ磺"cpp.coder" ʽΪ: "alias: .cpp"
  - ʾ html.coder


***  Coder::Settings ļ˵ ***

Զѡ:
  HighLight_AutoMarkFlags
     (гԱ֮):
    1  ִСд (Ĭֵ)
    2  ƥ䡣
       Ĭֵ: 1
  HighLight_AutoMarkFontStyle
     (֮һ):
    0   (Ĭֵ)
    1  档
    2  塣
    3  б塣
    4  б塣
  HighLight_AutoMarkTextColor
    ıɫΪ 0ʹĬֵ
  HighLight_AutoMarkBkColor
    ɫΪ 0ʹĬֵ

ڲ LineBoard ı:
  LineBoard_TextColor
    ıɫΪ 0 Ͳá
  LineBoard_BkColor
    ıɫΪ 0 Ͳá
  LineBoard_BorderColor
    ߿ɫΪ 0 Ͳá
  LineBoard_BookmarkTextColor
    ǩıɫΪ 0 Ͳá
  LineBoard_BookmarkBkColor
    ǩɫΪ 0 Ͳá
  LineBoard_BookmarkBorderColor
    ǩ߿ɫΪ 0 Ͳá
  LineBoard_LineUnsavedColor
    δеɫΪ 0 Ͳá
  LineBoard_LineSavedColor
    ѱеɫΪ 0 Ͳá
  LineBoard_RulerScaleColor
    ɫΪ 0 Ͳá
  LineBoard_RulerCaretColor
    ɫΪ 0 Ͳá

ڲ SpecialChar ı:
  SpecialChar_BasicFontStyle
     (֮һ):
    0   (Ĭֵ)
    1  档
    2  塣
    3  б塣
    4  б塣
  SpecialChar_BasicTextColor
    ıɫΪ 0 Ͳá
  SpecialChar_BasicBkColor
    汳ɫΪ 0 Ͳá
  SpecialChar_SelFontStyle
    ѡе (֮һ):
    0   (Ĭֵ)
    1  档
    2  塣
    3  б塣
    4  б塣
  SpecialChar_SelTextColor
    ѡıɫΪ 0 Ͳá
  SpecialChar_SelBkColor
    ѡııɫΪ 0 Ͳá

ڲ Sessions ı:
  Sessions_ListTextColor
    бıɫΪ 0 Ͳá
  Sessions_ListBkColor
    бɫΪ 0 Ͳá
