#pragma once #include #include #include #include #include "FunctionScanner.h" // --------------------------------------------------------------------------- // DeadCodeAnalyzer – Findet Funktionen die definiert aber nie aufgerufen werden. // --------------------------------------------------------------------------- class DeadCodeAnalyzer : public QObject { Q_OBJECT public: struct DeadFunction { FunctionScanner::FunctionInfo info; QString reason; }; explicit DeadCodeAnalyzer(QObject *parent = nullptr); // excludeDirs: Verzeichnisnamen die komplett übersprungen werden // z.B. {"vendor", "lib", "node_modules"} QList analyze(const QString &projectRoot, const QStringList &extensions = {"*.php"}, const QStringList &excludeDirs = {}) const; signals: // Fortschritt während der Analyse (läuft im Thread) void progressUpdate(int filesScanned, int filesTotal, const QString ¤tFile) const; private: FunctionScanner *m_scanner = nullptr; };