<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=Ide%2FExternal_Tools</id>
	<title>Ide/External Tools - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=Ide%2FExternal_Tools"/>
	<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/External_Tools&amp;action=history"/>
	<updated>2026-05-14T03:07:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/External_Tools&amp;diff=3520&amp;oldid=prev</id>
		<title>GalinaTchekmareva at 10:52, 4 April 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/External_Tools&amp;diff=3520&amp;oldid=prev"/>
		<updated>2013-04-04T10:52:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.visual-prolog.com/index.php?title=Ide/External_Tools&amp;amp;diff=3520&amp;amp;oldid=3519&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Ide/External_Tools&amp;diff=3519&amp;oldid=prev</id>
		<title>GalinaTchekmareva: New page: {{ideNavbar|External Tools}} === How to Add Calls of Other Applications ===  The Tools | Configure Tools command opens the &#039;&#039;&#039;Tools&#039;&#039;&#039; dialog. In this dialog you can assign 10 commands tha...</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Ide/External_Tools&amp;diff=3519&amp;oldid=prev"/>
		<updated>2013-04-02T13:05:33Z</updated>

		<summary type="html">&lt;p&gt;New page: {{ideNavbar|External Tools}} === How to Add Calls of Other Applications ===  The Tools | Configure Tools command opens the &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; dialog. In this dialog you can assign 10 commands tha...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ideNavbar|External Tools}}&lt;br /&gt;
=== How to Add Calls of Other Applications ===&lt;br /&gt;
&lt;br /&gt;
The Tools | Configure Tools command opens the &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; dialog. In this dialog you can assign 10 commands that will be executed when you pressing the hot keys from &amp;#039;&amp;#039;&amp;#039;Ctrl+1&amp;#039;&amp;#039;&amp;#039; till &amp;#039;&amp;#039;&amp;#039;Ctrl+0&amp;#039;&amp;#039;&amp;#039;. These commands can be executed onto a file opened in any having focus IDE editor (in the IDE text editor and in the IDE resource editors).&lt;br /&gt;
&lt;br /&gt;
=== How to Invoke a Command ===&lt;br /&gt;
&lt;br /&gt;
For example, you can assign to the hot key &amp;#039;&amp;#039;&amp;#039;Ctrl+3&amp;#039;&amp;#039;&amp;#039; a command line, which will invoke a command to switch off read only attribute from a file opened in the having focus IDE text editor. To do this one should select in the &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; dialog the line with &amp;#039;&amp;#039;&amp;#039;Ctrl+3&amp;#039;&amp;#039;&amp;#039; hotkey, type in into the &amp;#039;&amp;#039;&amp;#039;Command Line&amp;#039;&amp;#039;&amp;#039; field a command line that should be executed on pressing the &amp;#039;&amp;#039;&amp;#039;Ctrl+3&amp;#039;&amp;#039;&amp;#039; hot key. (Otherwise, you can find a file to be executed using the &amp;#039;&amp;#039;&amp;#039;Browse&amp;#039;&amp;#039;&amp;#039; button.) For example, you can specify:&lt;br /&gt;
&amp;lt;vipbnf&amp;gt;attrib&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the attributes should be:&lt;br /&gt;
&amp;lt;vipbnf&amp;gt;-r $(file)&amp;lt;/vipbnf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type into the &amp;#039;&amp;#039;&amp;#039;Name:&amp;#039;&amp;#039;&amp;#039; field a short name you wish to use to the command, for instance, &amp;lt;vpbnf&amp;gt;&amp;lt;TmpWritable&amp;gt;&amp;lt;/vpbnf&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now clicking the &amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039; menu item you will see that the new sub-menu item &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;TmpWritable &amp;#039;&amp;#039;&amp;#039;Ctrl+3&amp;#039;&amp;#039;&amp;#039; appears.&amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;So you can call the inserted command by both pressing onto the hot key &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Ctrl 3&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; and by selecting this new sub-menu command &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tools | TextPad&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Command Line Syntax ==&lt;br /&gt;
&lt;br /&gt;
Notice that in the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Command Line&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; you should not surround a filename to be executed with the quotation marks, the IDE makes this automatically. However, you should surround a filename to be executed with quotation marks (if the filename contains blank characters)&amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;when&amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;you use it inside a command file. Also notice that the IDE passes the following parameters to the specified command line:&lt;br /&gt;
$(file:pne) – is the full filename (with the path and the filename extension) of the file opened in the having focus IDE editor.&lt;br /&gt;
$(file:p) – is the full path of the filename (i.e. without the filename) of the file opened in the having focus IDE editor.&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(file:n)&amp;lt;/span&amp;gt; – is the filename&lt;br /&gt;
 without the path and without the extension of the file opened in the having&lt;br /&gt;
 focus IDE editor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(file:e)&amp;lt;/span&amp;gt; – is the filename&lt;br /&gt;
 extension without the path of the file opened in the having focus IDE&lt;br /&gt;
 editor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(file:ne)&amp;lt;/span&amp;gt; – is the&lt;br /&gt;
 short filename without the path of the file opened in the having focus&lt;br /&gt;
 IDE editor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(file:pn)&amp;lt;/span&amp;gt; – is the&lt;br /&gt;
 full filename without the extension of the file opened in the having focus&lt;br /&gt;
 IDE editor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(file)&amp;lt;/span&amp;gt; – is the full&lt;br /&gt;
 filename (with the path and the filename extension) of the file opened&lt;br /&gt;
 in the having focus IDE editor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(line)&amp;lt;/span&amp;gt; – is the&lt;br /&gt;
 number of the current line (where the caret is placed) in the having focus&lt;br /&gt;
 IDE text editor. It is always &amp;lt;span class=code-span&amp;gt;0&amp;lt;/span&amp;gt;, if a non-text&lt;br /&gt;
 editor is the currently active editor.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(column)&amp;lt;/span&amp;gt; – is the&lt;br /&gt;
 number of the current column number (where the caret is placed) in the&lt;br /&gt;
 having focus IDE text editor. It is always &amp;lt;span class=code-span&amp;gt;0&amp;lt;/span&amp;gt;,&lt;br /&gt;
 if a non-text editor is the currently active editor.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(repository)&amp;lt;/span&amp;gt; – is the&lt;br /&gt;
 repository path, which can be used for a source control system&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(password)&amp;lt;/span&amp;gt; – is the&lt;br /&gt;
 password, which can be used for a source control system&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(user)&amp;lt;/span&amp;gt; – is the user&lt;br /&gt;
 name, which can be used for a source control system&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(scfile)&amp;lt;/span&amp;gt; – is the file&lt;br /&gt;
 name with path in the source control system&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li class=kadov-p&lt;br /&gt;
		class=kadov-p&amp;gt;&amp;lt;span class=code-span&amp;gt;$(host)&amp;lt;/span&amp;gt; – is the host&lt;br /&gt;
 address, which can be used for a source control system&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tools works on the active file (e.g. in the active editor). &amp;lt;br /&amp;gt;A &amp;lt;br /&amp;gt;$(column) The column in which the caret is placed &amp;lt;br /&amp;gt;$(line) The line number in which the caret is placed &amp;lt;br /&amp;gt;$(file) File name &amp;lt;br /&amp;gt;$(file:p) Path of the file name &amp;lt;br /&amp;gt;$(file:n) Name of the file name &amp;lt;br /&amp;gt;$(file:e) Extension of the file name &amp;lt;br /&amp;gt;$(file:pn) Path and name &amp;lt;br /&amp;gt;$(file:ne) Name and extension &amp;lt;br /&amp;gt;$(file:pne) Path, Name and extension (same as $(file) ) &amp;lt;br /&amp;gt;A  &amp;lt;br /&amp;gt;These variables are for use with a source control system (e.g. SourceSafe, Vault, etc): &amp;lt;br /&amp;gt;A  &amp;lt;br /&amp;gt;$(repository) Source Control repository &amp;lt;br /&amp;gt;$(scfile) Source Control file name&lt;br /&gt;
&lt;br /&gt;
The values of these variable depends on the settings you have made in Tools -&amp;amp;gt; Source Control Repositories... If the file name is c:\xxx\yyy\zzz\aaa.pro and you have defined a repository RRR with Directory c:\xxx\yyy then these variables will get the values:&lt;br /&gt;
&lt;br /&gt;
$(repository) = RRR &amp;lt;br /&amp;gt;$(scfile) = $/zzz/aaa.pro&lt;br /&gt;
&lt;br /&gt;
Such values are suitable for defining the CheckOut command (Ctrl-1) which the IDE will use for some operations if the file is read-only. (And of course if you press Ctrl-1).&lt;br /&gt;
&lt;br /&gt;
The last variables from the list (i.e. $(password) $(user) $(host)) are partly nonsense. These are handy variables for use with the CheckOut command, but they are merely variables defined in Tools -&amp;amp;gt; IDE Variables....&lt;br /&gt;
&lt;br /&gt;
Finally, the variable $(ProDir) represents the directory in which Visual Prolog is installed.&lt;br /&gt;
&lt;br /&gt;
== How to &amp;#039;Check In&amp;#039; a File in MS Visual Source Safe ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;Let us, for example, discuss - how we can use parameters passed to command lines in a command file with which we can in MS Visual Source Safe (VSS) set &amp;quot;Check In&amp;quot; marker to a file opened in any IDE editor. We can do this with the following steps:&lt;br /&gt;
&lt;br /&gt;
* Select the menu item &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tools | Configure Tools&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; to open the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; dialog.&lt;br /&gt;
* Select a not used command, for instance 2, and as &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; type in &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;&amp;quot;Check In&amp;quot;&amp;lt;/span&amp;gt;.&lt;br /&gt;
* Now into the filed &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Command Line&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; type in a command like this:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
C:\Visual Prolog 6\Check_In.cmd&lt;br /&gt;
&lt;br /&gt;
and attributes&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
$(file) $(file:p) $(file:ne) $(line) $(column) $(repository) $(scfile)&lt;br /&gt;
&lt;br /&gt;
* The file &amp;#039;&amp;#039;&amp;#039;Check_In.cmd&amp;#039;&amp;#039;&amp;#039; should contain code like this:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
setlocal set ssexe=&amp;quot;v:\win32\SS.EXE&amp;quot; set ssdir=v:\VIP6 cd %2 %ssexe% Checkin %3 -I- endlocal&lt;br /&gt;
&lt;br /&gt;
This code contains Visual Source Safe command line options, which we will not discuss here, but this command file also uses parameters:&lt;br /&gt;
&lt;br /&gt;
#* &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;$(file:p)&amp;lt;/span&amp;gt; to get &amp;quot;a path to the file opened in the having focus IDE editor&amp;quot; and&lt;br /&gt;
#* &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;$(file:ne)&amp;lt;/span&amp;gt; to get &amp;quot;the filename (with a filename extension) of this file&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now you can open a file (stored in a Visual Source Safe database) in an appropriate IDE editor (for example, in the &amp;#039;&amp;#039;&amp;#039;IDE Designer&amp;#039;&amp;#039;&amp;#039;) and press the hot key &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Ctrl 2&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; (or select the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tools | VSS Check In&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; menu command). This will execute the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;Check_In.cmd&amp;lt;/span&amp;gt; file, which will &amp;quot;&amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Check In&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;quot; the opened file. This operation will copy your changes into the VSS database, creating a new version of the file containing the dialog description in VSS database. When other users use the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Get Latest Version&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; command or &amp;quot;Check out&amp;quot; the file, they receive all modifications you have made in this dialog. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to &amp;#039;Check Out&amp;#039; a File in Vault ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;Let us discuss how to &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Check Out&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; a file opened in some IDE editor into the Vault repository (database). &amp;lt;br /&amp;gt;Like in the previous paragraph we should:&lt;br /&gt;
&lt;br /&gt;
* Create a command file activating Vault, forming and executing correspondent Vault command to the edited file.&lt;br /&gt;
* Add the call to this command file into the list of IDE commands.&lt;br /&gt;
&lt;br /&gt;
For example, you can add a command activating this command file like these: &amp;lt;br /&amp;gt;[[Image:Tools.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;Then the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tools&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; sub-menu will look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:tools_menu.png]]&lt;br /&gt;
&lt;br /&gt;
Now if a file is opened in some IDE editor, then you can apply to it Vault&amp;#039;s &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Check Out &amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;command simply pressing the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Ctrl 1 &amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;hot key (or with the &amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tools | Check Out&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt; menu commands). &amp;lt;br /&amp;gt;Let us shortly discuss contents of the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;Check_Out.cmd&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;batch file. But first we should set the attributes:&lt;br /&gt;
&lt;br /&gt;
$(scfile) $(repository) $(password) $(user) $(host)&lt;br /&gt;
&lt;br /&gt;
What commands can be in the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;Check_Out.cmd&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
set USER=%4 set PW=%3 set HOST=%5 set REPOSITORY=%1 set LOGIN=-user &amp;quot;%USER%&amp;quot; -password &amp;quot;%PW%&amp;quot; -host &amp;quot;%HOST%&amp;quot; -repository &amp;quot;%REPOSITORY%&amp;quot; set HOME=C:\Program Files\SourceGear\Vault Client set CMD=&amp;quot;%HOME%\vault.exe&amp;quot; %LOGIN% %CMD% checkout %1&lt;br /&gt;
&lt;br /&gt;
Here first lines prepare the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;LOGIN &amp;lt;/span&amp;gt;A command, which will be passed to the Vault command line executable. These lines is rather simple and do not require additional explanations. &amp;lt;br /&amp;gt;The next two lines prepare the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;CMD&amp;lt;/span&amp;gt; command, which will be used to call the command line version of the Vault client application &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;vault.exe&amp;lt;/span&amp;gt; and pass to it the &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;LOGIN&amp;lt;/span&amp;gt; parameters with which it will connect to the Vault server. &amp;lt;br /&amp;gt;And the last line is the real &amp;lt;span class=&amp;quot;code-span&amp;quot;&amp;gt;checkout&amp;lt;/span&amp;gt; Vault command, which check out the specified file. For more information about Vault command line parameters use Vault help.&lt;/div&gt;</summary>
		<author><name>GalinaTchekmareva</name></author>
	</entry>
</feed>