| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | /**************************************************************************** | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2011-11-02 15:59:12 +01:00
										 |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** GNU Free Documentation License | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Alternatively, this file may be used under the terms of the GNU Free | 
					
						
							|  |  |  | ** Documentation License version 1.3 as published by the Free Software | 
					
						
							|  |  |  | ** Foundation and appearing in the file included in the packaging of this | 
					
						
							|  |  |  | ** file. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** If you have questions regarding the use of this file, please contact | 
					
						
							| 
									
										
										
										
											2011-11-02 15:59:12 +01:00
										 |  |  | ** Nokia at qt-info@nokia.com. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*! | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |     \contentspage{index.html}{Qt Creator} | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \page external-tool-spec.html | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |     \nextpage coding-style.html | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |     \title External Tool Specification Files | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |     An external tool specification file describes a tool that can be run from | 
					
						
							|  |  |  |     the \gui { Tools > External } menu. | 
					
						
							|  |  |  |     It specifies the name of the tool, the executable to run, optional | 
					
						
							|  |  |  |     arguments, and how to handle the output from the tool. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \section1 File Name | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \c {<yourtoolname>.xml} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Location | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     User specific tools are located in \c {$HOME/.config/Nokia/qtcreator/externaltools} | 
					
						
							|  |  |  |     on Mac and Linux, and in \c {%APPDATA%\Nokia\qtcreator\externaltools} on Windows. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     System wide tools are located in \c {<Qt Creator install>/share/qtcreator/externaltools} | 
					
						
							|  |  |  |     on Windows and Linux, and in \c {Qt Creator.app/Contents/Resources/externaltools} on Mac. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 File Format | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     External tool specifications are XML files with the following structure. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Main Tag | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |     The root tag is \c externaltool. It has the mandatory attribute \c id. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							|  |  |  |         \o Tag | 
					
						
							|  |  |  |         \o Meaning | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o externaltool | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o Root element in the XML file that specifies an external tool. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \endtable | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							|  |  |  |         \o Attribute | 
					
						
							|  |  |  |         \o Meaning | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o id | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o A string that identifies the external tool. | 
					
						
							|  |  |  |            Two tools cannot have the same id. Required. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Description Tags | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |     You must specify a description, display name, and category for the tool. | 
					
						
							|  |  |  |     You can translate their values into different languages by adding multiple | 
					
						
							|  |  |  |     \c description, \c displayname, and \c category tags that contain language | 
					
						
							|  |  |  |     codes. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							|  |  |  |         \o Tag | 
					
						
							|  |  |  |         \o Meaning | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o description | 
					
						
							|  |  |  |         \o Short, one-line description of what the tool is for. Required. | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o displayname | 
					
						
							|  |  |  |         \o Name to show in the menu item for the tool. Required. | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o category | 
					
						
							|  |  |  |         \o Name of the category to show the tool in. | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |            This is the name of the sub menu of the \c { Tools > External } | 
					
						
							|  |  |  |            menu where the tool is placed. For example, specify the value | 
					
						
							|  |  |  |            \c "Text" to display the tool in the \c { Tools > External > Text } | 
					
						
							|  |  |  |            menu. Required. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \endtable | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							|  |  |  |         \o Attribute | 
					
						
							|  |  |  |         \o Meaning | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o xml:lang | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o Language code (such as, \c "en" or \c "de") of the language that is used for | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |            the description, display name, or category. Optional. | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Executable Specification Tag | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |     You must add an \c executable tag under the root tag, that specifies the | 
					
						
							|  |  |  |     executable to run, optional arguments, and how to handle the output. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							|  |  |  |         \o Tag | 
					
						
							|  |  |  |         \o Meaning | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o executable | 
					
						
							|  |  |  |         \o Encloses subtags that specify what to run and which parameters to use. Required. | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							|  |  |  |         \o Attribute | 
					
						
							|  |  |  |         \o Meaning | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o output | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o Specifies how to handle the tool's standard output stream. | 
					
						
							|  |  |  |            Defaults to \c ShowInPane. Optional. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \row | 
					
						
							|  |  |  |         \o error | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o Specifies how to handle the tool's standard error stream. | 
					
						
							|  |  |  |            Defaults to \c ShowInPane. Optional. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \row | 
					
						
							|  |  |  |         \o modifiesdocument | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o Specifies whether Qt Creator should expect changes to the current | 
					
						
							|  |  |  |            document. If this flag is set, Qt Creator prompts users to save | 
					
						
							|  |  |  |            changes to the current document before running the tool, | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |            and silently reloads the current document after the tool has finished. | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |            Possible values are: \c "yes" or \c "no" (defaults to \c "no"). | 
					
						
							|  |  |  |            Optional. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |     The \c executable tag allows the following subtags. You must specify at least | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     one \c path. All subtags can contain special \l{Qt Creator Variables}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							|  |  |  |         \o Subtag | 
					
						
							|  |  |  |         \o Meaning | 
					
						
							|  |  |  |     \row | 
					
						
							|  |  |  |         \o path | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o File path to the executable to run, including filename. If you | 
					
						
							|  |  |  |            specify the executable name without a path, Qt creator checks the | 
					
						
							|  |  |  |            system PATH environment variable for a path to the executable. You | 
					
						
							|  |  |  |            can specify the path multiple times. Qt Creator tries to resolve the | 
					
						
							|  |  |  |            references in the given order and runs the first executable that it | 
					
						
							|  |  |  |            finds. Required. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \row | 
					
						
							|  |  |  |         \o arguments | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o Command line arguments for the executable. Specify the string in the | 
					
						
							|  |  |  |            same format (with respect to quoting and argument splitting, for | 
					
						
							|  |  |  |            example) as you would specify it on the command line of the platform | 
					
						
							|  |  |  |            the tool runs on. Optional. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \row | 
					
						
							|  |  |  |         \o workingdirectory | 
					
						
							| 
									
										
										
										
											2011-05-02 12:14:44 +02:00
										 |  |  |         \o The working directory for the executable. Optional. | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     \row | 
					
						
							|  |  |  |         \o input | 
					
						
							|  |  |  |         \o A potentially multiline string that is passed to the tool via standard input stream. | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Example | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \code | 
					
						
							|  |  |  | <?xml version="1.0" encoding="UTF-8"?> | 
					
						
							|  |  |  | <externaltool id="sort"> | 
					
						
							|  |  |  |     <description>Sorts the selected text</description> | 
					
						
							| 
									
										
										
										
											2011-09-30 13:33:42 +02:00
										 |  |  |     <description xml:lang="de">Sortiert den ausgewaehlten Text</description> | 
					
						
							| 
									
										
										
										
											2011-04-29 13:38:38 +02:00
										 |  |  |     <displayname>Sort Selection</displayname> | 
					
						
							|  |  |  |     <displayname xml:lang="de">Auswahl Sortieren</displayname> | 
					
						
							|  |  |  |     <category>Text</category> | 
					
						
							|  |  |  |     <category xml:lang="de">Text</category> | 
					
						
							|  |  |  |     <executable output="replaceselection" error="ignore"> | 
					
						
							|  |  |  |         <path>sort</path> | 
					
						
							|  |  |  |         <input>%{CurrentDocument:Selection}</input> | 
					
						
							|  |  |  |         <workingdirectory>%{CurrentDocument:Path}</workingdirectory> | 
					
						
							|  |  |  |     </executable> | 
					
						
							|  |  |  | </externaltool> | 
					
						
							|  |  |  |     \endcode | 
					
						
							|  |  |  | */ |