Commit Graph

1151 Commits

Author SHA1 Message Date
Nikolai Kosjar
934cea560d CppEditor: Fix crash when closing editors fast
Task-number: QTCREATORBUG-9250

Change-Id: I15bcaf5d0e55c7e3cc731755fc48df2d1181f3da
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-05-08 10:29:10 +02:00
Nikolai Kosjar
5b30509a99 CppEditor: Fix highlighting if there are unconfigured projects
If Creator switched to the Project mode on startup, the highlighting was
not started because the editor widget was not visible. Now we check if
the editor itself is or would be visible in the edit mode, which is
indepedent of the current mode.

Task-number: QTCREATORBUG-9260
Change-Id: I72373e09965fd1cded034ae4711df48798e7f0d8
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-05-07 11:45:59 +02:00
Nikolai Kosjar
cacd66195c CppEditor: Avoid premature calls to recalculateSemanticInfoNow
Now recalculateSemanticInfoNow is called only once instead of three
times when a new editor is opened/created.

Change-Id: Ife84fc9ca90cdbf2a417123e6a2b9e1e068dfdc4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-05-07 11:45:46 +02:00
Nikolai Kosjar
7313203c29 CppEditor: Reduce calls to recalculateSemanticInfo()
Case: Opening a file that is not yet in the Snapshot

recalculateSemanticInfoNow() emitted the same SemanticInfo until the
indexer processed the document (Snapshot::contains()). That signal
caused CppEditorWidget::updateSemanticInfo() to call
semanticRehighlight() because of unequal revisions. That triggered
recalculateSemanticInfo() again.

Change-Id: I8fb7d7c42aad3d6a89876e743cd4e3c7aff643bf
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-05-07 11:43:53 +02:00
Eike Ziller
a2171c2d82 Merge remote-tracking branch 'origin/2.7'
Conflicts:
	share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp

Change-Id: I7f319154d5865c47ccfd5f525f0fd7983733dd0e
2013-05-03 09:49:28 +02:00
Erik Verbruggen
364c95476e C++: fix possible null-pointer derefs.
Change-Id: Ie6a2398f3a9e5c26a9af1578e512da53a01d15f5
Reviewed-by: Sergey Shambir <sergey.shambir.auto@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-05-03 08:41:13 +02:00
Daniel Teske
3abe2a72ea UicCodeModelSupport: Make the code not so eager to run uic processes
Instead mostly postpone it until the contents are needed.

Task-number: QTCREATORBUG-9149

Change-Id: I83167537e97fbd965531d990c8073409ff7b0b32
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-05-02 16:39:33 +02:00
Nikolai Kosjar
d47aed5201 CppEditor: Tests: Remove superfluous reference to CppEditorSupport
Also remove the introduced functions in CppEditorSupport. We can just
wait until the document is "Full Checked" via Document::checkmode().

Change-Id: I31d23016f5aa5d3c37e8e05078436ab901bfb2d7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-05-02 15:50:56 +02:00
Przemyslaw Gorszkowski
64d80150fa C++: fix code completion when 'using' declaration inside function
Looking for using declaration when lookup a type

Task-number: QTCREATORBUG-2668
Change-Id: I11600c5be262840472dd4c9e72334760a35aa4a0
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-05-02 10:42:19 +02:00
Sergey Shambir
ec8a01c150 CppTools: added ProjectPart::evaluateToolchain()
At this moment each project manager duplicates code that reads C++ code
model information from ProjectExplorer::ToolChain.
This change provides unified way.

Change-Id: If9ecfc40991aab90768dd69f5f10f31bbf5fbc21
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-04-30 17:31:43 +02:00
Nikolai Kosjar
e6e30c3fd3 CppEditor: Tests: Add initial Follow Symbol Under Cursor tests
Test cases are examples from

    Working Draft, Standard for Programming Language C++
    Document Number: N3242=11-0012

Change-Id: I624c315943d6a00e821abb52eef6e0ff4a40f0d7
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-04-30 15:00:07 +02:00
Orgad Shaneh
a8ff5e8343 Fix link error with MSVC
CppTools.lib(CppTools.dll) : error LNK2005: "public: virtual __thiscall
  QFutureInterface<class TextEditor::HighlightingResult>::~QFutureInterface<class TextEditor::HighlightingResult>(void)"
  (??1?$QFutureInterface@VHighlightingResult@TextEditor@@@@UAE@XZ) already defined in moc_cppeditor.obj
   Creating library ..\..\..\lib\qtcreator\plugins\QtProject\CppEditor.lib and object
   ..\..\..\lib\qtcreator\plugins\QtProject\CppEditor.exp..\..\..\lib\qtcreator\plugins\QtProject\CppEditor.dll :
   fatal error LNK1169: one or more multiply defined symbols found

Change-Id: Id53a0f8a99dbd18a9cbdf2af57b4f3970f5c41a3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-29 08:38:02 +02:00
Erik Verbruggen
09ea0d235a C++: moved the CppPreprocessor into its own file.
Change-Id: I399d667a1fccb376fadbd6ab8fbba243e86d8f4b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-26 13:56:08 +02:00
Erik Verbruggen
ecacaab7a4 C++: model-manager clean-ups.
Change-Id: I59fdb898e270af0fcc18e79ae922e119504ef10e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-26 13:00:43 +02:00
Erik Verbruggen
0c27b27658 C++ Detach the CppEditor from code-model internals.
- 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>
2013-04-26 12:47:06 +02:00
Eike Ziller
28ec7caa7b Correct some default shortcuts for Mac
This makes them align to the other "editor split" shortcuts.

Change-Id: I0b300ae495ffa17062a0a52b148f61015b965c29
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-26 10:31:11 +02:00
Nikolai Kosjar
52825a91f9 C++: Preprocessor: Do not add configurationFileName() to the seen files
After processing configurationFileName() the first time, it was added to
the already seen files (m_included). Thus, on parsing further files, it
was ignored and with that all the project defines.

Task-number: QTCREATORBUG-9107
Change-Id: Ia4817dfa3b30ed27d142f7f3eeb6f099d0653441
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-26 09:55:32 +02:00
Nikolai Kosjar
849534ec6f Revert "C++: fix support for typedef of templated typedefs"
Still crashes when opening the Qt Creator project,
g++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 (Ubuntu 12.10).

This reverts commit 564c9b2842.

Change-Id: Ief5c0aad463d245f68805f747d277ac298796c3d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-23 12:36:06 +02:00
Erik Verbruggen
cd581ecd0b C++: do not run GC when exiting.
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>
2013-04-22 10:08:55 +02:00
Przemyslaw Gorszkowski
564c9b2842 C++: fix support for typedef of templated typedefs
Fix:
* code completion
* follow symbols
* find usages

Task-number: QTCREATORBUG-8375
Change-Id: Ia40273fec3dead76acad4695b852a9e53065d8a7
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-22 10:06:05 +02:00
Eike Ziller
b450b3071e TextEditors: Separate away methods that actually work on a document
Introduces ITextEditorDocument. This is part of a more general "use
documents instead of editors whereever possible". It will allow to move
to e.g. ITextEditor::openedTextDocumentContents() instead of
ITextEditor::openedTextEditorsContents().

Change-Id: I5ebceaa257a0d2c3e8ac4ac51b9b08b6faa42487
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-04-19 16:21:30 +02:00
Erik Verbruggen
8b8a5db129 Revert "C++: fix support for typedef of templated typedefs"
Infinite recursion in the lookup of:
struct common_type {
public:
typedef typename common_type<typename common_type<_Tp, _Up>::type,
                             V>::type type;
};

This reverts commit 9a56ce4e85bec81c521258f44e9076d0bc9cce92

Change-Id: I675fe39018789cd04127d105eb983d2cb7798ca5
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-19 14:14:13 +02:00
Przemyslaw Gorszkowski
13913ed391 C++: fix support for typedef of templated typedefs
Fix:
* code completion
* follow symbols
* find usages

Task-number: QTCREATORBUG-8375
Change-Id: I6f35e809ba15f224c5a6d9b2fcfc18dbfba55411
Reviewed-by: Sergey Shambir <sergey.shambir.auto@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-19 12:19:20 +02:00
Erik Verbruggen
4b0f70f4c9 C++: highlighter clean-ups
- Moved TextEditor::SemanticHighlighter::Result to
  TextEditor::HighlightingResult
- Moved SemanticInfo::UseKind to CppHighlightingSupport::Kind

Change-Id: I14faab1891ca691a0691cfd9243edf19fcd3d3df
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-18 12:25:24 +02:00
Erik Verbruggen
ae7bf03b48 C++: Removed unused ObjC keyword highlighting.
Change-Id: Ie4db459ba9942d703ad3bc5a0f6805e39f729e9a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-17 15:43:22 +02:00
Przemyslaw Gorszkowski
17cd161a9d C++: fix cloning of templates
Fix instantiation of templates(by cloning original symbols). Assigning of scope
for cloned symbol is taken from the symbol which is used to instantiate.

Task-number: QTCREATORBUG-9098
Change-Id: I066cc8b5f69333fabdaf2d4466b205baf08bd3f1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-17 14:10:32 +02:00
hjk
fb72d5324e C++: Also cache result of misses in resolveFile()
Change-Id: Ib501bbe16548b194ff5028a1b3ab74c5f0e3230d
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-16 12:36:00 +02:00
Erik Verbruggen
3173f6fb3e C++: fix highlighting for template parameters for function calls.
Change-Id: Ie0133893d8b8d35ea2aa599cb8f7d5c2cc55271e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-16 12:05:06 +02:00
Erik Verbruggen
a0d6df7bd8 C++: also refresh files not in the project when project changes.
System headers and other file which are not explicitly mentioned in the
project must be reparsed when the project changes.

Task-number: QTCREATORBUG-9056
Change-Id: I32f1206d241a078a4d9b15fac5813f365a1ba303
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-16 11:56:18 +02:00
Eike Ziller
9ff8979da3 Merge remote-tracking branch 'origin/2.7'
Conflicts:
	src/plugins/cpptools/cppchecksymbols.h
	src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp

Change-Id: I887ba071fa637ad44e39bcae581738fa078a6612
2013-04-11 18:27:52 +02:00
Oswald Buddenhagen
f9f8cd354b auto-generate <dependencyList> in .pluginspec files
Change-Id: I8bb9b4eb0ae5ed9b283da422be882603ae0e1b49
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2013-04-11 12:52:03 +02:00
Erik Verbruggen
c388c05b86 C++: fix the quick-exit for already parsed files.
When the preprocessor is asked to process a file which it has already
seen before, it can skip it, but it still has to add the file to the
list of included files for the current document.

Task-number: QTCREATORBUG-9107
Change-Id: I30cac61c1da20da7fe925168ecccb429584e9746
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-11 12:15:07 +02:00
Przemyslaw Gorszkowski
eb30ab6604 C++: fixed code completion for namespace aliases
Task-number: QTCREATORBUG-166

Change-Id: I7a19065a57bfb943e5fc4e2bd9bd81988c1175e3
Reviewed-by: Sergey Shambir <sergey.shambir.auto@gmail.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-10 15:04:02 +02:00
Przemyslaw Gorszkowski
bde6667240 C++: name of function of class problem
It fixes:
* highlighing
* find usage
* follow symbol

when function of class has the same name as:
* local variable
* template parameter
* other struct/union/class/enum
* function argument

in function scope.

Task-number: QTCREATORBUG-8902
Change-Id: Iddc0f764af689babb40d39460d174bac7b919b31
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Sergey Shambir <sergey.shambir.auto@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-10 14:58:48 +02:00
Sergey Shambir
a2730a4570 CppTools: added template function params to completions
Change-Id: I67e9685406a0bf9a7cc358ce24f0e862d7938be6
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-10 11:55:06 +02:00
Erik Verbruggen
adda69278f C++: fix possible null-pointer deref.
Change-Id: Ic02eb67fa4a9c674880345cfa3afc9d037eb3bf2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-10 11:51:04 +02:00
Tobias Hunger
ddafdf55de CppTools: Rename files to comply with coding standard
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>
2013-04-10 11:43:22 +02:00
Sergey Shambir
0609333e02 CppTools: moved some logic to ProjectFile
Simplifies code and makes it independent from mimetype names.

Change-Id: Ib56a07654df4986b1916c517e3862e6c3a3dd720
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-10 11:07:27 +02:00
Friedemann Kleint
4b0bafd615 Clean headers in CppTools.
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>
2013-04-10 10:55:14 +02:00
Erik Verbruggen
82e347095c C++: Untangle include file resolving from loading.
Change-Id: Iacf8cb12dd623c908538d80ee2595297a9bdde71
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-04-09 11:56:02 +02:00
Tobias Hunger
ea23948efb CppTools: Use namespace CppTools consistently
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>
2013-04-08 13:21:31 +02:00
Oswald Buddenhagen
06acd82ada derive TARGET from QTC_{LIB,PLUGIN}_NAME
the information is redundant now

Change-Id: Icc8c8b4ace11538d45c6c9e1dbe5a7976f4743e1
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-04-03 14:37:56 +02:00
Oswald Buddenhagen
66a3553107 make library and plugin dependencies declarative
instead of directly including the respective pri files in
*_dependencies.pri, set variables and let qtcreator.pri resolve
them to includes.
this will allow us to re-use the dependency info elsewhere.

Change-Id: Iaa33924e428ac0409660f42df2f98a7978452d3e
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-04-03 14:37:45 +02:00
Oswald Buddenhagen
7923032022 fix include style relating to cplusplus libraries
... 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>
2013-04-03 13:40:39 +02:00
Oswald Buddenhagen
9631fb88cf centralize assignment of TEMPLATE = lib
Change-Id: I4025539f3875e79f03743ba9ed3fd09cd31b998d
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-04-02 17:13:17 +02:00
Oswald Buddenhagen
7ce3362288 automatically include libs' and plugins' _dependencies.pri files
Change-Id: I25645bb625b467c6f9d895ff89a70acd6a25683e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-04-02 12:19:31 +02:00
Oswald Buddenhagen
9f3adb8df9 add missing license header
Change-Id: Id8676d88ec8f55d0ba1650420fd2e48e6087b18e
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-03-28 09:46:32 +01:00
Oswald Buddenhagen
671587ebb4 move cpptools => locator dependency to cpptools_dependencies.pri
it belongs there.

Change-Id: I2d05287b90476ba1fde5ddda282f5a2b1766f6a2
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-03-27 16:20:53 +01:00
Sergey Shambir
f29902d33a CppTools: fixed bugs in change 49602
Change-Id: I14e9bbfea1bca58cdc49212b7ad1d880ab908ec8
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-03-27 10:36:13 +01:00
Christian Kandeler
8d5ae76eda CppTools: Remove redundant debug operator declaration.
Change-Id: Iee594c1e615ef9ce3899f399aa0dad32240e5cac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-03-25 17:24:23 +01:00