| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | /****************************************************************************
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2015-01-14 18:07:15 +01:00
										 |  |  | ** Copyright (C) 2015 The Qt Company Ltd. | 
					
						
							|  |  |  | ** Contact: http://www.qt.io/licensing
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** This file is part of Qt Creator. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** Commercial License Usage | 
					
						
							|  |  |  | ** Licensees holding valid commercial Qt licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the commercial license agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							| 
									
										
										
										
											2015-01-14 18:07:15 +01:00
										 |  |  | ** a written agreement between you and The Qt Company.  For licensing terms and | 
					
						
							|  |  |  | ** conditions see http://www.qt.io/terms-conditions.  For further information
 | 
					
						
							| 
									
										
										
										
											2014-10-01 13:21:18 +02:00
										 |  |  | ** use the contact form at http://www.qt.io/contact-us.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** GNU Lesser General Public License Usage | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** Alternatively, this file may be used under the terms of the GNU Lesser | 
					
						
							| 
									
										
										
										
											2014-10-01 13:21:18 +02:00
										 |  |  | ** General Public License version 2.1 or version 3 as published by the Free | 
					
						
							|  |  |  | ** Software Foundation and appearing in the file LICENSE.LGPLv21 and | 
					
						
							|  |  |  | ** LICENSE.LGPLv3 included in the packaging of this file.  Please review the | 
					
						
							|  |  |  | ** following information to ensure the GNU Lesser General Public License | 
					
						
							|  |  |  | ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
 | 
					
						
							|  |  |  | ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2015-01-14 18:07:15 +01:00
										 |  |  | ** In addition, as a special exception, The Qt Company gives you certain additional | 
					
						
							|  |  |  | ** rights.  These rights are described in The Qt Company LGPL Exception | 
					
						
							| 
									
										
										
										
											2010-12-17 16:01:08 +01:00
										 |  |  | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ****************************************************************************/ | 
					
						
							| 
									
										
										
										
											2008-12-02 15:08:31 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #ifndef CPPTOOLS_H
 | 
					
						
							|  |  |  | #define CPPTOOLS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-10 21:00:48 +02:00
										 |  |  | #include "cpptools_global.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-25 16:16:11 +01:00
										 |  |  | #include "stringtable.h"
 | 
					
						
							| 
									
										
										
										
											2012-10-10 21:00:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:54:03 +01:00
										 |  |  | #include <projectexplorer/projectexplorer.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-15 10:42:41 +01:00
										 |  |  | #include <QSharedPointer>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | QT_BEGIN_NAMESPACE | 
					
						
							|  |  |  | class QFileInfo; | 
					
						
							|  |  |  | class QDir; | 
					
						
							|  |  |  | QT_END_NAMESPACE | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-15 11:50:42 +02:00
										 |  |  | namespace Utils { class FileName; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | namespace CppTools { | 
					
						
							| 
									
										
										
										
											2011-02-03 15:48:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class CppToolsSettings; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | namespace Internal { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-29 09:04:59 +02:00
										 |  |  | struct CppFileSettings; | 
					
						
							| 
									
										
										
										
											2013-09-06 13:14:15 +02:00
										 |  |  | class CppCodeModelSettings; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-19 11:17:39 -04:00
										 |  |  | class CppToolsPlugin : public ExtensionSystem::IPlugin | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     Q_OBJECT | 
					
						
							| 
									
										
										
										
											2012-02-21 16:52:28 +01:00
										 |  |  |     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CppTools.json") | 
					
						
							| 
									
										
										
										
											2011-07-13 18:02:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							|  |  |  |     CppToolsPlugin(); | 
					
						
							|  |  |  |     ~CppToolsPlugin(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 11:51:36 +01:00
										 |  |  |     static CppToolsPlugin *instance(); | 
					
						
							| 
									
										
										
										
											2013-08-25 22:42:37 +03:00
										 |  |  |     static const QStringList &headerSearchPaths(); | 
					
						
							|  |  |  |     static const QStringList &sourceSearchPaths(); | 
					
						
							| 
									
										
										
										
											2014-01-20 09:15:50 +02:00
										 |  |  |     static const QStringList &headerPrefixes(); | 
					
						
							|  |  |  |     static const QStringList &sourcePrefixes(); | 
					
						
							| 
									
										
										
										
											2013-08-25 22:42:37 +03:00
										 |  |  |     static void clearHeaderSourceCache(); | 
					
						
							| 
									
										
										
										
											2014-07-15 11:50:42 +02:00
										 |  |  |     static Utils::FileName licenseTemplatePath(); | 
					
						
							|  |  |  |     static QString licenseTemplate(); | 
					
						
							| 
									
										
										
										
											2013-03-19 11:51:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-21 13:05:15 +02:00
										 |  |  |     bool initialize(const QStringList &arguments, QString *errorMessage); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void extensionsInitialized(); | 
					
						
							| 
									
										
										
										
											2010-07-13 13:36:47 +02:00
										 |  |  |     ShutdownFlag aboutToShutdown(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-06 13:14:15 +02:00
										 |  |  |     QSharedPointer<CppCodeModelSettings> codeModelSettings() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-25 16:16:11 +01:00
										 |  |  |     static StringTable &stringTable(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 11:51:36 +01:00
										 |  |  | public slots: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void switchHeaderSource(); | 
					
						
							| 
									
										
										
										
											2013-02-05 14:14:33 +01:00
										 |  |  |     void switchHeaderSourceInNextSplit(); | 
					
						
							| 
									
										
										
										
											2012-09-22 14:24:43 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-14 14:45:36 +01:00
										 |  |  | #ifdef WITH_TESTS
 | 
					
						
							| 
									
										
										
										
											2014-05-19 11:17:39 -04:00
										 |  |  | private slots: | 
					
						
							| 
									
										
										
										
											2014-01-20 09:20:08 +02:00
										 |  |  |     // Init/Cleanup methods implemented in cppheadersource_test.cpp
 | 
					
						
							|  |  |  |     void initTestCase(); | 
					
						
							|  |  |  |     void cleanupTestCase(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-14 15:08:25 +01:00
										 |  |  |     void test_codegen_public_in_empty_class(); | 
					
						
							|  |  |  |     void test_codegen_public_in_nonempty_class(); | 
					
						
							|  |  |  |     void test_codegen_public_before_protected(); | 
					
						
							|  |  |  |     void test_codegen_private_after_protected(); | 
					
						
							|  |  |  |     void test_codegen_protected_in_nonempty_class(); | 
					
						
							|  |  |  |     void test_codegen_protected_between_public_and_private(); | 
					
						
							|  |  |  |     void test_codegen_qtdesigner_integration(); | 
					
						
							|  |  |  |     void test_codegen_definition_empty_class(); | 
					
						
							|  |  |  |     void test_codegen_definition_first_member(); | 
					
						
							|  |  |  |     void test_codegen_definition_last_member(); | 
					
						
							|  |  |  |     void test_codegen_definition_middle_member(); | 
					
						
							| 
									
										
										
										
											2013-06-07 16:44:08 +02:00
										 |  |  |     void test_codegen_definition_middle_member_surrounded_by_undefined(); | 
					
						
							|  |  |  |     void test_codegen_definition_member_specific_file(); | 
					
						
							| 
									
										
										
										
											2012-07-19 14:25:37 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     void test_completion_basic_1(); | 
					
						
							| 
									
										
										
										
											2013-12-17 20:17:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-04 11:27:06 +04:00
										 |  |  |     void test_completion_template_function_data(); | 
					
						
							| 
									
										
										
										
											2013-12-17 20:17:41 +02:00
										 |  |  |     void test_completion_template_function(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void test_completion_data(); | 
					
						
							|  |  |  |     void test_completion(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void test_completion_member_access_operator_data(); | 
					
						
							|  |  |  |     void test_completion_member_access_operator(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-28 01:02:26 +04:00
										 |  |  |     void test_completion_prefix_first_QTCREATORBUG_8737(); | 
					
						
							|  |  |  |     void test_completion_prefix_first_QTCREATORBUG_9236(); | 
					
						
							| 
									
										
										
										
											2013-06-03 11:03:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-14 14:45:36 +01:00
										 |  |  |     void test_format_pointerdeclaration_in_simpledeclarations(); | 
					
						
							|  |  |  |     void test_format_pointerdeclaration_in_simpledeclarations_data(); | 
					
						
							|  |  |  |     void test_format_pointerdeclaration_in_controlflowstatements(); | 
					
						
							|  |  |  |     void test_format_pointerdeclaration_in_controlflowstatements_data(); | 
					
						
							|  |  |  |     void test_format_pointerdeclaration_multiple_declarators(); | 
					
						
							|  |  |  |     void test_format_pointerdeclaration_multiple_declarators_data(); | 
					
						
							|  |  |  |     void test_format_pointerdeclaration_multiple_matches(); | 
					
						
							|  |  |  |     void test_format_pointerdeclaration_multiple_matches_data(); | 
					
						
							| 
									
										
										
										
											2013-02-07 09:02:56 +01:00
										 |  |  |     void test_format_pointerdeclaration_macros(); | 
					
						
							|  |  |  |     void test_format_pointerdeclaration_macros_data(); | 
					
						
							| 
									
										
										
										
											2013-01-14 14:45:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-16 15:51:04 -04:00
										 |  |  |     void test_cppsourceprocessor_includes_resolvedUnresolved(); | 
					
						
							|  |  |  |     void test_cppsourceprocessor_includes_cyclic(); | 
					
						
							|  |  |  |     void test_cppsourceprocessor_includes_allDiagnostics(); | 
					
						
							|  |  |  |     void test_cppsourceprocessor_macroUses(); | 
					
						
							| 
									
										
										
										
											2014-12-05 11:56:06 +01:00
										 |  |  |     void test_cppsourceprocessor_includeNext(); | 
					
						
							| 
									
										
										
										
											2013-07-25 11:21:31 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-10 11:38:16 +01:00
										 |  |  |     void test_functionutils_virtualFunctions(); | 
					
						
							|  |  |  |     void test_functionutils_virtualFunctions_data(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-11 12:37:44 +02:00
										 |  |  |     void test_modelmanager_paths_are_clean(); | 
					
						
							| 
									
										
										
										
											2012-12-20 15:53:12 +01:00
										 |  |  |     void test_modelmanager_framework_headers(); | 
					
						
							| 
									
										
										
										
											2013-07-11 12:37:44 +02:00
										 |  |  |     void test_modelmanager_refresh_also_includes_of_project_files(); | 
					
						
							|  |  |  |     void test_modelmanager_refresh_several_times(); | 
					
						
							| 
									
										
										
										
											2013-07-16 12:08:39 +02:00
										 |  |  |     void test_modelmanager_refresh_test_for_changes(); | 
					
						
							| 
									
										
										
										
											2013-07-10 14:46:08 +02:00
										 |  |  |     void test_modelmanager_refresh_added_and_purge_removed(); | 
					
						
							|  |  |  |     void test_modelmanager_refresh_timeStampModified_if_sourcefiles_change(); | 
					
						
							|  |  |  |     void test_modelmanager_refresh_timeStampModified_if_sourcefiles_change_data(); | 
					
						
							| 
									
										
										
										
											2013-06-28 11:26:02 +02:00
										 |  |  |     void test_modelmanager_snapshot_after_two_projects(); | 
					
						
							| 
									
										
										
										
											2013-07-01 10:25:03 +02:00
										 |  |  |     void test_modelmanager_extraeditorsupport_uiFiles(); | 
					
						
							| 
									
										
										
										
											2013-07-16 16:20:46 +02:00
										 |  |  |     void test_modelmanager_gc_if_last_cppeditor_closed(); | 
					
						
							| 
									
										
										
										
											2013-07-17 13:50:38 +02:00
										 |  |  |     void test_modelmanager_dont_gc_opened_files(); | 
					
						
							| 
									
										
										
										
											2013-08-19 16:05:29 +02:00
										 |  |  |     void test_modelmanager_defines_per_project(); | 
					
						
							| 
									
										
										
										
											2013-09-30 14:37:50 +02:00
										 |  |  |     void test_modelmanager_defines_per_editor(); | 
					
						
							| 
									
										
										
										
											2014-12-02 12:11:05 +01:00
										 |  |  |     void test_modelmanager_updateEditorsAfterProjectUpdate(); | 
					
						
							| 
									
										
										
										
											2014-07-16 11:25:15 +02:00
										 |  |  |     void test_modelmanager_precompiled_headers(); | 
					
						
							| 
									
										
										
										
											2014-09-24 13:42:17 +02:00
										 |  |  |     void test_modelmanager_renameIncludes(); | 
					
						
							| 
									
										
										
										
											2012-12-20 14:07:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-16 11:31:59 +02:00
										 |  |  |     void test_cpplocatorfilters_CppLocatorFilter(); | 
					
						
							|  |  |  |     void test_cpplocatorfilters_CppLocatorFilter_data(); | 
					
						
							|  |  |  |     void test_cpplocatorfilters_CppCurrentDocumentFilter(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-16 16:37:16 +02:00
										 |  |  |     void test_builtinsymbolsearcher(); | 
					
						
							|  |  |  |     void test_builtinsymbolsearcher_data(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-25 22:42:37 +03:00
										 |  |  |     void test_headersource_data(); | 
					
						
							|  |  |  |     void test_headersource(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-12 12:27:36 +01:00
										 |  |  |     void test_typehierarchy_data(); | 
					
						
							|  |  |  |     void test_typehierarchy(); | 
					
						
							| 
									
										
										
										
											2014-05-19 09:58:01 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-26 15:01:42 -04:00
										 |  |  |     void test_cpplocalsymbols_data(); | 
					
						
							|  |  |  |     void test_cpplocalsymbols(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-19 09:58:01 -04:00
										 |  |  |     void test_includeGroups_detectIncludeGroupsByNewLines(); | 
					
						
							|  |  |  |     void test_includeGroups_detectIncludeGroupsByIncludeDir(); | 
					
						
							|  |  |  |     void test_includeGroups_detectIncludeGroupsByIncludeType(); | 
					
						
							| 
									
										
										
										
											2011-11-14 15:08:25 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2009-04-29 09:04:59 +02:00
										 |  |  |     QSharedPointer<CppFileSettings> m_fileSettings; | 
					
						
							| 
									
										
										
										
											2013-09-06 13:14:15 +02:00
										 |  |  |     QSharedPointer<CppCodeModelSettings> m_codeModelSettings; | 
					
						
							| 
									
										
										
										
											2011-02-03 15:48:14 +01:00
										 |  |  |     CppToolsSettings *m_settings; | 
					
						
							| 
									
										
										
										
											2014-02-25 16:16:11 +01:00
										 |  |  |     StringTable m_stringTable; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace Internal
 | 
					
						
							|  |  |  | } // namespace CppTools
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // CPPTOOLS_H
 |