Christian Kamm
038111c384
QmlJS checks: Disable some checks when imports failed.
...
The important error in this case is on the import.
Change-Id: I3a547ca7ac44a89aba6819ea80ec52185071408a
Reviewed-on: http://codereview.qt-project.org/5879
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com >
Sanity-Review: Christian Kamm <christian.d.kamm@nokia.com >
2011-10-12 08:49:30 +02:00
Christian Kamm
bf3bf658c4
QmlJS checks: Add hint about not using multiple statements per line.
...
Migrated from QtChecker.
Change-Id: Ia76067a5f0e443a61a7b78ca9081f5a1bb51b471
Reviewed-on: http://codereview.qt-project.org/5861
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com >
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com >
2011-10-10 14:40:17 +02:00
Christian Kamm
55713a1514
QmlJS checks: Add severity and unique id to messages.
...
Change-Id: I2cded26524c3f64152107e65d740658e3003ffac
Reviewed-on: http://codereview.qt-project.org/5790
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com >
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com >
2011-10-10 14:39:20 +02:00
Christian Kamm
a7f78991c9
QmlJS: Move commonly used functions to qmlutils.h.
...
Change-Id: I22376d96fe575bc00a55094c06af80e32a5587e6
Reviewed-on: http://codereview.qt-project.org/6238
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com >
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com >
2011-10-10 09:36:12 +02:00
Christian Kamm
6808607c3b
QmlJS checks: Add 'unreachable code' warnings.
...
Change-Id: I59e490adce5c0cd7784894a0f9d4435cdcbc9b23
Reviewed-on: http://codereview.qt-project.org/4332
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com >
2011-09-14 10:56:51 +02:00
Christian Kamm
e850586b77
QmlJS checks: Warn about inappropriate use of constructor functions.
...
Change-Id: Iaedaaa88915f2010bfdd0d2b5ca95f01f8663ed7
Reviewed-on: http://codereview.qt.nokia.com/4254
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com >
2011-09-07 07:27:57 +02:00
Christian Kamm
aad5ab8542
QmlJS: Check property declaration types.
...
Change-Id: I2cc1236552e00e99a846b0d4b724135724f175fc
Task-number: QTCREATORBUG-3666
Reviewed-on: http://codereview.qt.nokia.com/4241
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com >
2011-09-06 10:07:16 +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
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
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
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
Thomas Hartmann
1178d623d5
QmlJs::Check: using the Option enum to ignore type errors
...
Unifying the api and exposing the options.
2011-03-01 17:21:03 +01: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
Roberto Raggi
b4e421062f
Removed stray tokens and fixed warnings/errors when compiling with pedantic C++ compilers.
2010-12-16 12:05:48 +01:00
Thomas Hartmann
8e5eaf821f
QMlJSCheck: Components have their own scope for ids
...
Each Components starts a new scope for ids. Using a stack to check
this properly.
2010-12-13 17:51:37 +01:00
Thomas Hartmann
0eb18f850e
QmlJSCheck: adding more checks
...
We are checking for duplicate ids and duplicate property definitions now.
2010-12-07 17:33:51 +01:00
Christian Kamm
23d7752815
JS checks: Allow blocks after for(var ...).
...
Also
* check the condition of the 'for(var' statement for assignment
* allow comma expressions in 'for(var'
Reviewed-by: Erik Verbruggen
2010-12-06 10:58:58 +01:00
Christian Kamm
f40b3c22f4
QmlJS: Add JSLint-style warnings for common JS traps.
...
Task-number: QTCREATORBUG-3071
Reviewed-by: Erik Verbruggen
2010-11-25 15:06:45 +01:00
Christian Kamm
124358d258
QmlJS: Enhance check pass to do lookup... and disable it.
...
It still generates too many false-negatives for now. Will be enabled
once the remaining lookup failures have been fixed.
Reviewed-by: Erik Verbruggen
2010-11-25 15:06:45 +01: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
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