27 Repos
Tools for parsing, inspecting, and improving codebases.
Explore 27 awesome GitHub repositories matching part of an awesome list · Code Analysis and Refactoring. Refine with filters or upvote what's useful.
PHP-Parser is a tool that converts PHP source code into an abstract syntax tree for static analysis and programmatic manipulation. It functions as a parser, a code generator, and a static analysis framework. The project enables the programmatic construction of abstract syntax tree nodes through a fluent interface and provides the ability to transform these trees back into formatted source code. It includes a serializer that exports abstract syntax trees to JSON format and reconstructs them from strings. The toolset covers several capability areas, including namespace resolution, constant exp
Parses source code into an abstract syntax tree.
Rector is an automated PHP refactoring and modernization tool designed to upgrade language versions and modernize syntax using predefined rules. It functions as a static analysis engine that inspects code structures and types to identify refactoring targets without executing the code. The project provides a framework for defining custom transformation logic to automate project-specific changes. It distinguishes itself by offering specialized capabilities for migrating legacy or custom frameworks to modern alternatives and converting docblock annotations into native language attributes. The s
Automates code upgrades and refactoring tasks.
Dieses Projekt ist eine Go-Spracherweiterung für VS Code, die eine umfassende Entwicklungsumgebung durch einen Language-Server-Client, ein Debugging-Interface und einen Test-Automatisierungs-Runner bereitstellt. Sie integriert Sprachintelligenz, Formatierung und Debugging-Funktionen, um den gesamten Lebenszyklus der Go-Sprachentwicklung zu unterstützen. Die Erweiterung zeichnet sich dadurch aus, dass sie die Go-Toolchain verwaltet, einschließlich der Installation und Konfiguration externer Binärdateien, die für Sprachfeatures erforderlich sind. Sie bietet zudem ein dediziertes Test-Automatisierungs-Interface, das die Generierung von Unit-Test-Skeletten und die Visualisierung von Code-Coverage-Profilen direkt im Editor ermöglicht. Das Projekt deckt ein breites Spektrum an Funktionen ab, darunter statische Analyse für Linting und Vetting, Symbol-Refactoring und automatisierte Quellcode-Formatierung. Es bietet Tools zur Navigation durch Pakete und Symbole sowie Utilities für die Interface-Stub-Generierung und Struct-Tag-Verwaltung. Interaktives Programm-Debugging wird durch Breakpoints und Variablen-Tracking unterstützt.
Improves Go codebase structure through symbol renaming and function extraction.
Pylint ist ein statisches Code-Analysetool für Python, das Quellcode auf Fehler, Verstöße gegen Codierungsstandards und Code-Smells prüft, ohne das Programm auszuführen. Es parst Code in einen abstrakten Syntaxbaum und durchläuft diesen, um Probleme zu erkennen, erzwingt konfigurierbare Stilregeln und Namenskonventionen und identifiziert doppelte Codeblöcke durch den Vergleich tokenisierter Quellsequenzen. Das Tool enthält zudem eine Inferenz-Engine, die Variablentypen durch Simulation von Codepfaden ableitet, was eine tiefere Analyse selbst in nicht typisiertem Code ermöglicht. Was Pylint auszeichnet, ist seine Plugin-basierte Checker-Architektur, die es Benutzern ermöglicht, die Analyse durch das Laden externer Python-Module zu erweitern, die benutzerdefinierte Checker und Inferenzregeln zur Laufzeit registrieren. Es unterstützt das Layering von Konfigurationsdateien, wobei Einstellungen aus mehreren Konfigurationsdateien und Befehlszeilenargumenten zusammengeführt werden, sodass projektweite Standardeinstellungen durch lokale oder Plugin-spezifische Optionen überschrieben werden können. Pylint verfolgt zudem die Codequalität im Zeitverlauf, indem aktuelle Analyseergebnisse mit einem gespeicherten Basiswert verglichen werden, berichtet über Verbesserungen oder Regressionen in aufeinanderfolgenden Durchläufen und kann UML-Klassen- und Paketdiagramme aus dem abstrakten Syntaxbaum in Graphviz-, PlantUML- oder MermaidJS-Formaten generieren. Das Tool lässt sich in Continuous-Integration-Pipelines und Pre-Commit-Hooks integrieren, um Prüfungen automatisch über mehrere Python-Interpreter-Versionen hinweg auszuführen. Es kann über pip, conda oder einen Systempaketmanager installiert werden und bietet eine optionale Rechtschreibprüfung für Code-Bezeichner durch die enchant-Bibliothek. Pylint bietet zudem Editor-Integration für Umgebungen wie Emacs und TextMate und enthält einen Nachrichten-Erklärungs-Viewer, der die vollständige Beschreibung und den Kontext jedes spezifischen Warn- oder Fehlercodes direkt über die Befehlszeile ausgibt.
Identifies code smells and recommends structural changes to improve codebase maintainability.
Credo ist ein Tool zur statischen Analyse und ein Linter für Elixir. Es fungiert als Code-Qualitätsanalysator, der den Quellcode scannt, um stilistische Inkonsistenzen, häufige Fehler und potenzielle Sicherheitslücken zu identifizieren. Das Tool bietet ein anpassbares Framework zum Definieren und Testen spezialisierter Regeln, um projektspezifische Codierungsstandards durchzusetzen. Es identifiziert komplexe Codefragmente und Duplikate, um Möglichkeiten für Refactoring und Vereinfachung aufzuzeigen. Seine Funktionen decken automatisierte Code-Reviews, die Durchsetzung von Elixir-Codierungsstandards und Echtzeit-Feedback für Entwickler durch Editor-Integrationen ab.
Parses and inspects the codebase to highlight complex fragments and suggest simpler implementation logic.
GrumPHP ist ein Git-Commit-Validator und Orchestrator für PHP-Codequalität. Es fungiert als Git-Hook-Manager, der die Installation und Ausführung von Skript-Triggern automatisiert, um Qualitätsstandards in PHP-Projekten durchzusetzen. Das Tool verhindert das Committen von nicht konformem Code, indem es während des Git-Workflows eine Suite von Validierungs- und Linting-Aufgaben ausführt. Es integriert automatisierte Qualitätsprüfungen direkt in die lokale Entwicklungsumgebung, um Projektstandards zu wahren. Das System verwaltet Pre-Commit-Test-Workflows durch die Ausführung von Qualitätstests und die Automatisierung von Git-Hooks. Es nutzt eine aufgabenbasierte Pipeline, um Validierungstools auszuführen und anhand von Exit-Codes zu bestimmen, ob ein Commit finalisiert werden darf.
Automates code quality checks during development.
Roslynator is a set of code analysis tools for C#, powered by Roslyn.
Extensive suite of analyzers and refactorings for code quality.
An implementation of StyleCop rules using the .NET Compiler Platform
Port of traditional style rules to the modern compiler platform.
Mainly a PHP Language Server with more features than you can shake a stick at
Provides completion, refactoring, and code introspection.
The Microsoft.CodeAnalysis.NetAnalyzers package moved into the dotnet/sdk repository for further development and respond to issues formerly in this repository.
Official diagnostic analyzers developed by the compiler team.
This project is a language server implementation and code editor extension designed to provide intelligence for Svelte components. It functions as a static analysis tool that parses source code to deliver real-time feedback, automated formatting, and code navigation within development environments. The tool distinguishes itself by utilizing a virtual file system mapping that translates component files into modules, allowing standard language tools to process non-standard syntax. It integrates directly with the TypeScript compiler to perform type checking and static analysis across mixed scrip
Analyzes source code to support precise navigation, automated refactoring, and deep type checking.
:crystal_ball: Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API.
Allows runtime analysis and manipulation of code structures.
An analyzer library for C# and VB that uses Roslyn to produce refactorings, code analysis, and other niceties.
Library providing diagnostics for performance and coding styles.
Set of roslyn-based analyzers for catching common C# errors (inspired by Google's error-prone)
Analyzers focused on code correctness and performance improvements.
"AutoMapper" like, Roslyn based, code fix provider that allows to generate mapping code in design time. Read more Mapping Generator – Design Time Alternative to AutoMapper
Automated code generation for complex object-to-object mappings.
http://redirect.sonarsource.com/plugins/csharp.html
Static analysis extension for the SonarQube platform.
NOTE This project is no longer maintained. The high impact analyzers from this repository are being merged with dotnet/roslyn-analyzers. As such, this repo was archived
Detects implicit and explicit heap allocations in C# code.
Refactoring Essentials for Visual Studio
Comprehensive collection of refactorings, analyzers, and code fixes.
Micro PHP benchmark library
Benchmarks small code snippets for performance.