OpenCode Plugin zur Analyse von Code auf Abstraktions-Probleme (God Files, lange Funktionen, wiederholte Patterns)
npm install opencode-abstraction-scannerEin OpenCode Plugin zur Analyse von Code auf Abstraktions-Probleme.
- God File Detection: Findet Dateien mit zu vielen Verantwortlichkeiten (>500 LOC)
- Lange Funktionen: Identifiziert Funktionen die aufgeteilt werden sollten (>50 LOC)
- Pattern Detection: Findet wiederholte Code-Patterns die abstrahiert werden könnten
- Complexity Analysis: Berechnet Cyclomatic Complexity
- Multi-Language: Unterstützt TypeScript, JavaScript, Python, Java, C#, Go, Rust, Ruby, PHP, Swift, Kotlin
``bash`In deiner opencode.json
{
"plugin": ["opencode-abstraction-scanner"]
}
``
Scanne src/ auf Abstraktionen
Das Plugin führt eine zweistufige Analyse durch:
1. Stufe 1 (lokal): Sammelt Metriken, findet verdächtige Dateien
2. Stufe 2 (LLM): Analysiert Top-Dateien im Detail
``
Zeige mir die Code-Metriken für src/
``
Analysiere src/tools/sonarqube.ts auf Abstraktions-Probleme
Haupttool für vollständige Analyse.
| Parameter | Beschreibung | Default |
|-----------|--------------|---------|
| path | Pfad zum Scannen | Aktuelles Verzeichnis |depth
| | quick, normal, deep | normal |include
| | Glob pattern | */.{ts,js,...} |exclude
| | Ausschluss-Pattern | node_modules,dist,... |minLoc
| | Minimum LOC | 50 |
Schnelle lokale Metriken ohne LLM.
Detail-Analyse für eine einzelne Datei.
- God Files: Dateien >500 LOC mit zu vielen Verantwortlichkeiten
- Lange Funktionen: Funktionen >50 LOC die gesplittet werden sollten
- Wiederholte Patterns: Code der abstrahiert werden sollte
- Zu viele Exports: Dateien mit >10 Exports
- Hohe Complexity: Durchschnittliche Complexity >20 pro Funktion
`markdownCode-Metriken Report
| Metrik | Wert | Status |
|--------|------|--------|
| God Files (>500 LOC) | 3 | ⚠️ |
| Lange Funktionen (>50 LOC) | 6 | ⚠️ |
| Dateien mit wiederholten Patterns | 4 | ⚠️ |
| Datei | LOC | Score |
|-------|-----|-------|
| src/tools/sonarqube.ts | 932 | 85 |
| src/index.ts | 914 | 72 |
``
MIT