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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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).