27 dépôts
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.
Ce projet est une extension du langage Go pour VS Code qui fournit un environnement de développement complet via un client de serveur de langage, une interface de débogage et un exécuteur d'automatisation de tests. Il intègre l'intelligence linguistique, le formatage et les capacités de débogage pour prendre en charge l'intégralité du cycle de vie de développement du langage Go. L'extension se distingue par la gestion de la toolchain Go, incluant l'installation et la configuration des binaires externes requis pour les fonctionnalités linguistiques. Elle dispose également d'une interface d'automatisation de tests dédiée qui permet la génération de squelettes de tests unitaires et la visualisation des profils de couverture de code directement dans l'éditeur. Le projet couvre un large éventail de capacités incluant l'analyse statique pour le linting et le vetting, le refactoring de symboles et le formatage automatisé du code source. Il fournit des outils pour naviguer dans les paquets et les symboles, ainsi que des utilitaires pour la génération de stubs d'interface et la gestion des tags de struct. Le débogage interactif de programme est pris en charge via des points d'arrêt et le suivi des variables.
Improves Go codebase structure through symbol renaming and function extraction.
Pylint est un outil d'analyse statique de code pour Python qui vérifie le code source pour les erreurs, les violations des normes de codage et les « code smells » sans exécuter le programme. Il analyse le code dans un arbre de syntaxe abstraite et parcourt l'arbre pour détecter les problèmes, applique des règles de style et des conventions de nommage configurables, et identifie les blocs de code dupliqués en comparant les séquences sources tokenisées. L'outil inclut également un moteur d'inférence qui déduit les types de variables en simulant les chemins de code, permettant une analyse plus approfondie même dans le code non typé. Ce qui distingue Pylint est son architecture de vérificateur basée sur des plugins, qui permet aux utilisateurs d'étendre l'analyse en chargeant des modules Python externes qui enregistrent des vérificateurs et des règles d'inférence personnalisés lors de l'exécution. Il prend en charge la superposition de fichiers de configuration, fusionnant les paramètres de plusieurs fichiers de configuration et arguments de ligne de commande afin que les valeurs par défaut à l'échelle du projet puissent être remplacées par des options locales ou spécifiques aux plugins. Pylint suit également la qualité du code au fil du temps en comparant les résultats d'analyse actuels par rapport à un score de référence stocké, signalant l'amélioration ou la régression lors des exécutions successives, et peut générer des diagrammes de classes et de paquets UML à partir de l'arbre de syntaxe abstraite dans les formats Graphviz, PlantUML ou MermaidJS. L'outil s'intègre dans les pipelines d'intégration continue et les hooks de pré-validation pour exécuter automatiquement des vérifications sur plusieurs versions de l'interpréteur Python. Il peut être installé via pip, conda ou un gestionnaire de paquets système, et offre une vérification orthographique optionnelle des identifiants de code via la bibliothèque enchant. Pylint fournit également une intégration d'éditeur pour des environnements tels qu'Emacs et TextMate, et inclut une visionneuse d'explication de message qui imprime la description complète et le contexte de tout code d'avertissement ou d'erreur spécifique directement depuis la ligne de commande.
Identifies code smells and recommends structural changes to improve codebase maintainability.
Credo est un outil d'analyse statique et un linter pour Elixir. Il fonctionne comme un analyseur de qualité de code qui scanne le code source pour identifier les incohérences stylistiques, les erreurs courantes et les vulnérabilités de sécurité potentielles. L'outil fournit un framework personnalisable pour définir et tester des règles spécialisées afin d'appliquer des normes de codage spécifiques au projet. Il identifie les fragments de code complexes et la duplication pour mettre en évidence les opportunités de refactorisation et de simplification. Ses capacités couvrent les revues de code automatisées, l'application des normes de codage Elixir et les retours en temps réel aux développeurs via des intégrations d'éditeurs.
Parses and inspects the codebase to highlight complex fragments and suggest simpler implementation logic.
GrumPHP est un validateur de commits Git et un orchestrateur de qualité de code PHP. Il fonctionne comme un gestionnaire de hooks Git qui automatise l'installation et l'exécution de déclencheurs de scripts pour appliquer les normes de qualité de code au sein des projets PHP. L'outil empêche le code non conforme d'être commité en exécutant une suite de tâches de validation et de linting pendant le flux de travail Git. Il intègre des contrôles de qualité automatisés directement dans l'environnement de développement local pour maintenir les normes du projet. Le système gère les flux de travail de test pré-commit en exécutant des tests de qualité et en automatisant les hooks Git. Il utilise un pipeline basé sur des tâches pour exécuter des outils de validation et vérifie les codes de sortie pour déterminer si un commit doit être finalisé.
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.