Tools and Utilities

hbIDE employs a unique feature of executing external processes, attached or detached. Tools engine is implements almost on top of "Project Building" protocol and supports the similar functionality in addition to traditional one. This means through this you are capable of build any project of any language yet not supported by hbIDE. Infact it widens the scope of hbIDE usage. Below is the Tools & Utilities dialog and the explanation of its fields followed by examples and other facts.

Name: can be provided manually or will be pulled from <Command Line> if an application is searched with by clicking on <Browse>. This name is displayed in the drop-down menu of "Tools" button on the top-toolbar. This name can also be supplied to public method ::execTool( cName ).

Command Line: placeholder of executable's path which can be provided manually or can be searched by clicking on <Browse> button. This is the application which will be invoked with a click on <Execute> button or clicking on drop-down menu of. If left blank, it will invoke shell command. This field is subject to normalization of path.

Parameters: placeholder for arguments to be supplied to application defined in <Command Line>. If no application is defined then this field will be considered as application(s) with parameters. This field is subject to path normalization and hence character "/" and "\" will be treated as path separators. Normalization is not applied if "http://" is a part of this field. It implied that "/" must not be used for command line arguments. You are encouraged to use hiphen "-" instead of slash "/" for this purpose.

Start In: placeholder the path which will be made current before invoking the application. It helps in fine-tuning the behavior if some environment is dependent on fixed locations for any components.

Capture Output: placeholder to flag if the tool defined herein is invoked as "attached" to this process and is subject to capture the standard and errors output ? If switched ON, the behavior of this utility will correspond to one which is employed for "building" a project, with same features as to tracking the link/compile errors. This opens up the possibilities to execute edit/compile/link cycle for n number of languages and compiler for which hbIDE does not support yet. See "Xbase++" example below.

Open Output Window: placeholder to flag which tells hbIDE to invoke "Output Consoke" docking widget at the bottom of editing area. This has relevance only if "Capture Output" is also checked. This feature is especially useful in cases when we are invoking files which are associated to some other application but we do not want to see the shell command window. Please see examples below to understand its behavior fully.

Examples

1

Name

hbIDE : opens an instance of hbIDE as a pure editor with hbide.prg opened in an edit tab. We are supplying source name with the full qualified path and are not caring for from where it is invoked. The other alternative could be: <Parameters> hbide.prg <Start In> C:/harbour/contrib/hbide/.

Command Line

C:/harbour/contrib/hbide/hbide.exe

Parameters

C:/harbour/contrib/hbide/hbide.prg

Start In

Capture Output

Open Output

2

Name

Xbase++ : compiles and links an Xbase++ project and traps errors in the output window from where you can reach to the offending line by double clicking, much like if an Harbour project has been built.

::execTool( cName ). <cName> is the name of the tool and must be already defined before calling, otherwise no action will take place.

2.

::execTool( cCommand, cParams, cStartIn, lCapture, lOpenOutputConsole ) if called like this it does not look for any pre-defined definition. If none of the parameters is supplied, a shell command window will be invoked.