44 Repos
Linter, Formatierer und statische Analysetools für Swift.
Explore 44 awesome GitHub repositories matching part of an awesome list · Tools für Codequalität. 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.
Dieses Projekt ist ein kompromissloser, deterministischer Code-Formatter für Python. Er funktioniert, indem er Quellcode in einen abstrakten Syntaxbaum parst und ihn gemäß einer starren, meinungsstarken Menge von Stilregeln neu generiert. Durch die Automatisierung des Formatierungsprozesses werden manuelle Stildiskussionen und Konfigurationsaufwand eliminiert, wodurch sichergestellt wird, dass der Code über ganze Projekte hinweg konsistent bleibt, unabhängig von der ursprünglichen Eingabe. Das Tool zeichnet sich durch seinen Fokus auf Geschwindigkeit und nahtlose Integration in Entwicklungsworkflows aus. Es nutzt inhaltsbasiertes Datei-Caching und parallele Verarbeitung, um eine hohe Leistung bei großen Codebasen aufrechtzuerhalten, während es gleichzeitig Versionskontroll-Hooks unterstützt, um die Stil-Konsistenz vor dem Commit sicherzustellen. Um die Projekthistorie zu bewahren, bietet es Mechanismen, um spezifische Commits in der Versionskontroll-Blame-Verfolgung zu ignorieren, wodurch sichergestellt wird, dass automatisierte Stiländerungen die ursprüngliche Autorenschaft nicht verdecken. Über Standard-Quelldateien hinaus erweitert der Formatter seine Fähigkeiten auf Jupyter-Notebooks, Typ-Stubs und eingebettete Codebeispiele innerhalb der Dokumentation. Er bietet breite Kompatibilität durch Plugins für gängige Texteditoren und integrierte Entwicklungsumgebungen sowie Unterstützung für das Language Server Protocol. Die Konfiguration wird über projektweite Dateien verwaltet, die automatisch innerhalb der Verzeichnishierarchie entdeckt werden, was ein konsistentes Verhalten über verschiedene Entwicklungsumgebungen hinweg ermöglicht.
Formats Python code automatically.
Dieses Projekt ist ein statisches Analysetool und Linter, das darauf ausgelegt ist, die Qualität, Zuverlässigkeit und Portabilität von Shell-Skripten zu verbessern. Durch eine tiefgehende strukturelle Analyse identifiziert es häufige Programmierfallen, Syntaxfehler und Sicherheitslücken, bevor Skripte ausgeführt werden. Es fungiert als automatisierter Code-Reviewer, der Best Practices durchsetzt und Entwicklern hilft, konsistenten, robusten Code über verschiedene Betriebsumgebungen hinweg zu pflegen. Das Tool zeichnet sich durch seine dialektbewusste Grammatikauflösung aus, die seine Parsing-Logik basierend auf dem erkannten spezifischen Shell-Interpreter anpasst. Es nutzt eine hochentwickelte Engine, die einen abstrakten Syntaxbaum konstruiert, um Logik, Quoting und Portabilitätsbedenken zu bewerten. Entwickler können durch die Verwendung von Inline-Direktiven eine granulare Kontrolle über den Analyseprozess ausüben, um spezifische Warnungen zu unterdrücken oder zu konfigurieren, wie das Tool externe Quelldateien auflöst. Das Projekt deckt eine umfassende Oberfläche an Diagnosefähigkeiten ab, die von grundlegender Syntaxvalidierung bis hin zu komplexen Logikprüfungen reicht. Es bietet Anleitungen zur idiomatischen Skriptkonstruktion, einschließlich sicherer Dateibehandlung, effizienter arithmetischer Operationen und korrekter Befehlssubstitution. Diese Funktionen stellen gemeinsam sicher, dass Skripte POSIX-Standards einhalten und über verschiedene Shell-Implementierungen hinweg kompatibel bleiben. Das Tool wird als Befehlszeilen-Dienstprogramm vertrieben, was die Integration in Entwicklungsworkflows ermöglicht, um sofortiges Feedback zur Skriptintegrität zu geben.
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 ist eine Datenvalidierungsbibliothek und ein Parsing-Framework für Python. Es fungiert als typbasierter Schema-Validator, der Standard-Python-Typannotationen verwendet, um sicherzustellen, dass Eingabedaten vordefinierten strukturellen Schemata entsprechen. Das Projekt bietet Funktionen zum Parsen von Rohdaten in typisierte Objekte durch automatische Typkonvertierung und Validierung. Dies umfasst die Serialisierung von Daten und die Validierung von Datenstrukturen zur Durchsetzung der Korrektheit. Das Framework deckt verschiedene Anwendungsbereiche ab, einschließlich der Verifizierung von API-Anfragen und der Verwaltung von Anwendungskonfigurationen. Es ermöglicht die Transformation von Rohformaten wie JSON in strukturierte Python-Objekte.
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 ist ein Test-Framework für Python, das einen Befehlszeilen-Runner zum Entdecken und Ausführen von Testsuiten bereitstellt. Es basiert auf einer modularen Architektur, die Standard-Sprach-Assertions verwendet, um die Korrektheit des Codes zu verifizieren, und Ausdrücke automatisch inspiziert, um detaillierte Fehlerberichte zu liefern, ohne dass spezialisierte Assertions-Methoden erforderlich sind. Das Framework zeichnet sich durch ein Dependency-Injection-System aus, das Setup- und Teardown-Logik verwaltet, indem es Ressourcen automatisch auflöst und in Testfunktionen injiziert. Es bietet zudem eine Hook-basierte Plugin-Architektur, die eine tiefe Anpassung des Test-Lebenszyklus ermöglicht, einschließlich Sammlung, Ausführung und Berichterstattung. Diese Fähigkeiten werden durch dynamische Parametrisierung unterstützt, die mehrere Testinstanzen aus einer einzigen Definition generiert, sowie durch persistentes State-Caching, das das selektive erneute Ausführen fehlgeschlagener Tests über Sitzungen hinweg ermöglicht. Über das Kern-Ausführungsmodell hinaus bietet das Projekt eine umfassende Suite von Tools zur Verwaltung von Testumgebungen, einschließlich Output-Capture, Log-Management und Warnungsvalidierung. Es unterstützt komplexe Testszenarien durch Funktionen wie temporäres Dateimanagement, Objekt-Patching und die Möglichkeit, bestehende Testsuiten anderer Frameworks nativ auszuführen. Die Konfiguration erfolgt über zentralisierte Dateien, was eine fein abgestimmte Kontrolle über Testentdeckung, Filterung und Ausführungsverhalten ermöglicht. Das Projekt wird als Standard-Python-Paket vertrieben und enthält eine umfangreiche Dokumentation zu Konfiguration, Plugin-System und Befehlszeilenschnittstelle.
Framework for writing and running Python tests.
Hadolint ist ein statisches Analysetool zur Validierung von Container-Build-Konfigurationen. Es fungiert als Sicherheitsscanner und Konfigurationsprüfer, der Build-Anweisungen in ein strukturiertes Format parst, um Abweichungen von Sicherheits- und Effizienzstandards zu identifizieren. Das Tool zeichnet sich durch eine tiefgehende Inspektion eingebetteter Shell-Befehle aus. Durch das Tokenisieren und Analysieren dieser Skripte erkennt es häufige Skriptfehler und Sicherheitslücken, die ansonsten innerhalb eines Container-Images bestehen bleiben könnten. Es integriert externe Analysetools, um eine spezialisierte Validierung für diese Inline-Befehle bereitzustellen und sicherzustellen, dass sowohl die Containerstruktur als auch die Ausführungslogik bewertet werden. Über die grundlegende Syntaxprüfung hinaus unterstützt das Dienstprogramm automatisierte Workflows durch die Identifizierung ineffizienter Layer-Erstellung und unsicherer Konfigurationseinstellungen. Es ist für die Integration in Continuous-Integration- und Deployment-Pipelines konzipiert, um Konfigurationsprobleme zu erkennen, bevor Images gebaut werden. Das Projekt bietet eine Befehlszeilenschnittstelle zur Ausführung dieser Audits über Container-Definitionen hinweg.
Lints Dockerfiles and inline bash.
Stylelint ist ein Tool zur statischen Codeanalyse und ein Linter für CSS und stilähnliche Sprachen. Es identifiziert Fehler, erzwingt Codierungskonventionen und fungiert als PostCSS-Plugin, um Stylesheets während Build-Pipelines zu validieren. Das Projekt zeichnet sich durch die Unterstützung nicht standardmäßiger Syntaxen aus, einschließlich Preprocessor-Parsing für SCSS und Less, sowie die Fähigkeit, eingebettete Stile aus JavaScript, HTML und Template-Literalen zu extrahieren und zu linten. Es verfügt über ein automatisiertes Korrektursystem, das reparierbare Stilverstöße programmatisch korrigiert, um Konsistenz sicherzustellen. Das System bietet eine Plugin-Architektur zur Erstellung benutzerdefinierter Regeln, Syntaxen und Formatierer. Es deckt ein breites Spektrum an Qualitätssicherungsfähigkeiten ab, einschließlich der Vermeidung veralteter Syntax, der Validierung der Selektorspezifität und der Durchsetzung von Namensmustern und stilistischen Konventionen. Die Konfiguration wird über eine kaskadierende Zusammenführungslogik verwaltet, die gemeinsam nutzbare Presets und dateispezifische Überschreibungen unterstützt. Das Tool ist über eine Befehlszeilenschnittstelle, eine programmatische API und verschiedene Editor-Integrationen zugänglich.
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.