solid_lints icon indicating copy to clipboard operation
solid_lints copied to clipboard

New rule: `named_parameters_order` for customizable parameter ordering

Open NattyPluz opened this issue 1 year ago • 0 comments

The flutter_lints rule always_put_required_named_parameters_first enforces placing required named parameters before others. I propose extending and enhancing this rule in solid_lint to support a more flexible ordering for different types of parameters, offering greater control and consistency.

Suggested parameter types:

  • super: parameters for constructors using super.
  • required: Mandatory, non-nullable parameters.
  • nullable: Optional parameters that may be null.
  • default: parameters with default values.

Proposed rule configuration:

rules:
  - named_parameters_order:
    order: 
      - super
      - super_required
      - required
      - nullable
      - default

For example:

class User {
  final String userId;
  final String accountType;

  User({
    required this.userId,          // super parameter
    required this.accountType,      // super_required parameter
  });
}

class UserProfile extends User {
  final String name;
  final String email;
  final String? age;
  final String? country;
  final bool isActive;

  Profile({
    // Super parameters
    super.userId,

    // Super required parameter
    required super.accountType,
    
    // Required parameters
    required this.name,
    required this.email,

    // Nullable parameters
    this.age,
    this.country,

    // Default parameter
    this.isActive = true,
  });
}

NattyPluz avatar Nov 02 '24 02:11 NattyPluz