Commit Graph

25 Commits

Author SHA1 Message Date
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
f3f3b96c85 QmlJS: Improve performance by avoiding two links in SemanticHighlighter.
Reviewed-by: Roberto Raggi
2010-08-31 10:39:07 +02:00
Christian Kamm
87e04df257 QmlJS: Refactor LookupContext creation for speed.
* If possible, create LookupContexts through SemanticInfo; it caches the
  linked Context and will be faster.
* Contexts now own their Engine.

Reviewed-by: Lasse Holmstedt
2010-08-26 11:34:29 +02:00
Leandro Melo
e8ac7ead06 Make QML color validation code reusable.
Reviewed-by: ckamm
2010-08-02 14:56:55 +02:00
Christian Kamm
da6b372575 QmlJS: Move Q_DECLARE_TR_FUNCTIONS to the start of class declarations.
The documentation requires having it there.
2010-05-19 13:42:56 +02:00
Christian Kamm
50cc55af80 QmlJS: Change to a nicer way of marking strings for translation.
Reviewed-by: ossi
2010-05-19 13:32:11 +02:00
Christian Kamm
db2f91ef8f QmlJS: Don't produce Qml type errors if plugins are imported.
Task-number: QTCREATORBUG-1021
Reviewed-by: Erik Verbruggen
2010-04-07 11:09:27 +02:00
Christian Kamm
9ea01cf5fb Improve Qml code model import handling.
* Fill the snapshot with files that could be imported.
* Implement package imports.

* The qmldir file is not parsed yet.

Reviewed-by: Erik Verbruggen
2010-03-18 11:25:37 +01:00
hjk
9595504bda Long live the king! 2010-03-05 11:28:13 +01:00
Christian Kamm
f0674aa7e9 Add check for anchor line, changed value assignment checks into visitor.
Done-with: Erik Verbruggen
2010-02-23 17:03:05 +01:00
Christian Kamm
f717a7df30 Add Qml type checks for assigning literals to properties.
Done-with: Erik Verbruggen
2010-02-23 12:36:48 +01:00
Christian Kamm
e9039db984 Move the scope building logic into QmlJS::ScopeBuilder. 2010-02-22 10:22:23 +01:00
Christian Kamm
c289897351 Make QmlJS scope building more flexible.
Instead of only maintaining a flat list of scopes, actually store the
global, component chain, root object, scope object, function, id and js
scopes separately.
2010-02-22 10:22:23 +01:00
Erik Verbruggen
78b3145477 Semantic checking for easing curve names.
Done-with: Christian Kamm
2010-02-19 15:11:03 +01:00
Christian Kamm
45efd5b5b1 Don't show 'invalid property name' errors if we can't resolve the type.
The idea is that it may be a plugin-provided type. We don't want user
code to be riddled with error markers in that case.

Reviewed-by: Roberto Raggi
2010-02-16 13:30:40 +01:00
Christian Kamm
e6d9d9e387 Fix incorrect 'invalid property' errors for PropertyChanges.
Reviewed-by: Roberto Raggi
2010-02-16 11:55:41 +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
Christian Kamm
b23fc0c572 Rename QmlJS::Check -> QmlJS::Evaluate.
It is used to evaluate expressions to values.
Done to make room for a real 'check' pass.
2010-02-15 11:52:39 +01:00
Roberto Raggi
967ed09c29 Initial support of `Follow symbol under cursor' for QML/JS. 2010-02-09 11:37:58 +01:00
Roberto Raggi
1f0b717ad2 Completion for global variables in JS.
* Support for lookup JS vs Qml
* Bind global variables.

Done-with: ckamm
2010-02-03 14:34:06 +01:00
Christian Kamm
49c43aaab1 Get rid of Environment, introduce external ScopeChain in Link.
Done-with: Roberto
2010-02-03 10:59:52 +01:00
Roberto Raggi
ba18e70034 Introduced QML/JS references.
Done with ckamm
2010-02-03 10:24:25 +01:00
Roberto Raggi
fac977a5bd Try to get the type from a qualified-id. 2010-02-02 15:02:21 +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
c943d8e4f1 Renamed classes and files to use the QmlJS prefix. 2010-01-18 16:59:20 +01:00