ما الذي يغيّره المنسّق أو المضغّط في الكود؟
يغيّر المنسّق التخطيط — المسافات وفواصل الأسطر والمسافات البادئة — ليصبح HTML أو CSS أو JavaScript متسقاً في القراءة، وبعض المنسّقات يوحّد أيضاً تفاصيل تعدّها اللغة متكافئة، مثل حالة أحرف أسماء الوسوم في HTML أو علامات اقتباس السمات؛ والمضغّط يزيل ما لا يحتاجه المتصفح — التعليقات والمسافات والفواصل المنقوطة الاختيارية — وقد يعيد كتابة القيم بصيغ أقصر مكافئة مثل #fff بدلاً من #ffffff. لا يُقصد بأيٍّ منهما تغيير ما يفعله الكود، لكن راجع الفروق قبل اعتمادها: فالخيار الذي يعيد ترتيب الكود، مثل ترتيب خصائص CSS، قد يغيّر التصريح الذي يسري، وتحويل اسم الوسم إلى أحرف صغيرة يُفسد مكوّناً في إطار عمل يميّز حالة الأحرف مثل <MyComponent>.
كيفية استخدام منسّق JavaScript
- الصق كود JavaScript أو TypeScript (يعمل مع الكود المصغّر أيضاً).
- اختر المسافة البادئة وعدد الأسطر الفارغة التي تريد الاحتفاظ بها.
- انسخ الكود المنسّق من لوحة الإخراج.
مزايا منسّق JavaScript
- إعادة تنسيق المسافات البادئة لكود JavaScript وTypeScript المصغّر أو غير المرتّب
- فهم السلاسل النصية والقوالب النصية ذات ${} المتداخلة وتعابير regex الحرفية والتعليقات
- توحيد التباعد حول العوامل والكلمات المفتاحية والأقواس والفواصل
- التعامل مع switch/case والدوال السهمية والأصناف (classes) والأنواع العامة (generics) والكائنات الحرفية
- الحفاظ على فواصل الأسطر ونمط الفواصل المنقوطة لديك (آمن مع ASI — لا يغيّر السلوك أبداً)
- الاحتفاظ بعدد محدد من الأسطر الفارغة كحدّ أقصى؛ وخيار وضع else/catch في سطر جديد
مثال على منسّق JavaScript
توسيع دالة مصغّرة
الإدخال:
function sum(a,b){if(!a)return b;return a+b}النتيجة:
function sum(a, b) {
if (!a) return b;
return a + b
}الأسئلة الشائعة حول منسّق JavaScript
هل يدعم TypeScript؟
نعم. تُنسَّق توصيفات الأنواع (type annotations) والأنواع العامة مثل Map<string, number> والواجهات (interfaces) والمزخرفات (decorators)؛ فالمجزّئ (tokenizer) مشترك بين JS وTS.
هل يضيف فواصل منقوطة أو يزيلها؟
لا. يحافظ المنسّق على فواصل الأسطر ونمط الفواصل المنقوطة لديك، بحيث يعمل الإدراج التلقائي للفاصلة المنقوطة (ASI) تماماً كما كان. فهو يعيد ضبط المسافات البادئة ويوحّد التباعد فقط.
هل تعابير regex الحرفية والقوالب النصية والتعليقات في أمان؟
نعم. يفهم المجزّئ تعابير regex الحرفية (بما فيها فئات الأحرف)، والقوالب النصية ذات تعابير ${} المتداخلة، وكلا نمطي التعليقات، فلا يُعدَّل محتواها أبداً.
هل يمكنه تنسيق الكود المصغّر؟
نعم — هذه هي حالة الاستخدام الرئيسية. يُوسَّع الكود المصغّر المكتوب في سطر واحد إلى جمل مقروءة بمسافات بادئة. لكن لا يمكن بالطبع استعادة المعرّفات التي أُعيدت تسميتها.
هل يغادر الكود الخاص بي المتصفح؟
لا. يتم التنسيق محلياً في متصفحك.
ملاحظات تقنية
هذا منسّق للمسافات البيضاء وليس محلّلاً كاملاً: فهو لا يعيد كتابة الرموز أبداً، ولذلك فهو آمن مع الصياغات التي لا يفهمها تماماً (JSX، والمزخرفات، والمقترحات الأحدث). ولأن JavaScript تعتمد الإدراج التلقائي للفاصلة المنقوطة، تُحفظ فواصل الأسطر الموجودة ولا تُضاف فواصل جديدة إلا بعد ; و{ و}.
المراجع
- HTML Living Standardلغة HTML، بما فيها مراجع المحارف المسماة (الكيانات) وقواعد التحليل التي تتبعها المتصفحات.
- ECMAScript® Language Specification (ECMA-262)معيار لغة JavaScript، بما فيه قواعد RegExp ودلالاتها، وJSON.parse/JSON.stringify، وكائن Date.