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

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


***  ***

   .


***  ***

Coder::HighLight
 .

Coder::CodeFold
   ().

Coder::AutoComplete
- -  ,   
.     
  . ,    "for",  
 C++      (Ctrl+Space  ),
"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
       (  -1).  -1,  .
    "TEXT"
        .  ,  .
    TEXTLENGTH
        (  -1).  -1,    NULL .
  :
    Call("Coder::HighLight", 2, "#000000", "#9BFF9B", 1, 0, 10)

Call("Coder::HighLight", 3, ID, "#RRGGBB", "#RRGGBB")
  :
    3
        .
    ID
       (  0).  ,   .
       -1,      .
       -2,    .
    "#RRGGBB"
       ,  "0" .
    "#RRGGBB"
       ,  "0" .
  :
    Call("Coder::HighLight", 3, 0)

Call("Coder::HighLight", 4, ID, "#RRGGBB", "#RRGGBB", DIRECTION)
  :
    4
        .
    ID
       (  0).  ,   .
       -1,      .
       -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  ***

[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),      .
  -  (Parent ID)   "Delimiters:"   "Quotes:", "QuotesRE:", "Folds:".
  -  (Parent ID)   "Words:"   "Quotes:", "QuotesRE:", "Folds:".
  -  (Parent ID)   "Quotes:"   "Quotes:", "QuotesRE:", "Folds:".
  -  (Parent ID)   "QuotesRE:"   "Quotes:", "QuotesRE:", "Folds:".
  -  (Parent ID)   "Folds:"   "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 .

  - ,     (Fold start)    (Fold end),  
     .coder ,      (Rule file).
  -     (Rule file)   .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,  .
