Commit Graph

43 Commits

Author SHA1 Message Date
Christian Kamm
8742026380 QmlJS: Allow for QML modules with version subdirectories.
That means
import Foo 2.1
can resolve to
/path/Foo.2.1 or
/path/Foo.2 or
/path/Foo

Task-number: QTCREATORBUG-4607
Change-Id: Ie1efc5be2ca2ed3ccc130e8a662f94aed11bec1a
Reviewed-on: http://codereview.qt.nokia.com/194
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-05-30 08:25:19 +02:00
Christian Kamm
cf15e14e5e QmlJS: Add tooltips to imports.
Task-number: QTCREATORBUG-4814
2011-05-12 15:29:41 +02:00
Tobias Hunger
aa2acec14c Fix/add copyright headers
Change-Id: I8b73d583be1ee7183f4074bce49d5390e38631a2
2011-05-06 15:17:05 +02:00
Christian Kamm
02b7eacf4b QmlJS: Fix type detection for alias properties.
Task-number: QTCREATORBUG-2306
2011-05-04 11:14:35 +02:00
hjk
8397663964 Update license. 2011-04-13 11:49:28 +02:00
con
d1023c7614 It's 2011 now.
Reviewed-by: hjk
2011-01-12 09:46:24 +01:00
con
b1bcf081d8 Merge branch '2.1'
Conflicts:
	src/plugins/coreplugin/basemode.cpp
	src/plugins/coreplugin/basemode.h
	src/plugins/coreplugin/scriptmanager/qworkbench_wrapper.cpp
	src/plugins/coreplugin/scriptmanager/qworkbench_wrapper.h
	src/plugins/debugger/cdb/cdbsymbolpathlisteditor.cpp
	src/plugins/debugger/debuggeragents.cpp
	src/plugins/debugger/debuggeruiswitcher.cpp
	src/plugins/debugger/debuggeruiswitcher.h
	src/plugins/projectexplorer/buildconfigdialog.cpp
	src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp
	src/plugins/qmldesigner/components/propertyeditor/colorwidget.h
	src/plugins/qmldesigner/designercore/include/enumeratormetainfo.h
	src/plugins/qmldesigner/designercore/include/modelutilities.h
	src/plugins/qmldesigner/designercore/include/nodeinstance.h
	src/plugins/qmldesigner/designercore/include/propertymetainfo.h
	src/plugins/qmldesigner/designercore/instances/graphicsscenenodeinstance.cpp
	src/plugins/qmldesigner/designercore/instances/graphicsscenenodeinstance.h
	src/plugins/qmldesigner/designercore/instances/graphicsviewnodeinstance.cpp
	src/plugins/qmldesigner/designercore/instances/graphicswidgetnodeinstance.cpp
	src/plugins/qmldesigner/designercore/instances/graphicswidgetnodeinstance.h
	src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
	src/plugins/qmldesigner/designercore/instances/qmlviewnodeinstance.cpp
	src/plugins/qmldesigner/designercore/instances/widgetnodeinstance.cpp
	src/plugins/qmldesigner/designercore/instances/widgetnodeinstance.h
	src/plugins/qmldesigner/designercore/metainfo/enumeratormetainfo.cpp
	src/plugins/qmldesigner/designercore/metainfo/propertymetainfo.cpp
	src/plugins/qmldesigner/designercore/model/modelutilities.cpp
	src/plugins/snippets/inputwidget.cpp
	src/plugins/snippets/snippetscompletion.cpp
	src/plugins/snippets/snippetscompletion.h
	src/plugins/snippets/snippetspec.cpp
	src/plugins/snippets/snippetsplugin.cpp
	src/plugins/snippets/snippetswindow.cpp
	src/plugins/snippets/snippetswindow.h
	src/plugins/texteditor/snippetsparser.cpp
	src/tools/qml/qmldom/main.cpp
	tests/manual/trk/runner.cpp
	tests/manual/trk/trkolddevice.cpp
	tests/manual/trk/trkolddevice.h
	tests/manual/trk/trkserver.cpp
2010-12-17 17:00:53 +01:00
con
04e32b0049 License headers. 2010-12-17 16:03:42 +01:00
Christian Kamm
5dd92328fb QmlJS: Improve error reporting for failed plugin dumps.
Reviewed-by: Erik Verbruggen
2010-11-25 15:06:44 +01:00
Christian Kamm
93967104f3 QmlJS: Reactivate instantiating component scope detection.
* Bind::usesQmlPrototype is now significantly more performant
* type environments are no longer hashed by filename, but rather
  by Document *
* duplicate scope builds are avoided

Task-number: QTCREATORBUG-2835
Reviewed-by: Erik Verbruggen
2010-11-25 15:06:44 +01:00
Christian Kamm
ef96363560 QmlJS: Fix plugin dumpers running all the time if dump fails.
Task-number: QTCREATORBUG-2733
Reviewed-by: Kai Koehne
2010-10-14 15:15:44 +02:00
Christian Kamm
c7b3e3c81c QmlJS: Speed up Link significantly, provide more info on imports.
Link now caches imports. That means importing the same library (say, Qt)
from more than one file no longer creates an importing namespace for
each one. Instead, a single one is created for the instance of Link.

To make this work, the type environment in ScopeChain has been given its
own type: Interpreter::TypeEnvironment. That has the added benefit of
being able to carry meta-information about imports. You can use
TypeEnvironment::importInfo(qmlComponentName) to get information about
the import node that caused the import of the component.
2010-09-16 15:51:21 +02:00
Christian Kamm
8df6dd6d7d QmlJS: Add initial documentation for the base classes of the code model. 2010-09-15 15:26:34 +02:00
Christian Kamm
2e8ec2f9e6 QmlJS: Fix performance problem in Snapshot.
Don't use QMultiHash::values(key), it rebuilds the values list from
scratch for each lookup.

Reviewed-by: Roberto Raggi
2010-08-31 10:25:02 +02:00
Roberto Raggi
ef5aaa0368 Renamed QmlJS::Document::documentRevision(). 2010-07-07 17:52:46 +02:00
Christian Kamm
24d0f694d1 QmlJS: Remove unused functions from Snapshot.
Reviewed-by: Erik Verbruggen
2010-06-21 13:03:30 +02:00
Christian Kamm
b7cb1feb4b QmlJS: Ignore .pragma library for now.
Task-number: QTCREATORBUG-1421
Reviewed-by: Erik Verbruggen
2010-06-15 14:50:16 +02:00
Erik Verbruggen
ef66bc98e2 Fixed QTCREATORBUG-1397.
When adding a new file, refreshing semantic errors in the open editor should
have worked. It now also works for removing existing files.

Done-with: Christian Kamm
2010-05-19 14:46:08 +02:00
Christian Kamm
6f4b864487 QmlJS: Make Snapshot discard outdated Documents.
Previously, fresh versions of a Document would be added to the
_documentsByPath QMultiHash without removing the old version first.
This means Link could pick up old versions of a Document.

Task-number: QTCREATORBUG-1418
2010-05-17 12:05:18 +02:00
Christian Kamm
8d70ab27dc QmlJS: Clean paths in the Snapshot.
To solve import resolution issues on windows.

Reviewed-by: Roberto Raggi
2010-04-01 15:21:30 +02:00
Christian Kamm
9531e75188 Revert "QmlJS: Use the canonical paths for the Documents."
Using canonical paths breaks with symlinked components. Also the editor
filename isn't canonical, so comparing them breaks.

This reverts commit efcdadd2bb.
2010-04-01 12:43:15 +02:00
Christian Kamm
49416fe888 QmlJS: Add a path->document list hash to Snapshot.
Also change the filename->document map to a hash.

Reviewed-by: Roberto Raggi
2010-04-01 11:28:56 +02:00
Christian Kamm
efcdadd2bb QmlJS: Use the canonical paths for the Documents.
Otherwise the paths may end up with ../ or /./ in them and confuse the
Qml import resolving.

Reviewed-by: Thomas Hartmann
2010-04-01 10:59:20 +02:00
Christian Kamm
811da6e31a Remove debug output that slipped into 5ed718a002 2010-03-31 15:58:23 +02:00
Kai Koehne
5ed718a002 Fix imported qml component names under Windows
Reviewed-by: ckamm
2010-03-31 15:50:02 +02:00
Christian Kamm
3191cfe832 QmlJS: Fix invalid errors inside qmlproject files.
The Document thought it was a JS file as it doesn't have the .qml
extension.
2010-03-31 13:43:40 +02:00
Roberto Raggi
4ee8a199af Introduced Document::isQmlDocument() and Document::isJSDocument(). 2010-03-29 12:56:25 +02:00
Christian Kamm
6eadfa3ac0 Read qmldir files in a thread and cache them in Snapshot.
Reviewed-by: Erik Verbruggen
2010-03-18 16:47:21 +01:00
hjk
9595504bda Long live the king! 2010-03-05 11:28:13 +01:00
Christian Kamm
da3679066e Add QmlJS semantic checker.
* Add SemanticHighlighter to QmlJSTextEditor to update the semantic info
  in a background thread.
* Add QmlJS::Check to run semantic checks on qml and js documents.
* Add a check for incorrect property names.
* Fix hoverhandler to show tool tips from extra selections over help
  tooltips.
2010-02-16 10:38:56 +01:00
Roberto Raggi
7a65191306 Moved the code in the source file. 2010-02-11 10:19:41 +01:00
Roberto Raggi
3d44c5621d Improved completion of JavaScript expressions. 2010-02-09 11:37:58 +01:00
Roberto Raggi
fcf81b22ed Get rid of BindPtr.
There is no reason to store the Bind object in a QSharedPointer because the `binder' has the same
lifetime of its document.
2010-02-03 15:59:15 +01:00
Christian Kamm
03fa188b41 Bind each QML document after parsing. Link them before use.
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2010-02-02 16:03:43 +01:00
Roberto Raggi
39c2575ab3 Removed obsolete code
Done with: Erik
2010-01-27 14:37:24 +01:00
Roberto Raggi
a05f2cb318 Check the file extension before computing the component's name. 2010-01-27 09:24:49 +01:00
Roberto Raggi
9cdca3a92b Some initial support for relative imports. 2010-01-26 17:23:18 +01:00
Erik Verbruggen
cf35a0249b Implemented the binding phase for QML.
Done-with: Christian Kamm
2010-01-26 15:20:18 +01:00
Roberto Raggi
ab8c19f2f8 Some initial work on the type checker for QML/JS. 2010-01-26 14:55:33 +01:00
Roberto Raggi
c9efafcb98 Introduced ranges and versioning of QML/JS documents. 2010-01-25 14:18:53 +01:00
Roberto Raggi
ba3e68fcbb Try to get the type of the qualified name id under cursor 2010-01-22 10:26:52 +01:00
Christian Kamm
419bc3005e Add QmlJS::Document::ast() for when the type of the AST doesn't matter.
Ideally most of our visitors won't need to make the QML vs JS
distinction. For these cases it'll be handy to be able to access the AST
no matter whether it's a Program or UiProgram.
2010-01-19 10:16:57 +01:00
Roberto Raggi
c943d8e4f1 Renamed classes and files to use the QmlJS prefix. 2010-01-18 16:59:20 +01:00