Baiyi27 wrote: I found a problem. In my project, I used `vcpkg` to manage the qt5 library. ```c++ #include "qapplication.h" #include "qpushbutton.h" #include "qstring.h" #include "fmt/format.h"
class MainWindow: public QWidget { public: MainWindow(QWidget *parent= nullptr) : QWidget(parent) { auto testMsg= fmt::format("This is {1} test: {0},{1}\n", "Hello", "Qt5"); pButton_ = new QPushButton(QString::fromStdString(testMsg), this); resize(1000, 800); } protected: void resizeEvent(QResizeEvent *event) override { int buttonWidth = width() / 4; int buttonHeight= height() / 4; pButton_->setGeometry((width() - buttonWidth) / 2, (height() - buttonHeight) / 2, buttonWidth, buttonHeight); QWidget::resizeEvent(event); } private: QPushButton *pButton_ { nullptr }; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow mainWindow; mainWindow.show(); return app.exec(); } ``` This is my `compile_commands.json` file configuration content: ```json [{ "directory": "D:/CXXProject/PlantSmash/build", "command": "D:\\Tools\\MSYS2\\mingw64\\bin\\c++.exe -DFMT_SHARED -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -isystem D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include/qt5 -isystem D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include/qt5/QtCore -isystem D:/Tools/Vcpkg/installed/x64-mingw-dynamic/tools/qt5/mkspecs/win32-g++ -isystem D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include/qt5/QtWidgets -isystem D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include/qt5/QtGui -isystem D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include -g -fdiagnostics-color=always -o tests\\Framework\\CMakeFiles\\Framework.dir\\Qt5Test.cc.obj -c D:\\CXXProject\\tests\\Framework\\Qt5Test.cc", "file": "D:\\CXXProject\\tests\\Framework\\Qt5Test.cc", "output": "tests\\Framework\\CMakeFiles\\Framework.dir\\Qt5Test.cc.obj" }] ``` Use the command (clang-tidy-19) : `clang-tidy -p .\build\ .\tests\Framework\Qt5Test.cc --header-filter='.*' --exclude-header-filter='.*\-q.*\.h'` This should correctly ignore the `q*.h` header files, and the output will not include diagnostic information about qt header files Here is the output: ```diff D:\CXXProject\tests\Framework\Qt5Test.cc:17:26: warning: no header providing "QWidget" is directly included [misc-include-cleaner] 16 | 17 | class MainWindow: public QWidget { | ^ D:\CXXProject\tests\Framework\Qt5Test.cc:19:5: warning: single-argument constructors must be marked explicit to avoid unintentional implicit conversions [google-explicit-constructor] 19 | MainWindow(QWidget *parent= nullptr) | ^ | explicit D:\CXXProject\tests\Framework\Qt5Test.cc:19:25: warning: invalid case style for pointer parameter 'parent' [readability-identifier-naming] 19 | MainWindow(QWidget *parent= nullptr) | ^~~~~~ | pArent 20 | : QWidget(parent) | ~~~~~~ | pArent D:\CXXProject\tests\Framework\Qt5Test.cc:24:16: warning: 1000 is a magic number; consider replacing it with a named constant [readability-magic-numbers] 24 | resize(1000, 800); | ^ D:\CXXProject\tests\Framework\Qt5Test.cc:24:22: warning: 800 is a magic number; consider replacing it with a named constant [readability-magic-numbers] 24 | resize(1000, 800); | ^ D:\CXXProject\tests\Framework\Qt5Test.cc:28:22: warning: no header providing "QResizeEvent" is directly included [misc-include-cleaner] 28 | void resizeEvent(QResizeEvent *event) override | ^ D:\CXXProject\tests\Framework\Qt5Test.cc:28:36: warning: invalid case style for pointer parameter 'event' [readability-identifier-naming] 28 | void resizeEvent(QResizeEvent *event) override | ^~~~~ | pEvent 29 | { 30 | int buttonWidth = width() / 4; 31 | int buttonHeight= height() / 4; 32 | 33 | pButton_->setGeometry((width() - buttonWidth) / 2, 34 | (height() - buttonHeight) / 2, 35 | buttonWidth, 36 | buttonHeight); 37 | 38 | QWidget::resizeEvent(event); | ~~~~~ | pEvent D:\CXXProject\tests\Framework\Qt5Test.cc:42:18: warning: invalid case style for private member 'pButton_' [readability-identifier-naming] 33 | pButton_->setGeometry((width() - buttonWidth) / 2, | ~~~~~~~~ | PButton_ 34 | (height() - buttonHeight) / 2, 35 | buttonWidth, 36 | buttonHeight); 37 | 38 | QWidget::resizeEvent(event); 39 | } 40 | 41 | private: 42 | QPushButton *pButton_ { nullptr }; | ^~~~~~~~ | PButton_ D:\CXXProject\tests\Framework\Qt5Test.cc:52:12: warning: static member accessed through instance [readability-static-accessed-through-instance] 52 | return app.exec(); | ^~~~ | QApplication:: Suppressed 3386 warnings (3386 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. Found compiler error(s). ``` But actually clang-tidy will still perform unnecessary analysis on qt header files, but will not output the results. I would like to ask if this function should directly skip the analysis of excluded header files? https://github.com/llvm/llvm-project/pull/91400 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits