Commit Graph

51 Commits

Author SHA1 Message Date
Lucie Gérard
a7956df3ca Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.

Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-08-26 12:27:18 +00:00
Alessandro Portale
b783d1bd2a qmljs: Fix linker issue with Qbs build
This adds Utils as dependency of the QML reformatter autotest.

Amends: fd89043de2

Change-Id: I713289b1221ea70b37ddda8073c61f4ec18850bd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-07-18 10:27:59 +00:00
Fawzi Mohamed
fd89043de2 qmljs: (QString -> Utils::FilePath)++
convert more QString containing paths to Utils::FilePath

Change-Id: I1219d7d147993e48cfa641dc9bea72ab38c90f51
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-07-13 17:13:23 +00:00
Eike Ziller
737877984d Use QTEST_GUILESS_MAIN where applicable
instead of QTEST_MAIN. Reduces the initialization that is done by the Qt
test applications, and can also reduce interference with normal OS
operations like the current window loosing focus.

Change-Id: If88f289281aa1c8703ac7d4dbe0799d067c16588
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-06-13 06:06:44 +00:00
Fawzi Mohamed
556ec7c20e qmljsreformatter: support nullish coalescing
qmljsscanner did interpret ?? and ?. as a single ? and thus as the
start of a ternary operator, breaking reformatting.

Fixes: QTCREATORBUG-27344
Change-Id: I0429d20aed0196743f1c20e6ceac11351d5a7a3b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-05-06 13:23:34 +00:00
Eike Ziller
9d8a419d10 Remove qmake build files
Removes qmake as a build system for building Qt Creator itself.
Keep them for some tests that are not completely moved to CMake yet.

Change-Id: I846c6ef65626b6dfae6375fdc85d00677aa8c2fb
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-01-20 12:18:15 +00:00
Fawzi Mohamed
9e4e44d180 qmljs: preserve default arguments when reformatting QML
Fixes: QTCREATORBUG-23009
Change-Id: I9949fe26a91a063c4804fddcca4e26d14bc5cd61
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-03-02 08:29:42 +00:00
Fawzi Mohamed
0ff75a721f qmljs: reformat inline components
Fixes: QTCREATORBUG-25381
Change-Id: I472105cd6436d4d0ae7369880c332b8f4a2321ad
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-03-02 08:29:29 +00:00
Fawzi Mohamed
c57f6a703b qmljs: correctly handle required and readonly properties
* correct indentation after required property QTCREATORBUG-24144
* handle required <name> statement
* allow default readoly required reordering
* more permissive than the actual parser (which then will show errors
for invalid sequences)
* backport form QmlDom

Fixes: QTCREATORBUG-24144
Change-Id: I19166ca65d108d533a1ed3748c09e35bcfdbc56d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-03-02 08:29:13 +00:00
Fawzi Mohamed
bd05384765 qmljs: handle string templates in scanner
* add (multiline) template string support
  templates can be nested, which means that the scanner/lexer cannot
  be a simple state machine anymore, but should have a stack to store
  the state (the number of open braces in the current template
  string).
  The lexer stare is currently stored in an int, so we abuse that and
  store a the number of open braces (maximum 0x7f = 127) for at most 5
  nested templates in the int after the flags for the multiline
  comments and strings.
* improve representation of delimiters (==, <=, ||,... not split in
separate delimiters)
* (QmlDom backport)

Change-Id: I2b4d23b65febedef29a748f4c5f377fde27bd7fd
Fixes: QTCREATORBUG-22766
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-02-25 08:37:12 +00:00
Fawzi Mohamed
c0f9f29097 qmljs: correctly reformat js spread operator (...)
Fixes: QTCREATORBUG-23402
Change-Id: I6b4bd0846dac67116711b7ed046bd52d137b7674
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-02-23 12:38:55 +00:00
Fawzi Mohamed
b8d99af6fd qmljs: fix arrow function reformatting
This is mainly just making sure that token that are "empty" are really
empty (to avoid writing them out in the reformatter), but still
contain the correct location (for error messages using for example
firstSourceLocation()).

Introduce a SourceLocation::zeroLength() method to make this change
simpler to do.

QtCreator does not run qlalr automatically, so it is "polluted" by the
updated generated files.

Fixes: QTCREATORBUG-25198
Change-Id: I0ab19fb380ee3d9a7d9e05d104fe313468f52703
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-02-03 09:52:40 +00:00
Leander Schulten
771e269a3b QmlJs: Fix reformatter for template strings
Change-Id: Ie0b7909d634d1e2e735377b053f7a1c1c2518f78
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
2020-12-17 12:31:48 +00:00
Leander Schulten
7e526d9b05 QmlJs: Fix reformatter for arrow functions
Fixes: QTCREATORBUG-23019
Change-Id: I6c6bee7092cb12f225ad744df2b3834dfd4bbc8f
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
2020-12-17 12:17:20 +00:00
Cristian Adam
08202b9110 CMake Build: rename target qmljs to QmlJS
This is in sync with what qmake and qbs project have.

Change-Id: Id82bbd933a8331c3e2032e5068323c183b2a1814
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-01-16 17:32:24 +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
Cristian Adam
8ae9cfe39d CMake build: Add "Devel" package
The "Devel" package will contain headers, libraries, documentation
needed by the 3rd parties to build Qt Creator plugins.

Fixes: QTCREATORBUG-22514
Change-Id: If54929f823982b921b98a63ff6085d53618a3a49
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-07-25 14:06:46 +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
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
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
217636886c Tests: Fix QmlJs auto tests
Change-Id: Iba5e5e786e8241db120359f95850207021d61c49
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-11-27 08:13:27 +00:00
Ulf Hermann
2b582ed455 QmlJS: Fix reformatter test
Apparently the reformatting truncates any sequence of multiple empty
lines into one. That seems to be by design. Therefore, remove one of the
two adjacent empty lines from commments.qml. Also, don't invert the
actual and expected values in the test code.

Change-Id: Id87c6fa0b2c7a03884d42d109b7d55f5040a927a
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-09-12 08:09:51 +00:00
Marco Benelli
a874cf581d Qml/js reformatter: use quotes in objects literals
The reformatter used to remove the quotes that wraps the property name
in object literals.  This causes problem when the name is not a
valid identifier, resulting in that valid code become invalid after
reformatting.
This patch forces wrapping of property's name in quotes: in this way,
the reformatted code is consistent and it never get invalidated.

However the resulting formatted code is not consisted with the one
formatted by previous versions.

Task-number: QTCREATORBUG-17455
Change-Id: I1e361102819055de210d6c81020f204c08aaa253
Reviewed-by: Markus Maier <markus.maier.sw@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-04-05 06:50:03 +00:00
Marco Benelli
d0823cd5e2 QmlJs: fix reformatting of 'signal' statements
Reformatting 'signal' preceded by comments used to bring to a bad
formatted file.

Task-number: QTCREATORBUG-17886
Change-Id: I02e093a4721cd1e75d45b498ea768251aee88ea4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-04-07 05:32:20 +00:00
Marco Benelli
96c7d6f8f4 qmljs editor: test for reformatter
Add test cases for multiline comments.

Change-Id: I3e02560791b331c7e1892e9c0bb50cd64241a2bb
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2017-01-31 09:55:50 +00:00
Victor Heng
11ef0db2fd QmlJS: Keep pragma directive when reformatting QML files
Change-Id: I1f11e95565a90e4fc7b908c03d49f6abbd37b8be
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2016-05-19 09:55:11 +00:00
Sune Vuorela
55bfa4401f Keep readonly qualifier
Let's not reformat readonly qualifiers away. They are likely there for a
reason.

Task-number: QTCREATORBUG-15745
Change-Id: Iaab7a8edb47fccd0cf36759750500a93be45bbc2
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Marco Benelli <marco.benelli@theqtcompany.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2016-04-13 07:59:44 +00:00
Tobias Hunger
954569387c Update License according to agreement with Free Qt Foundation
* Update license information in tests directory

Change-Id: I311441dd37d053ca3175e44b284258e232ee93e0
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 16:01:06 +00:00
Marco Benelli
30ef3a3afc QmlJs: added a new test case in reformatter test.
Change-Id: I4f6c78cd9d2a2e407ef26e498418617efeee5bba
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-11-05 13:30:15 +00:00
Christian Kandeler
ed30c612f4 qbs build: Remove workarounds for fixed qbs bug.
That was most likely QBS-755.

Change-Id: I43d0316113fcca79554bfee9eee9b8bd706fce07
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-08-28 08:13:11 +00:00
Friedemann Kleint
1b9be30371 Clean headers in lib qmljs and plugins qmljstools, qmljseditor.
Change-Id: I3256db8f4d42b6326d986d754b45e6c6c2030839
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-03-05 08:17:10 +00:00
Eike Ziller
3c85058694 Update License
Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2015-01-16 12:37:56 +01:00
Christian Kandeler
9d677e3302 qbs build: Remove unneeded import statements.
The respective items are available without it.

Change-Id: Idc840cf08e7bec84f561c096afe8de25b1fb8468
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-11-10 15:45:14 +01:00
Eike Ziller
8295b503be License update
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-09 11:41:44 +02:00
Christian Kandeler
5c9f175133 qbs build: Make the autotest template available as an import.
Just like for QtcPlugin, QtcLibrary etc.

Change-Id: I395f5863f31abba589864be3ad41ad7fc893787f
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-05-08 11:01:44 +02:00
Fawzi Mohamed
a8ea0a0736 qmljs: generalize language treatement
* better support qbs and similar non QtQuick qml languages
* begin to clean and migrate things from ModelManager to
  ModelManagerInterface

Change-Id: Ifa39dc1e4c568e9e21307f4913dcb5989e80420f
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-01-28 15:01:00 +01:00
Eike Ziller
236ea9efb9 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	share/qtcreator/debugger/dumper.cpp
	share/qtcreator/debugger/dumper_p.h
	share/qtcreator/debugger/test/main.cpp
	src/plugins/debugger/gdb/classicgdbengine.cpp
	src/plugins/debugger/gdb/pythongdbengine.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.h
	src/plugins/debugger/lldblib/guest/main.cpp
	src/plugins/debugger/lldblib/ipcengineguest.cpp
	src/plugins/debugger/lldblib/ipcengineguest.h
	src/plugins/debugger/lldblib/ipcenginehost.cpp
	src/plugins/debugger/lldblib/ipcenginehost.h
	src/plugins/debugger/lldblib/lldbenginehost.cpp
	src/plugins/debugger/lldblib/lldboptionspage.cpp
	src/plugins/qbsprojectmanager/qbsstep.cpp
	src/plugins/qbsprojectmanager/qbsstep.h
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h
	src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp
	src/plugins/qnx/blackberrycheckdevmodestep.cpp
	src/plugins/qtsupport/debugginghelper.cpp

Change-Id: Ie9fd0a885fb6264a6a8a72daee071b75bcbd2e9d
2014-01-08 11:01:06 +01:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
Christian Stenger
b52fca40ba Tests: Re-enable qml auto tests
Change-Id: I424caba6b79423d1bf680fab3bd0ec089c564ace
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-06 13:06:19 +01:00
Fawzi Mohamed
30d0eb6325 qmljs: fixing tests
Change-Id: I8f2eaa64f3cb923753234de76f3491d4daa034fa
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-22 21:22:34 +01:00
Christian Kandeler
698144e32e Add qbs project files for autotests.
Note: Since not all autotests are able to run from an installed location,
we need to be able to start them from the build directory, which
in turn forces us to set a destination directory for libraries and plugins,
so they will be found at run-time.

Change-Id: Idcf7e1333dfa6e9dbf745391b78c035f842ccc5a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-09 12:16:09 +02:00
Robert Loehning
298531e370 Incremented year in copyright info
Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-01-29 16:27:03 +01:00
hjk
386ca7c8dd Adjust license headers
Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2012-10-05 17:12:56 +02:00
Christian Kamm
ab64c1aef3 QmlJS indenter: Improve indentation of function expressions.
As discussed with Tor Arne and Fawzi in
http://codereview.qt-project.org/#change,18080

Change-Id: Ia0482d2ed3ddd61fa002e2c76b948301af52a795
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
2012-03-06 17:26:46 +01:00
hjk
2931a499e6 Long live the king!
Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-26 19:55:36 +01:00
Christian Kamm
a24c49720a QmlJS reformatter: Fix object literals.
The comma token seems to be invalid.

Change-Id: I859fa58ba0ba1e975e0cf1105c2b53aac848fb0d
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2011-11-30 10:11:28 +01:00