27 repositorios
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.
Este proyecto es una extensión del lenguaje Go para VS Code que proporciona un entorno de desarrollo completo a través de un cliente de servidor de lenguaje, una interfaz de depuración y un ejecutor de automatización de pruebas. Integra inteligencia de lenguaje, formateo y capacidades de depuración para soportar el ciclo de vida completo de desarrollo del lenguaje Go. La extensión se distingue por gestionar la cadena de herramientas (toolchain) de Go, incluyendo la instalación y configuración de binarios externos requeridos para las características del lenguaje. También cuenta con una interfaz dedicada de automatización de pruebas que permite la generación de esqueletos de pruebas unitarias y la visualización de perfiles de cobertura de código directamente dentro del editor. El proyecto cubre una amplia gama de capacidades, incluyendo análisis estático para linting y verificación, refactorización de símbolos y formateo automatizado de código fuente. Proporciona herramientas para navegar por paquetes y símbolos, así como utilidades para la generación de stubs de interfaces y gestión de etiquetas de estructuras (struct tags). La depuración interactiva de programas es compatible a través de puntos de interrupción (breakpoints) y seguimiento de variables.
Improves Go codebase structure through symbol renaming and function extraction.
Pylint es una herramienta de análisis estático de código para Python que verifica el código fuente en busca de errores, violaciones de estándares de codificación y olores de código sin ejecutar el programa. Analiza el código en un árbol de sintaxis abstracta y recorre el árbol para detectar problemas, aplica reglas de estilo configurables y convenciones de nomenclatura, e identifica bloques de código duplicados comparando secuencias de origen tokenizadas. La herramienta también incluye un motor de inferencia que deduce los tipos de variables simulando rutas de código, permitiendo un análisis más profundo incluso en código sin tipos. Lo que distingue a Pylint es su arquitectura de verificador basada en complementos, que permite a los usuarios extender el análisis cargando módulos externos de Python que registran verificadores personalizados y reglas de inferencia en tiempo de ejecución. Admite la estratificación de archivos de configuración, fusionando configuraciones de múltiples archivos y argumentos de línea de comandos para que los valores predeterminados de todo el proyecto puedan ser anulados por opciones locales o específicas de complementos. Pylint también rastrea la calidad del código a lo largo del tiempo comparando los resultados del análisis actual con una puntuación de referencia almacenada, informando sobre mejoras o regresiones en ejecuciones sucesivas, y puede generar diagramas de clases y paquetes UML desde el árbol de sintaxis abstracta en formatos Graphviz, PlantUML o MermaidJS. La herramienta se integra en tuberías de integración continua y ganchos de pre-confirmación para ejecutar verificaciones en múltiples versiones del intérprete de Python automáticamente. Se puede instalar a través de pip, conda o un gestor de paquetes del sistema, y ofrece corrección ortográfica opcional de identificadores de código a través de la biblioteca enchant. Pylint también proporciona integración de editor para entornos como Emacs y TextMate, e incluye un visor de explicación de mensajes que imprime la descripción completa y el contexto de cualquier código de advertencia o error específico directamente desde la línea de comandos.
Identifies code smells and recommends structural changes to improve codebase maintainability.
Credo es una herramienta de análisis estático y linter para Elixir. Funciona como un analizador de calidad de código que escanea el código fuente para identificar inconsistencias estilísticas, errores comunes y posibles vulnerabilidades de seguridad. La herramienta proporciona un framework personalizable para definir y probar reglas especializadas para hacer cumplir los estándares de codificación específicos del proyecto. Identifica fragmentos de código complejos y duplicación para resaltar oportunidades de refactorización y simplificación. Sus capacidades cubren revisiones de código automatizadas, la aplicación de estándares de codificación de Elixir y comentarios en tiempo real para el desarrollador a través de integraciones en el editor.
Parses and inspects the codebase to highlight complex fragments and suggest simpler implementation logic.
GrumPHP es un validador de commits de Git y orquestador de calidad de código PHP. Funciona como un gestor de hooks de Git que automatiza la instalación y ejecución de disparadores de scripts para aplicar estándares de calidad de código dentro de proyectos PHP. La herramienta evita que se realice un commit de código no conforme ejecutando un conjunto de tareas de validación y linting durante el flujo de trabajo de Git. Integra comprobaciones de calidad automatizadas directamente en el entorno de desarrollo local para mantener los estándares del proyecto. El sistema gestiona flujos de trabajo de pruebas pre-commit ejecutando pruebas de calidad y automatizando los hooks de Git. Utiliza una tubería basada en tareas para ejecutar herramientas de validación y verifica los códigos de salida para determinar si un commit debe finalizarse.
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.