كيف يعمل تنسيق JavaScript؟
يقرأ المُنسِّق شيفرتك حرفاً حرفاً، يتتبع عمق تداخل كل جملة، ثم يُعيد إصدارها بمسافات بادئة متسقة. لا يغير أبداً ما تفعله الشيفرة — فقط طريقة ظهورها.
- التقسيم إلى رموز. تمسح المكتبة مدخلاتك وتحوّله إلى سلسلة من الرموز: كلمات مفتاحية ومعرّفات وسلاسل نصية وعوامل وعلامات ترقيم. تُعامَل السلاسل النصية والقوالب النصية والتعبيرات النمطية بوصفها وحدات متكاملة، فلا يُخطأ في قوس داخل سلسلة نصية بحسبانه حدّ كتلة.
- تتبُّع التداخل. أثناء سير المُنسِّق في سلسلة الرموز يحتفظ بمستوى المسافة البادئة الجارية. كل قوس أو قوس مربع أو قوس دائري فاتح يزيد المستوى درجة؛ وكل قوس إغلاق يُعيده درجة. هذا العمق يحدد عدد وحدات المسافة البادئة أمام كل سطر في الناتج.
- تطبيق خياراتك. يحدد اختيار المسافة البادئة (مسافتان أو 4 مسافات أو مسافة جدولة) عرض كل مستوى. يقرر إعداد أسلوب الأقواس إما أن يلتصق القوس الفاتح بالجملة التي تسبقه أو ينزل إلى سطر خاص به. يُقلّص حد الأسطر الفارغة الأسطر الخالية الطويلة إلى الحد الذي تختاره.
- إعادة الإصدار. أخيراً، يطبع المُنسِّق الرموز مرةً أخرى مع المسافات البادئة وفواصل الأسطر التي حدّدها، مع إضافة الفاصلات المنقوطة التي كان نظام إدراج الفاصلة المنقوطة التلقائي سيضيفها وقت التشغيل. النتيجة هي البرنامج ذاته مُرتَّباً ترتيباً يسهل على الإنسان قراءته.
لماذا نُنسِّق JavaScript؟
- قراءة الشيفرة المضغوطة. تُشحن حزم الإنتاج في سطر واحد بأسماء متغيرات أحادية الحرف. يستعيد التنسيق فواصل الأسطر والمسافات البادئة حتى تتمكن من تتبع خطأ وإرجاعه إلى الجملة التي سبّبته، حتى في غياب خريطة المصدر.
- تنظيم الملفات غير المتسقة. الشيفرة التي لمسها أشخاص متعددون تنزلق نحو مسافات بادئة متخلطة وأساليب أقواس متباينة. مرور واحد عبر المُنسِّق يوحّد الملف بأكمله في تخطيط واحد، فيُظهر الفرق التالي تغييرات المنطق الحقيقية لا ضجيج المسافات.
- هذه الأداة لا تُثقل صفحتك. تحمّل معظم المُنسِّقات أونلاين مكتبتها بالكامل فور فتح الصفحة. هذه الأداة تُحمِّل js-beautify بشكل كسول فقط حين تنقر على تنسيق أو تُشغّل الوضع المباشر، فيكون تحميل الصفحة الأول بضعة كيلوبايتات لا بضع مئات، ويظل التصيير الأولي سريعاً.
- لا شيء يغادر متصفحك. يعمل المُنسِّق كلياً على جهازك. لا تُرفع شيفرتك إلى أي خادم، وهذا مهم حين يكون السكريبت الذي تفحصه ملكاً لعميل، أو يحتوي على مسارات API داخلية، أو يخضع لاتفاقية سرية.
التطبيقات الشائعة
يظهر تنسيق JavaScript في كل مرة يحتاج فيها أحد إلى قراءة شيفرة لم تُكتب أصلاً لتُقرأ.
- تصحيح الإنتاج: الصق حزمة مضغوطة مسحوبة من تبويب الشبكة للعثور على الدالة التي أدت إلى خطأ في المكدس لا يمكن فكّه بطريقة أخرى.
- تجهيز مراجعة الشيفرة: أعد تنسيق ملف مساهم بمسافات بادئة غير متسقة قبل فتح طلب السحب حتى يرى المراجعون المنطق لا اضطراب التخطيط.
- تدقيق الأمان والامتثال: وسّع مقطع تحليلات أو إعلانات من جهة خارجية لتتحقق بالضبط مما يفعله قبل نشره.
مثال عملي
خذ سطراً مضغوطاً: function f(a){if(a){return a*2}else{return 0}}. الصقه أعلاه بمسافة بادئة مضبوطة على مسافتين وأسلوب الأقواس "مضغوط"، ثم انقر تنسيق. ستحصل على كتلة مقروءة: function f(a) {، ثم if (a) { بمسافة بادئة، وجملة return a * 2; متداخلة بمستوى أعمق، والأقواس المطابقة مصطفّة تحتها. غيّر أسلوب الأقواس إلى "موسَّع" وسينزل كل قوس فاتح إلى سطره الخاص. غيّر المسافة البادئة إلى مسافة جدولة وسيتحوّل كل مستوى من مسافتين إلى محرف جدولة. البنية متطابقة؛ ما يتغير فقط هو التخطيط.
FAQ
هل يُشغَّل هذا في متصفحي؟
نعم. تُحمَّل مكتبة js-beautify بشكل كسول في المرة الأولى التي تنقر فيها على تنسيق أو تُفعِّل الوضع المباشر، ثم تُخزَّن. شيفرتك لا تغادر الصفحة — لا رحلة إلى خادم ولا أي رفع.
هل التنسيق هو نفسه إلغاء الضغط؟
يستعيد التنسيق القابلية للقراءة — المسافات البادئة وفواصل الأسطر والمسافات — لكنه لا يستطيع إعادة أسماء المتغيرات الأصلية أو التعليقات التي حذفها التصغير. إن وُجدت خريطة مصدر، يستطيع DevTools في متصفحك استعادة الأسماء الأصلية؛ المُنسِّق وحده يعمل فقط بما هو موجود في الملف.
هل يغير التنسيق سلوك شيفرتي؟
لا. التنسيق يُضيف ويحذف المسافات وفواصل الأسطر فحسب؛ البرنامج يُنفَّذ بصورة مطابقة. الخيار الوحيد الذي يلمس الرموز هو "إضافة الفاصلة المنقوطة المفقودة" الذي يُدرج منهيّات الجمل التي كان نظام الإدراج التلقائي سيضيفها وقت التشغيل أصلاً، مما يجعل الشيفرة آمنة للتصغير لاحقاً.
ماذا تعني خيارات أسلوب الأقواس؟
"مضغوط" يُبقي القوس الفاتح على السطر ذاته مع الجملة (if (x) {)، وهو الأسلوب الشائع في JavaScript. "موسَّع" يُنزل كل قوس فاتح إلى سطره الخاص (أسلوب Allman). "توسيع نهائي" يُبقي القوس الفاتح ملتصقاً بالجملة لكنه يضع else وcatch في سطر جديد بعد القوس المغلق.
يمنحك تنسيق JavaScript من جانب المتصفح شيفرةً مقروءة دون خطوة بناء أو رفع. الصق سكريبتاً مضغوطاً أو غير منظَّم، اختر المسافة البادئة وأسلوب الأقواس، ثم انسخ الناتج أو نزّله. لا شيء يغادر جهازك، ولا حساب مطلوب، والمكتبة لا تُحمَّل إلا حين تطلبها — فتحميل هذه الصفحة يكلّفك بضعة كيلوبايتات لا ميغابايت.