لماذا تُعدّ المسافة البادئة بالـ tabs مقابل الـ spaces مهمة في الكود؟

الـ tabs والـ spaces هما الأسلوبان الرئيسيان للمسافة البادئة في الكود المصدري، والخلط بينهما يُعدّ من أكثر أسباب تناقضات التنسيق شيوعًا عبر المشاريع. تعرض المحررات المختلفة محرف الـ tab بعرض متفاوت — بعضها يعرضه بمقدار مسافتين، وأخرى بمقدار 4 أو 8 مسافات — مما يعني أن الكود الذي يبدو منسقًا تمامًا على جهاز ما قد يظهر مكسورًا على جهاز آخر. أما الـ spaces فتُعرض بشكل متطابق في كل مكان، لكنها تستهلك مزيدًا من البايتات وتتطلب ضغطات متعددة على لوحة المفاتيح دون دعم المحرر.

تفرض معظم أدلة الأسلوب الحديثة والـ linters أسلوبًا واحدًا للمسافة البادئة. اللغات مثل Python حساسة للمسافات البيضاء وقد تُظهر أخطاءً عند الخلط بين الـ tabs والـ spaces داخل نفس الكتلة. كما أن ملفات الإعداد مثل YAML وMakefiles لها قواعد صارمة للمسافات البيضاء تجعل اختيار المحرف الصحيح أمرًا ضروريًا.

وصف الأداة

تُحوّل هذه الأداة بين الـ tabs والـ spaces في أي نص أو مقتطف كود. الصق أو اكتب محتوى يستخدم المسافة البادئة بالـ tabs لاستبدال كل tab بعدد قابل للضبط من الـ spaces، أو حوّل المسافة البادئة المبنية على الـ spaces إلى tabs. يستخدم كلٌّ من الإدخال والإخراج محرر كود مع عرض مرئي للمسافات البيضاء، بحيث يمكنك رؤية النقاط للـ spaces والأسهم للـ tabs فورًا.

أمثلة

من tabs إلى spaces (4 spaces لكل tab):

إدخال:

function greet() {
→   const name = "World";
→   console.log(`Hello, ${name}`);
}

إخراج:

function greet() {
    const name = "World";
    console.log(`Hello, ${name}`);
}

من spaces إلى tabs (مسافتان لكل tab):

إدخال:

def greet():
  name = "World"
  print(f"Hello, {name}")

إخراج:

def greet():
→ name = "World"
→ print(f"Hello, {name}")

الميزات

  • تحويل ثنائي الاتجاه بين الـ tabs والـ spaces
  • عدد قابل للضبط من الـ spaces لكل tab (من 1 إلى 32)
  • محرر كود مع تمييز مرئي للأحرف غير المرئية (نقاط للـ spaces، وأسهم للـ tabs)
  • تحويل فوري في الوقت الفعلي أثناء الكتابة
  • يعمل مع أي لغة برمجة أو نص عادي

حالات الاستخدام

  • إعادة تنسيق الكود ليتوافق مع ملف .editorconfig الخاص بالمشروع أو قواعد الـ linter قبل الـ commit
  • تحويل قواعد الكود القديمة التي تستخدم الـ tabs إلى معيار مبني على الـ spaces (أو العكس)
  • تنظيف الكود المنسوخ من Stack Overflow أو التوثيق الذي يستخدم مسافة بادئة غير متسقة

شرح الخيارات

الخيار الوصف
Spaces لكل tab يحدد عدد أحرف الـ space التي تمثل tab واحدًا. القيم الشائعة هي 2 (Ruby، JS) و4 (Python، Java). يقبل أي قيمة من 1 إلى 32.
قائمة الاتجاه المنسدلة اختر "Tabs" → "Spaces" أو بدّل إلى "Spaces" → "Tabs" باستخدام زر التبديل.

نصائح

  • استخدم عرض الأحرف غير المرئية في المحرر للتحقق من أن إدخالك يحتوي فعلًا على tabs قبل التحويل — إذ تستبدل كثير من المحررات الـ tabs بـ spaces بصمت عند اللصق.
  • عند تحويل الـ spaces إلى tabs، تأكد من أن إعداد عدد الـ spaces لديك يتطابق مع عرض المسافة البادئة الأصلية، وإلا قد تبقى مسافة بادئة جزئية.