Commit Graph

132 Commits

Author SHA1 Message Date
Christian Kamm
4722c6cf84 Fix the scope chain not being set up correctly for the outermost scope.
This bug manifested itself as not getting a tooltip and correct context
help for the type of the root object in a Qml file.
2010-03-10 14:52:34 +01:00
Christian Kamm
08b9323f0c Fix completion and checking for Script elements. Update Qml type xml.
* The "Script" type is now implicitly available without imports.
* No errors for bindings inside a Connections element.

Reviewed-by: Roberto Raggi
2010-03-03 11:38:17 +01:00
Erik Verbruggen
13d7612f09 Removed private header dependencies and introduced loading QML types from XML file. 2010-03-01 13:13:02 +01:00
Erik Verbruggen
912a1b95a9 Fixed crash when putting a second root item into a QML file. 2010-02-25 12:57:17 +01:00
Christian Kamm
fcb6c4984e Fix a memory leak with the QmlJS scope chain. 2010-02-22 11:21:25 +01:00
Christian Kamm
e9039db984 Move the scope building logic into QmlJS::ScopeBuilder. 2010-02-22 10:22:23 +01:00
Christian Kamm
08cfc8f28c Pass in the whole AST path for scope creation.
Just the declaring member isn't enough.
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
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
hjk
a029a6c68a compile fix with namespaces 2010-02-12 11:00:12 +01:00
Christian Kamm
42959f8fef Remove the lookup into including Qml files in the root scope of a JS file. 2010-02-12 10:05:13 +01:00
Christian Kamm
2b1adbf610 Improve building of the Qml/JS scope chain.
* For JS files: Add each Qml component that sources the file in a Script
  tag to the scope chain.
* For Qml components: Add each component that instantiates the component
  to the scope chain.
* Generate the full list of documents required for completion in a
  given file. Previously, files that included the file were missing.
2010-02-11 19:08:33 +01:00
Roberto Raggi
bdf8c94809 Get rid off the friend QmlJS::Link declaration. 2010-02-10 17:06:32 +01:00
Roberto Raggi
56df4e29ce Fixed possible crash when trying to link invalid documents. 2010-02-10 16:24:22 +01:00
Roberto Raggi
0567adbc32 Removed useless qDebug. 2010-02-09 12:16:19 +01:00
Roberto Raggi
3d44c5621d Improved completion of JavaScript expressions. 2010-02-09 11:37:58 +01:00
Christian Kamm
25e04d8ef1 Make QmlJS::Link private. Use Context::build to set up a context. 2010-02-04 10:34:49 +01:00
Christian Kamm
e984691fe6 Fix prototype reference resolution for Qml objects. 2010-02-04 10:34:49 +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
Roberto Raggi
976d74ca73 Add support for lazy prototypes.
Done-with: ckamm
2010-02-03 15:42:32 +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
95849cb0bd Store bindings and definitions in one single table. 2010-02-03 09:34:28 +01:00
Roberto Raggi
14ffb1e465 Some refactoring needed to create ranges for JavaScript functions. 2010-02-02 16:36:14 +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
a8bc5a4bb0 Create bindings for the javascript soure elements. 2010-02-01 17:20:46 +01:00
Roberto Raggi
15ae1001f4 Process QML Script elements. 2010-02-01 17:05:07 +01:00
Christian Kamm
1ec6cbd913 Fix for renamed directory imports in the QML code model. 2010-01-29 13:36:41 +01:00
Christian Kamm
a49f313c0c Drop implicit directory imports, implement renamed directory imports. 2010-01-29 13:22:57 +01:00
Christian Kamm
6134f2880a Always return a valid scope from Link. 2010-01-28 15:03:50 +01:00
Christian Kamm
1d39377fb1 Separate bind into bind, link imports and building the scope chain. 2010-01-28 14:53:53 +01:00