Commit Graph

547 Commits

Author SHA1 Message Date
Christian Kamm
ece400cfb6 QmlJS: Enable 'follow symbol' for local variables.
Task-number: QTCREATORBUG-6094
Change-Id: Icf286bc412b48dbd1cb38c47ad7b91040b5aae0f
Reviewed-on: http://codereview.qt-project.org/4864
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-09-14 11:13:21 +02:00
Christian Kamm
43a6a6d58c QmlJS: Improve import error messages.
Change-Id: Ief305b787fbc4577acfdec41083bc72e178db46d
Reviewed-on: http://codereview.qt-project.org/4537
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-09-14 11:03:16 +02:00
Christian Kamm
16b4a6fe73 QmlJS indenter: Fix labelled statements and break/continue with label.
Also do some cleanup to make handling of substatements nicer.

Change-Id: I78773fc81d9b0058fa97c5cef393cca34b7fd885
Reviewed-on: http://codereview.qt-project.org/4413
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-09-14 11:02:45 +02:00
Christian Kamm
6808607c3b QmlJS checks: Add 'unreachable code' warnings.
Change-Id: I59e490adce5c0cd7784894a0f9d4435cdcbc9b23
Reviewed-on: http://codereview.qt-project.org/4332
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-09-14 10:56:51 +02:00
Christian Kamm
7b2110de7e QmlJS: Fix reference lookup cycles.
Since several reference lookups involve Evaluate which may cause
further reference lookups, we need to be able to pass the existing
ReferenceContext to avoid cycles.

Change-Id: I2f1eeaad4d6b6ff094413d51077b03c985f6fab4
Reviewed-on: http://codereview.qt-project.org/4653
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-12 14:47:35 +02:00
Christian Kamm
903c6b60cd QmlJS: Use mime types to distinguish qml and js files.
This allows adding patterns to the qml mime type in the options dialog.
Previously they were always parsed as js.

Change-Id: Ifa344fb6ab8cbcda02becef991cf6807615a1caa
Reviewed-on: http://codereview.qt-project.org/4515
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-09-12 10:45:53 +02:00
hjk
bfd9fcbb3c all: some m_d -> d style
Change-Id: Iac1f12980bf47666007817cfb2c64a6d1e9b780e
Reviewed-on: http://codereview.qt-project.org/4477
Reviewed-by: hjk <qthjk@ovi.com>
2011-09-08 17:42:14 +02:00
Christian Kamm
ca35046827 QmlJS checks: Improve warning about accidental empty blocks.
Change-Id: I2bddd65aef9092bf87f5a441e065ebca0e772174
Reviewed-on: http://codereview.qt-project.org/4331
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-08 14:06:28 +02:00
Christian Kamm
5b8d7b465c QmlJS checks: Fix collection of use-before-declaration warnings.
Previously they would not be collected if the var had a
duplicate-declaration warning.

Change-Id: I82244e911fcdfc3d11cc391288da263ee288a3ca
Reviewed-on: http://codereview.qt-project.org/4330
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-08 14:06:16 +02:00
Christian Kamm
62a71b75a0 QmlJS indenter: Fix indentation for property initializers.
property int foo: {

used to start an object literal but is a block statement now.

Change-Id: I9ffbce4927b444314f1a43aba65ca3d9d234e47c
Reviewed-on: http://codereview.qt-project.org/4339
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-08 13:55:08 +02:00
Christian Kamm
bfc95befa8 QmlJS: Honor typeinfo lines in qmldir files.
Change-Id: I1ddad1eb031bc4b95671be4a474b5e8e72f6e350
Reviewed-on: http://codereview.qt-project.org/4137
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-08 12:34:32 +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
Christian Kamm
daf6f5fff0 QmlJS checks: Don't complain about alias properties.
Change-Id: I6721b42a6ae8cc4de3d85754bf12c95f7366212e
Reviewed-on: http://codereview.qt-project.org/4395
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-09-08 08:56:01 +02:00
Christian Kamm
b53570d48d QmlJS parser: Fix else token in IfStatement.
Change-Id: Id994a9c5777021e3dc5027776df42234441440d8
Reviewed-on: http://codereview.qt.nokia.com/4319
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-09-07 09:32:32 +02:00
Christian Kamm
e850586b77 QmlJS checks: Warn about inappropriate use of constructor functions.
Change-Id: Iaedaaa88915f2010bfdd0d2b5ca95f01f8663ed7
Reviewed-on: http://codereview.qt.nokia.com/4254
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-07 07:27:57 +02:00
Christian Kamm
4e60db9065 QmlJS: Cleanup in Check.
Evaluate supports ExpressionStatements now.

Change-Id: I74c440fe0abf27c3d3b41b7d28a69fdd9359fb2e
Reviewed-on: http://codereview.qt.nokia.com/4080
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-07 07:27:45 +02:00
Christian Kamm
aad5ab8542 QmlJS: Check property declaration types.
Change-Id: I2cc1236552e00e99a846b0d4b724135724f175fc
Task-number: QTCREATORBUG-3666
Reviewed-on: http://codereview.qt.nokia.com/4241
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-09-06 10:07:16 +02:00
Christian Kamm
312d43f215 QmlJS: Fix lookup for enums.
* Also look for enums in prototypes.
* Report back which QmlObjectValue had the enum.
* Fix a bug where enum lookup was always skipped.

Change-Id: I9c9fd8f8cf9bd8cc5f1bb5688fef5786267cd794
Reviewed-on: http://codereview.qt.nokia.com/4192
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-09-05 14:56:37 +02:00
Christian Kamm
650b280b30 QmlJS: Ensure project infos are removed when a project closes.
As a side effect, this removes parse errors of QML files that are no
longer in any project from the "Build Issues" list.

Change-Id: I7aef8850a207ac060648dc92e2dd759108b71731
Reviewed-on: http://codereview.qt.nokia.com/3668
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-30 12:00:44 +02:00
Christian Kamm
9c1cb774a1 QmlJS: Improve ModelManagerInterface API, add docs.
Change-Id: Ic65d767cbad85de89dffaac66d9e80d8d467f04a
Reviewed-on: http://codereview.qt.nokia.com/3851
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-30 10:17: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
c105ae47c1 QmlJS: Add semantic highlighting.
Change-Id: If9293244075cff1a52801b50cdbb77248ecd21ea
Reviewed-on: http://codereview.qt.nokia.com/3310
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-24 11:30:20 +02:00
Christian Kamm
f725c24c56 QmlJS: Fix semantic and non-semantic QML error reporting.
The QML snapshot only ever contains valid Documents; to compile a list
of parser problems we need to get at the invalid documents.

To do that, the model manager now provides a Snapshot with up to date,
but potentially invalid documents. That should also be useful for other
things.

Change-Id: I67892f63771c221bf2fe2c2bf0240a0f4e523227
Reviewed-on: http://codereview.qt.nokia.com/3012
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-18 17:11:59 +02:00
Christiaan Janssen
90a812a8a8 QmlLivePreview: fix crash when inserting node with no parents
Change-Id: Ib781f64aed11aafc106dc15b40689181fefd5dd3
Reviewed-on: http://codereview.qt.nokia.com/3171
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
2011-08-18 11:52:30 +02:00
Christian Kamm
a6ae570c31 QmlJS: Move 'file not found' error message from Bind to Link.
Change-Id: I701fc179f377581b87e31630eaa4231688152f5e
Reviewed-on: http://codereview.qt.nokia.com/2813
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-10 09:23:28 +02:00
Christian Kamm
ffee7c0b49 QmlJS: Clean up ScopeAstPath visitor.
Change-Id: If983e9c9bee2d0396d7cc00973ee3885a3736d8a
Reviewed-on: http://codereview.qt.nokia.com/2767
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-09 10:47:31 +02:00
Christian Kamm
197c60e928 QmlJS: Add XMLHttpRequest, DB API and JSON completion.
Change-Id: I30773e8879086c1f85d331fabf9380e217b32dd7
Reviewed-on: http://codereview.qt.nokia.com/2745
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-09 08:36:35 +02:00
Christian Kamm
0e54183d4d QmlJS: Remove Interpreter namespace.
The distinction between QmlJS and QmlJS::Interpreter has always been
weak and the extra namespace just added an unnecessary complication.

Change-Id: I4db8ef4bd91b5f6bf610a9d23fdbf55bd60250fc
Reviewed-on: http://codereview.qt.nokia.com/2743
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-08 13:21:28 +02:00
Christian Kamm
ff092f79b3 QmlJS: Remove LookupContext.
Use Context or ScopeChain instead.

Change-Id: I2489477eac08774ba41710ee81876aab11b5af24
Reviewed-on: http://codereview.qt.nokia.com/1699
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-08 12:28:55 +02:00
Christian Kamm
9dc9674c6b QmlJS: Share Context.
Previously Context was not entirely thread safe and had to be
copied locally. Now it is thread safe and its lifetime
managed by QSharedPointer.

The non-safe parts were moved into ScopeChain in a previous commit.

Change-Id: I851a93de85cbd6391dbea0fe33b011e2e093addb
Reviewed-on: http://codereview.qt.nokia.com/1695
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-08 12:05:19 +02:00
Christian Kamm
f87dc61986 QmlJS: Split Context and ScopeChain.
Context is created by Link and has information about imports
for all Documents in a Snapshot.

ScopeChain represents how lookup is done at a specific place in
a Document.

Change-Id: I874102d57bbaf1a497fa3f27633bed6ee75dcf10
Reviewed-on: http://codereview.qt.nokia.com/1694
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-08 12:05:03 +02:00
Christian Kamm
ed1321a4f9 QmlJS: Resolve references while evaluating expressions.
Task-number: QTCREATORBUG-5752
Change-Id: Ibcdaac039a5e862d7a8f03f58c8bf017b544e436
Reviewed-on: http://codereview.qt.nokia.com/2736
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-08 12:04:49 +02:00
Christian Kamm
eda93bde42 QmlJS: Fix type lookup issue.
0c0ffab1bb accidentally always returned
null if the type was not an enum.

Change-Id: Ie16d96e59cefa50c345cddb4a053fd8b60ba3cd6
Reviewed-on: http://codereview.qt.nokia.com/1693
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-07-15 11:22:20 +02:00
Fawzi Mohamed
0c0ffab1bb avoid allocating QmlEnumValues each time
Change-Id: I61f39f5bafcb2c84e91f5bca4b52010a08ed9f37
Reviewed-on: http://codereview.qt.nokia.com/1592
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-07-13 14:59:52 +02:00
Christian Kamm
f3a45d7b55 QmlJS: Fix basic code model test.
Change-Id: If62153e9db56e65e10d008d49f0945d3ea77c4f4
Reviewed-on: http://codereview.qt.nokia.com/1502
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Reviewed-by: Bill King <bill.king@nokia.com>
2011-07-12 11:25:31 +02:00
Christian Kamm
4285b48455 QmlJS: Dump builtins per Qt version.
Change-Id: I7b5179c4b33c24e83baf0536d158dd48d277637f
Reviewed-on: http://codereview.qt.nokia.com/1305
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-11 11:28:38 +02:00
Oswald Buddenhagen
1f3896e8af Merge remote-tracking branch 'origin/2.3'
Conflicts:
	share/qtcreator/dumper/bridge.py
	src/plugins/debugger/gdb/gdbengine.cpp
	src/plugins/remotelinux/remotelinuxapplicationrunner.cpp

Change-Id: I444f797723d5879ea08c5c0e1f31158d271d4f41
2011-07-07 12:26:59 +02:00
Christian Kamm
59206106d3 QmlJS: Don't need to store imports per document in LinkPrivate.
Change-Id: I4bb9bcbc7a8e988760ca1b3463474b269e3802af
Reviewed-on: http://codereview.qt.nokia.com/1156
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 13:45:08 +02:00
Christian Kamm
4cc8e4d4e3 QmlJS: Fix error message when too new qmltypes files are read.
Change-Id: I5c499dd1307ee0e1f474278873706151d562d380
Reviewed-on: http://codereview.qt.nokia.com/1030
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 13:44:55 +02:00
Christian Kamm
eec591ff1c QmlJS: Make 'length' property available on all FunctionValues.
Change-Id: I62bb8f41177521db1f3213d6bd804d8e4852560d
Reviewed-on: http://codereview.qt.nokia.com/1044
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 11:52:38 +02:00
Christian Kamm
d72ee7c7da QmlJS: Remove deprecated enum functions in QmlObjectValue.
Change-Id: I30c1636f4946f465e5924493e561310f506df3d7
Reviewed-on: http://codereview.qt.nokia.com/1043
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 11:52:28 +02:00
Christian Kamm
36ed6bce1d QmlJS: Move Context to its own file.
Change-Id: I91331b7039e27e2f57cc19b985c8ed86c955ec9e
Reviewed-on: http://codereview.qt.nokia.com/1042
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 11:52:20 +02:00
Christian Kamm
9ea0380a4d QmlJS: Enforce Context always being linked.
The default way of creating a Context is through Link.

Change-Id: Ia81f7ce90ba2b33d02eed432a61be836d404bedd
Reviewed-on: http://codereview.qt.nokia.com/1041
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 11:52:09 +02:00
Christian Kamm
f691d3824a QmlJS: Remove unused methods from Context
Change-Id: I1e4a013ee11f9747d6936c15bf81e971ca4e4f23
Reviewed-on: http://codereview.qt.nokia.com/1040
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 08:46:39 +02:00
Christian Kamm
8b778b266b QmlJS: Rename Interpreter::Engine -> ValueOwner
Also move to a separate file.

Change-Id: I05910e8cf04a533b5d09a1c16e612e3b99b1d606
Reviewed-on: http://codereview.qt.nokia.com/1039
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 08:44:16 +02:00
Christian Kamm
f229def962 Fix UiPublicMember::lastSourceLocation.
Mirrors http://codereview.qt.nokia.com/#change,755

Change-Id: I7d1222bda67344456710ada52af33d17688627ca
Reviewed-on: http://codereview.qt.nokia.com/757
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-06-27 10:45:51 +02:00
Christian Kamm
55b11db1f7 QmlJS: Fix error location for prototype errors.
Change-Id: Iaeb96ff67cfc92bcddeb1b7075b7fdcbaed317c0
Reviewed-on: http://codereview.qt.nokia.com/691
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-06-24 11:32:48 +02:00
Christian Kamm
4f05d53ef5 QmlJS: Add 'reset code model' action.
Having to restart Creator should be a thing of the past.

Task-number: QTCREATORBUG-4813
Change-Id: Ide242ee299b5d34aecba4823032e27741dde4a86
Reviewed-on: http://codereview.qt.nokia.com/668
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-06-23 22:22:03 +02:00
Christian Kamm
4bf5f4bd94 QmlJS: Respect the REVISION property for methods and properties.
Task-number: QTCREATORBUG-3907
Change-Id: Ic2c1f8cafe381e5216ae7ad73502ca0fae20dda0
Reviewed-on: http://codereview.qt.nokia.com/656
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-06-23 13:39:08 +02:00
Christian Kamm
33a130e222 QmlJS: Fix completion inside grouped propery bindings.
Task-number: QTCREATORBUG-3541
Change-Id: Ida8e59b65836c8515fbfbd2a9e4737d9ae04e76c
Reviewed-on: http://codereview.qt.nokia.com/639
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-06-23 11:47:07 +02:00