Commit Graph

1203 Commits

Author SHA1 Message Date
Christian Stenger
1d2c249be6 Fix build for Qbs and CMake
Amends 6371725dbf.

Change-Id: Idea2196edcfd50341b5dd266e9ea13f35095647e
Reviewed-by: hjk <hjk@qt.io>
2019-10-23 11:08:27 +00:00
Ulf Hermann
6371725dbf QmlJS: Clean up ViewerContext
The special ctor wasn't used anywhere, the default ctor can be replaced
by inline initialization, maybeAddPath is only meaningful in the model
manager and the language compatibility check should definitely not
pretend to be a general rule either.

Change-Id: I11cf25fe1c696550d33b56ce57316100321d564b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-10-23 10:14:47 +00:00
Ulf Hermann
3b65c0a5d5 QmlJS: Clean up qmljslink.{h|cpp}
Fix linter warnings, apply coding style, avoid foreach, drop dead code.

Change-Id: Ib98488725262c1bd3a04de0db0397a9129e21901
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-10-23 10:14:38 +00:00
Thomas Hartmann
3ee870a3d8 QmlJS: Fix regression caused by parser update
We have to keep the semicolonToken into account.

Change-Id: Ie599d141d21f09f1d0036c0382f6a3098fde6ca5
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-10-21 07:21:08 +00:00
Ulf Hermann
3d21c7fdc3 Retain ".pragma library" when reformatting JavaScript files
For ".pragma library" there is a special flag in QmlJS::Directives.
We just need to actually set the flag and query it when re-emitting the
code.

Change-Id: Ia3455fda18aba3219b02ecf092bb28987a6ccef5
Fixes: QTCREATORBUG-22326
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-10-10 14:05:18 +00:00
Ulf Hermann
4d7c644268 Fix parsing of QML version tokens in the presence of "as Foo"
The previous code would omit the minor version, leading to a test
failure.

Change-Id: I3dccee5252a54806f8e1e5bf5c49eff149d9b936
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-10-10 11:34:52 +00:00
Ulf Hermann
58d35f8a64 QmlJS: Update QML parser using the one from qtdeclarative 5.15
We need to do this because the new "required" keyword should be
recognized by Qt Creator.

This is not a verbatim copy of the QML parser from qtdeclarative. A few
data structures have changed that would require large scale changes in
otherwise unrelated parts of the code. For example, all Visitors need to
handle recursion depth errors now and the DiagnosticMessage only has
line and column now, no longer begin and legth.

Change-Id: Iea5b04e27b07e0cba55d64b844315af9828acbf7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-10-07 07:33:58 +00:00
Ulf Hermann
b5b1367b0b Accept arrays as enum descriptions in qmltypes files
We don't use the values at all and they are hard to determine
statically. Qt >= 5.15 will generated arrays instead of objects.

Change-Id: I3b3bbd427c49e649ca3f9cef51c89b32e830eb66
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-09-30 08:24:30 +00:00
Eike Ziller
8df0653bf8 Merge remote-tracking branch 'origin/4.10'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/projectexplorer/gcctoolchain.cpp
	src/plugins/qmldesigner/components/stateseditor/stateseditormodel.cpp

Change-Id: Iffdf48e782a734107ea170ebb3812e997cea0e7b
2019-09-12 09:08:04 +02:00
Thomas Hartmann
4bf1474aa0 QmlDesigner: Allow transformations in Qt Quick Designer
They are passively supported and we plan better support in the future.

Change-Id: I22520335ae3dba5804ec4c8902624b4afe4254a3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-09-05 12:47:03 +00:00
Eike Ziller
8d85a7c2bc QmlJS: Fix compiler warnings
Change-Id: I94fccd913a4a06fb55acee3df974859f9a163b4f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-09-04 10:11:48 +00:00
Thomas DeRensis
edad44f213 Parse the types registered with qmlRegisterUncreatableMetaObject()
Fixes: QTCREATORBUG-20569
Change-Id: I65fe8843b09aa127f0c564942b5b4e10a51342ba
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-08-22 11:34:12 +00:00
hjk
2e14df7561 Some clang-tidy -use-modernize-nullptr
Change-Id: I1bed5e85a5b7948d08502a72a10f80baa075c204
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-08-01 13:20:26 +00:00
hjk
e3b1106afa Compile fix with recent Qt dev
The reasoning in 1b4766e26c did not take into account that the scope
of QT_NO_JAVA_STYLE_ITERATORS may change over time, as done with
f70905448f6 in Qt base.

Change-Id: Ib1966ff26c4d36d5f62e149d6b45baa4aecf825d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-07-29 08:54:18 +00:00
hjk
7ab6783e24 Standardize on int for line and column values
Recently tons of warnings show up for presumably "problematic"
singned <-> unsigned and size conversions.

The Qt side uses 'int', and that's the biggest 'integration surface'
for us, so instead of establishing some internal boundary between
signed and unsigned areas, push that boundary out of creator core code,
and use 'int' everywhere.

Because it reduces friction further, also do it in libcplusplus.

Change-Id: I84f3b79852c8029713e7ea6f133ffb9ef7030a70
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-07-26 09:23:48 +00:00
hjk
251287f0d3 Avoid warning on empty expressions
For some reason, Q_UNUSED includes already a semicolon, adding one
on the user side creates an additional empty statement.

Change-Id: I9c5e8fac381345a60792cb75e2938fd53958d3b0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-23 11:55:59 +00:00
hjk
68027ec41b QmlJS: Avoid deprecation warnings
Change-Id: Ifeaf0599f0507a0a10dd9683081a48d3232b414a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-05 12:54:19 +00:00
hjk
6a58666f44 More Utils::toSet/toList
... and unrelated cosmetic changes.

Change-Id: I591b17fd5289831e701b683f8fb47816efd1fa67
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-07-04 12:28:38 +00:00
hjk
36fcd52136 Utils: Add toSet/toList functions
As replacement for functionality that's being deprecated
in Qt but still useful or needed, or that cannot easily be handled
without resorting to #if QT_VERSION checks in user code.

Change-Id: Id3575a54ff944bf0e89d452d13944fcaee270208
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-07-02 12:48:54 +00:00
Thomas Hartmann
a540216549 QmlJS: Add "Array" to global functions
This fixes a false positive error message.

Task-number: QTCREATORBUG-22599
Change-Id: I54104857982873baaa092ad936586c3d245ce720
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-21 13:34:10 +00:00
Tim Jenssen
a3fb2051ad QmlJS: Fix code re-formatter for property
Fixes: QTCREATORBUG-22515
Change-Id: Ie560f8cf9e43081a37f2210ea2f6df741f14ced6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-06-20 08:19:10 +00:00
Tim Jenssen
44f1d18307 qmljs: sync parser with current 5.12 state
Task-number: QTCREATORBUG-22474
Change-Id: I86d7ee7cc28e95f814f2ba36551a36c8a59e1a79
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-06-20 08:18:53 +00:00
Uladzislau Paulovich
798879c797 qml | Fix pragma reformatting
After this change reformatter test (tests/auto/qml/reformatter/tst_reformatter)
starts to work correctly for singleton example (qmlsingleton.qml)
NOTE: Just cherry-picking change from master branch.

Change-Id: Ia0561aa8b920fc5c62a8dea93341721f37b68dd8
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
(cherry picked from commit 749eaaad81)
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-12 13:35:11 +00:00
Uladzislau Paulovich
70fecd518e qml | Fix functions and loops formatting
Bugs fixed in this change:

1. Incorrect function arguments formatting:
function(a, b, c) -> function(abc)
2. Incorrect foreach loop formatting:
for (var a in b) -> for (a in b)
3. Incorrect for loop formatting:
for (var a = 1; a < 100; ++a) -> for(; a < 100; ++a)

Change-Id: I8afef6e5f2485a2225931b7ecb7210506e06dc6c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-11 15:23:42 +00:00
Uladzislau Paulovich
8f7cbd6416 qml | Fix trailing comments formatting
Change-Id: I0461c4616cff15b7010e3844850d32e9f07469ea
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-11 15:23:17 +00:00
Uladzislau Paulovich
8dc16d55c2 qml | Fix empty objects formatting
Change-Id: I760f3420fef9ca83c2a28586575a72d580658d0f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-11 15:22:36 +00:00
Uladzislau Paulovich
ab87bdf4ea qml | Add support for enums formatting
Change-Id: Id7e435a7c556c7fc469b9055ca772a7850e16676
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-06-11 10:04:29 +00:00
Uladzislau Paulovich
69cd74f25d qml | Fix let/const variables formatting
Change-Id: Ia2a4ee482e84a6c24abea7ea6fe05925eee11d1d
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-06-11 10:03:57 +00:00
hjk
473a741c9f Utils: Rename FileName to FilePath
More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.

Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-05-28 12:23:26 +00:00
Orgad Shaneh
1e138fbe10 Remove excess blank lines after namespace
Change-Id: I4e4f83017f2bfc2cf842c4c971ed4b05e0447e6a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-27 06:50:16 +00:00
Cristian Adam
d855b84c5d Qt Creator CMake port
Based on Tobias Hunger's work from a few months ago.

The CMake configuration needs libclang and Qt paths specified as
CMAKE_PREFIX_PATH.

Auto tests are run with "ctest". At the moment the pass rate is 87%.

Change-Id: Iba98e39bf22077d52706dce6c85986be67a6eab0
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-17 13:33:28 +00:00
Christian Stenger
06d8df7ee6 QmlJS: Fix wrong warning
Variable declarations made with let or const need
to get evaluated on block level base.

Task-number: QTCREATORBUG-22054
Change-Id: Ia1d353be61c2d9532bc54257c15d00fb33ea156c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-05-16 05:01:15 +00:00
Orgad Shaneh
c8f0d3f008 QmlJS: Fix inconsistent copy ctor/operator=
Detected by GCC9.

Change-Id: Ieab7c13c6d66b99cc679c3ac5d4a3da67bcd7767
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-05-09 14:13:16 +00:00
Orgad Shaneh
39ba01da71 Merge remote-tracking branch 'origin/4.9'
Change-Id: I7d1912cd5c4d824fd40d3454c5f1bb796f2c21d8
2019-04-07 23:13:17 +03:00
Thomas Hartmann
b7753ac86a QmlJS: Fix code re-formatter for arrays
Task-number: QTCREATORBUG-22026
Change-Id: Iae9e53b149ebfbbe904fc1aef8408b1f6f852a13
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-04-03 13:53:09 +00:00
Tim Jenssen
1d29c46662 QmlJS: re-enable revision parsing
Looks like it was unintentional disabled
when the QML parser was updated.

Task-number: QTCREATORBUG-22057
Change-Id: I670882b78e0e421447e7f7b463c51f3568e7c2a2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-04-03 09:48:44 +00:00
Eike Ziller
c53ccceff1 Merge remote-tracking branch 'origin/4.9'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/plugins/debugger/debuggerkitinformation.cpp
	src/plugins/languageclient/languageclientmanager.cpp
	src/plugins/plugins.pro
	src/plugins/projectexplorer/kit.cpp
	src/plugins/projectexplorer/kitmanager.cpp

Change-Id: I66fb941202991f35f7d7761430b21e42dfc678a8
2019-03-14 15:51:15 +01:00
Eike Ziller
ce888b45ef Merge remote-tracking branch 'origin/4.8' into 4.9
Conflicts:
	src/libs/qmljs/qmljscheck.cpp

Change-Id: Ib3d97e8e59463185e2fa4663ae594c1e29b4b337
2019-03-11 11:38:03 +01:00
Kai Koehne
37eb282313 qmljs: Fix variable name
Change-Id: I8ea8d18e0471071f3a7a22760c041ecf77dbbe8c
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-03-07 19:14:28 +00:00
Christian Kandeler
2f7f1aaec3 Move qrc parser from QmlJS to Utils
We'd like to make use of it in a more general context, and it's not
directly related to QML.

Change-Id: I025ec67829f85544667684cdb8c99d1ee4c18197
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-02-13 11:48:27 +00:00
Friedemann Kleint
963dc84cc5 Fix some deprecation warnings in basic plugins
Fix warnings apppearing in 5.13, for example:
warning: ‘QDir& QDir::operator=(const QString&)’ is deprecated: Use QDir::setPath() instead [-Wdeprecated-declarations]
...
warning: ‘static QRgb QColorDialog::getRgba(QRgb, bool*, QWidget*)’ is deprecated: Use getColor() [-Wdeprecated-declarations]
warning: ‘Qt::DropAction QDrag::start(Qt::DropActions)’ is deprecated: Use QDrag::exec() instead [-Wdeprecated-declarations]
warning: ‘void QProcess::finished(int)’ is deprecated: Use QProcess::finished(int, QProcess::ExitStatus) instead [-Wdeprecated-declarations]
...
warning: ‘const QRect QDesktopWidget::availableGeometry(int) const’ is deprecated: Use QGuiApplication::screens() [-Wdeprecated-declarations]
...
warning: ‘const QBrush& QPalette::background() const’ is deprecated: Use QPalette::window() instead [-Wdeprecated-declarations]
...
warning: ‘const QBrush& QPalette::foreground() const’ is deprecated: Use QPalette::windowText() instead [-Wdeprecated-declarations]
...
warning: ‘void QTextOption::setTabStop(qreal)’ is deprecated [-Wdeprecated-declarations]
warning: ‘void QList<T>::swap(int, int) [with T = ProjectExplorer::BuildStep*]’ is deprecated: Use QList<T>::swapItemsAt() [-Wdeprecated-declarations]
warning: ‘void QProcess::setReadChannelMode(QProcess::ProcessChannelMode)’ is deprecated: Use QProcess::setProcessChannelMode() instead [-Wdeprecated-declarations]
...
warning: ‘QString QFileInfo::readLink() const’ is deprecated: Use QFileInfo::symLinkTarget() instead [-Wdeprecated-declarations]

Change-Id: I1d893d42d372245892f2de8406f52dbe7bbd552a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-02-11 09:32:06 +00:00
Tim Jenssen
87746b5906 QmlJS: improve code
- no behavior change

Change-Id: I61e515876be768309e5647261ffbe2732de423b9
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-01-23 10:06:36 +00:00
Tim Jenssen
372e239d2d QmlJS: remove qtquick1 leftovers
QT_INSTALL_IMPORTS and the used ProjectInfo.qtImportsPath variable
were only used for QtQuick1.

Change-Id: I34da0cfc77effa84f3a7578e7f91fed0768a9bf4
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-01-18 13:16:30 +00:00
Tim Jenssen
d4beced19f QmlJS: modernize the code a bit
- use nullptr instead of 0
 - remove all QLatin*
 - use initializer for QStringLists

Change-Id: I62db000e2644d1d2a2c1246e70e829e37d36f2f3
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-01-18 12:20:37 +00:00
Thomas Hartmann
b6868f2316 Fix warning
Change-Id: I646cf0d1c1e7dec7f44baf50a586ff22044cb7f0
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-01-18 09:21:57 +00:00
Orgad Shaneh
d1a0479c98 QmlJS: Fix unused variable warning
By using it.

Amends commit 66dc5e9713.

Change-Id: I21bfb7a2d83987f095bfd02b0cc20931e0feb68b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-01-18 08:38:11 +00:00
Christian Kandeler
e96509d648 QmlJS: Fix qbs build
Amends b466e3f0be.

Change-Id: I812379c54a818ade6f2372e2e76e3157949f956b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-01-18 08:09:02 +00:00
Tim Jenssen
b466e3f0be QmlJS: remove not used DescribeValueVisitor
Change-Id: Ieedd134a3c197ac6bc3a2dd0a6b53032a4d861cc
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-01-17 16:14:35 +00:00
Tim Jenssen
0157e009be QmlJS: fix nullptr warnings
Change-Id: Id546a9a5c065ae8b0cc9c251051b2fd36e34803a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-01-17 16:14:21 +00:00
Eike Ziller
413c5c3b8a Merge remote-tracking branch 'origin/4.8'
Change-Id: I400217ba1c8a531e0450c3012a07db3fc93638cf
2019-01-17 12:04:35 +01:00