Skip to content

keep-sorted could handle trailing commas better #33

@JeffFaer

Description

@JeffFaer

There's some logic in keep-sorted to try and gracefully handle lists that don't have a final trailing comma like

ImmutableList.of(
  // keep-sorted start
  1,
  3,
  2
  // keep-sorted end
);

would become the following (commas added and removed as necessary)

ImmutableList.of(
  // keep-sorted start
  1,
  2,
  3
  // keep-sorted end
);

// handleTrailingComma handles the special case that all lines of a sorted segment are terminated
// by a comma except for the final element; in this case, we add a ',' to the
// last linegroup and strip it again after sorting.

There's a couple edge cases here that aren't handled very well right now

  1. Trailing comments after a comma

    This prevents the special case from being triggered

    ImmutableList.of(
      // keep-sorted start
      1,
      3, // three
      2
      // keep-sorted end
    );

    would become

    ImmutableList.of(
      // keep-sorted start
      1,
      2
      3, // three
      // keep-sorted end
    );
  2. Trailing comment after the last line

    The logic still triggers, but we add a comma to the comment

    ImmutableList.of(
      // keep-sorted start
      1,
      3, 
      2 // two
      // keep-sorted end
    );

    would become

    ImmutableList.of(
      // keep-sorted start
      1,
      2 // two,
      3
      // keep-sorted end
    );

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions