pro_lints 5.1.0 copy "pro_lints: ^5.1.0" to clipboard
pro_lints: ^5.1.0 copied to clipboard

Common Lints package.

Pro Lints #

pub package

A comprehensive and opinionated set of lint rules for Dart and Flutter projects. This package provides strict but practical linting rules to help you write clean, maintainable, and error-free code.

Features #

  • 🎯 200+ lint rules carefully selected for production-ready code
  • 🔒 Strict type safety with disabled implicit casts and dynamic types
  • 📏 Consistent code style enforcing best practices
  • Production-focused rules that catch common bugs early
  • 🛠️ Easy setup - just one line in your analysis_options.yaml

Installation #

Add pro_lints as a dev dependency to your project:

dart pub add --dev pro_lints

Or for Flutter projects:

flutter pub add --dev pro_lints

Usage #

Create or edit analysis_options.yaml in the root of your package:

include: package:pro_lints/common.yaml

That's it! The analyzer will now use the comprehensive lint rules from this package.

What's Included #

Analyzer Settings #

  • Strict mode enabled: No implicit casts or dynamic types
  • Build folder excluded from analysis
  • Critical errors enforced: Missing returns, invalid assignments, required parameters

Key Lint Rules #

This package enables:

  • ✅ Type safety and null safety rules
  • ✅ Code style consistency (trailing commas, quotes, formatting)
  • ✅ Performance optimizations
  • ✅ Flutter best practices
  • ✅ Documentation requirements for public APIs
  • ✅ Import organization and dependency management
  • ✅ Error handling patterns
  • ✅ Const correctness

Notable Rules #

  • always_declare_return_types - Explicit return types everywhere
  • prefer_final_locals / prefer_final_fields - Immutability by default
  • require_trailing_commas - Better diffs and formatting
  • lines_longer_than_80_chars - Readable line length
  • prefer_relative_imports - Cleaner import structure
  • avoid_dynamic_calls - Type safety enforcement
  • use_build_context_synchronously - Async Flutter safety

Customization #

You can override any rule by adding it to your analysis_options.yaml:

include: package:pro_lints/common.yaml

linter:
  rules:
    # Disable a specific rule
    lines_longer_than_80_chars: false
    
    # Or enable additional rules
    always_specify_types: true

For more details on customizing static analysis, see the official Dart documentation.

Version History #

See CHANGELOG.md for version history.

Contributing #

Contributions are welcome! Please open an issue or pull request on GitHub.

License #

See LICENSE file for details.