realm/SwiftLint

A tool to enforce Swift style and conventions.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 42 minutes ago
Added to GitGenius on June 19th, 2026
Created on May 16th, 2015
Open Issues & Pull Requests: 500 (+0)
Number of forks: 2,320
Total Stargazers: 19,706 (+0)
Total Subscribers: 230 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 16.1 hours
Mean response time: 50.9 days
90th percentile: 116.6 days
Tracked items: 417

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 94% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "repro-needed" is answered fastest, typically in about 6 hours, while "rule-request" waits about 2 weeks. 61% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 7% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 133
New in 7 days: 5
Closed in 7 days: 0
Avg open age: 656 days
Stale 30+ days: 120
Stale 90+ days: 100

Recent activity

Opened in 7 days: 5
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 3

Top labels

  • bug (132)
  • enhancement (110)
  • help (73)
  • integration (54)
  • discussion (48)
  • good first issue (45)
  • rule-request (31)
  • stale (17)

Detailed Description

SwiftLint is a tool designed to enforce Swift style and conventions, drawing inspiration from the archived GitHub Swift Style Guide and aligning with community-accepted standards documented in guides like Kodeco's Swift Style Guide. The tool analyzes Swift source code to identify style violations and can automatically correct many of them. It integrates directly into Xcode, displaying violations highlighted in the editor, and supports multiple installation methods including Swift Package Manager, Homebrew, CocoaPods, Mint, Bazel, and pre-built packages.

The implementation of SwiftLint rules relies predominantly on SwiftSyntax for parsing and analysis, though some rules still utilize Clang and SourceKit to access type information when needed. The tool is designed to work with valid, compilable source code and is intended to run after code compiles successfully rather than as a pre-compilation check, as non-compiling code can produce unexpected results especially when using automatic fix features.

SwiftLint offers flexible integration options for different development workflows. It can function as a Swift Package command plugin for command-line execution, as a build tool plugin that runs automatically during compilation for both Swift Package and Xcode projects, or as a Run Script Build Phase for projects with non-standard structures. The build tool plugin automatically locates configuration files within the project directory hierarchy to determine its working directory, though projects with unusual structures may require alternative setup approaches using configuration file inheritance or Run Script phases.

The repository demonstrates active maintenance and community engagement. The repository's contributor base overlaps with major projects including Microsoft's VSCode and TypeScript implementations as well as the Rust language project, suggesting SwiftLint's influence extends across the broader developer tools ecosystem.

Configuration of SwiftLint is managed through YAML configuration files that support file inclusions and exclusions, allowing teams to customize which rules apply to their codebase. The tool supports both inline configuration and parent configuration references for complex project structures. For Xcode integration, users must trust and enable the plugin when first used, with options available to disable validation dialogs for unattended continuous integration environments. The repository maintains documentation in multiple languages including Chinese and Korean, reflecting its international user base and commitment to accessibility across different developer communities.