"Fossies" - the Fresh Open Source Software Archive

Member "wscite/SciTEDirector.html" (11 Sep 2020, 19523 Bytes) of package /windows/misc/wscite445.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) HTML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 <?xml version="1.0"?>
    2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    3     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    4 <html xmlns="http://www.w3.org/1999/xhtml">
    5   <head>
    6     <meta name="generator" content="SciTE" />
    7     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    8     <meta name="viewport" content="width=device-width, initial-scale=1">
    9     <title>
   10       SciTE Director Interface
   11     </title>
   12     <style type="text/css">
   13     table {
   14         border: 1px solid black;
   15         border-collapse: collapse;
   16     }
   17     td {
   18         border: 1px solid black;
   19         padding: 1px 5px 1px 5px;
   20     }
   21     .S0 {
   22         color: #808080;
   23     }
   24     .S1 {
   25         font-family: Comic Sans MS;
   26         color: #007F00;
   27         font-size: 9pt;
   28     }
   29     .S2 {
   30         font-family: Comic Sans MS;
   31         color: #007F00;
   32         font-size: 9pt;
   33     }
   34     .S3 {
   35         font-family: Comic Sans MS;
   36         color: #3F703F;
   37         font-size: 9pt;
   38     }
   39     .S4 {
   40         color: #007F7F;
   41     }
   42     .S5 {
   43         font-weight: bold;
   44         color: #00007F;
   45     }
   46     .S6 {
   47         color: #7F007F;
   48     }
   49     .S7 {
   50         color: #7F007F;
   51     }
   52     .S8 {
   53         color: #804080;
   54     }
   55     .S9 {
   56         color: #7F7F00;
   57     }
   58     .S10 {
   59         font-weight: bold;
   60         color: #000000;
   61     }
   62     .S12 {
   63         font-family: Courier New;
   64         color: #000000;
   65         background: #E0C0E0;
   66         font-size: 10pt;
   67     }
   68     .S13 {
   69         font-family: Courier New;
   70         color: #007F00;
   71         background: #E0FFE0;
   72         font-size: 10pt;
   73     }
   74     .S14 {
   75         font-family: Courier New;
   76         color: #3F7F3F;
   77         background: #E0F0FF;
   78         font-size: 10pt;
   79     }
   80     .S15 {
   81         font-family: Comic Sans MS;
   82         color: #3F703F;
   83         font-size: 9pt;
   84     }
   85     SPAN {
   86         font-family: Verdana;
   87         font-size: 10pt;
   88     }
   89     .example {
   90         color: #00A000;
   91         font-weight: bold;
   92     }
   93     DIV.example {
   94         background: #F7FCF7;
   95         border: 1px solid #C0D7C0;
   96         margin: 0.3em 3em;
   97         padding: 0.3em 0.6em;
   98         font-size: 80%;
   99     }
  100     DIV.highlighted {
  101         background: #F7FCF7;
  102         border: 1px solid #C0D7C0;
  103         margin: 0.3em 3em;
  104         padding: 0.3em 0.6em;
  105         font-size: 80%;
  106     }
  107     </style>
  108   </head>
  109   <body bgcolor="#FFFFFF" text="#000000">
  110     <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
  111       <tr>
  112         <td>
  113           <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
  114         </td>
  115         <td>
  116           <a href="index.html" style="color:white;text-decoration:none"><font size="5">
  117       SciTE Director Interface</font></a>
  118         </td>
  119       </tr>
  120     </table>
  121     <h3>
  122        Purpose.
  123     </h3>
  124     <p>Software development does not occur only at the single file level handled by SciTE.
  125     A developer will generally work on a group of related files together in the context of one
  126     project. Project manager functionality could be added to SciTE as it has to other editors
  127     but this would impose a particular view of how projects are to be managed including the
  128     format of project files. Instead, SciTE has an interface that can be used by project
  129     managers or similar applications to control SciTE. Any application that controls SciTE is
  130     referred to as a "Director".</p>
  131     <p>The current Director interface only works on Windows and GTK/Linux. In the future, it should be
  132     possible to replace the low level interface and so make this interface available on other
  133     platforms.</p>
  134     <p>There is currently one director application,
  135     <a href="http://llt.chez-alice.fr/">Filerx</a>, available.</p>
  136     <p>This interface is implemented on top of the
  137     <a href="SciTEExtension.html">SciTE Extension Interface</a>, in the
  138     file scite\win32\DirectorExtension.cxx.</p>
  139     <h3>
  140        Direct connection, broadcasting and explicit return addresses.
  141     </h3>
  142     <p>One application at a time is <i>the director</i> of SciTE,
  143     controlling SciTE as it wishes. To support other communications techniques
  144     applications may broadcast to all active director interfaces. When doing so,
  145     each message should contain an explicit return address where replies to the
  146     broadcast message will be sent.
  147     </p>
  148     <h3>
  149        Low level interface on Windows.
  150     </h3>
  151     <p>The Windows WM_COPYDATA message is used to transfer data between
  152     SciTE and a Director. The messages are sent between windows created by the two
  153     applications. SciTE uses a window that has no other purpose than to receive these
  154     messages.
  155     The lpData and cbData fields of the COPYDATASTRUCT
  156     are used to transfer a string between the two processes, with cbData holding the length
  157     of the string pointed to by lpData. The string does not have to be terminated with '\0'.
  158     The dwData should be 0.</p>
  159     <p>Before messages can be sent from one application to the other, the window handle
  160     of the window to receive the message must be found. This is normally transferred when
  161     starting the other application as a command line parameter. Either application may
  162     start the other. SciTE makes its window handle available in the WindowID
  163     property and accepts a director.hwnd property as the window handle to which it
  164     sends data.</p>
  165     <p>As an example of communicating the window handle, to install Filerx in the Tools
  166     menu of SciTE these properties could be used:</p>
  167     <div class="example">
  168     command.name.0.*=Project Editor<br/>
  169     command.0.*="C:\os\scite\bin\filerx.exe" "$(FileDir)" "$(WindowID)"<br/>
  170     command.subsystem.0.*=2
  171     </div>
  172     <p>In the opposite direction, Filerx can start up SciTE with a command line that
  173     specifies its window handle as well as the file it wants edited:</p>
  174     <div class="example">
  175     SciTE -director.hwnd=937846 c:\os\scite\src\SciTEBase.cxx
  176     </div>
  177     <p>Once one application has the window handle of the other application, it should send
  178     its window handle to the other application using an identity message as described later.
  179     Then both sides are able to send messages.</p>
  180     <p>To broadcast a message on Windows, the set of active director
  181     interfaces can be found by broadcasting the "SciTEDirectorInterface"
  182     message and seeing which windows reply with the same value as that message.
  183     Example broadcast code:</p>
  184     <div class="highlighted">
  185 <SPAN class=S0></SPAN><SPAN class=S5>unsigned</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S5>int</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>SDI</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>=</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>RegisterWindowMessage</SPAN><SPAN class=S10>(</SPAN><SPAN class=S0></SPAN><SPAN class=S6>"SciTEDirectorInterface"</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
  186 </SPAN><SPAN class=S11>HWND</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>w</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>=</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>GetWindow</SPAN><SPAN class=S10>(::</SPAN><SPAN class=S11>GetDesktopWindow</SPAN><SPAN class=S10>(),</SPAN><SPAN class=S0></SPAN><SPAN class=S11>GW_CHILD</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
  187 </SPAN><SPAN class=S5>while</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>w</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
  188 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S11>DWORD</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>res</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>=</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S4>0</SPAN><SPAN class=S10>;</SPAN><SPAN class=S0><BR>
  189 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S2>//&nbsp;Need&nbsp;time&nbsp;out&nbsp;to&nbsp;avoid&nbsp;hung&nbsp;applications</SPAN><SPAN class=S0><BR>
  190 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>SendMessageTimeout</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>w</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>SDI</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S4>0</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S4>0</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0><BR>
  191 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S11>SMTO_NORMAL</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S4>1000</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>&amp;</SPAN><SPAN class=S11>res</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
  192 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S5>if</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>res</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>==</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S5>static_cast</SPAN><SPAN class=S10>&lt;</SPAN><SPAN class=S11>DWORD</SPAN><SPAN class=S10>&gt;(</SPAN><SPAN class=S11>SDI</SPAN><SPAN class=S10>))</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
  193 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S2>//&nbsp;Replied&nbsp;with&nbsp;same&nbsp;SDI&nbsp;code&nbsp;so&nbsp;should</SPAN><SPAN class=S0><BR>
  194 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S2>//&nbsp;understand&nbsp;SDI's&nbsp;version&nbsp;of&nbsp;WM_COPYDATA</SPAN><SPAN class=S0><BR>
  195 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>SendMessage</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>w</SPAN><SPAN class=S10>,</SPAN><SPAN class=S11>WM_COPYDATA</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0><BR>
  196 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>UINT</SPAN><SPAN class=S10>)</SPAN><SPAN class=S11>m_hWnd</SPAN><SPAN class=S10>,(</SPAN><SPAN class=S5>long</SPAN><SPAN class=S10>)&amp;</SPAN><SPAN class=S11>cds</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
  197 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR>
  198 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S11>w</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>=</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>GetWindow</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>w</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>GW_HWNDNEXT</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
  199 </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR>
  200 </SPAN>
  201 </div>
  202 <p>To advertise that a top level window supports the Director interface:</p>
  203     <div class="highlighted">
  204 <SPAN class=S0></SPAN><SPAN class=S11>LRESULT</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>PASCAL</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>DirectorExtension_WndProc</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>HWND</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>hWnd</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;<BR>
  205 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S11>UINT</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>iMessage</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>WPARAM</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>wParam</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>LPARAM</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>lParam</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
  206 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S5>unsigned</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S5>int</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>SDI</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>=</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>RegisterWindowMessage</SPAN><SPAN class=S10>(</SPAN><SPAN class=S6>"SciTEDirectorInterface"</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
  207 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S5>if</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>iMessage</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>==</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>SDI</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
  208 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S5>return</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>SDI</SPAN><SPAN class=S10>;</SPAN><SPAN class=S0><BR>
  209 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR>
  210 &nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=S5>return</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>DefWindowProc</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>hWnd</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>iMessage</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0>&nbsp;</SPAN><SPAN class=S11>wParam</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0></SPAN><SPAN class=S11>lParam</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
  211 </SPAN><SPAN class=S10>}</SPAN><BR>
  212 </div>
  213     <h3>
  214        Low level interface on GTK.
  215     </h3>
  216     <p>An input fifo for each application supporting the director
  217     interface located in the temporary directory (obtained through GLib g_get_tmp_dir() call),
  218     with a name using a pattern such as
  219     "/tmp/SciTE.&lt;PID&gt;.in".
  220     This allows enumerating all active director interfaces and also opening
  221     a specific interface when the fifo name has been communicated through some
  222     other means such as a command line argument or an identity: command.</p>
  223     <h3>
  224        High level interface.
  225     </h3>
  226     <p>Messages use C style escapes to represent control characters and
  227     ensure that only visible characters are transmitted apart from the use
  228     of '\n' to separate messages.</p>
  229     <p>The string transmitted by the low level interface contains an optional
  230     return address surrounded by ':' characters, an action, a ':' character and
  231     an optional argument. The argument is often a file path. The ':' must be present even if there
  232     is no argument. For example, SciTE understands the message</p>
  233     <div class="example">
  234     open:c:\\os\\scintilla\\include\\Scintilla.iface
  235     </div>
  236     <p>as a command to open the file "c:\os\scintilla\include\Scintilla.iface" just as if the user
  237     had performed this operation.</p>
  238     <p>If the first character of the message is a ':' then up to the next ':' is a return
  239     address, so SciTE will reply to the message</p>
  240     <div class="example">
  241     :73658:askfilename:
  242     </div>
  243     <p>by sending the filename being edited to the return address 73658
  244     rather than to its director.</p>
  245     <h4>The actions understood by SciTE are:</h4>
  246     <table border="1">
  247         <tr>
  248             <td>askfilename:</td>
  249             <td>Return the name of the file being edited.</td>
  250         </tr>
  251         <tr>
  252             <td>askproperty:&lt;key&gt;</td>
  253             <td>Return the value of a property.</td>
  254         </tr>
  255         <tr>
  256             <td>close:</td>
  257             <td>Close the current file.</td>
  258         </tr>
  259         <tr>
  260             <td>closing:</td>
  261             <td>Director is closing - SciTE closes if it was started by the director.</td>
  262         </tr>
  263         <tr>
  264             <td>currentmacro:&lt;string&gt;</td>
  265             <td>Set the current macro to name.</td>
  266         </tr>
  267         <tr>
  268             <td>cwd:</td>
  269             <td>Change the working directory.</td>
  270         </tr>
  271         <tr>
  272             <td>enumproperties:dyn|local|user|base|embed</td>
  273             <td>Enumerate all the properties in the argument set.</td>
  274         </tr>
  275         <tr>
  276             <td>exportashtml:&lt;path&gt;</td>
  277             <td>Save the document in HTML format as the indicated file.</td>
  278         </tr>
  279         <tr>
  280             <td>exportasrtf:&lt;path&gt;</td>
  281             <td>Save the document in RTF format as the indicated file.</td>
  282         </tr>
  283         <tr>
  284             <td>exportaspdf:&lt;path&gt;</td>
  285             <td>Save the document in PDF format as the indicated file.</td>
  286         </tr>
  287         <tr>
  288             <td>exportaslatex:&lt;path&gt;</td>
  289             <td>Save the document in LaTeX format as the indicated file.</td>
  290         </tr>
  291         <tr>
  292             <td>exportasxml:&lt;path&gt;</td>
  293             <td>Save the document in XML format as the indicated file.</td>
  294         </tr>
  295         <tr>
  296             <td>extender:&lt;command&gt;</td>
  297             <td>Call the extension interface with the given command.</td>
  298         </tr>
  299         <tr>
  300             <td>find:&lt;string&gt;</td>
  301             <td>Search for a string, select and show it.</td>
  302         </tr>
  303         <tr>
  304             <td>focus:&lt;timeStamp&gt;</td>
  305             <td>On GTK bring this SciTE window to the front.
  306             The timeStamp is from the window manager and ensures that windows are only
  307             activated because of a user command.
  308             Has no effect on Windows as applications on Windows can only donate focus, not take focus.</td>
  309         </tr>
  310         <tr>
  311             <td>goto:&lt;lineNumber&gt;[,&lt;columnNumber&gt;]</td>
  312             <td>Move caret to a particular line and make it visible.<br>
  313             If there is a column number then select the word at that column number
  314             or move the caret there if no word is present.</td>
  315         </tr>
  316         <tr>
  317             <td>identity:&lt;hwndDirector&gt;</td>
  318             <td>Sets the director window handle to which SciTE sends messages.
  319             The argument is in decimal.</td>
  320         </tr>
  321         <tr>
  322             <td>insert:&lt;value&gt;</td>
  323             <td>Display the value in the editor pane replacing the selection.</td>
  324         </tr>
  325         <tr>
  326             <td>loadsession:&lt;path&gt;</td>
  327             <td>Load a session as given by the indicated file.</td>
  328         </tr>
  329         <tr>
  330             <td>macrocommand:&lt;command&gt;</td>
  331             <td>Execute a macro command.
  332             See the SciTE source code for the syntax of the
  333             command argument.</td>
  334         </tr>
  335         <tr>
  336             <td>macroenable:&lt;enable&gt;</td>
  337             <td>If enable, display menu commands in SciTE for recording
  338             and playing macros.</td>
  339         </tr>
  340         <tr>
  341             <td>macrolist:&lt;list&gt;</td>
  342             <td>Display a list for the user to choose from.</td>
  343         </tr>
  344         <tr>
  345             <td>menucommand:&lt;cmd&gt;</td>
  346             <td>Execute a menu command based on numeric ID.</td>
  347         </tr>
  348         <tr>
  349             <td>open:&lt;path&gt;</td>
  350             <td>Open the indicated file.</td>
  351         </tr>
  352         <tr>
  353             <td>output:&lt;value&gt;</td>
  354             <td>Display the value in the output pane replacing the selection.</td>
  355         </tr>
  356         <tr>
  357             <td>property:&lt;key&gt;=&lt;value&gt;</td>
  358             <td>Set a property to a value.</td>
  359         </tr>
  360         <tr>
  361             <td>quit:</td>
  362             <td>Shut down SciTE.</td>
  363         </tr>
  364         <tr>
  365             <td>reloadproperties:</td>
  366             <td>Reload properties from files.</td>
  367         </tr>
  368         <tr>
  369             <td>replaceall:&lt;search&gt;\000&lt;replace&gt;</td>
  370             <td>Replace all instances of the search string in the
  371             document with the replace string.</td>
  372         </tr>
  373         <tr>
  374             <td>saveas:&lt;path&gt;</td>
  375             <td>Save the document as the indicated file.</td>
  376         </tr>
  377         <tr>
  378             <td>savesession:&lt;path&gt;</td>
  379             <td>Save a session as given by the indicated file.</td>
  380         </tr>
  381     </table>
  382     <h4>The actions sent by SciTE are:</h4>
  383     <table border="1">
  384         <tr>
  385             <td>closed:&lt;path&gt;</td>
  386             <td>SciTE has closed the indicated file.</td>
  387         </tr>
  388         <tr>
  389             <td>closing:</td>
  390             <td>SciTE is closing.</td>
  391         </tr>
  392         <tr>
  393             <td>dyn|local|user|base|embed:&lt;key&gt;=&lt;value&gt;</td>
  394             <td>Set a property in a set to a value.</td>
  395         </tr>
  396         <tr>
  397             <td>filename:&lt;path&gt;</td>
  398             <td>The file being edited is path.
  399             This is the reply to the askfilename: command.</td>
  400         </tr>
  401         <tr>
  402             <td>identity:&lt;hwndSciTEReceiving&gt;</td>
  403             <td>SciTE indicates to the director the window handle to which it should send
  404             messages. The argument is in decimal.</td>
  405         </tr>
  406         <tr>
  407             <td>macro:getlist</td>
  408             <td>Retrieve the list of available macros which will be
  409             returned by the macrolist command.</td>
  410         </tr>
  411         <tr>
  412             <td>macro:record:&lt;details&gt;</td>
  413             <td>Start recording a macro.
  414             See the SciTE source code for the syntax of the
  415             details argument.</td>
  416         </tr>
  417         <tr>
  418             <td>macro:run:&lt;macroName&gt;</td>
  419             <td>Run the named macro.</td>
  420         </tr>
  421         <tr>
  422             <td>macro:stoprecord</td>
  423             <td>Stop recording a macro.</td>
  424         </tr>
  425         <tr>
  426             <td>opened:&lt;path&gt;</td>
  427             <td>SciTE has opened the indicated file.</td>
  428         </tr>
  429         <tr>
  430             <td>switched:&lt;path&gt;</td>
  431             <td>SciTE has switched buffers to the indicated file.</td>
  432         </tr>
  433         <tr>
  434             <td>saved:&lt;path&gt;</td>
  435             <td>SciTE has saved the indicated file.</td>
  436         </tr>
  437     </table>
  438   <p>In the future, more actions will be defined. Applications should ignore any
  439   actions that they do not understand.</p>
  440   </body>
  441 </html>
  442