Skip to content

Should "heart on fire" without VS16 count width of 2? #67

@fisker

Description

@fisker

Currently "2764 FE0F 200D 1F525"(❤️‍🔥) is considered width of 2, but "2764 200D 1F525"(❤‍🔥) is considered width of 1.

Maybe only codes in https://www.unicode.org/emoji/charts/emoji-variants.html requires VS16?

Full list of emojis counts as width of 1 from https://www.unicode.org/Public/latest/emoji/emoji-test.txt
  /*             0023 20E3 */ '#⃣', // #⃣ E0.6 keycap: #
  /*             002A 20E3 */ '*⃣', // *⃣ E2.0 keycap: *
  /*             0030 20E3 */ '0⃣', // 0⃣ E0.6 keycap: 0
  /*             0031 20E3 */ '1⃣', // 1⃣ E0.6 keycap: 1
  /*             0032 20E3 */ '2⃣', // 2⃣ E0.6 keycap: 2
  /*             0033 20E3 */ '3⃣', // 3⃣ E0.6 keycap: 3
  /*             0034 20E3 */ '4⃣', // 4⃣ E0.6 keycap: 4
  /*             0035 20E3 */ '5⃣', // 5⃣ E0.6 keycap: 5
  /*             0036 20E3 */ '6⃣', // 6⃣ E0.6 keycap: 6
  /*             0037 20E3 */ '7⃣', // 7⃣ E0.6 keycap: 7
  /*             0038 20E3 */ '8⃣', // 8⃣ E0.6 keycap: 8
  /*             0039 20E3 */ '9⃣', // 9⃣ E0.6 keycap: 9
  /*       26D3 200D 1F4A5 */ '⛓‍💥', // ⛓‍💥 E15.1 broken chain
  /*   26F9 200D 2642 FE0F */ '⛹‍♂️', // ⛹‍♂️ E4.0 man bouncing ball
  /*   26F9 FE0F 200D 2642 */ '⛹️‍♂', // ⛹️‍♂ E4.0 man bouncing ball
  /*        26F9 200D 2642 */ '⛹‍♂', // ⛹‍♂ E4.0 man bouncing ball
  /*  26F9 1F3FB 200D 2642 */ '⛹🏻‍♂', // ⛹🏻‍♂ E4.0 man bouncing ball: light skin tone
  /*  26F9 1F3FC 200D 2642 */ '⛹🏼‍♂', // ⛹🏼‍♂ E4.0 man bouncing ball: medium-light skin tone
  /*  26F9 1F3FD 200D 2642 */ '⛹🏽‍♂', // ⛹🏽‍♂ E4.0 man bouncing ball: medium skin tone
  /*  26F9 1F3FE 200D 2642 */ '⛹🏾‍♂', // ⛹🏾‍♂ E4.0 man bouncing ball: medium-dark skin tone
  /*  26F9 1F3FF 200D 2642 */ '⛹🏿‍♂', // ⛹🏿‍♂ E4.0 man bouncing ball: dark skin tone
  /*   26F9 200D 2640 FE0F */ '⛹‍♀️', // ⛹‍♀️ E4.0 woman bouncing ball
  /*   26F9 FE0F 200D 2640 */ '⛹️‍♀', // ⛹️‍♀ E4.0 woman bouncing ball
  /*        26F9 200D 2640 */ '⛹‍♀', // ⛹‍♀ E4.0 woman bouncing ball
  /*  26F9 1F3FB 200D 2640 */ '⛹🏻‍♀', // ⛹🏻‍♀ E4.0 woman bouncing ball: light skin tone
  /*  26F9 1F3FC 200D 2640 */ '⛹🏼‍♀', // ⛹🏼‍♀ E4.0 woman bouncing ball: medium-light skin tone
  /*  26F9 1F3FD 200D 2640 */ '⛹🏽‍♀', // ⛹🏽‍♀ E4.0 woman bouncing ball: medium skin tone
  /*  26F9 1F3FE 200D 2640 */ '⛹🏾‍♀', // ⛹🏾‍♀ E4.0 woman bouncing ball: medium-dark skin tone
  /*  26F9 1F3FF 200D 2640 */ '⛹🏿‍♀', // ⛹🏿‍♀ E4.0 woman bouncing ball: dark skin tone
  /*       2764 200D 1F525 */ '❤‍🔥', // ❤‍🔥 E13.1 heart on fire
  /*       2764 200D 1FA79 */ '❤‍🩹', // ❤‍🩹 E13.1 mending heart
  /*  1F3CB 200D 2642 FE0F */ '🏋‍♂️', // 🏋‍♂️ E4.0 man lifting weights
  /*  1F3CB FE0F 200D 2642 */ '🏋️‍♂', // 🏋️‍♂ E4.0 man lifting weights
  /*       1F3CB 200D 2642 */ '🏋‍♂', // 🏋‍♂ E4.0 man lifting weights
  /* 1F3CB 1F3FB 200D 2642 */ '🏋🏻‍♂', // 🏋🏻‍♂ E4.0 man lifting weights: light skin tone
  /* 1F3CB 1F3FC 200D 2642 */ '🏋🏼‍♂', // 🏋🏼‍♂ E4.0 man lifting weights: medium-light skin tone
  /* 1F3CB 1F3FD 200D 2642 */ '🏋🏽‍♂', // 🏋🏽‍♂ E4.0 man lifting weights: medium skin tone
  /* 1F3CB 1F3FE 200D 2642 */ '🏋🏾‍♂', // 🏋🏾‍♂ E4.0 man lifting weights: medium-dark skin tone
  /* 1F3CB 1F3FF 200D 2642 */ '🏋🏿‍♂', // 🏋🏿‍♂ E4.0 man lifting weights: dark skin tone
  /*  1F3CB 200D 2640 FE0F */ '🏋‍♀️', // 🏋‍♀️ E4.0 woman lifting weights
  /*  1F3CB FE0F 200D 2640 */ '🏋️‍♀', // 🏋️‍♀ E4.0 woman lifting weights
  /*       1F3CB 200D 2640 */ '🏋‍♀', // 🏋‍♀ E4.0 woman lifting weights
  /* 1F3CB 1F3FB 200D 2640 */ '🏋🏻‍♀', // 🏋🏻‍♀ E4.0 woman lifting weights: light skin tone
  /* 1F3CB 1F3FC 200D 2640 */ '🏋🏼‍♀', // 🏋🏼‍♀ E4.0 woman lifting weights: medium-light skin tone
  /* 1F3CB 1F3FD 200D 2640 */ '🏋🏽‍♀', // 🏋🏽‍♀ E4.0 woman lifting weights: medium skin tone
  /* 1F3CB 1F3FE 200D 2640 */ '🏋🏾‍♀', // 🏋🏾‍♀ E4.0 woman lifting weights: medium-dark skin tone
  /* 1F3CB 1F3FF 200D 2640 */ '🏋🏿‍♀', // 🏋🏿‍♀ E4.0 woman lifting weights: dark skin tone
  /*  1F3CC 200D 2642 FE0F */ '🏌‍♂️', // 🏌‍♂️ E4.0 man golfing
  /*  1F3CC FE0F 200D 2642 */ '🏌️‍♂', // 🏌️‍♂ E4.0 man golfing
  /*       1F3CC 200D 2642 */ '🏌‍♂', // 🏌‍♂ E4.0 man golfing
  /* 1F3CC 1F3FB 200D 2642 */ '🏌🏻‍♂', // 🏌🏻‍♂ E4.0 man golfing: light skin tone
  /* 1F3CC 1F3FC 200D 2642 */ '🏌🏼‍♂', // 🏌🏼‍♂ E4.0 man golfing: medium-light skin tone
  /* 1F3CC 1F3FD 200D 2642 */ '🏌🏽‍♂', // 🏌🏽‍♂ E4.0 man golfing: medium skin tone
  /* 1F3CC 1F3FE 200D 2642 */ '🏌🏾‍♂', // 🏌🏾‍♂ E4.0 man golfing: medium-dark skin tone
  /* 1F3CC 1F3FF 200D 2642 */ '🏌🏿‍♂', // 🏌🏿‍♂ E4.0 man golfing: dark skin tone
  /*  1F3CC 200D 2640 FE0F */ '🏌‍♀️', // 🏌‍♀️ E4.0 woman golfing
  /*  1F3CC FE0F 200D 2640 */ '🏌️‍♀', // 🏌️‍♀ E4.0 woman golfing
  /*       1F3CC 200D 2640 */ '🏌‍♀', // 🏌‍♀ E4.0 woman golfing
  /* 1F3CC 1F3FB 200D 2640 */ '🏌🏻‍♀', // 🏌🏻‍♀ E4.0 woman golfing: light skin tone
  /* 1F3CC 1F3FC 200D 2640 */ '🏌🏼‍♀', // 🏌🏼‍♀ E4.0 woman golfing: medium-light skin tone
  /* 1F3CC 1F3FD 200D 2640 */ '🏌🏽‍♀', // 🏌🏽‍♀ E4.0 woman golfing: medium skin tone
  /* 1F3CC 1F3FE 200D 2640 */ '🏌🏾‍♀', // 🏌🏾‍♀ E4.0 woman golfing: medium-dark skin tone
  /* 1F3CC 1F3FF 200D 2640 */ '🏌🏿‍♀', // 🏌🏿‍♀ E4.0 woman golfing: dark skin tone
  /*      1F3F3 200D 1F308 */ '🏳‍🌈', // 🏳‍🌈 E4.0 rainbow flag
  /*  1F3F3 200D 26A7 FE0F */ '🏳‍⚧️', // 🏳‍⚧️ E13.0 transgender flag
  /*  1F3F3 FE0F 200D 26A7 */ '🏳️‍⚧', // 🏳️‍⚧ E13.0 transgender flag
  /*       1F3F3 200D 26A7 */ '🏳‍⚧', // 🏳‍⚧ E13.0 transgender flag
  /* 1F441 200D 1F5E8 FE0F */ '👁‍🗨️', // 👁‍🗨️ E2.0 eye in speech bubble
  /* 1F441 FE0F 200D 1F5E8 */ '👁️‍🗨', // 👁️‍🗨 E2.0 eye in speech bubble
  /*      1F441 200D 1F5E8 */ '👁‍🗨', // 👁‍🗨 E2.0 eye in speech bubble
  /*  1F575 200D 2642 FE0F */ '🕵‍♂️', // 🕵‍♂️ E4.0 man detective
  /*  1F575 FE0F 200D 2642 */ '🕵️‍♂', // 🕵️‍♂ E4.0 man detective
  /*       1F575 200D 2642 */ '🕵‍♂', // 🕵‍♂ E4.0 man detective
  /* 1F575 1F3FB 200D 2642 */ '🕵🏻‍♂', // 🕵🏻‍♂ E4.0 man detective: light skin tone
  /* 1F575 1F3FC 200D 2642 */ '🕵🏼‍♂', // 🕵🏼‍♂ E4.0 man detective: medium-light skin tone
  /* 1F575 1F3FD 200D 2642 */ '🕵🏽‍♂', // 🕵🏽‍♂ E4.0 man detective: medium skin tone
  /* 1F575 1F3FE 200D 2642 */ '🕵🏾‍♂', // 🕵🏾‍♂ E4.0 man detective: medium-dark skin tone
  /* 1F575 1F3FF 200D 2642 */ '🕵🏿‍♂', // 🕵🏿‍♂ E4.0 man detective: dark skin tone
  /*  1F575 200D 2640 FE0F */ '🕵‍♀️', // 🕵‍♀️ E4.0 woman detective
  /*  1F575 FE0F 200D 2640 */ '🕵️‍♀', // 🕵️‍♀ E4.0 woman detective
  /*       1F575 200D 2640 */ '🕵‍♀', // 🕵‍♀ E4.0 woman detective
  /* 1F575 1F3FB 200D 2640 */ '🕵🏻‍♀', // 🕵🏻‍♀ E4.0 woman detective: light skin tone
  /* 1F575 1F3FC 200D 2640 */ '🕵🏼‍♀', // 🕵🏼‍♀ E4.0 woman detective: medium-light skin tone
  /* 1F575 1F3FD 200D 2640 */ '🕵🏽‍♀', // 🕵🏽‍♀ E4.0 woman detective: medium skin tone
  /* 1F575 1F3FE 200D 2640 */ '🕵🏾‍♀', // 🕵🏾‍♀ E4.0 woman detective: medium-dark skin tone
  /* 1F575 1F3FF 200D 2640 */ '🕵🏿‍♀', // 🕵🏿‍♀ E4.0 woman detective: dark skin tone

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions