Rule: member-ordering

Enforces member ordering.

Rationale

A consistent ordering for class members can make classes easier to read, navigate, and edit.

Config

One argument, which is an object, must be provided. It should contain an order property. The order property should have a value of one of the following strings:

  • fields-first
  • statics-first
  • instance-sandwich

Alternatively, the value for order maybe be an array consisting of the following strings:

  • public-static-field
  • protected-static-field
  • private-static-field
  • public-instance-field
  • protected-instance-field
  • private-instance-field
  • constructor
  • public-static-method
  • protected-static-method
  • private-static-method
  • public-instance-method
  • protected-instance-method
  • private-instance-method

This is useful if one of the preset orders does not meet your needs.

Examples
"member-ordering": [true, { "order": "fields-first" }]
Schema
{
  "type": "object",
  "properties": {
    "order": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "fields-first",
            "statics-first",
            "instance-sandwich"
          ]
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "public-static-field",
              "public-static-method",
              "protected-static-field",
              "protected-static-method",
              "private-static-field",
              "private-static-method",
              "public-instance-field",
              "protected-instance-field",
              "private-instance-field",
              "constructor",
              "public-instance-method",
              "protected-instance-method",
              "private-instance-method"
            ]
          },
          "maxLength": 13
        }
      ]
    }
  },
  "additionalProperties": false
}