summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.h
Commit message (Collapse)AuthorAgeFilesLines
...
* C++: move post-sourceprocessing action into callback.Erik Verbruggen2014-06-181-0/+3
| | | | | Change-Id: Iac6c9fe1ada27ac0d96417e490cc5723e6969541 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* CppTools: CppHighlightingSupport takes a BaseTextDocumentNikolai Kosjar2014-06-121-1/+2
| | | | | | | | | | ...instead an ITextEditor. The ITextEditor was only used to access the file path and QTextDocument via the BaseTextEditorWidget. Change-Id: Idef2b8162b992fe3718e16e2a046e2ff214846f2 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppTools: CMM::completionAssistProvider takes a mimeTypeNikolai Kosjar2014-06-121-1/+1
| | | | | | | No need to pass more than needed. Change-Id: I047cc44f17342999e0809d022df35ba9a4a8dfb8 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppTools: Remove some duplicate codeNikolai Kosjar2014-06-101-0/+2
| | | | | Change-Id: I83c0bbcf221fd163cd2514a9d23983b82e1f04fd Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppTools: Unexport some internal classes.Nikolai Kosjar2014-06-101-3/+1
| | | | | | | | | | | | | | | | Unexports CppModelManager, CppSourceProcessor and CppToolsPlugin. Now only some constructor signatures mention "Internal::" in the exported symbols: % nm --extern-only --demangle ./lib/qtcreator/plugins/libCppTools.so | grep "Internal::" CppTools::CppClassesFilter::CppClassesFilter(CppTools::Internal::CppLocatorData*) CppTools::CppClassesFilter::CppClassesFilter(CppTools::Internal::CppLocatorData*) CppTools::CppEditorSupport::CppEditorSupport(CppTools::Internal::CppModelManager*, TextEditor::BaseTextEditor*) CppTools::CppEditorSupport::CppEditorSupport(CppTools::Internal::CppModelManager*, TextEditor::BaseTextEditor*) Change-Id: I167c21a6dc03cf02230c95fde66cf404e40df36f Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppTools: Pass some const variables by referenceOrgad Shaneh2014-05-211-1/+1
| | | | | Change-Id: I3e703c923f6e1a14a89c76f394a070184db0c7bf Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* CppTools: Encode more information in log file of CppCodeModelInspectorNikolai Kosjar2014-03-261-1/+1
| | | | | | | Among others the timestamp and if provided, some extra id. Change-Id: I017c2af197023347c88f2547e7bda8f22b3d00c4 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* qml: moving most of ModelManager logic to ModelManageInterfaceFawzi Mohamed2014-02-191-1/+1
| | | | | | | | | | | | | | Currently ModelManager contains lot logic, but as it sits in QmlJSTools it is not possible to use it in standalone tests. Moving most of the logic to ModelManagerInterface (and cleanup) to allow better testing, and refactoring. This introduces a dependency of the qmljs lib on the cplusplus lib Also a (small) part of the CppTool::ModelManagerInterface has been moved to CPlusPlus::CppModelManagerBase to remove the dependency on CppTools to gather the Qml types exposed from C++. Change-Id: Icad7fe96dfd0f1a2b1058d82bd98c77c40aa5e9d Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* Merge remote-tracking branch 'origin/3.0'Eike Ziller2014-01-081-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: share/qtcreator/debugger/dumper.cpp share/qtcreator/debugger/dumper_p.h share/qtcreator/debugger/test/main.cpp src/plugins/debugger/gdb/classicgdbengine.cpp src/plugins/debugger/gdb/pythongdbengine.cpp src/plugins/debugger/lldblib/guest/lldbengineguest.cpp src/plugins/debugger/lldblib/guest/lldbengineguest.h src/plugins/debugger/lldblib/guest/main.cpp src/plugins/debugger/lldblib/ipcengineguest.cpp src/plugins/debugger/lldblib/ipcengineguest.h src/plugins/debugger/lldblib/ipcenginehost.cpp src/plugins/debugger/lldblib/ipcenginehost.h src/plugins/debugger/lldblib/lldbenginehost.cpp src/plugins/debugger/lldblib/lldboptionspage.cpp src/plugins/qbsprojectmanager/qbsstep.cpp src/plugins/qbsprojectmanager/qbsstep.h src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp src/plugins/qnx/blackberrycheckdevmodestep.cpp src/plugins/qtsupport/debugginghelper.cpp Change-Id: Ie9fd0a885fb6264a6a8a72daee071b75bcbd2e9d
| * Incremented year in copyright infoRobert Loehning2014-01-081-1/+1
| | | | | | | | | | | | Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | CppEditor/CppTools: Avoid triggering garbage collector on editor close in testsNikolai Kosjar2014-01-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | Closing an editor might trigger a timer which leads to the invocation of the garbage collector. This is unfavourable for the plugin tests since a test function closing an editor might influence a subsequent test function (e.g. files get removed from the global snapshot although they were added shortly before). Change-Id: Ia80c11f99e2437fe145dc2d983b21962539b5181 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | Merge remote-tracking branch 'origin/3.0'Eike Ziller2013-12-181-0/+3
|\ \ | |/ | | | | | | | | | | | | Conflicts: share/qtcreator/debugger/stdtypes.py src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp Change-Id: I5d86746d58960e41e01e725ccb2a6c00890f0dfd
| * CppEditor: Use the project part chosen with CppPreProcessorDialogNikolai Kosjar2013-12-161-0/+3
| | | | | | | | | | | | | | | | | | ...otherwise the CppPreProcessorDialog is only semi-useful. Change-Id: I6b80967b05e7c9a51cd78ae064a3d78170948e32 Reviewed-by: David Schulz <david.schulz@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* | C++: remove superfluous forward defines.Erik Verbruggen2013-12-101-1/+0
|/ | | | | Change-Id: I962e0fbafdb2281645b98779a421d1084d223570 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* CppTools: Tests: Fix crash in test_modelmanager_gc_if_last_cppeditor_closedNikolai Kosjar2013-10-091-0/+2
| | | | | | | | | | | The project that was referenced at cppeditor.cpp:711 was already deleted. CppModelManager::m_fileToProjectParts contained outdated information. Now it is updated if a project is closed. Exposed by commit d411c07. Change-Id: I6fee93a02c72a045dd44a05723ab39a1eeec616e Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* C++: Only parse with appropriate defines for open editors.Erik Verbruggen2013-10-011-1/+9
| | | | | | | | | | | | If two files from different (sub-)projects include the same header file, and the defined macros differ for both files, the header file will be parsed with only the appropriate macros for the including file. Task-number: QTCREATORBUG-9802 Task-number: QTCREATORBUG-1249 Change-Id: I560490afa287b3bb1e863bce1bb4f57af36ad56e Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: add code-model settings to choose one by mime-type.Erik Verbruggen2013-09-131-3/+2
| | | | | | | | | | | | The model-manager now supports multiple code models for semantic highlighting and code completion, and will choose one based on the mime-type of the editor. The settings page is currently disabled. It will get enabled when a second plug-in lands that has a ModelManagerSupport class. Change-Id: I10023f52322ed6860397da15dba1c231e80e6517 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: unify highlighting/code-completion support "factories".Erik Verbruggen2013-09-101-10/+6
| | | | | | | | | | | Both semantic highlighting and code-completion go hand-in-hand, so now the ModelManagerSupport class acts as a "factory" for the model manager. Depending on the mime-type of the document in the editor, the model manager will return the appropriate highlighter or code-completion engine. If none is registered, the built-in fall-back is used. Change-Id: I3e5dbb0e3b58e077dd5eda9aecb2ce5d448ac0b8 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: add fallback project part queryingErik Verbruggen2013-09-101-0/+1
| | | | | | | | | | When a file is not part of any other project part, this project part can be used to get at least some compiler flags, defines, etc. to use. This can happen when either a file outside a project is opened, or when the project description is incomplete. Change-Id: I5d595fae7195e8b61dbad14368b6cae9eb15c21b Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: clean-up CppCompletionAssist.Erik Verbruggen2013-09-091-2/+1
| | | | | | | | | | This is step 1 of 2 for merging the various provider factories into a single class. Merging has the advantage that selecting based on editor (content) mime-type only has to select one class, instead of re-doing the selection for each class separately. Change-Id: I11f815151bd4769ae6028b636793d6a80d02e202 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* TextEditor: get CompletionAssistProvider from editor.Erik Verbruggen2013-09-091-0/+1
| | | | | | | | | | And not from the global object pool. This way, the editors that have different highlighters for various language dialects, or editors that support multiple languages in a single editor, can decide themselves on what CompletionAssistProvider to provide. Change-Id: Ieebc4a8e7b3de6470fdb8103035aa3b8b2ba6598 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: optionally let the highlighter handle ifdefed-out blocks.Erik Verbruggen2013-08-191-0/+2
| | | | | Change-Id: I38cc0e55348cac0245d2ab8f3e39c68de76e3e6d Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* CppTools: Fix signal redefinitionNikolai Kosjar2013-08-141-1/+0
| | | | | | | | | | | ...leading to the error message QMetaObject::indexOfSignal: signal aboutToRemoveFiles(QStringList) from CppTools::CppModelManagerInterface redefined in CppTools::Internal::CppModelManager Change-Id: I0a1c307ad5fc0d7cefa198726f534140192facad Reviewed-by: David Schulz <david.schulz@digia.com>
* CppTools: Rework handling of ProjectInfo changesNikolai Kosjar2013-08-131-1/+6
| | | | | | | | | | | | | | | | | (a) The code model manager figures out by itself which files were added or removed from the project. If this was done successfully, check also the timestamp of the common files and reindex if necessary. (b) A full reindexing is only triggered if the project configuration changes (defines, includes, framework paths). (c) If project files were removed, the garbage collector is called. Task-number: QTCREATORBUG-9730 Change-Id: Ib855614b070880576233a3525813617c967a72f3 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* CppTools: Do not garbage collect files in the working copyNikolai Kosjar2013-08-081-2/+2
| | | | | | | | | | ...except the configuration file if no projects are open. For this case there is no need to keep the configuration file around. Task-number: QTCREATORBUG-9829 Change-Id: I51b01b30c17cbc1ced491ef2c47c338dae6ed983 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppTools: Do not call GC() more than necessaryNikolai Kosjar2013-08-081-1/+6
| | | | | | | | | | | | | | | | | Currently GC() is invoked if - 5 CppEditors were closed or the last CppEditor was closed - a project is about to be removed - a session is about to be unloaded Thus, for the following use cases, too much GC() calls (can) happen: - File > Close All - Close All Projects and Editors - Changing the session Fixed by introducing a timer. Change-Id: I9c984d9de735fc8c6ee77a518e9fb5b63dba5881 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppTools: Clean up CppModelManager(Interface)Nikolai Kosjar2013-07-311-31/+33
| | | | | | | | | | | * Const correctness * Better variable names * Sort order of includes and forward declarations * Comment fixes * Cosmetic/Whitespace changes Change-Id: Ieb137266ac7eddedb00c37f8b2cc8677d67e4bdd Reviewed-by: David Schulz <david.schulz@digia.com>
* CppTools: Check if project has changed before reparsingNikolai Kosjar2013-07-221-1/+1
| | | | | | | | | This introduces an API change for the project managers. Those are not expected to call updateSourceFiles() anymore. Task-number: QTCREATORBUG-9581 Change-Id: I77befd29fb851c9acf87204d571da00183c9cd05 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppTools: Allow to force a "Parsing" notificationNikolai Kosjar2013-06-241-1/+2
| | | | | | | Task-number: QTCREATORBUG-9597 Change-Id: I726a818c7d4af35dcb4863f74b08cd639a189bdd Reviewed-by: Daniel Teske <daniel.teske@digia.com>
* CppEditor: Improve finding position for new includesNikolai Kosjar2013-06-111-0/+6
| | | | | | | | | ...by detecting include groups (separated by new lines, include types and same dir prefix). Task-number: QTCREATORBUG-9317 Change-Id: I73e80fdc715104901cb2d4f5b15b4cab5d04d305 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* C++: fix crash when failing to open non-existing file.Erik Verbruggen2013-05-241-1/+1
| | | | | | Change-Id: Ie7bd3b36139ab7fac1186cefa7222dff7277eb53 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: moved the CppPreprocessor into its own file.Erik Verbruggen2013-04-261-76/+0
| | | | | Change-Id: I399d667a1fccb376fadbd6ab8fbba243e86d8f4b Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: model-manager clean-ups.Erik Verbruggen2013-04-261-19/+8
| | | | | Change-Id: I59fdb898e270af0fcc18e79ae922e119504ef10e Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++ Detach the CppEditor from code-model internals.Erik Verbruggen2013-04-261-37/+5
| | | | | | | | | - Moved document update handling into CppTools. - Moved semantic info calculation into CppTools. - Moved semantic highlighting into CppTools. Change-Id: I253861bf074a64b1f657f7a4a8e6583871b5285f Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: do not run GC when exiting.Erik Verbruggen2013-04-221-0/+2
| | | | | | | | | This operation is quite costly if a lot of files are involved, and in case of exiting Creator, it's also useless. Change-Id: I97d178d47a3a2f6b214f7ebc45c871edd26b8286 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* CppTools: Rename files to comply with coding standardTobias Hunger2013-04-101-1/+1
| | | | | | | | Rename ModelManagerInterface.(h|cpp) to cppmodelmanagerinterface.(h|cpp). Rename TypeHierarchyBuilder.(h|cpp) to typehierarchybuilder.(h|cpp). Change-Id: I035d833fd205d7460819bd0fb7031294359032f9 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* Clean headers in CppTools.Friedemann Kleint2013-04-101-4/+0
| | | | | | | | Ran script to remove inludes on a trial-and-error basis and manually corrected it. Change-Id: Ic8464ea084ca1ab401e9f4a7d0183b92b4038902 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* C++: Untangle include file resolving from loading.Erik Verbruggen2013-04-091-4/+5
| | | | | Change-Id: Iacf8cb12dd623c908538d80ee2595297a9bdde71 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* CppTools: Use namespace CppTools consistentlyTobias Hunger2013-04-081-15/+9
| | | | | | | | | There were quite a few classes using CPlusPlus namespace in the CppTools plugin. Rename them and do some other small namespace related coding style fixups. Change-Id: I093fc1f3fc394fd9923e3f18d5f66522e288f21d Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* fix include style relating to cplusplus librariesOswald Buddenhagen2013-04-031-1/+3
| | | | | | | | | | | ... and adjust INCLUDEPATH accordingly. while i'm at messing with include statements, also re-order the include blocks according to policy and sort them within bigger blocks. Change-Id: I7762abfd7c4ecf59432b99db2f424e4fa25733a5 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* CppTools: improved languages support in ProjectPartSergey Shambir2013-03-211-2/+2
| | | | | | | | | | | | | | Please, read blueprint here: http://qt-project.org/wiki/Blueprint-for-language-specs-system Removed feature from QbsProjectManager: it not longer splits project on separate C and C++ parts, because Qt version used only by clang parser (not native) and can be ignored for pure C and Objective-C without C++. Change-Id: I1c561f7f9f915cc6cb8579d19db74e8352f54c1e Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
* C++: use QMutexLocker everywhere in the model manager.Erik Verbruggen2013-03-081-7/+13
| | | | | Change-Id: Iab4dee2a607d453b3e80fe591b70329ab48d27a9 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: Cleanup: make the snapshot private in CppPreprocessor.Erik Verbruggen2013-02-271-3/+4
| | | | | Change-Id: I69e892de34e06a0c95b3218abd8a0bb72966d875 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: Cleanup, removed unused methods/fields.Erik Verbruggen2013-02-191-1/+0
| | | | | Change-Id: I5636039c79be40505c707f775b228bc51f35c243 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* Merge remote-tracking branch 'origin/2.6'Oswald Buddenhagen2013-01-311-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in src/plugins/debugger/qtmessageloghandler.cpp src/plugins/debugger/qtmessagelogwindow.cpp src/plugins/madde/maemodeployconfigurationwidget.cpp src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp src/plugins/qmldesigner/designercore/include/widgetqueryview.h src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp src/plugins/qnx/bardescriptormagicmatcher.h src/plugins/qt4projectmanager/profilekeywords.cpp src/plugins/remotelinux/deployablefilesperprofile.cpp src/plugins/remotelinux/deployablefilesperprofile.h src/plugins/remotelinux/deploymentinfo.cpp src/plugins/remotelinux/deploymentsettingsassistant.cpp src/plugins/remotelinux/profilesupdatedialog.cpp tests/auto/icheckbuild/ichecklib.cpp tests/auto/icheckbuild/parsemanager.cpp tests/auto/icheckbuild/parsemanager.h Change-Id: Ie465a578446a089e1c502d1cb1096e84ca058104
| * Incremented year in copyright infov2.6.2Robert Loehning2013-01-291-1/+1
| | | | | | | | | | Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | C++: changed field names of the preprocessor.Erik Verbruggen2013-01-301-3/+3
| | | | | | | | | | Change-Id: I9b199df863b404e4cb2ce3c76c920b9010c09260 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* | C++: add include-guard tracking.Erik Verbruggen2013-01-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Track the typical #ifndef/#define/#endif usage in header files to see if the macro is an include guard. If so, store it in the Document. No behavioural change, just recording the name. This can be used in the future to track if a file needs to be re-parsed when a macro changes: if it was used in the file, and not defined in it nor being the include-guard, a file should be re-preprocessed and re-parsed. It can also be used to check if two files have the same include guard. Change-Id: I2715f529997a7b24a11bdbc6150652e2669f1a46 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* | CppModelManager: reduce number of cleanPath calls.hjk2012-12-201-1/+1
| | | | | | | | | | | | | | | | | | Instead of checking each file's full path individually we store the cleaned version of the directory. Change-Id: Icaa41a38d6608ba364fcb0e01cc9eb1db99470ac Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com> Reviewed-by: hjk <qthjk@ovi.com>
* | Made symbol searching plug-able through indexing support.Erik Verbruggen2012-11-261-2/+3
| | | | | | | | | | | | | | | | | | | | The indexing support for the built-in code model is moved to its own file. Symbol searching will now call for a searcher through that support interface, which will create a fully configured and ready-to-go searcher that can be started in the/a future. Change-Id: Idc3ee1c7c789a69fa05ee1d42415313dcea94cf8 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>