HLint vs SwiftLint
HLint
github.comSwiftLint
realm.github.ioSide by side
| Figure | HLint | SwiftLint |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Linters | 7.7 (#19) | 8.0 (#11) |
| Configuration | Projects can configure HLint with a .hlint.yaml file, including custom hints and ignored suggestions. | File inclusions and exclusions can be configured in a `.swiftlint.yml` configuration file. |
| Integrations | The project lists editor plugins, Haskell Language Server, ghc-mod, Intero, a GHC source plugin, Code Climate, and GitHub Actions among its integrations. | Documented integrations include Swift Package Manager and Xcode plugins, pre-commit, Fastlane, Docker, Visual Studio Code, and MegaLinter. |
| License | The repository provides HLint under a BSD-style license that permits redistribution and use in source and binary forms subject to listed conditions. | The GitHub repository identifies SwiftLint as MIT licensed. |
| Output | Each hint identifies the file and line, its severity and description, the code found, and a possible replacement. | The command line supports linting, analysis, baselines, rule listings, and multiple reporters. |
| Purpose | HLint suggests possible improvements to Haskell code, including alternative functions, simplifications, and redundancies. | SwiftLint enforces Swift style and conventions based on rules generally accepted by the Swift community. |
Plans
In their own words
HLint
HLint is free software for analyzing Haskell source and suggesting possible improvements. It can point out alternative functions, simpler expressions, and redundant code. Every hint identifies the file and line, gives a severity and description, shows the code found, and proposes a replacement. Projects can configure behavior in a .hlint.yaml file, adding custom hints or ignoring selected suggestions. The --refactor flag applies some recommendations and requires the refactor executable from the apply-refact package on PATH. The --report flag creates an interactive HTML findings report. HLint runs on Linux, macOS, and Windows, with listed integrations including editor plugins, Haskell Language Server, ghc-mod, Intero, a GHC source plugin, Code Climate, and GitHub Actions. It analyzes one module at a time without type or scope knowledge. Version 3.10 is listed as released February 2, 2024. It is distributed under a BSD-style license.
SwiftLint
SwiftLint is a free, MIT-licensed tool that checks Swift source against style rules and conventions accepted by the Swift community. It includes more than 200 built-in rules, with opt-in rules disabled by default. A project can set active rules, included and excluded paths, and rule settings in a `.swiftlint.yml` file. SwiftLint can automatically correct some violations, overwriting affected files, and its command line supports linting, analysis, baselines, rule listings, and multiple reporters. Documented integrations include Xcode and Swift Package Manager plugins, pre-commit, Fastlane, Docker, Visual Studio Code, and MegaLinter. Installation choices include package managers, prebuilt packages, and source builds. Releases include macOS, Windows, and Linux binaries. SwiftLint is intended for valid, compilable source, and non-compiling code may produce unexpected results, especially when autocorrecting. Analyzer rules are considerably slower than lint rules. The project is maintained by volunteers, and the maintainers describe it as non-commercial.