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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions