git » sdk » commit 2d22bbc

Add more emoji

author Stephen Paul Weber
2026-03-25 20:58:40 UTC
committer Stephen Paul Weber
2026-03-26 01:11:55 UTC
parent 8147250f2c6b05301b2f3d5fcd165261fcf13544

Add more emoji

borogove/EmojiUtil.hx +8 -0
test/TestAll.hx +1 -0
test/TestEmojiUtil.hx +42 -0

diff --git a/borogove/EmojiUtil.hx b/borogove/EmojiUtil.hx
index 451f376..e1afbbd 100644
--- a/borogove/EmojiUtil.hx
+++ b/borogove/EmojiUtil.hx
@@ -46,10 +46,18 @@ class EmojiUtil {
 	public static final TAGS = new UnicodeRange(0xE0020, 0xE007F);
 	public static final CYK_SYMBOLS_AND_PUNCTUATION = new UnicodeList(0x3030, 0x303D);
 	public static final LETTERLIKE_SYMBOLS = new UnicodeList(0x2122, 0x2139);
+	public static final GENERAL_PUNCTUATION = new UnicodeList(0x203C, 0x2049);
+	public static final ARROWS = new UnicodeRange(0x2190, 0x21FF);
+	public static final ENCLOSED_ALPHANUMERICS = new UnicodeRange(0x2460, 0x24FF);
+	public static final MISC_SYMBOLS_AND_ARROWS = new UnicodeRange(0x2B00, 0x2BFF);
 
 	public static final KEYCAP_COMBINEABLE = new UnicodeBlocks(new UnicodeList(0x23), new UnicodeList(0x2A), new UnicodeRange(0x30, 0x39));
 
 	public static final SYMBOLIZE = new UnicodeBlocks(
+			GENERAL_PUNCTUATION,
+			ARROWS,
+			ENCLOSED_ALPHANUMERICS,
+			MISC_SYMBOLS_AND_ARROWS,
 			GEOMETRIC_SHAPES,
 			LATIN_SUPPLEMENT,
 			CYK_SYMBOLS_AND_PUNCTUATION,
diff --git a/test/TestAll.hx b/test/TestAll.hx
index 5a8fe65..83f46de 100644
--- a/test/TestAll.hx
+++ b/test/TestAll.hx
@@ -12,6 +12,7 @@ class TestAll {
 			new TestCaps(),
 			new TestClient(),
 			new TestXEP0393(),
+			new TestEmojiUtil(),
 		]);
 	}
 }
diff --git a/test/TestEmojiUtil.hx b/test/TestEmojiUtil.hx
new file mode 100644
index 0000000..2fd316a
--- /dev/null
+++ b/test/TestEmojiUtil.hx
@@ -0,0 +1,42 @@
+package test;
+
+import utest.Assert;
+import borogove.EmojiUtil;
+
+class TestEmojiUtil extends utest.Test {
+	public function testDoubleExclamationMark() {
+		Assert.isFalse(EmojiUtil.isEmoji("‼"));
+		Assert.isTrue(EmojiUtil.isEmoji("‼️"));
+	}
+
+	public function testInterrobang() {
+		Assert.isFalse(EmojiUtil.isEmoji("⁉"));
+		Assert.isTrue(EmojiUtil.isEmoji("⁉️"));
+	}
+
+	public function testArrows() {
+		Assert.isFalse(EmojiUtil.isEmoji("↔"));
+		Assert.isTrue(EmojiUtil.isEmoji("↔️"));
+	}
+
+	public function testCopyright() {
+		Assert.isFalse(EmojiUtil.isEmoji("©"));
+		Assert.isTrue(EmojiUtil.isEmoji("©️"));
+	}
+
+	public function testStar() {
+		Assert.isFalse(EmojiUtil.isEmoji("⭐"));
+		Assert.isTrue(EmojiUtil.isEmoji("⭐️"));
+	}
+
+	public function testRegularEmoji() {
+		Assert.isTrue(EmojiUtil.isEmoji("😀"));
+		Assert.isTrue(EmojiUtil.isEmoji("🚀"));
+	}
+
+	public function testIsOnlyEmoji() {
+		Assert.isTrue(EmojiUtil.isOnlyEmoji("‼️😀🚀"));
+		Assert.isFalse(EmojiUtil.isOnlyEmoji("‼️ a"));
+		Assert.isFalse(EmojiUtil.isOnlyEmoji("‼"));
+	}
+}