Commit Graph

52 Commits

Author SHA1 Message Date
Kai Koehne
d7ede938e1 Fix wrong header file name in QMLJS
Fix a qmake warning introduced in e1b44e870f .

Change-Id: I8f7913ceabc411044785634d1708fbc035b0a5c4
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-11-21 16:15:32 +01:00
Fawzi Mohamed
e1b44e870f qmljs: new import/dep tracking
Change-Id: I9f4de2a06aad3afb80372a4b80e56db658683575
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-20 12:26:30 +01:00
Fawzi Mohamed
0a4310d314 qmljs: added qmljsconstants.h
Moved Document::Language, Import::Type and StaticAnalysis::Severity
enums to qmljsconstants.h and renamed values removing the redundant
part.
Thus the effective length changed little or improved
(Document::QmlLanguage => Language::Qml).

The separate file allows better reuse of enum values without introducing
circular dependencies.

Change-Id: I5186d7c04f5d3f6c289068b919be5ff1ff118326
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-10-23 00:35:16 +02:00
Christian Kandeler
72d173829c Remove superfluous include paths from project files.
A lot of our build system files specify unneeded include
paths. These roughly fall into the following categories:
    a) Paths that are already set in more general files
       such as qtcreator.pri.
    b) Paths that serve no purpose at all, possibly
       left over from earlier versions of the project.
    c) Paths that act as workarounds for wrong include
       statements of the form '#include "xyz.h"', where
       xyz.h is not in the same directory as the including
      file.
This patch removes such path specifications and fixes the offending
include statements from case c).
Tested on Linux, Windows and OSX with qmake and qbs.

Change-Id: I039a8449f8a65df0d616b4c08081145c18ae4b15
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-02 17:28:17 +02:00
Fawzi Mohamed
5a4cdc11cb qmljs: adding qrc support
Qmljs now keeps a cache of parsed qrc files, and can resolve "qrc:" links.

This breaks the assumption that the name that the qml files has on
the filesystem is the one that qml sees, and that contents of
directories can be found just looking at file whose path starts with the
directory path.

Currently the first file is used when multiple qrc files contain the same
path, but support for strict and weak path resolving is already there.

At the moment only qrc files for projects that call updateQmljsCodeModel
are updated.

ChangeLog: QmljsSupport: Imports using qrc links are resolved.

Task-number: QTCREATORBUG-8953
Change-Id: I695fac2692af2417d49c192c580a1c2e7b4873f4
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-06-03 10:32:13 +02:00
Fawzi Mohamed
942326ae9b qmljs: add infrastructure handling qml dialects better
QmlBundles enables us to treat the different qml
dialects differently.

Add imports completion.

Change-log: [Qml/JS Support] Corrected handling of QtQuick2 only features.
Change-log: [Qml/JS Support] Added import completion in editor.
Task-number: QTCREATORBUG-8750
Task-number: QTCREATORBUG-8624
Task-number: QTCREATORBUG-8584
Task-number: QTCREATORBUG-8583
Task-number: QTCREATORBUG-8429

Change-Id: I1384b1b23136a85b4d077895ea86f92960da9e71
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-02-21 17:22:16 +01:00
Fawzi Mohamed
82a8e9bb86 qmljs: added persistent trie
Add a presistent trie to store imports, and provide a better (IMHO)
completion algorithm.
The trie is quite generic and it might be worth while to move it to utils.

Change-Id: I4081346af6215b1ee8ff14bd063c2a021d7c8218
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2012-12-06 12:57:48 +01:00
Thomas Hartmann
5debabc410 QmlJS: adding SimpleReader
SimpleReader is a !simple! parser for json like qml files.
SimpleReader only parses literal properties for e.g. configuration
files.

SimpleAbstractStreamReader allows event based parsing and SimpleReader
stores the parsed data in a reference counted tree structure.

Change-Id: I0f6422a97f5c356149c516f227f8bbd7b736a6d0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-07 16:42:28 +01:00
Aurindam Jana
1d04c4c3df Debugger: Remove the dependence on QmlJSTools
Change-Id: I26765134c19b9a6cf1e7ad26f313e2d4f8faf258
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
2012-10-09 18:22:00 +02:00
Leandro Melo
26b783ff02 Introduce JSON validation
Support basic validation for JSON files according to the
draft http://tools.ietf.org/html/draft-zyp-json-schema-03.

This is not a complete implementation yet, but it should
already be useful, since "type" verification along with
many of the attributes is done.

Change-Id: I364bc98dd92937c5e2ea9cba7e15ed8e03eb9beb
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-02-08 11:25:07 +01:00
Christian Kamm
a5b26a32b3 QmlJS: Add 'reformat' action which regenerates the whole file.
Change-Id: I0aed6c6e197e122200d720eb9291a083095a6299
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-11-15 11:31:40 +01: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
ff092f79b3 QmlJS: Remove LookupContext.
Use Context or ScopeChain instead.

Change-Id: I2489477eac08774ba41710ee81876aab11b5af24
Reviewed-on: http://codereview.qt.nokia.com/1699
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-08-08 12:28:55 +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
Christian Kamm
8b778b266b QmlJS: Rename Interpreter::Engine -> ValueOwner
Also move to a separate file.

Change-Id: I05910e8cf04a533b5d09a1c16e612e3b99b1d606
Reviewed-on: http://codereview.qt.nokia.com/1039
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2011-07-05 08:44:16 +02:00
Christian Kamm
02b7eacf4b QmlJS: Fix type detection for alias properties.
Task-number: QTCREATORBUG-2306
2011-05-04 11:14:35 +02:00
Oswald Buddenhagen
7007326837 clean up DEPENDPATH insanity
simply add
  CONFIG += depend_includepath
to qtcreator.pri and remove all the manual DEPENDPATHs, as half of them
were missing anyway, and i wouldn't expect it to ever change. not
touching src/shared/ for syncing reasons.
2011-03-09 22:24:13 +01:00
Christian Kamm
dd1de1b82f qmldump: Make Creator able to read qmldump's new output.
Task-number: QTCREATORBUG-3048
2011-02-09 10:42:48 +01:00
Christian Kamm
5de7be5f91 LanguageUtils: Add FakeMetaObject and ComponentVersion. 2011-01-04 15:58:21 +01:00
Christian Kamm
822de6c17a QmlJS: Introduce a new indenter that works similarly to the new C++ one.
Done-with: Thomas Hartmann
2010-08-10 14:27:08 +02:00
Olivier Goffart
f24216bdbb QmlJsDelta: moved to the QMLJS library
Also used 'int' instead of QDeclarativeDebugObjectReference for
the debug id in order not to use the private API from QMLJS
2010-07-21 14:27:38 +02:00
Erik Verbruggen
65d061218f Added ast-to-.dot "dump" utility for QML ASTs. 2010-07-15 09:55:28 +02:00
Roberto Raggi
d70fe1eb61 Introduced QmlJS::LookupContext. 2010-07-08 14:50:25 +02:00
Kai Koehne
1541dec6f3 Add Icons provider to QmlJS library
Add an Icons class to QmlJS along the Icons class in the C++ support.
This will be used in the QmlJS Outline.
2010-07-08 14:02:51 +02:00
con
1a2a4f6387 Merge remote branch 'origin/2.0'
Conflicts:
	share/qtcreator/gdbmacros/dumper.py
	src/libs/qmljs/qmljs-lib.pri
	src/plugins/fakevim/fakevimhandler.cpp
2010-07-06 15:34:50 +02:00
Thomas Hartmann
9d70d66878 Adding interface for context widget to qmljs lib 2010-07-06 11:22:51 +02:00
con
9265494289 Merge remote branch 'origin/2.0'
Conflicts:
	src/libs/qmljs/qmljs-lib.pri
	src/plugins/debugger/gdb/gdbengine.cpp
	src/plugins/debugger/gdb/gdbengine.h
	src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp
2010-07-01 11:41:36 +02:00
Thomas Hartmann
40ce22896f Created a utility property reading class 2010-06-30 17:51:21 +02:00
con
ede2a7c975 Merge remote branch 'origin/2.0'
Conflicts:
	doc/qtcreator.qdoc
	share/qtcreator/gdbmacros/dumper.py
	src/libs/qmljs/qmljs-lib.pri
	src/plugins/debugger/breakhandler.cpp
	src/plugins/projectexplorer/projectexplorer.h
	src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
	src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h
2010-06-30 14:25:09 +02:00
Erik Verbruggen
21b211fed0 Created a utility rewriting class from existing visitors. 2010-06-30 13:42:35 +02:00
Roberto Raggi
726c3345c4 Moved qmljsmodelmanagerinterface.h 2010-06-10 11:59:27 +02:00
Christian Kamm
ea5ca79900 QmlJS: Add ComponentVersion class to simplify dealing with versions. 2010-06-09 14:36:53 +02:00
Christian Kamm
0e12240613 QmlJS: Completion for enums.
Done-with: Erik Verbruggen
2010-04-29 16:05:25 +02:00
Christian Kamm
722ba33770 QmlJS: Add CompletionContextFinder to allow context sensitive completion
The plan is to use this to reduce the number of applicable
completion options, for instance for enum completion or property
names.

Done-with: Erik Verbruggen
2010-04-29 16:05:24 +02:00
Christian Kamm
bd71243407 QmlJS: Move parts of the indenter to the new LineInfo.
LineInfo can tell whether lines are finished or not.

Done-with: Erik Verbruggen
2010-04-29 16:05:24 +02:00
Erik Verbruggen
13d7612f09 Removed private header dependencies and introduced loading QML types from XML file. 2010-03-01 13:13:02 +01:00
Christian Kamm
e9039db984 Move the scope building logic into QmlJS::ScopeBuilder. 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
Roberto Raggi
8fb82ef792 Merge qmljshighlighter.* with qmlhighlighter.*. 2010-02-15 12:39:30 +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
Christian Kamm
1d39377fb1 Separate bind into bind, link imports and building the scope chain. 2010-01-28 14:53:53 +01:00
Roberto Raggi
39c2575ab3 Removed obsolete code
Done with: Erik
2010-01-27 14:37:24 +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
659b2a7ee3 Complete QML properties. 2010-01-25 09:31:35 +01:00
Roberto Raggi
60af1681c2 Initial work on the QML/JS expression evaluator. 2010-01-21 15:54:36 +01:00
Roberto Raggi
c943d8e4f1 Renamed classes and files to use the QmlJS prefix. 2010-01-18 16:59:20 +01:00
Erik Verbruggen
ed4118628d Changed the QScriptHighlighter & QScriptIndenter namespaces. 2010-01-18 14:12:45 +01:00
Erik Verbruggen
bedb5d936b Moved the QScriptHighlighter & friends into the QmlJS library. 2010-01-18 14:12:44 +01:00