Commit Graph

147 Commits

Author SHA1 Message Date
Eike Ziller
c1f90aeca2 ICore: Change some path API to use FilePath
Change-Id: Id841d6177206a021c9e606ce560b47d1ae6e52b9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2021-04-26 08:03:47 +00:00
Christian Kandeler
b88b73d9c1 ClangFormat: Sprinkle some more magic pixie dust
Apparently, we can prevent clang-format from removing line breaks by
adding an empty comment at the end of the line.

Change-Id: Ia78ecb9e7351d059c544cbda11d33af5734e2218
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-12 09:28:55 +00:00
Christian Stenger
aa96b07853 ClangFormat: Fix compile
Amends 14eb5b382c.

Change-Id: I9bbd34d1d90d2cf27edd74037be5a3a061691456
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-03-11 12:11:18 +00:00
Björn Schäpers
14eb5b382c clangformat: Fix build with LLVM 13
Change-Id: I5eaad17a6f240aa1e3f246492b69f093b4f59fee
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-03-11 07:50:30 +00:00
Eike Ziller
91db1b51ab Fix compilation by not using optional from std
Amends 874029809f

Change-Id: I7eee4700a67b429fa2012389c39a0c965443a065
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2021-02-02 11:03:45 +00:00
Jarek Kobus
874029809f Compile fix: use Utils::optional instead of std::optional
Amends d9cd74f06d

Change-Id: Ic4a971fa2fb4659784afdc19f5b8db6a378f611e
Reviewed-by: hjk <hjk@qt.io>
2021-02-02 07:34:46 +00:00
Björn Schäpers
25e7b2c5d6 clangformat: Fix build with LLVM 12
Change-Id: I493afce92b16291cf66fc510129f2154a7162847
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-02-01 21:04:47 +00:00
Björn Schäpers
d9cd74f06d Texteditor: Add ability to get margin from indenter
And implement it in the clang-format plugin to use the ColumnLimit from
the style. This would be quite useful if you're working on different
projects with a different ColumnLimit. This way you get an visual
representation and do not only have to rely on clang-format.

Change-Id: Ib0258e3fba6f45f0f46ce612f806527a47868ad9
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-01-29 17:03:07 +00:00
Tim Jenssen
b801a9339d Merge remote-tracking branch 'origin/4.14'
Change-Id: I70504e096be620434f38cd990c593950da8b24ba
2021-01-07 14:23:46 +00:00
Christian Stenger
41982acec3 ClangFormat: Fix missing return value warning
Amends f7d8f8b704.

Change-Id: I3e509769a8ef206f295b3b5d8db4448375e62cbb
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-01-07 10:08:50 +00:00
Eike Ziller
9b4e2aa71d cmake build: Avoid other LLVM libraries interfering with ClangFormat plugin
Make the static LLVM in ClangFormat really internal to the ClangFormat
plugin on Linux by not exporting symbols from it.

This was missed during the conversion of the qmake project to CMake.

Fixes: QTCREATORBUG-24998
Change-Id: If483f3c45d5cf7f63e7b8dde58efab6371414bdd
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-01-06 14:15:48 +00:00
Christian Kandeler
f7d8f8b704 ClangFormat: Do not refuse to build against unpatched clang
The plugin builds just fine and should be mostly (fully?) functional with
upstream clang, so it seems excessive to force-disable it entirely for
everybody not using our custom patch.

Change-Id: Id6a179c20325290a8205218c9514a16c1adc9076
Reviewed-by: hjk <hjk@qt.io>
2021-01-06 11:00:02 +00:00
Eike Ziller
f74b317598 Fix compilation of ClangFormat plugin against LLVM with clang-cpp
The ClangFormat plugin needs to link against clang-cpp in that
case as well.

Fixes: QTCREATORBUG-25138
Change-Id: I84b1784b291d8944a9dee66ec14db32ad72ff8b5
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-12-18 15:29:45 +00:00
Christian Stenger
6b62a99a8a cmake: Fix building debug with release libclang
Parts of QC cannot be linked against a release build of clangTooling
libs and vice versa when building on Windows.
Check whether the provided libs match the current build mode and
disable respective parts if necessary.
Re-use this information to decide whether unittest should be build
or not.

Change-Id: Ibc2aab0d7886e78ebbf8f15a43152efad49f1eff
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-23 11:07:49 +00:00
Jarek Kobus
ccf1d17bfe Silence the warning about missing initializer for member
Silence the following warning:

warning: missing initializer for member
‘clang::tooling::IncludeStyle::IncludeCategory::SortPriority’
[-Wmissing-field-initializers]
  118 |     style.IncludeStyle.IncludeCategories = {{"^<Q.*", 200}};

According to the docs of IncludeCategories, the SortPriority field
is optional, and when not set its value is set to the value of
Priority field. So in order to fix the warning we repeat the same
value for SortPriority field.

In addition we ensure that we require at least clang version 10.0.0.

Change-Id: I8baae7a33ad1a7a7f3afe66779f482b29a7396b4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-13 12:11:41 +00:00
hjk
086a4be734 More Qt6 porting
Change-Id: I96bef1772149eb718e250563c65bf5da7259d9d6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-22 15:06:54 +00:00
Christian Kandeler
31f427a3a6 qbs build: Fix linking ClangFormat on Windows
Apparently, the MSVC linker gets confused if an input library
("clangFormat.lib") has the (almost) same file name as an output library
("ClangFormat.lib"), even though the latter is specified with an
absolute path.

Change-Id: Ia76e60fd10e16ce8daff880f4005d40d7f20d08c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-09 09:31:30 +00:00
hjk
e1c88116b3 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
(cherry picked from commit 430a33dcd9)
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-06 11:15:18 +00:00
Tim Jenssen
b8cd87dea0 Merge remote-tracking branch 'origin/qds-1.59' into 4.13
Conflicts:
	src/plugins/clangformat/clangformatplugin.cpp
	src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp
	src/plugins/qmldesigner/qmldesigner.qbs

Change-Id: Ie4a0beeb9fd32ac9683f4e8769988a9c3f3e369a
2020-06-26 16:51:22 +02:00
Marco Bubke
9a0acda2c9 ClangFormat: Fix warning
Change-Id: Ifdf4bfb7662017b2ba2e28074808919f7a726a8a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-06-15 09:46:36 +00:00
Christian Kandeler
eaea03ba42 ClangFormat: Adapt to clang 11 API changes
Change-Id: Id5d977e56017a80138f2c033e145b67446eff3ab
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-04 10:23:19 +00:00
Cristian Adam
0366a8aadb ClangFormat: Compile fix for MSVC
When vanilla LLVM/Clang is used the #warning statement
causes actually an error on MSVC.

Change-Id: Id3f36efc1b21d48e52a9c44036b99a5b4d9a0d5c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-03-24 09:50:45 +00:00
Orgad Shaneh
44023c8f43 Clang: Fix build with Clang/LLVM 10
Change-Id: I740286c9dcfd325b1c31ab863fb5c91bf9c6ec70
Reviewed-by: hjk <hjk@qt.io>
2020-02-20 17:30:27 +00:00
hjk
299d34d547 Remove apparently unneeded QtPlugin includes
Change-Id: I511c0318a72dbf2a92e4749dee02eabfc9826139
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-12 16:03:37 +00:00
hjk
a44bfdd779 Provide an empty default IPlugin::extensionsInitialized()
And remove all empy re-implementations.

Change-Id: I19f0b4e55c042c96693ecb89766f97f0a97b54ae
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-07 10:21:34 +00:00
David Schulz
4070d6a289 Editor: add formatter support
Change-Id: I65590273b2541e08a39970cd9bb4739a5634b2f7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-22 06:00:11 +00:00
David Schulz
c56e58fab4 Utils: move text replacement helper to Utils::Text
Change-Id: I82b3304f91d575369e74d5f7404c189e14ba4730
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-09 08:23:07 +00:00
David Schulz
372014b843 Editor: Rename format -> autoIndent
Renaming the auto indent function triggered by Ctrl+I to make room
for a real format action.

Change-Id: If5731353311030d66a20f1093a7fdd300703ebbc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-09 07:41:05 +00:00
Nikolai Kosjar
6ec8017bc6 Clang: Build against LLVM/Clang 9
Change-Id: I3608bca6541614bb55e67d35c87334957cd02761
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
2019-10-02 13:20:13 +00:00
Eike Ziller
097892cc10 Merge remote-tracking branch 'origin/4.10'
Change-Id: I887fbf79ebfdf2af2719cb0d8aa56ab3dcb08fab
2019-09-17 16:20:52 +02:00
Lisandro Damián Nicanor Pérez Meyer
1ff337089a ClangFormat: improve the message the users see
In this way it's made clear that the plugin requires a patched version of Clang.

Task-number: QTCREATORBUG-22923
Change-Id: Ifefd5ab1a3dc82b85e553c5e1fedffb72919dd17
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-09-12 11:44:22 +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
Orgad Shaneh
2aca0c1b28 Fix MSVC warnings
* Missing `this` captures
* Implicit size_t -> int conversion
* Unused argument
* Suppress warnings in clang headers

Change-Id: I7083ce6ab22ee22ecc1258539e77c790acc78df1
Reviewed-by: hjk <hjk@qt.io>
2019-09-11 15:20:34 +00:00
Christian Stenger
39aa325245 Fix compile after FileName drop
Amends 44acfc0702.

Change-Id: I1bddb0642e181b0a02d4ecba7ff1ae282218338f
Reviewed-by: hjk <hjk@qt.io>
2019-07-24 09:47:26 +00:00
Tim Jenssen
333b33edbe Merge remote-tracking branch 'origin/4.10'
Change-Id: Iaf27911e4e9fb762c1a24c84c458462bafe95728
2019-07-12 15:53:56 +02:00
Christian Stenger
49525c578c Unify disabling build of llvm related plugins or test on Windows
If libclang's build mode mismatches the current build mode
of Qt Creator some plugins are automatically disabled.
Do the same for the unittest and unify the way to do this.

Change-Id: Ib4cd6494ed63cb89ed8d99b3c0ba23a19572fc9b
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-07-05 12:46:27 +00:00
hjk
c77cef5706 Avoid more deprecation warnings
Change-Id: Icc7bb7a4ccf7fc9f89f6f668c194ccd440e5231c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-05 07:49:48 +00:00
Marco Bubke
4bae5de36b Enable macro editing for the Clang indexer
Refactor much of the code from Environment* classes to NameValue* classes
to share it with the preprocessor macro settings.

Change-Id: Ica4ee817aa338230c422b30d91240d266248d226
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-13 16:51:48 +00:00
Marco Bubke
4d3bb1c858 ClangFormat: Provide an error message for Clang Format
If an patch is not applied to libFormat in Clang we do nothing. It would
be better to provide feedback if the plugin is loaded.

Change-Id: Iea9900cf7683b521497cc6403638498a9ca5e2e9
Fixes: QTCREATORBUG-22404
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-11 11:25:21 +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
Eike Ziller
e0b0a08e50 ExtensionSystem: Move away from QList
Qt 6 API will move away from it.
Use QVector for API and some std container for internal things.

Change-Id: Iff14d48a47d5ac52ade875d9c8c84ad8a4f577d8
Reviewed-by: hjk <hjk@qt.io>
2019-05-27 14:21:00 +00:00
hjk
dc9cbd8f57 More FileName::appendPath() -> .pathAppended() changes
Change-Id: Ibc7eb4eb3ffb64658e441aafa240b1ddc0061930
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-27 09:10:19 +00:00
hjk
0595e67c82 More FileName::pathAppended()
Change-Id: Ie20ec34ea9712b3ec49e6233b23cef84c2019f03
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-20 14:37:13 +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
hjk
1e9636ab8a Some more FileName::appendPath() -> pathAppended() changes
Change-Id: Ie494f7ae8a96d97c9497b3ef38d774d2cf787b7f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-17 07:46:56 +00:00
Ivan Donchevskii
1ae98c3595 ClangFormat: Add the interaction with Beautifier
Do not allow ClangFormat plugin to format on file save
when the Beautifier has the same checkbox selected.

Change-Id: I655d77a888cc444ccb02c4e72f11a93b3ab9bbd5
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-04-29 12:32:31 +00:00
Ivan Donchevskii
c2ab89cc12 ClangFormat: Do not reinitialize the configuration and preview
Initialize them only once and only show/hide widgets later on.

Change-Id: I5ebad504709e34aeb6ce5bf1ead7d8e2ee0b2056
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-04-29 11:22:12 +00:00
Christian Stenger
75112c4b59 ClangFormat: Fix compile with older gcc and MSVC
Amends 2d8ce380c9.

Change-Id: I44e7079ae40550e4d80a1717d4803d6864af99eb
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-04-29 06:08:47 +00:00
Ivan Donchevskii
2d8ce380c9 ClangFormat: Fix UI issues
- 'Default' values remain so after save/load
 - the language is fixed to C++
 - the project settings are shown correctly
 - fix parsing configuration file
 - do not trigger slots when we fill the table

Change-Id: I91b477721b5084803324cd38d0cfeb9d5650dd9f
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-04-26 07:55:00 +00:00
Ivan Donchevskii
fb52d9e419 ClangFormat: Make UI not translatable
Change-Id: I69f8763f6337e8372e7bd24d82ea4b5f3f9fb7fe
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-04-25 10:55:00 +00:00