Commit Graph

1594 Commits

Author SHA1 Message Date
Eike Ziller
baf190ff4a Merge remote-tracking branch 'origin/3.0' 2013-11-27 12:18:12 +01:00
Nikolai Kosjar
51d91a6075 CppTools: Add revisions to AbstractEditorSupport
So far revisions for AbstractEditorSupport were not needed because until
recently we only had a single snapshot ("global snapshot"). Now, since
editor snapshots are introduced, we need to make sure to update the
corresponding documents in these snapshots, too. To do this efficiently,
a revision is introduced for AbstractEditorSupport.

Task-number: QTCREATORBUG-10894

Change-Id: Ibad1dbbafb7c721d1328959c1e903345fe465326
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-25 17:40:30 +01:00
Eike Ziller
5e2e0e469b Merge remote-tracking branch 'origin/3.0'
Conflicts:
	qtcreator.pri
	qtcreator.qbs

Change-Id: I0485b1bf75cc02f9fbcb5c05e350da91f491abe3
2013-11-25 08:57:10 +01:00
Przemyslaw Gorszkowski
4836fa0106 C++: fix auto completion for member of classes accessed by using
Example:
namespace NS { struct S { int member; void fun(); }; }
using NS::S;
void S::fun()
{
mem// ctrl+space
}

Task-number: QTCREATORBUG-9037
Change-Id: I5a568be1b5c44deb02caa04996167a88a9c5d4d7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-11-22 16:12:53 +01:00
Eike Ziller
559e66cb35 Merge remote-tracking branch 'origin/3.0' 2013-11-22 09:11:51 +01:00
Nikolai Kosjar
067ae2439b CppTools: Fix crash on shutdown
We need to wait for the document parser, otherwise the CppModelManager
object might get destroyed first and will be referenced later in
CppEditorSupport::parse().

Change-Id: I1b591640c1da3e63e49ac0b4b8af41aae31b3d43
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-20 11:30:12 +01:00
Eike Ziller
f61e643c95 Merge remote-tracking branch 'origin/3.0' 2013-11-20 11:25:36 +01:00
Nikolai Kosjar
3b5e84e650 CppTools: Fix race condition when closing files
If parse() is called in another thread the CppToolsEditorSupport might be
already destructed.

Task-number: QTCREATORBUG-10548

Change-Id: Ie4215937eb1847b51bce8b080aca4925c0bee39f
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-19 13:12:00 +01:00
Eike Ziller
8fe04ce0ad Merge remote-tracking branch 'origin/3.0' 2013-11-19 07:41:47 +01:00
Nikolai Kosjar
c1225ea3f4 CppTools: Use editor manager's codec as fallback
...for reading not already opened files.

This partly reverts commit f7c68f6. In case TextFileFormat::detect()
fails, the user configurable editor manager's codec is used instead of
QTextCodec::codecForLocale().

Adds also a qWarning() to easier detect encoding errors.

Task-number: QTCREATORBUG-10378

Change-Id: I0fa4e6b898ed090d85414ce2a001f11b115a42d3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-18 13:03:08 +01:00
Eike Ziller
4538ccb46c Merge remote-tracking branch 'origin/3.0'
Conflicts:
	share/qtcreator/debugger/gdbbridge.py

Change-Id: I32d8158c475f927b50ef06fde9ab8189ebdbcbbc
2013-11-15 10:26:57 +01:00
Nikolai Kosjar
d8077db3fb CppTools: Fix crash for documents without file paths
Since commit 566be09 we might reparse the current document if the
current editor changes. This is fine as long as the current document has
a file path, which is not always true, especially for the documents
created in the FakeVim tests.

Task-number: QTCREATORBUG-10767
Change-Id: Ibe00ef8bb6a144e2ba09b311025d238c2dcde112
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-14 11:21:26 +01:00
Nikolai Kosjar
36ce1dbb84 Designer/CppTools: Fix flaky test_gotoslot_withoutProject
The document was not always updated in time.

Change-Id: Iac89985d39a8784e3cbf63dfd42b1c5150775068
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2013-11-14 08:34:45 +01:00
Orgad Shaneh
4442a92729 Braces cleanup
Change-Id: I8413252c90a1487d291f15d92837c30ab697b245
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-14 08:13:52 +01:00
Knut Petter Svendsen
f82bfeb41d CppTools: Fixed tooltip for Enable Doxygen blocks
Change-Id: Ie047782cde63bd64b6a52747ee2cd7d4fc102b88
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-11-13 16:22:02 +01:00
Nikolai Kosjar
18f38709d5 CppEditor: Ensure utf8 encoded working copy from the preprocessor dialog
Change-Id: Ifbc2adeff83cbef9841da872e15a5b9dd8379a3d
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-12 16:41:53 +01:00
Nikolai Kosjar
9a0af7f20b CppTools: Speed up TypeHierarchyBuilder::buildDerived()
Depending files of the file the base class is defined in were look up
for *all* the derived classes. With this change, only the relevant files
for the 'current' base class are looked up.

Tested with qtbase.pro via Ctrl+T on the QObject definition.
    - Without this patch: ~60s
    - With this patch: ~40s

Change-Id: Ia947f1a4f7d242a0cb81e42d0ef2afab2db70a7f
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-12 16:40:49 +01:00
Nikolai Kosjar
7eeb87295b CppTools: Add basic test for TypeHierarchyBuilder
Change-Id: I7a82f2b22105d4e096fc0bd69679adacdde2c731
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-12 16:40:41 +01:00
Erik Verbruggen
566be0995d C++: Release more documents.
- fix memory leak in find-usages
- do not retain snapshot in search history
- when an editor is invisible for more than 2 minutes, release the
  backing snapshot

Retaining snapshots will retain their documents, and if done for too
long, the memory consumption might grow. This is especially the case
when switching to a different kit (Qt version): in that case, the new
versions of headers will be indexed, while the old ones stay around.

Task-number: QTCREATORBUG-5583
Task-number: QTCREATORBUG-7645
Task-number: QTCREATORBUG-9842

Change-Id: I045eda1565e0a3fa702baeffaab9c12662f90289
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-11-12 09:24:13 +01:00
Eike Ziller
0ddb6cac29 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	src/plugins/qmakeprojectmanager/qmakeproject.cpp

Change-Id: Id6ac9051d2564788bb180e5a99243d588312ae99
2013-10-30 13:34:46 +01:00
Nikolai Kosjar
e7ca4f8b89 CppTools: Remove unused isInjectedFile() in cpppreprocessor.cpp
This static function got moved into a base class.

Change-Id: I0b72f324bd52421388c7566dc4fd115a9b27ea7f
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-10-29 09:19:33 +01:00
Eike Ziller
242b7bd209 Merge remote-tracking branch 'origin/3.0' 2013-10-29 08:17:05 +01:00
Orgad Shaneh
4de3b94840 Crossify normalizePathName
Denoise usages

get{Short|Long}PathName are now static. They're not used anywhere except
in normalizePathName.

Change-Id: Ief277b6d828faadd98ec7faa39dd682bfaa8805f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-10-24 10:38:36 +02:00
Eike Ziller
c3119d1aa7 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	qtcreator.pri
	src/plugins/qnx/qnxutils.cpp

Change-Id: I019ad21fb4c128eb736c8ab2d09310757e3be037
2013-10-24 08:56:29 +02:00
Erik Verbruggen
d57b405f29 CppTools: fix inclusion of "injected" defines.
Task-number: QTCREATORBUG-10280

Change-Id: Ibc6ffeedb97a31a35a2d1f00625506f844692e16
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-23 12:52:40 +02:00
Nikolai Kosjar
e79d4ed2e1 CppEditor: Follow Symbol Under Cursor opens the preprocessor dialog
... when invoked on a macro that is defined inside that dialog.

Change-Id: I419c6675d70cfb8dd174f6a33f502b4c584baa3a
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-10-22 15:58:54 +02:00
Eike Ziller
4eabcdc8fd Merge remote-tracking branch 'origin/3.0'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/git/gitplugin.cpp
	src/plugins/qt4projectmanager/qmakeproject.cpp

Change-Id: Icbd485214b1add7869233dfe0dd9c6a76bddfc7d
2013-10-22 08:40:59 +02:00
Nikolai Kosjar
e58906a9ed C++: Limit typedef resolving depth
This reverts commit 5be56c0 except for its tests. While it fixed the
problem described in the bug report, it also introduced regressions.

For now, we use a hard limit.

Change-Id: I19a85be454e3d7969371707e3eb1c3d42a16ecee
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-18 14:07:00 +02:00
Eike Ziller
c30c290631 Avoid holding on lots of data with C++ Find Usages
The snapshots at the moment of search were held as long as the
corresponding search result panel was kept, to allow mapping of the old
symbol to the corresponding symbol in the new snapshot.
Now we just save the file name and ID of the old symbol.

Change-Id: Iaf3c9ca27ec2b788f142bd0dd6b86e34e66d5c8b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-18 13:05:46 +02:00
Przemyslaw Gorszkowski
5be56c073e C++: fix endless loop during template instantiation
This is the first phase of fixing bug QTCREATORBUG-10320.
This change resolves typedefs of template parameters(and resolves
problem with endless loop).

The next step will be matching appropriate template specialization
(this is needed to solve problem with missing code completion).

Missing matching: template specialization with the same parameters,
e.g.:
template <class T1, class T2, class T3>
class T
{
};

template <class T1, class T2>
class T<T1, T2, T2>
{
};

Task-number: QTCREATORBUG-10320
Change-Id: Icb6b539c021b2a67a66db9011a2e627f7d96526b
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-17 11:43:27 +02:00
Eike Ziller
4e32babc44 Merge remote-tracking branch 'origin/3.0' 2013-10-16 11:22:20 +02:00
hjk
2b532c73ee CPlusPlus: Make (sub-)languague selection more generic
Change-Id: I4e2df6992b446adec662ab07671acd41715e41fd
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-15 16:22:28 +02:00
Eike Ziller
8474a6f128 Merge remote-tracking branch 'origin/3.0' 2013-10-14 15:31:54 +02:00
hjk
f463c4dade ProjectExplorer: Make Project::id value based
Change-Id: Ie210d2a068158c6caaac66aae58cbd886f61c18d
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-10-14 13:35:59 +02:00
Nikolai Kosjar
b8dbac0b9c Rename "[Mm]ethod(s)" to "[Ff]unction(s)"
Only methods as programming functions are affected. Besides renaming
some actions like "Switch Between Function Declaration/Definition" this
mostly touches (api) code comments.

This is a follow-up patch to commit 872bfb7.

Change-Id: Icb65e8d73b59a022f8885b14df497169543a3b92
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-10 15:56:12 +02:00
Christian Kandeler
f1da03c73b qbs project files: Make use of new qbsSearchPaths property.
Change-Id: I396d970fafea1fd0b4c4d73883796662a1d0064b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-09 18:08:56 +02:00
Nikolai Kosjar
90130f4596 CppTools: Tests: Fix crash in test_modelmanager_gc_if_last_cppeditor_closed
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>
2013-10-09 15:02:45 +02:00
Nikolai Kosjar
802b67ff04 CppTools: Protect SnapshotUpdater getters by mutex
Task-number: QTCREATORBUG-10282

Change-Id: Ia58359f774c72260956caecd5f63d44b612d1451
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-09 15:01:42 +02:00
Orgad Shaneh
f47c101b8b Revert "EditorManager: Fix crash when closing an editor upon activation"
Deleting an editor while currentEditorChanged is apparently not a good
idea.
Use a queued connection instead.

This reverts commits 243a625961,
447c4ed37f,
d9602ca550 and
3103487038.

Change-Id: Iccbee25fb77714963faa6f7184d1f5f53ed348a6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-10-08 17:09:55 +02:00
Nikolai Kosjar
872bfb7094 CppTools: Adapt C++ locator names to reality
The new names are:

* C++ Methods in Current Document -> C++ Symbols in Current Document
* C++ Classes and Methods -> C++ Classes, Enums and Functions
* C++ Methods and Functions -> C++ Functions

Further notes:

* "C++ Classes" stays the same.
* The term "Methods" was removed since "Functions" says it all (member
  functions, non-member functions). Because of this, the "m" shortcut
  for this filter does not fit so well to the name anymore.
* "C++ Symbols in..." - "Symbols" means the same as in the C++ Search
  dialog: classes, enums, functions and declarations

Change-Id: I8e5f410f2dcb1fafe83d0a1c8607f4c17eabbb8c
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2013-10-07 12:06:20 +02:00
Oswald Buddenhagen
44dd2b6bdf fix build against qt4
Change-Id: I1884f6e61dcae95817da10f0ead67f2df99b4ec7
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-10-02 15:49:14 +02:00
Nikolai Kosjar
cd4c4218e4 CppTools: Fix completion in other editor
On duplication of an editor onMimeTypeChanged() of CppToolsEditorSupport
was not triggered, thus not completion provider was set.

Task-number: QTCREATORBUG-10284

Change-Id: Ia1da7f59b19e042f65b068a993f0d5c04b0778e0
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-02 12:13:31 +02:00
Nikolai Kosjar
9a97c42412 CppTools: De-duplicate some code in cppmodelmanager_test.cpp
Change-Id: I371e986c9b41fec5cddf05e3f7849c5e0b9e6b69
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-02 10:29:06 +02:00
Nikolai Kosjar
8d6ea45126 CppTools: Show function args in current document filter
Regression introduced by commit 190fb44.

Change-Id: Ibd47b6d316e5ae976fb448aad5062eb5887f10e6
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-02 10:28:58 +02:00
Nikolai Kosjar
3103487038 Tests: Move TestDataDir into plugintestutils.{h,cpp}
Change-Id: I76d5e421258eda85907e56762a59894ce7f84f13
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-02 10:25:07 +02:00
Nikolai Kosjar
f47e7f68d9 TextEditor: De-noise IAssistProcessor derived classes
...by providing a default implementation of immediateProposal() in the
base class.

Change-Id: I4f4f9aa491fbfc9390cc7b7093f1b3c1c8e460a4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-02 10:24:17 +02:00
Daniel Teske
e462c9620d ProjectPart: Add meta information
Add displayname and project file path and a pointer back to the
project.

Change-Id: Ic9a18f52a6291493bd3a95fd3456ed0e1a3c63e3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-01 16:31:36 +02:00
Joerg Bornemann
321ac6cc51 CppEditor: fix "follow symbol under cursor" for operators
Like for functions we can call attemptFuncDeclDef for operators. The
check for function names has been enhanced to take operators into
account.
For the switch from definition to declaration
SymbolFinder::findMatchingDeclaration has been enriched with operator
knowledge.

Task-number: QTCREATORBUG-7485

Change-Id: I29eebee337e26c8bf67dc8b4a15c43883045589d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-01 15:43:33 +02:00
Erik Verbruggen
7b2c26204a CppTools: add method to manually set the project part.
Change-Id: Ic3578bd98c2f1aefcaef61f5b993dc9a67ca5a77
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-01 14:37:08 +02:00
Nikolai Kosjar
3a64f8a344 TextEditor: CodeAssist: Allow immediate proposals
Immediate proposals are displayed for asynchronous providers and fragile
proposals.

The idea is to show already available results immediately. The proposal
calculated in the process runner can then replace the immediate
proposal.

Change-Id: I7903e6677c9dfeb4957eb416062fff1fb01ff23f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-01 14:04:06 +02:00