linthis
A fast, cross-platform multi-language linter and formatter written in Rust.
Installation
From PyPI (Python users)
# Using pip
# Using uv (recommended)
From crates.io (Rust users)
Features
- Single command for both linting and formatting
- Multi-language support (Rust, Python, TypeScript, JavaScript, Go, Java, C++)
- Auto-detection of project languages
- Configurable exclusion patterns
- Hierarchical configuration (built-in, user, project, CLI)
- Format presets (Google, Airbnb, Standard)
- Parallel file processing for performance
Usage
# Run both lint and format checks
# Lint only (no formatting)
# Format only (no linting)
# Specify files or directories
# Check only staged files
Configuration
Create .linthis.toml in your project root:
# Languages to check (omit for auto-detection)
= ["rust", "python"]
# Files to exclude
= [
"target/**",
"node_modules/**",
"*.generated.rs"
]
# Maximum cyclomatic complexity
= 20
# Formatting preset
= "google"
Supported Languages
| Language | Linter | Formatter |
|---|---|---|
| Rust | clippy | rustfmt |
| Python | pylint, flake8 | black |
| TypeScript | eslint | prettier |
| JavaScript | eslint | prettier |
| Go | golint, go vet | gofmt |
| Java | checkstyle | google-java-format |
| C++ | cpplint, cppcheck | clang-format |
License
MIT