44 dépôts
Linters, formateurs et outils d'analyse statique pour Swift.
Explore 44 awesome GitHub repositories matching part of an awesome list · Outils de qualité de code. Refine with filters or upvote what's useful.
Rich is a comprehensive library for building sophisticated command-line interfaces and terminal applications. It provides a robust console formatting engine and a layout framework that enables developers to render rich text, syntax-highlighted code, and complex data structures directly in the terminal. By utilizing a recursive constraint-based layout engine, the library allows for the creation of hierarchical grids, panels, and trees that maintain their structure even as terminal dimensions change. What distinguishes the library is its ability to manage persistent, real-time terminal interfac
Library for rich terminal text and formatting.
Prettier is an opinionated code formatter that parses source code and reprints it from scratch to enforce a consistent, project-wide visual style. By transforming code into an abstract syntax tree and applying a recursive document printing process, it eliminates manual style debates and ensures that all source files adhere to a unified appearance. The project is distinguished by its extensible, plugin-based architecture, which decouples language-specific parsing logic from the core engine. This modular design allows for uniform style enforcement across diverse programming languages and comple
Opinionated multi-language code formatter.
Ce projet est un formateur de code déterministe et sans compromis pour Python. Il fonctionne en analysant le code source dans un arbre de syntaxe abstraite et en le régénérant selon un ensemble rigide et opinionné de règles de style. En automatisant le processus de formatage, il élimine les débats manuels sur le style et la surcharge de configuration, garantissant que le code reste cohérent sur l'ensemble des projets, indépendamment de l'entrée originale. L'outil se distingue par son accent sur la vitesse et l'intégration transparente dans les flux de travail de développement. Il utilise la mise en cache de fichiers basée sur le contenu et le traitement parallèle pour maintenir des performances élevées sur de grandes bases de code, tout en prenant en charge les hooks de contrôle de version pour appliquer la cohérence du style avant que le code ne soit validé. Pour préserver l'historique du projet, il fournit des mécanismes pour ignorer des commits spécifiques dans le suivi des auteurs du contrôle de version, garantissant que les changements de style automatisés n'obscurcissent pas la paternité originale. Au-delà des fichiers sources standard, le formateur étend ses capacités pour inclure les notebooks Jupyter, les stubs de type et les exemples de code intégrés dans la documentation. Il offre une large compatibilité via des plugins pour les principaux éditeurs de texte et environnements de développement intégrés, ainsi qu'un support pour le protocole de serveur de langage. La configuration est gérée via des fichiers au niveau du projet qui sont automatiquement découverts dans la hiérarchie des répertoires, permettant un comportement cohérent sur divers environnements de développement.
Formats Python code automatically.
Ce projet est un outil d'analyse statique et un linter conçu pour améliorer la qualité, la fiabilité et la portabilité des scripts shell. En effectuant une analyse structurelle approfondie, il identifie les pièges de programmation courants, les erreurs de syntaxe et les vulnérabilités de sécurité avant que les scripts ne soient exécutés. Il fonctionne comme un réviseur de code automatisé qui applique les meilleures pratiques et aide les développeurs à maintenir un code cohérent et robuste sur différents environnements d'exploitation. L'outil se distingue par sa résolution de grammaire sensible aux dialectes, qui adapte sa logique d'analyse en fonction de l'interpréteur shell spécifique détecté. Il utilise un moteur sophistiqué qui construit un arbre de syntaxe abstraite pour évaluer la logique, le quoting et les problèmes de portabilité. Les développeurs peuvent exercer un contrôle granulaire sur le processus d'analyse en utilisant des directives en ligne pour supprimer des avertissements spécifiques ou configurer la manière dont l'outil résout les fichiers sources externes. Le projet couvre une surface complète de capacités de diagnostic, allant de la validation de syntaxe fondamentale aux vérifications logiques complexes. Il fournit des conseils sur la construction idiomatique de scripts, incluant la gestion sécurisée des fichiers, les opérations arithmétiques efficaces et la substitution de commande appropriée. Ces fonctionnalités garantissent collectivement que les scripts adhèrent aux normes POSIX et restent compatibles sur diverses implémentations shell. L'outil est distribué en tant qu'utilitaire en ligne de commande, permettant une intégration dans les flux de travail de développement pour fournir un retour immédiat sur l'intégrité des scripts.
Analyzes shell scripts for errors.
Standard is a suite of static analysis tools for JavaScript, comprising a linter, formatter, and a predefined style guide. It functions as a static code analyzer that scans source code for style violations and potential errors without executing the program. The project provides an automatic code fixer that rewrites source code to resolve formatting issues and enforce syntax consistency. It implements a standardized set of rules for JavaScript formatting and syntax to ensure a uniform appearance across different projects. The system covers a wide range of static analysis capabilities, includi
JavaScript style guide with built-in linter and auto-fixer.
Pydantic est une bibliothèque de validation de données et un framework d'analyse pour Python. Il fonctionne comme un validateur de schéma basé sur les types qui utilise les annotations de type Python standard pour garantir que les données d'entrée sont conformes à des schémas structurels prédéfinis. Le projet fournit des capacités pour analyser des données brutes en objets typés via la conversion et la validation automatique de type. Cela inclut la sérialisation des données et la validation des structures de données pour garantir l'exactitude. Le framework couvre plusieurs domaines d'application, incluant la vérification des requêtes API et la gestion des configurations d'application. Il permet la transformation de formats bruts comme JSON en objets Python structurés.
Validates data using Python type hints.
This project is a static analysis engine designed to identify patterns, enforce coding standards, and automate code quality improvements in software projects. By parsing source code into structured abstract syntax trees, it enables deep programmatic inspection and the automated remediation of identified programming issues. The engine functions as a pluggable linting framework, allowing developers to extend its core capabilities through a modular architecture. Users can inject custom rules, parsers, and processors to support non-standard file formats or domain-specific logic. This extensibilit
Pluggable and configurable JavaScript linting utility.
mypy is a static type checker for Python that analyzes source code to detect type errors and inconsistencies without executing the program. It functions as a static analysis tool and type inference engine, providing a gradual typing system that allows type hints to be added to a codebase incrementally while maintaining compatibility with dynamic typing. The project distinguishes itself through a combination of performance and precision features. It utilizes a daemon-based incremental checking system and multi-process parallel analysis to manage large codebases, supported by binary cache persi
Optional static type checker for Python.
SwiftLint is a static analysis tool and code formatter designed to enforce consistent coding styles and identify semantic issues within Swift source code. It functions as a command-line utility that evaluates code against established conventions to ensure uniform structure and architectural standards across a project. The tool distinguishes itself through a custom linting engine that leverages compiler-integrated syntax analysis to perform deep inspections of code structure. Beyond simple pattern matching, it supports automated source code transformation to correct formatting violations and r
Enforces coding conventions and style guides.
Commitlint is a command-line utility designed to lint and validate Git commit messages against established conventions. By parsing commit messages into structured components, it ensures that project history remains consistent, which facilitates automated changelog generation and semantic versioning. The tool distinguishes itself through a schema-driven validation engine that supports custom rule definitions and plugin-based extensions. It enables standardized project governance by allowing teams to distribute and inherit shared configuration rule sets across multiple repositories, ensuring un
Enforces conventional commit message formatting.
Pre-commit is a framework for managing and executing automated tasks during the version control commit process. It functions as a configuration-driven utility that enforces project standards by running linters, formatters, and security scanners on staged files before they are committed to a repository. The system uses a centralized manifest to orchestrate these tasks, ensuring consistent developer tooling across teams. It distinguishes itself by provisioning isolated environments for each tool, which prevents dependency conflicts and ensures that all required versions are present. The framewo
Framework for managing pre-commit hooks.
lint-staged is a git pre-commit task runner that executes linters and formatters specifically on files staged in git. It functions as a staged file filter and a monorepo task orchestrator, identifying the correct configuration and working directory for files across multiple packages in a repository. The system automatically adds formatting changes back to the git stage after a successful task run. It uses a mechanism to match files in the git index against glob patterns to determine which tasks to execute and can automatically update git indices after formatting. The project covers sequentia
Runs linters on staged Git files.
pytest est un framework de test pour Python qui fournit un exécuteur en ligne de commande pour découvrir et exécuter des suites de tests. Il est construit sur une architecture modulaire qui utilise les assertions standard du langage pour vérifier l'exactitude du code, inspectant automatiquement les expressions pour fournir des rapports d'échec détaillés sans nécessiter de méthodes d'assertion spécialisées. Le framework se distingue par un système d'injection de dépendances qui gère la logique de configuration et de nettoyage en résolvant et en injectant automatiquement les ressources dans les fonctions de test. Il dispose également d'une architecture de plugins basée sur des hooks qui permet une personnalisation approfondie du cycle de vie des tests, y compris la collecte, l'exécution et le reporting. Ces capacités sont soutenues par la paramétrisation dynamique, qui génère plusieurs instances de test à partir d'une seule définition, et la mise en cache de l'état persistant qui permet de relancer sélectivement les tests ayant échoué entre les sessions. Au-delà de son modèle d'exécution principal, le projet offre une suite complète d'outils pour gérer les environnements de test, y compris la capture de sortie, la gestion des logs et la validation des avertissements. Il prend en charge des scénarios de test complexes grâce à des fonctionnalités telles que la gestion des fichiers temporaires, le patching d'objets et la capacité d'exécuter nativement des suites de tests existantes provenant d'autres frameworks. La configuration est gérée via des fichiers centralisés, permettant un contrôle précis sur la découverte, le filtrage et le comportement d'exécution des tests. Le projet est distribué en tant que paquet Python standard et inclut une documentation étendue sur sa configuration, son système de plugins et son interface en ligne de commande.
Framework for writing and running Python tests.
Hadolint est un outil d'analyse statique conçu pour valider les configurations de build de conteneurs. Il fonctionne comme un scanner de sécurité et un auditeur de configuration, analysant les instructions de build dans un format structuré pour identifier les écarts par rapport aux normes de sécurité et d'efficacité. L'outil se distingue par l'inspection approfondie des commandes shell intégrées. En tokenisant et en analysant ces scripts, il détecte les erreurs de script courantes et les vulnérabilités de sécurité qui pourraient autrement persister dans une image de conteneur. Il intègre des outils d'analyse externes pour fournir une validation spécialisée pour ces commandes en ligne, garantissant que la structure du conteneur et la logique d'exécution sont évaluées. Au-delà de la vérification de syntaxe de base, l'utilitaire prend en charge les flux de travail automatisés en identifiant la création de couches inefficaces et les paramètres de configuration non sécurisés. Il est conçu pour une intégration dans les pipelines d'intégration et de déploiement continus afin de détecter les problèmes de configuration avant que les images ne soient construites. Le projet fournit une interface en ligne de commande pour exécuter ces audits sur les définitions de conteneurs.
Lints Dockerfiles and inline bash.
Stylelint est un outil d'analyse de code statique et un linter pour CSS et les langages de type style. Il identifie les erreurs, applique les conventions de codage et fonctionne comme un plugin PostCSS pour valider les feuilles de style pendant les pipelines de construction. Le projet se distingue par son support pour les syntaxes non standard, notamment l'analyse de préprocesseur pour SCSS et Less, et la capacité d'extraire et de linter les styles intégrés à partir de JavaScript, HTML et de littéraux de modèle. Il dispose d'un système de correction automatisé qui corrige par programme les violations de style réparables pour assurer la cohérence. Le système fournit une architecture de plugin pour créer des règles, des syntaxes et des formateurs personnalisés. Il couvre un large éventail de capacités d'assurance qualité, notamment la prévention de la syntaxe obsolète, la validation de la spécificité des sélecteurs et l'application de modèles de nommage et de conventions stylistiques. La configuration est gérée par une logique de fusion en cascade qui prend en charge les préréglages partageables et les remplacements spécifiques aux fichiers. L'outil est accessible via une interface en ligne de commande, une API programmatique et diverses intégrations d'éditeur.
Modern CSS and style sheet linting tool.
Icecream is a Python debugging utility designed for inspecting variable values and execution flow during development. It provides a variable inspector that automatically labels values and attaches file and line number metadata to each output. The tool features a builtins injector that adds debugging functions to the global namespace, allowing for universal access across all project files without manual imports. It also includes an inline debugging tool that returns its arguments to the caller, enabling the insertion of inspection calls directly into active expressions without altering program
Debugging tool for inspecting code without print statements.
js-beautify is a web language beautifier and code formatter designed to standardize the layout and structure of JavaScript, HTML, and CSS files. It reorganizes source code into a consistent, readable style by applying configurable indentation and spacing rules. The project includes a utility for unpacking minified scripts, which transforms compressed or obfuscated JavaScript into a human-readable format. It provides a command-line interface for executing bulk code reformatting across multiple files. The tool supports customizable formatting rules and language-specific overrides, which can be
Beautifies JavaScript code.
SwiftFormat is a tool for the Swift language that functions as a code formatter, linter, and refactoring utility. It automatically applies consistent style rules and visual formatting to source files to ensure a uniform appearance across a project. The project differentiates itself by providing both a command-line interface for batch processing and an Xcode extension for integration directly into the development environment. It includes specialized capabilities for modernizing legacy API usage, simplifying language constructs, and inferring formatting options by analyzing an existing codebase
Formats Swift code automatically.
xo is a zero-configuration linting tool for JavaScript and TypeScript. It functions as a wrapper for the ESLint engine, providing a set of strict default rules and static analysis to enforce professional coding standards without requiring manual configuration files. The tool distinguishes itself by providing a zero-config runtime that automatically determines parser settings and linting rules at execution time. It includes a code style formatter to standardize indentation and syntax across all project files. The project covers automated error correction and source code formatting to eliminat
Opinionated JavaScript/TypeScript linter with sensible defaults.
Performs static analysis on C/C++ code.