#pragma once #include #include #include #include #include #include "FunctionScanner.h" // --------------------------------------------------------------------------- // FunctionIndex – Singleton-artiger Index aller Projektfunktionen. // Wird von CodeEditor (Doppelklick-Navigation) und SignatureHelper genutzt. // Aktualisiert sich asynchron wenn setProjectRoot() aufgerufen wird. // --------------------------------------------------------------------------- class FunctionIndex : public QObject { Q_OBJECT public: explicit FunctionIndex(QObject *parent = nullptr); void setProjectRoot(const QString &path); void refresh(); // Sucht eine Funktion nach Name (Groß-/Kleinschreibung ignoriert) // Gibt ungültige FunctionInfo zurück wenn nicht gefunden (filePath ist leer) FunctionScanner::FunctionInfo lookup(const QString &name) const; bool isReady() const; signals: void indexReady(); private slots: void onScanFinished(); private: QString m_projectRoot; FunctionScanner *m_scanner = nullptr; QFutureWatcher> *m_watcher = nullptr; // name.toLower() → FunctionInfo QHash m_index; bool m_ready = false; };