home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 November / CPNL0711.ISO / develop / tools / npp.4.2.2.Installer.exe / plugins / doc / NppExec_TechInfo.txt next >
Text File  |  2007-04-17  |  5KB  |  140 lines

  1.  ****************************************************************************
  2.  * NppExec plugin ver. 0.2 for Notepad++ 4.0.2 (and above)
  3.  * by DV, December 2006 - April 2007
  4.  ****************************************************************************
  5.  
  6.  
  7.  ***************************
  8.  *  Technical Information  *
  9.  ***************************
  10.  
  11.  NppExec has advanced "hidden" settings which can be set manually.
  12.  You need to edit NppExec's ini-file: "\Plugins\Config\NppExec.ini".
  13.  
  14.   --------------------------------------------------------------
  15.  |  KEY                             |  DEFAULT VALUE   |  TYPE  |
  16.  |--------------------------------------------------------------|
  17.  |  ChildProcess_StartupTimeout_ms  |  240             |  int   |
  18.  |  ChildProcess_CycleTimeout_ms    |  120             |  int   |
  19.  |  Path_AutoDblQuotes              |    0    (FALSE)  |  BOOL  |
  20.  |  CmdHistory_MaxItems             |  256             |  int   |
  21.  |  Exec_MaxCount                   |  100             |  int   |
  22.  |  RichEdit_MaxTextLength          |  4194304 (4 MB)  |  int   |
  23.  |  CommentDelimiter                |  //              | string |
  24.   --------------------------------------------------------------
  25.  
  26.  The purpose of each key is described below.
  27.  You can add specified keys to [Console] section of this ini-file.
  28.  For example, you can modify it in the following way:
  29.  
  30.    [Console]
  31.    Visible=0
  32.    OEM=1
  33.    CmdHistory=1
  34.    ChildProcess_StartupTimeout_ms=240
  35.    ChildProcess_CycleTimeout_ms=120
  36.    Path_AutoDblQuotes=0
  37.    CmdHistory_MaxItems=256
  38.    Exec_MaxCount=100
  39.    RichEdit_MaxTextLength=4194304
  40.    CommentDelimiter=//
  41.  
  42.  
  43.  ChildProcess_StartupTimeout_ms
  44.  ------------------------------
  45.    This parameter is important when a child console process is created.
  46.    The child process usually can't be created immediately, therefore
  47.    we must give some time to this process to be started.
  48.    Here is a general implementation of this part of code:
  49.    
  50.        if ( CreateProcess( ... , &ProcInfo ) )
  51.        {
  52.            CloseHandle( ProcInfo.hThread );
  53.            WaitForSingleObject( ProcInfo.hProcess, STARTUP_TIMEOUT );
  54.            ...
  55.        }
  56.  
  57.    When the process is started, WaitForSingleObject returns.
  58.    But, if the value of STARTUP_TIMEOUT is too low, WaitForSingleObject 
  59.    may return before the process is started.
  60.    If default value of ChildProcess_StartupTimeout_ms is not enough for
  61.    your PC, you can increase it. IMHO, it can not exceed 400 ms.
  62.    
  63.  
  64.  ChildProcess_CycleTimeout_ms
  65.  ----------------------------
  66.    The only purpose of this parameter is to decrease the CPU usage.
  67.    The bigger value you set, the less CPU usage you get :-)
  68.    Here is an implementation of this part of code in outline:
  69.    
  70.        do {
  71.            // reading from the process'es pipe
  72.            ...
  73.        } while ( WaitForSingleObject( ProcInfo.hProcess, 
  74.                      CYCLE_TIMEOUT ) == WAIT_TIMEOUT );
  75.    
  76.    Don't forget that actually the value of ChildProcess_CycleTimeout_ms
  77.    is a pause between requests to the child console process'es output, 
  78.    so values > 500 ms are not recommened.
  79.  
  80.  
  81.  Path_AutoDblQuotes
  82.  ------------------
  83.    If you enable this option (set it to 1), then path to executable 
  84.    which contains spaces (for example, "my program 1.exe") will be 
  85.    automatically enclosed in quotes "".
  86.    It is disabled by default because of a bug with executables w/o
  87.    extension. For example, this line
  88.    
  89.      cmd /c calc.exe
  90.    
  91.    will be modified (if this option is enabled) to this one:
  92.    
  93.      "cmd /c calc.exe"
  94.      
  95.    because "cmd" is given without extension ".exe".
  96.    Therefore don't forget to enclose paths with spaces in quotes
  97.    manually, when this option is disabled.
  98.    
  99.  
  100.  CmdHistory_MaxItems
  101.  -------------------
  102.    Specifies maximum number of items in the console commands history.
  103.    
  104.  
  105.  Exec_MaxCount
  106.  -------------
  107.    Specifies maximum number of NPP_EXEC calls within one script.
  108.    This value is needed to prevent the infinite loop of several scripts
  109.    which call each other, e.g.
  110.    
  111.      ::script1
  112.      npp_exec script2
  113.      
  114.      ::script2
  115.      npp_exec script1
  116.    
  117.  
  118.  RichEdit_MaxTextLength  
  119.  ----------------------
  120.    Specifies maximum number of characters which can be stored or 
  121.    pasted into the Console dialog's rich edit control.
  122.  
  123.  
  124.  CommentDelimiter
  125.  ----------------
  126.    Specifies a comment delimiter  :-)  I.e. all characters after
  127.    this delimiter are understood as a comment, and the text line
  128.    (command) is truncated at the position of this delimiter.
  129.    Exception: 
  130.    - when the comment delimiter is // then :// is not truncated 
  131.    at the position of // (because :// can be a part of http://).
  132.    Note:
  133.    - if you specify empty comment delimiter i.e.
  134.  
  135.      CommentDelimiter=
  136.  
  137.    then you can not use comments in your commands/scripts because
  138.    there is no comment delimiter in this case.
  139.  
  140.