Was macht AiNetLinter?
Ein auf Roslyn basierender statischer Analyse-Linter, der C#-Codebasen (.NET 10) für KI-Agenten (Cursor, Claude Code) optimiert und die kognitive Belastung für Menschen reduziert.
Beschreibung
RalfHuesing/AiNetLinter ist ein leistungsstarkes Tool, das die statische Analyse von C#-Code mithilfe der Roslyn-Plattform durchführt. Es wurde entwickelt, um Code zu erkennen und zu markieren, der für KI-Agenten wie Cursor und Claude Code schwer zu interpretieren ist, und um Codierungsmuster zu fördern, die sowohl von Menschen als auch von KI leicht verstanden werden können.
Hauptmerkmale
- KI-Optimierung: Identifiziert Code, der für KI-Agenten problematisch ist, z. B. tief verschachtelte Bedingungen, übermäßige Lambda-Ausdrücke und unklare Typen.
- Reduzierung der kognitiven Belastung: Setzt Codierungsstandards durch, die Code lesbarer und vorhersagbarer machen, wodurch die kognitive Belastung für Entwickler verringert wird.
- Nahtlose Integration: Kann problemlos in CI/CD-Pipelines integriert werden, um die Codequalität automatisch zu überprüfen.
- Erweiterbar: Entwickler können benutzerdefinierte Regeln erstellen, um spezifische Codierungsstandards durchzusetzen.
Installation
Sie können das Paket über NuGet installieren:
dotnet add package AiNetLinter
Verwendung
Nach der Installation konfigurieren Sie den Linter in Ihrer .editorconfig-Datei:
[*.cs]
dotnet_diagnostic.AIN001.severity = error
dotnet_diagnostic.AIN002.severity = warning
Führen Sie dann die Analyse aus:
dotnet build
Regeln
| Regel-ID | Beschreibung | Standard-Schweregrad |
|---|---|---|
| AIN001 | Vermeiden Sie tief verschachtelte Bedingungen | Error |
| AIN002 | Bevorzugen Sie explizite Typen gegenüber var | Warning |
| AIN003 | Vermeiden Sie übermäßige Lambda-Ausdrücke | Warning |
Beispiele
Schlecht (AIN001)
if (a)
{
if (b)
{
if (c)
{
// Code
}
}
}
Gut
if (a && b && c)
{
// Code
}
Beitrag leisten
Beiträge sind willkommen! Bitte lesen Sie die CONTRIBUTING.md für Details.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE-Datei für Details.