#pragma once #include #include #include class CodeEditor; class SignatureTooltip; // --------------------------------------------------------------------------- // SignatureHelper – Lädt die PHP-Funktionsdatenbank und zeigt beim Tippen // automatisch die passende Funktionssignatur als Tooltip. // // Logik: // • Bei jedem Tastendruck: Text links vom Cursor analysieren // • Wenn "funktionsname(" erkannt wird → Tooltip anzeigen // • Wenn ")" die öffnende Klammer schließt → Tooltip verstecken // • Wenn Cursor sich weg bewegt → Tooltip verstecken // --------------------------------------------------------------------------- class SignatureHelper : public QObject { Q_OBJECT public: explicit SignatureHelper(CodeEditor *editor); private slots: void onCursorPositionChanged(); private: struct FunctionInfo { QString signature; QString description; }; void loadDatabase(); void loadProjectFunctions(); // Extrahiert den Funktionsnamen direkt links vor dem letzten '(' // Gibt leeren String zurück wenn kein Kontext gefunden QString extractFunctionName(const QString &textUpToCursor) const; // Zählt offene Klammern — bei 0 ist der Aufruf abgeschlossen int countOpenParens(const QString &textUpToCursor) const; CodeEditor *m_editor = nullptr; SignatureTooltip *m_tooltip = nullptr; QHash m_functions; // name → info };