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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Change-Id: I3608bca6541614bb55e67d35c87334957cd02761
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
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>
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>
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>
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>
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>
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>
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>
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>
Initialize them only once and only show/hide widgets later on.
Change-Id: I5ebad504709e34aeb6ce5bf1ead7d8e2ee0b2056
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
- '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>