-
Notifications
You must be signed in to change notification settings - Fork 0
Tools Linter
GitHub Actions edited this page Jan 25, 2026
·
2 revisions
Der VelinScript Linter analysiert Code auf Qualität, Best Practices und potenzielle Probleme.
Der Linter ist ideal für:
- ✅ Code-Qualitätssicherung - Findet Code-Smells und Qualitätsprobleme automatisch
- ✅ Best Practices - Enforced Coding-Standards und Konventionen
- ✅ Ungenutzten Code - Identifiziert ungenutzte Variablen, Funktionen und Imports
- ✅ Komplexitäts-Analyse - Erkennt zu komplexe Funktionen und verschachtelte Strukturen
- ✅ Pre-Commit-Checks - Perfekt für Git Hooks und CI/CD-Pipelines
- ✅ Team-Konsistenz - Stellt sicher, dass alle Teammitglieder den gleichen Standards folgen
Der Linter ist NICHT gedacht für:
- ❌ Syntax-Fehler - Für Syntax-Korrektur nutzen Sie AutoFix
- ❌ Type-Checking - Für Type-Validation nutzen Sie den Compiler (
velin check) - ❌ Security-Checks - Für Security-Vulnerabilities nutzen Sie den Security Scanner
- ❌ Performance-Analyse - Für Performance-Optimierung nutzen Sie den Profiler
- ❌ Runtime-Debugging - Für Live-Debugging nutzen Sie den Debugger oder Runtime Inspector
Der Linter ist Teil des VelinScript Toolchains. Baue ihn mit:
cd tools/linter
cargo build --releasevelin-lint checkAnalysiert das aktuelle Verzeichnis auf Linter-Probleme.
velin-lint check src/velin-lint check main.velinvelin-lint check --json > lint-report.jsonvelin-lint check --fixHinweis: Auto-Fix wird in zukünftigen Versionen unterstützt.
velin-lint check --rules unused-variable --rules long-function- unused-variable - Erkennt ungenutzte Variablen
- unused-function - Erkennt ungenutzte Funktionen
- unused-import - Erkennt ungenutzte Imports
- long-function - Warnt bei zu langen Funktionen (>50 Zeilen)
- complex-function - Warnt bei zu komplexen Funktionen (hohe Zyklomatische Komplexität)
- deeply-nested - Warnt bei zu tief verschachteltem Code (>4 Ebenen)
- naming-convention - Prüft Namenskonventionen (camelCase für Funktionen, PascalCase für Structs)
- missing-docs - Warnt bei fehlender Dokumentation für öffentliche Funktionen
- magic-numbers - Warnt bei Magic Numbers (sollten als Konstanten definiert werden)
- error-handling - Prüft auf fehlende Error-Handling
- inefficient-loop - Erkennt ineffiziente Schleifen
- unnecessary-clone - Erkennt unnötige Clone-Operationen
- large-struct - Warnt bei sehr großen Structs (>100 Felder)
🔍 Analysiere 5 Datei(en)...
📊 Gefundene Probleme: 3
src/main.velin:15:3 [warning] unused-variable: Ungenutzte Variable: 'temp'
💡 Vorschlag: Entferne die Variable 'temp' oder verwende sie
src/utils.velin:42:1 [warning] long-function: Funktion 'processData' ist zu lang (67 Zeilen)
💡 Vorschlag: Teile die Funktion in kleinere Funktionen auf
src/api.velin:8:1 [info] missing-docs: Öffentliche Funktion 'createUser' hat keine Dokumentation
💡 Vorschlag: Füge /// Doc-Comment hinzu
{
"issues": [
{
"file": "src/main.velin",
"line": 15,
"column": 3,
"severity": "warning",
"rule": "unused-variable",
"message": "Ungenutzte Variable: 'temp'",
"suggestion": "Entferne die Variable 'temp' oder verwende sie"
}
],
"total": 1
}┌─────────────────────────────────────────────────────────┐
│ VelinScript Linter │
├─────────────────────────────────────────────────────────┤
│ │
│ $ velin-lint check │
│ │
│ 🔍 Analysiere 5 Datei(en)... │
│ │
│ 📊 Gefundene Probleme: 3 │
│ │
│ src/main.velin:15:3 [warning] unused-variable │
│ Ungenutzte Variable: 'temp' │
│ 💡 Vorschlag: Entferne die Variable 'temp' │
│ │
│ src/utils.velin:42:1 [warning] long-function │
│ Funktion 'processData' ist zu lang (67 Zeilen) │
│ 💡 Vorschlag: Teile die Funktion auf │
│ │
│ src/api.velin:8:1 [info] missing-docs │
│ Öffentliche Funktion 'createUser' hat keine Docs │
│ │
└─────────────────────────────────────────────────────────┘
Erstelle eine .velinlintrc.json Datei im Projekt-Root:
{
"rules": {
"unused-variable": "error",
"long-function": "warning",
"missing-docs": "info"
},
"ignore": [
"target/**",
"vendor/**"
],
"max-function-length": 50,
"max-complexity": 10,
"max-nesting-depth": 4
}# .github/workflows/lint.yml
- name: Lint Code
run: |
cd tools/linter
cargo build --release
./target/release/velin-lint check --json > lint-report.json
if [ -s lint-report.json ]; then
cat lint-report.json
exit 1
fi- Regelmäßig linten - Integriere Linting in deine CI/CD Pipeline
- Vor Commits prüfen - Führe Linting vor größeren Commits aus
- Regeln anpassen - Konfiguriere Regeln nach Projekt-Bedarf
- Schrittweise einführen - Beginne mit Warnungen, erhöhe später auf Errors
- Team-Konsens - Diskutiere Regeln mit dem Team
Der Linter ist automatisch in der VS Code Extension integriert. Probleme werden direkt im Editor angezeigt.
- Passe die Konfiguration an (
.velinlintrc.json) - Ignoriere bestimmte Dateien oder Verzeichnisse
- Beginne mit weniger strengen Regeln
- Melde Issues im Repository
- Verwende
// velin-lint-disable-next-linefür spezifische Zeilen - Verwende
// velin-lint-disablefür ganze Dateien
- Verwende
--rulesum nur bestimmte Regeln auszuführen - Ignoriere große Verzeichnisse (z.B.
target/,vendor/) - Führe Linting nur auf geänderten Dateien aus
- Compiler Architecture
- Pass-Verlauf
- Type Inference
- Code Ordering
- IR Representation
- Borrow Checker
- Code Generation
- Multi-Target Compilation
- Module Resolution
- Framework Integration
- Parallelization
- AI Compiler Passes
- Prompt Optimizer
- System Generation
- Basics
- APIs
- Security
- Database
- Validation
- Authentication
- ML/LLM
- Intelligence Features
- Type Inference
- ML Training
- Pattern Matching
- Closures
- Collections
- HTTP Client
- String Interpolation
- Debugger
- Vektor-Datenbanken
- CLI Reference
- API Keys Setup
- Advanced
- Backend
- Security Best Practices
- AI/ML
- Auto Imports
- Plugin Development