Commit Graph

668 Commits

Author SHA1 Message Date
Friedemann Kleint
1d1d2f0b74 Compile with Qt 5.
- QtQuick1 renaming.
- Start on qtconcurrent split (pending renaming of Qt Creator's
  qtconcurrent library).
- QWinEventNotifier is a public class in Qt 5.
- Metatype system: Classes need to be known.

Change-Id: I5582e7cc2777bf791a08b049262217055769c80f
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-08 15:47:00 +01:00
Erik Verbruggen
dbc3332b8e C++: Moved completion/highlighting into the model manager.
This way the editor does not need to know all the details of
instantiating or maintaining classes for highlighting and/or completion,
it can just ask the model manager. The change also enables different
highlighting- or completion-engines without changes to the cppeditor.

Change-Id: I8000d9d9fe446b292defddb2295493cf77d0f14a
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-02-08 14:30:14 +01:00
Roberto Raggi
5fb624b1db Fix semantic of C++ 11 inline namespaces.
Add the declaring `inline' namespace to the `using list' of its
enclosing namespace symbol. This should be enough to ensure
the correct visibility of the symbols declarated in the inlined
namespace.

Change-Id: Id4de74577c498fe439a49709a306ef0deb145988
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-02-03 15:37:17 +01:00
Erik Verbruggen
1d3dc30153 C++11: add support for static_assert.
Change-Id: I82d8d60acaa9265fd25e0a3734855b19bdef9c06
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-02 13:49:22 +01:00
Erik Verbruggen
dd4299073e C++11: handle noexcept specifications.
Change-Id: I7da3affea2758b2e01124105e2521e1f2c5f6678
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-02 12:22:20 +01:00
Flex Ferrum
c6fc0be8ae C++: Type deduction for auto-declared variables implemented
Handled to major cases of 'auto' variable declaration:
1. auto var = someInitializer;
2. Q_FOREACH(auto item, collection) or foreach(auto item, collection)

In first case type deducted directly from initializer. If variable has no initializer then corresponded error reported. In second case type deducted from '*collection.begin()' expression.

Change-Id: Ie930add1648b99440281ae04d973fd6904bc9e46
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-31 10:03:36 +01:00
David Schulz
e44254bb9f Find usage displays content of the first line
Task-number: QTCREATERBUG-6176

Change-Id: I1c45b951bfde0b0d33bf462f532da7cbdbaa3fe7
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-01-30 16:08:42 +01:00
hjk
2931a499e6 Long live the king!
Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-26 19:55:36 +01:00
Leandro Melo
466ea4842c C++: Improve file accuracy when finding symbols
This patch introduces a priority-based mechanism when searching for certains
symbols in the snapshot. The priority corresponds to how similar the file path
from the "reference" symbol is to the file path from the "candidate" symbol.
This solves a variety of issues when matching "equivalent" symbols but that
are in another file/project, such as when following a function declaration,
a forward class declaration, or adding a definition through a quickfix.

There's now a symbol finder which will compute the "best" search order and cache
the most recent results. A consequence is that following symbols in some cases
is slower, but not apparently significatly.

Note: The "find" functions were moved from the Snapshot to the new SymbolFinder
class.

Task-number: QTCREATORBUG-6697
Task-number: QTCREATORBUG-6792

Change-Id: Ia518f014275fec1f4d0cb3224bd4e06a9df6d557
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-23 11:34:44 +01:00
Leandro Melo
c287d90604 C++: Rename source/setSource to utf8Source/setUtf8Source
Continuinng a previous commit... This is in order to make
the interface clearer.

Change-Id: Ic1b05217f878578bc84a064927507b75981c47d6
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-13 11:22:28 +01:00
Leandro Melo
fd179ed951 C++: Accept UTF-8 byte arrays in type of expression
The model uses UTF-8 internally and it makes more sense to only
convert when necessary.

A following commit will rename the source/setSource methods in
document for more clarity too.

Change-Id: I960ea0754efabd1436ad4b4299a57faeb65a8bee
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-01-13 10:17:03 +01:00
Eike Ziller
e2b0835b58 Merge remote-tracking branch 'origin/2.4'
Conflicts:
	qtcreator.pri
	src/libs/qmljs/qmljstypedescriptionreader.cpp
	src/plugins/analyzerbase/startremotedialog.ui
	src/plugins/qmldesigner/designercore/include/rewriterview.h
	src/plugins/qt4projectmanager/makestep.cpp

Change-Id: If9d15a8c8f73106585fd8ce6ac47c253a40af6b1
2011-11-25 09:48:25 +01:00
Christian Kamm
2f58fb95bc C++: Fix completion for namespace aliases at global or namespace scope.
Task-number: QTCREATORBUG-166
Change-Id: Ic0fe4067caad37e51f7e253fd6678a6680350870
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-11-22 14:14:11 +01:00
Leandro Melo
057fad645b C++: Recognize C++11 nullptr
Change-Id: I5b7ac8f9b2137ffe9439ada4ec4aeb9cee8e249d
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-11-18 13:50:19 +01:00
Leandro Melo
64d579dc3a C++: Enabled C++0x in SimpleLexer
We should create a UI flag for C++0x...

Change-Id: Iba30090aa580554af629c0fb59ae5fc22b306b80
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-11-18 12:14:24 +01:00
Oswald Buddenhagen
c344032bd5 centralize setting of "CONFIG += shared dll" for libraries
"dll" and "shared" set each other, but too late to actually test for it
in the project files, so include both.
note that this will slightly modify the build of some of our imported qt
solutions.

Change-Id: I0bd4f41a68fd160f8e87eb0a0fa66096fe70ef3e
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@nokia.com>
2011-11-18 10:40:09 +01:00
Leandro Melo
cb45971778 C++: Better resolution for typedef when resolving expr.
Example:
struct Bar { int m; };
typedef Bar *pBar;
pBar b;
b-> // completes correctly now

Change-Id: I97cc67579b955fe47c68ab6c35be9a054b6d1be9
Done-by: ckamm
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-11-17 13:57:49 +01:00
Eike Ziller
85cf2b661e Merge remote-tracking branch 'origin/2.4'
Conflicts:
	src/libs/qmljs/qmljsinterpreter.cpp
	src/libs/qmljs/qmljsinterpreter.h
	src/plugins/debugger/qml/scriptconsole.cpp
	src/plugins/git/gitplugin.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas_p.h

Change-Id: Iad59c8d87c72a21c79c047e374c0ab689998af39
2011-11-11 09:46:25 +01:00
Leandro Melo
9731955918 C++: Fix crash in type hierarchy when anonymous in typedefs
Task-number: QTCREATORBUG-6445

Change-Id: If62745b58cad330c1f6a8605a444ec13644a1f20
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-11-07 14:48:04 +01:00
hjk
31600758de all: s/info@qt.nokia.com/qt-info@nokia.com/
Change-Id: If18afb5d4665924e7d9250dccbc60a65e6daa75e
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2011-11-03 10:33:19 +01:00
Eike Ziller
912cd548c0 Merge remote-tracking branch 'origin/2.4'
Conflicts:
	src/libs/qmljs/qmljsinterpreter.cpp
	src/libs/qmljs/qmljsinterpreter.h
	src/plugins/madde/maemopackagecreationstep.cpp
	src/plugins/projectexplorer/buildmanager.cpp
	src/plugins/qmljstools/qmljsqtstylecodeformatter.cpp
	src/plugins/qmljstools/qmljsqtstylecodeformatter.h
	tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp

Change-Id: I63ab2ba5dac006c37ccfbae55b023396a4676ff7
2011-11-01 18:16:38 +01:00
Christian Kamm
0021c4c3ee C++ insert def: Fix bug when minimizing name.
Constructors would not get the correct name before. Now rewriting the
function's name is not done by going through the 'rewrite type' func-
tionality but rather by minimizing the symbol's name directly.

Task-number: QTCREATORBUG-6223
Change-Id: I3c25e414337937f5dd0f54570c899ca2ca21d2ef
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-10-31 14:00:27 +01:00
Leandro Melo
19b1a06ec8 C++: Handle multi-line if/elif directives
Task-number: QTCREATORBUG-5843

Change-Id: Ie32ed9daadf70f3b972a96fb53edcde9b1debb6c
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-10-31 11:52:39 +01:00
Christian Kamm
5cd2123862 C++: Fix findMatchingDeclaration for functions not in a class.
That fixes navigation and the 'function signature update' quickfix for
global functions and functions in namespaces.

Task-number: QTCREATORBUG-6413
Change-Id: Ifc68a88a34eb363f4e84c72e9f72444d22df1086
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-10-31 11:52:07 +01:00
Christian Kamm
e4a7b0642b C++: Fix a crash in debug builds when rewriting functions.
Change-Id: I35266b69d1cc433c4d9176cc849efd03ea1cc1cd
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-10-25 11:32:18 +02:00
Christian Kamm
71b2cbef9a CDB breakpoints: Fix line adjustment in case statements.
Task-number: QTCREATORBUG-6207
Change-Id: I4df50a412dd960a0d53a824a6c4a93712bd743e8
Reviewed-on: http://codereview.qt-project.org/5964
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-10-04 09:35:45 +02:00
Christian Kamm
9898a5e094 C++: Fix bug in findMatchingDefinition.
In strict mode, don't give up after the first Document with candidates.

Change-Id: I62ba59708a3501b31f79d979b1a85bede875eccb
Reviewed-on: http://codereview.qt-project.org/5142
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-09-20 07:24:37 +02:00
Christian Kamm
151475a0fe C++: Fix function return type printing.
We used to print T * foo(), but our style suggests T *foo().

Change-Id: Ie3b0ce6b620785ec98aeb394f7955ce959440619
Reviewed-on: http://codereview.qt-project.org/4634
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-09-12 11:16:39 +02:00
Benito van der Zander
d6e46f7a84 add always defined macro Q_CREATOR_RUN to cpp parser
Merge-request: 336
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>

Change-Id: Iefd0c60bb3e78047e28dcff33cc62c15ed11f711
Reviewed-on: http://codereview.qt-project.org/4292
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-09-08 14:09:48 +02:00
Christian Kamm
10a956a8f7 QmlJS: Find setContextProperty calls in C++ and expose to QML.
Task-number: QTCREATORBUG-3199

Change-Id: I591490ceafadc0f5a07c63ec063f1bdfa7055f47
Reviewed-on: http://codereview.qt-project.org/4074
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-08 12:34:22 +02:00
Leandro Melo
d91c218d54 C++: More flexibility for string representation of macros
It's now possible to get the macro definition with the actual
line breaks used on the code. This is particularly useful for
tooltips in order for them to look nice.

The preprocessor is changed so the macro also stores the breaks
positions. This doesn't seem to have any impact on performance.
In my machine, for example, the total time for parsing Creator's
source code is approx. 18100ms with or without the patch.

Change-Id: Ic7487236315c3567d26496315accdb2adfea894a
Reviewed-on: http://codereview.qt.nokia.com/4253
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-09-06 14:21:04 +02:00
Erik Verbruggen
bb41c375b0 C++: removed assert that could crash creator. Gracefully exit instead.
Change-Id: Iab79b2548195feb83b3f408f0eb612878454bd47
Reviewed-on: http://codereview.qt.nokia.com/4246
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-09-06 10:51:13 +02:00
Leandro Melo
f235f2594b C++: Export DiagnosticMessage
This is now necessary due to the recent change
that added the non-inline operator==.

Change-Id: I62255ddeb09f1e312a802db9733575e73ea56478
Reviewed-on: http://codereview.qt.nokia.com/3928
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-08-31 11:52:57 +02:00
Christian Kamm
9f7a2194f7 QmlJS: Fix infinite loop when scanning for exported C++ types.
Setting extra diagnostics would call updateDocument which would in turn
trigger another scan.

Change-Id: I3810a380cdf716a12767d94ff82dc30f8ae3954d
Reviewed-on: http://codereview.qt.nokia.com/3917
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-31 10:53:21 +02:00
Christian Kamm
9f1c294dd4 C++ preprocessor: Fix multiline tokens in ifdef'ed out blocks.
Change-Id: If6f9819565f891e861f9e111423d99caa7c0f7aa
Reviewed-on: http://codereview.qt.nokia.com/3884
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-31 07:41:32 +02:00
Christian Kamm
94a00259ac C++/QmlJS: Warnings if C++ based QML type detection fails.
Change-Id: I1e206e09c4068cc541978ee148f9ed8c4138c249
Reviewed-on: http://codereview.qt.nokia.com/3579
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-30 12:03:34 +02:00
Christian Kamm
93e367ed0c C++: Don't strip comments from preprocessed source code.
Change-Id: I3a4817d36b9c724abca504c42914a73f97ab34c7
Reviewed-on: http://codereview.qt.nokia.com/3480
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-08-25 13:20:09 +02:00
Christian Kamm
51ea52971f C++: Always remove NumericLiterals when removing the AST.
Contrary to StringLiterals, keeping them around is unnecessary.

Change-Id: Idc1967c125e1373e69ce4c7640328d323a84ec14
Reviewed-on: http://codereview.qt.nokia.com/3395
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-08-25 13:19:32 +02:00
Christian Kamm
27d0830698 QmlJS: Move the exported-C++-type detection out of C++ code.
It now lives in qmljstools/qmljsfindexportedcpptypes, all in one place.

Also ensures that the source code is available when a file is being
scanned for QML exports. This will enable checking comments for
annotations about the URI a plugin is usually imported as.

Change-Id: I1da36d0678e0a8d34b171dbe0f6b5690d89eb18b
Reviewed-on: http://codereview.qt.nokia.com/3392
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-24 12:13:41 +02:00
Christian Kamm
d8c053b525 C++: Fix completion for typedefs for templates in namespaces.
Change-Id: Ib96551388c94731d97eb8f9728613b120b0b86a9
Reviewed-on: http://codereview.qt.nokia.com/3262
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-08-19 14:24:05 +02:00
Christian Kamm
8a6d767a8f Refactoring changes: Cleanup and improvements.
Previously RefactoringFiles were usually passed around by value.
However, since a RefactoringFile may sometimes own a QTextDocument
(when it was read from a file), that's not great and caused the
file to be reread after every copy.

With this change RefactoringFile becomes noncopyable and is always
owned by a shared pointer.

This change also allowed having const RefactoringFiles which is
useful because they can be safely used from other threads. See
CppRefactoringChanges::fileNoEditor.

Change-Id: I9045921d6d0f6349f9558ff2a3d8317ea172193b
Reviewed-on: http://codereview.qt.nokia.com/3084
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-19 11:12:09 +02:00
Friedemann Kleint
6a6af5a59c Header cleanup in various plugins.
Change-Id: I16b273cc792bfd2035d35e7c67675f039cd387b9
Reviewed-on: http://codereview.qt.nokia.com/3185
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-08-18 15:05:00 +02:00
Kai Koehne
1b93bdca24 Disable gcc warning about always-true Q_ASSERT check
gcc 4.5.1 warned about the Q_ASSERT in QStringRef::at() being
always false for isCompleteStringLiteral, isCompleteCharLiteral.

Change-Id: Idb20f81f92876eff685166c8deeebd6e151303b1
Reviewed-on: http://codereview.qt.nokia.com/3070
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
2011-08-17 13:03:52 +02:00
Christian Kamm
451e9dbb02 C++: Fix ::A name handling in findMatchingDeclaration.
Change-Id: Id158be80c42056c145c2b787d4f569e2c0a0b66e
Reviewed-on: http://codereview.qt.nokia.com/2932
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-08-16 11:13:52 +02:00
Christian Kamm
8f14bc0ea2 C++: Synchronize function decl/def refactoring.
When editing a function declaration or definition the code model
may realize the same changes have to be applied somewhere else. A
refactoring marker will pop up that can be clicked to perform the
changes. Alternatively, press enter to apply.

Change-Id: I2299a2ecfb6a8f87d4853fc7cfa99486f890a1d3
Reviewed-on: http://codereview.qt.nokia.com/2909
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-16 11:13:12 +02:00
Christian Kamm
01bb7443fd C++: Fix off-by-one in scopeAt.
The only Scope that set the end offset to *before* the last token
was ObjCClassDeclaration.

Change-Id: Icbdb5bcdd72d96087ac586ad51510fed74a633eb
Reviewed-on: http://codereview.qt.nokia.com/2820
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-10 14:37:17 +02:00
Christian Kamm
a4e85dda53 C++ insert definition: Use minimally qualified names.
Change-Id: I633dbc77557fc2b6563888103350612a262536ee
Reviewed-on: http://codereview.qt.nokia.com/2731
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-08 14:47:49 +02:00
Oswald Buddenhagen
65c0eb5165 Merge branch '2.3'
Conflicts:
	src/plugins/debugger/qml/qmlengine.cpp

Change-Id: I46509f0c187b71bbaed7b2118a160914f8250ca4
2011-07-29 17:57:59 +02:00
Friedemann Kleint
938bcae9d6 Debugger[CDB]: Fix breakpoint location correction in constructors.
Change-Id: I638554936eae2db7ff2f55508d13f1c52c07f17d
Reviewed-on: http://codereview.qt.nokia.com/2114
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2011-07-25 15:04:59 +02:00
Leandro Melo
23decd9d34 C++ editor: Improve type hierarchy widget
Now the type hierarchy widget will also show the classes
derived from the selected one. For consistency the way
the base classes are shown was changed too. The diagram
below is an example from Creator's code when openining
the type hierarchy for BaseTextEditorWidget:

Bases
 +QObject
  +QWidget
   +...
     BaseTextEditorWidget
 +QPaintDevice
  +...
    BaseTextEditorWidget
Derived
 +BaseTextEditorWidget
  +VCSBaseEditorWidget
    GitEditor
    MercurialEditor
    ...
   GLSLEditorWidget
   CppEditorWidget
   QmlJSTextEditorWidget
   ...

Depending on the project and on the selected class the
hierarchy widget might take a bit to be constructed.
This should be improved later.

Change-Id: Ifbdd1cbbba955a0bdf03297ff0e7620351b12dc5
Reviewed-on: http://codereview.qt.nokia.com/883
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-07-08 14:50:26 +02:00