ما هي الأحرف غير المرئية؟

الأحرف غير المرئية هي نقاط رموز Unicode التي لا تحتوي على رمز مرئي ولكنها تشغل مساحة في السلسلة النصية وتؤثر على كيفية معالجة البرنامج أو عرض النص. وتشمل أحرف التحكم (مثل علامة التبويب وتغذية السطر)، وأحرف التنسيق (مثل رابطات عرض صفري والعلامات الاتجاهية)، ومتغيرات المسافات البيضاء المختلفة، والعلامات الخاصة مثل علامة ترتيب البايتات (BOM). نظراً لأنها لا تبدو بأي شيء، فمن الصعب جداً اكتشافها في محرر النصوص العادي وهي مصدر شائع للأخطاء الدقيقة والتخطيطات المكسورة وأخطاء معالجة البيانات.

وصف الأداة

عارض الأحرف غير المرئية هو محرر نصوص تفاعلي يعرض كل حرف غير مرئي كرمز مرئي في مكانه مباشرة. الصق أو اكتب أي نص وسيتم استبدال كل حرف مخفي على الفور برمز صغير - تظهر علامات التبويب كـ ، والمسافات كـ ·، والمسافات ذات العرض الصفري كـ ·، والعلامات الاتجاهية كـ / ، وBOM كـ ، وما إلى ذلك. عند تحريك المؤشر فوق أي رمز، يظهر تلميح يحتوي على الاسم الكامل للحرف ونقطة رمز Unicode. لا شيء يترك المحرر؛ كل العرض يحدث محلياً في متصفحك.

أمثلة

نص الإدخال (خام) ما تراه في العارض
Hello\u200BWorld (مسافة عرض صفري بين الكلمات) Hello·World مع رمز · يشير إلى U+200B
\u202Eright-to-left override →right-to-left override مع الرمز الاتجاهي في البداية
line one\r\nline two رموز إرجاع العربة وتغذية السطر قبل السطر الجديد
\uFEFFstart of file ▯start of file يعرض BOM في الموضع 0

الميزات

  • العرض المضمن: يتم عرض الأحرف غير المرئية كرموز مباشرة داخل المحرر بدلاً من لوحة منفصلة، لذا تراها في السياق مع النص المحيط
  • تغطية أحرف واسعة: يتعامل مع أحرف التحكم C0 و C1، وجميع أحرف تنسيق Unicode المسماة، ومتغيرات مسافات Unicode (مسافة en، مسافة em، مسافة شعر، مسافة ضيقة بدون فاصل، إلخ)، وأحرف التنسيق الاتجاهي، ومحددات التباين، وأحرف العلامات، وBOM
  • التلميحات: يعرض تحريك المؤشر فوق أي رمز الاسم الكامل للحرف ونقطة رمز Unicode (على سبيل المثال، Zero Width Space — U+200B)

كيف يعمل

تستخدم الأداة CodeMirror 6 مع ملحق مخصص يتكرر على كل حرف في منفذ المحرر المرئي. لكل نقطة رمز، يتحقق من جدول البحث للأحرف غير المرئية المعروفة، واختبارات ضد فئات خصائص Unicode \p{Cc} (تحكم) و \p{Cf} (تنسيق)، واكتشاف محددات التباين ونطاقات أحرف العلامات. يتم استبدال الأحرف المطابقة برموز ديكوريشن مضمنة تعرض الرمز الغليفي المقابل. يتم تفويض المسافات وعلامات التبويب العادية إلى ملحق highlightWhitespace المدمج في CodeMirror.