Commit Graph

1464 Commits

Author SHA1 Message Date
Christian Kamm
f9a0993815 QmlJS: Introduce chunk-wise result reporting in semantic highlighter.
Change-Id: I18fcea6c548bb0610db196b4aead8c4d52b40171
Reviewed-on: http://codereview.qt.nokia.com/4043
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-09-01 12:23:10 +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
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
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
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
Friedemann Kleint
2f92eae7bc Utils/Coreplugin: Clean headers.
Change-Id: I1e0d432127651622d40ff990e1866eac9fac46a0
Reviewed-on: http://codereview.qt.nokia.com/3091
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-08-17 12:58:38 +02:00
Christian Kamm
1c3dab2948 QmlJS: Show semantic messages on request.
* Add 'Run Checks' action (Ctrl-Shift-C) to perform checks on
  all projects.
* Add 'QML Analysis' build issues category to separate
  clear errors from semantic analysis results.
* Disabled automatic updating of analysis results.

Change-Id: I4c948b1bd39f55655073e56c5e3ca7837f727665
Reviewed-on: http://codereview.qt.nokia.com/2850
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-16 08:00:49 +02:00
Christian Kamm
676036a1c8 QmlJS: Allow for more markers than just Qt Quick Toolbar.
Change-Id: Id132b2fd42034a354baa548760083ca47d62697b
Reviewed-on: http://codereview.qt.nokia.com/2904
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-08-15 12:54:38 +02:00
Christian Kamm
e768fbf5d1 QmlJS: Rename SemanticHighlighter -> SemanticInfoUpdater.
Since it doesn't do any highlighting...

Change-Id: I45d20735535fa1885153a725d0ca894326ce53db
Reviewed-on: http://codereview.qt.nokia.com/2862
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-12 08:28:36 +02:00
Christian Kamm
ab3c256338 QmlJS: String literals with file names link to files.
Task-number: QTCREATORBUG-5701
Change-Id: If8e0cf2ba685de6fb5d2d11cff05d0dd5893ff82
Reviewed-on: http://codereview.qt.nokia.com/2775
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-10 11:56:16 +02:00
Christian Kamm
c879b9aeed QmlJS: Make the astPath available.
Change-Id: Ice51730ee118723dbd755467dd221eb9940775fd
Reviewed-on: http://codereview.qt.nokia.com/2774
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-10 11:56:09 +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
Shane Bradley
30676c1a17 Add mimetype support for system testcases to qml editor
System test-cases are (assumed to be) written in javascript when using
an .qtt filename extension. These modificatons ensure that a js editor
is used whenever an attempt is made to open a file that ends with .qtt.

Also add support for recognising testcases to QmlOutlineModel.

Change-Id: Ibcb68126e5123e8069344cf0c05aa2396b967a12
Reviewed-on: http://codereview.qt.nokia.com/2259
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Bill King <bill.king@nokia.com>
2011-08-03 08:32:54 +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
Kai Koehne
1757228278 New QTC_CHECK warning replacing QTC_ASSERT(x, /**/)
Warn if the condition fails, but otherwise don't change the execution
flow.

Change-Id: Id7b14c745109b66960add967b2a4ef8d31e1a546
Reviewed-on: http://codereview.qt.nokia.com/2389
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2011-07-29 12:19:11 +02:00
Thomas Hartmann
422d825dc2 QmlJSEditor: only show context menu for Quick Toolbar if available
Task-number: QTCREATORBUG-4521
Change-Id: Iedd97549c6f724b58a0727694ea1b34a2c70d9e9
Reviewed-on: http://codereview.qt.nokia.com/2264
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-07-27 11:27:18 +02:00
Oswald Buddenhagen
ae8ac2eb2f Merge branch '2.3'
Conflicts:
	qtcreator.pri
	src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
	src/plugins/remotelinux/maemodeploystepfactory.cpp
	src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp

Change-Id: I195163713145e72df20aec4ac9058f0c9158083e
2011-07-25 13:57:13 +02:00
Friedemann Kleint
c9ffc770aa Fix release build warnings about unitialized variables.
Change-Id: I1a6ba631b0626969b328276a91561c34154c9a1c
Reviewed-on: http://codereview.qt.nokia.com/1920
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-07-21 10:02:29 +02:00
Eike Ziller
e5ca4b3462 Merge remote-tracking branch 'origin/2.3'
Conflicts:
	qtcreator.pri
	share/qtcreator/dumper/dumper.py
	share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.h
	src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
	src/plugins/valgrind/valgrind.pro
	tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp

Change-Id: Ic2d347012d89d697e6382f156e64f9619da88300
2011-07-15 14:29:07 +02:00
hjk
82bbac7f90 Remove unneeded defines.
Mostly Q_DISABLE_COPY that were covered by the un-copy-ability of the
respective base classes. Includes a few "stylistic" whitespace changes.

Change-Id: I31ca0e7bada5ed0f34776976efe22ddc444a5bf2
Reviewed-on: http://codereview.qt.nokia.com/1609
Reviewed-by: hjk <qthjk@ovi.com>
2011-07-14 12:15:38 +02:00
Christian Kamm
51d8f468e4 QmlJS: Remove old 'Rename id' action.
Replaced by superior 'Rename Symbol Under Cursor'.

Change-Id: I0d0367d1297fde37d501266ef7df515256c6abd7
Reviewed-on: http://codereview.qt.nokia.com/1428
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@nokia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-07-11 15:01:59 +02:00
Christian Kamm
35cb3793a1 QmlJS: Implement renaming of usages.
Task-number: QTCREATORBUG-3669
Change-Id: I2c600cae5ac445ca80eafe6557ba276c14a77a73
Reviewed-on: http://codereview.qt.nokia.com/1413
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-11 14:40:27 +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
Christian Kamm
41b15f2fa3 QmlJS: Initialize QuickToolBar::m_editor.
Change-Id: I90f106affadb898b5eda613ad2a59bb3a5b53a2c
Reviewed-on: http://codereview.qt.nokia.com/1061
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
2011-07-11 09:57:02 +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
7d67959366 QmlJS: Add UiScriptBinding range if it has a script block.
Makes completion in code bindings have the right scope.

Change-Id: Ib76840cf7be5ab0a3c573e9ad087359816a9ced6
Reviewed-on: http://codereview.qt.nokia.com/1046
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-07-05 11:59:23 +02:00
Christian Kamm
e2ea5a8421 QmlJS: Rename range-related functions.
astPath -> rangePath
To make it more explicit that it does not return the full ast path.

declaringMember -> rangeAt
Since things like function expressions and declarations and grouped
property bindings are also ranges and returned by this function.

Change-Id: I70cc99f21635b21dd6f3088a6e5782d84f6f108a
Reviewed-on: http://codereview.qt.nokia.com/1045
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 11:52:57 +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
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
f8964ec4ef QmlJS: Remove ": " when completing components in namespaces.
So
import QtQuick 1.0 as Q
Q.Rec<complete> gives you Q.Rectangle instead of Q.Rectangle:

Change-Id: I42b05c7310e344fd93ed34a62aabe73a351866e3
Reviewed-on: http://codereview.qt.nokia.com/991
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-07-01 10:20:32 +02:00
Christian Kamm
83c5f81cc3 QmlJS: Merge QML and QML/JS tools menu.
Change-Id: I0b68cbec1c44b82e4ef84b7305bfa29d660194c7
Reviewed-on: http://codereview.qt.nokia.com/888
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-06-29 12:30:15 +02:00
Oswald Buddenhagen
1d78e594d8 Merge branch '2.2'
Conflicts:
	qtcreator.pri
	share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.cpp
	src/libs/qmljs/qmljsdocument.cpp
	src/libs/qmljs/qmljsinterpreter.cpp
	src/libs/qmljs/qmljsinterpreter.h
	src/libs/qmljs/qmljslink.cpp
	src/plugins/cppeditor/cppquickfixes.cpp
	src/plugins/qmldesigner/extrasplugin/extrasplugin.cpp
	src/plugins/qmldesigner/qmldesigner.pro
	src/plugins/qmldesigner/symbianplugin/symbian.metainfo
	src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h

Change-Id: Id5f754e2837a3bb3e0687ed09f1dda45fd0c5617
2011-06-23 19:47:50 +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
Christian Kamm
f0c32d79ba QmlJS: Don't try to complete slots in lhs of binding.
Task-number: QTCREATORBUG-3459
Change-Id: I694391bf7ccddcaa539ec4ed2b744e875cc43f38
Reviewed-on: http://codereview.qt.nokia.com/626
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-06-22 18:27:07 +02:00
Leandro Melo
d4e9b862fa Completion: Fine tuning perfect match behavior
Keeping or not the completion popup upon a perfect match
is best identified by the model in question instead of simply
by the triggering reason. For instance, in QML we don't want
to preserve the popup if completion was triggered by an
activation sequence. On the other hand, this is ok for C++
since a semicolon or parenthesis will in general still be
typed (in some cases even with the intention to take advantage
of the automatic bracked insertion).

For more context see 271bd44d2c1daa43c125cc09e6af57bb756de857.

Change-Id: If9dbf33243b623c077ce027e7e46265d0fc4ba8b
Reviewed-on: http://codereview.qt.nokia.com/563
Reviewed-by: Thorbjørn Lindeijer <thorbjorn@lindeijer.nl>
2011-06-22 16:15:39 +02:00
Christian Kamm
aee9a55a81 QmlJS: Fix missing rehighlight if other file changes.
When QML modules with many source files were loaded, the
rehighlight from the found library was done before the files
contained in the library were done parsing.

This way any updated document will eventually lead to the
current editor rehighlighting.

Reviewed-by: Erik Verbruggen
Change-Id: I0f4d18390d3e0ee17cd255c68496f61479f82f05x
Reviewed-on: http://codereview.qt.nokia.com/382
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: hjk <qthjk@ovi.com>
2011-06-08 13:30:47 +02:00
Fawzi Mohamed
395de23c93 Qmljs: removing unneeded Snapshot in find usages
removed snapshot from find usages, as now it is reachable through the
context

Change-Id: Ie470d275ae1b71caad4169234e6fc9af8687c7f0
Reviewed-on: http://codereview.qt.nokia.com/341
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-06-07 13:44:19 +02:00
Fawzi Mohamed
fe564852ad Qmljs: added scope for blocks in UiScriptBindings and UiPublicMember
correctly insert the scope for code blocks in UiScriptBindings and
UiPublicMember, and improve find usages for types (correctly detecting
variables in the same scope)

Change-Id: Iaaf1a59f041f3831fbe04243b220fb85fde76479
Reviewed-on: http://codereview.qt.nokia.com/335
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-06-07 13:04:21 +02:00
Fawzi Mohamed
752ea43111 Qmljs: find usages for types and packages
detects and finds usages of types and packages in qml and javascript

Change-Id: Id13f48e435258ff10ab3e6f49049f7bb602a900f
Reviewed-on: http://codereview.qt.nokia.com/277
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2011-06-06 14:08:15 +02:00
Christian Kamm
b729d4b973 QmlJS: Fix uses of Scanner::state().
Change-Id: I5195fc43e8a6653bf52c0eaa6cddb8dfd25b6217
Reviewed-on: http://codereview.qt.nokia.com/319
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2011-06-03 08:53:24 +02:00
Christian Kamm
a7f4e5fab5 QmlJS: Separate imported types and imported JS scopes.
Task-number: QTCREATORBUG-4981
Change-Id: I06d3e428ca4928296a3d5977aeff29fc3217c37c
Reviewed-on: http://codereview.qt.nokia.com/175
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-05-27 11:48:53 +02:00
Christian Kamm
779fafcbfe Make C++ code style configurable.
Change-Id: Iaf08edb2361146e6b5e1cbafdb716a23c938875b
Done-with: Jarek Kobus
Task-number: QTCREATORBUG-2670
Task-number: QTCREATORBUG-4310
Task-number: QTCREATORBUG-2763
Task-number: QTCREATORBUG-3623
Task-number: QTCREATORBUG-567
Reviewed-on: http://codereview.qt.nokia.com/74
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@nokia.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-05-24 12:45:07 +02:00
Christian Kamm
d67b7d17dc QmlJS: Refactor ObjectValue members.
* property -> lookupMember
* setProperty -> setMember
* removeProperty -> removeMember

Change-Id: I638479ee2b90b684283e714630bdcab237f6b3f2
Done-with: Fawzi Mohamed
Reviewed-on: http://codereview.qt.nokia.com/77
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-05-24 11:55:03 +02:00
Christian Kamm
f027b1da87 QmlJS: Make the Scanner recognize regular expression literals.
Task-number: QTCREATORBUG-4566
Change-Id: I48b08f8eee79b25d0ebe186b996cdcb8f1979e3d
Reviewed-on: http://codereview.qt.nokia.com/38
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-05-23 08:30:26 +02:00
Leandro Melo
bec4f02495 New code assist API
This is a re-work of our completion engine. Primary goals are:

- Allow the computation to run in a separate thread so the GUI is not locked.
- Support a model-based approach. QStrings are still needed (filtering, etc), but
internal structures are free to use more efficient representations.
- Unifiy all kinds of *assist* into a more reusable and extensible framework.
- Remove unnecessary dependencies on the text editor so we have more generic
and easily "plugable" components (still things to be resolved).
2011-05-18 10:46:20 +02:00