Skip to content

Combinations of numbers and letters no longer considered a single token in v6 #553

Closed
@greysteil

Description

@greysteil

First up, thanks for all your work on jsdiff, and for the v6 release.

We have a bunch of tests around diffs, and I noticed an unexpected change:

On v5:

// Diff.diffWordsWithSpace("at least $2m", "at least $4m")
Array [
  Object {
    "count": 5,
    "value": "at least $",
  },
  Object {
    "added": undefined,
    "count": 1,
    "removed": true,
    "value": "2m",
  },
  Object {
    "added": true,
    "count": 1,
    "removed": undefined,
    "value": "4m",
  },
]

On v6:

// Diff.diffWordsWithSpace("at least $2m", "at least $4m")
Array [
  Object {
    "added": false,
    "count": 5,
    "removed": false,
    "value": "at least $",
  },
  Object {
    "added": false,
    "count": 1,
    "removed": true,
    "value": "2",
  },
  Object {
    "added": true,
    "count": 1,
    "removed": false,
    "value": "4",
  },
  Object {
    "added": false,
    "count": 1,
    "removed": false,
    "value": "m",
  },
]

Not sure if this is a deliberate change or not? I think where words and numbers are combined it's probably best to treat them as a single Word.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions