المسافة البادئة (التنضيد)

في الشكل الكتابي للعديد من اللغات ، يصف التباعد المسافة الفارغة ( المسافة البيضاء ) المستخدمة قبل النص أو حوله للدلالة على جانب مهم من النص مثل:

تستخدم العديد من لغات البرمجة نظام المسافة البادئة لتحديد كتل التعليمات البرمجية المصدرية .

تُعتبر المسافة البادئة متطابقة تقريبًا بغض النظر عما إذا كان نظام الكتابة من اليسار إلى اليمين (مثل اللاتينية والسيريلية ) أو من اليمين إلى اليسار (مثل العبرية والعربية ) عند النظر إلى بداية السطر ونهايته. على سبيل المثال، تعني المسافة البادئة في بداية السطر أن تكون على اليسار في الكتابة من اليسار إلى اليمين، وعلى اليمين في الكتابة من اليمين إلى اليسار .

كلمة "المسافة البادئة" هي اسم وفعل في آن واحد. الفعل هو عملية تنسيق النص بحيث تكون المسافة البادئة هي العنصر المستخدم، بينما يشير الاسم إلى المساحة الفارغة الناتجة.

الأنواع

هناك ثلاثة أنواع رئيسية من المسافات البادئة: السطر الأول، والمعلق، والكتلة.

كل مثال أدناه موجود داخل مربع يمثل حدود الصفحة، ويستخدم نص لوريم إيبسوم الشائع في الطباعة . يُقاس عرض المسافة البادئة هنا بوحدات مسافة em .

بالنسبة للمسافة البادئة للسطر الأول، يتم وضع مسافة بادئة للسطر الأول من الفقرة، U+2029 فاصل الفقرات

مسافة بادئة للسطر الأول بمقدار 2  em:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua. إننا لا نسمح إلا بالحد الأدنى من النشاط الذي نمارسه من خلال العمل، ولا نتركه بعيدًا عن أي شيء يترتب على ذلك. Duis aute irure dolor in rerehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. باستثناء أن هناك رغبة غير متوقعة، فهي مذنبة بالمسؤولية التي تحرم من أن يكون هويتها عملًا.  

بالنسبة للمسافة البادئة المعلقة، يتم وضع مسافة بادئة في جميع أسطر الفقرة باستثناء السطر الأول.

مسافة بادئة معلقة بمقدار 2  سم:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua. إننا لا نسمح إلا بالحد الأدنى من النشاط الذي نمارسه من خلال العمل، ولا نتركه بعيدًا عن أي شيء يترتب على ذلك. Duis aute irure dolor in rerehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. باستثناء أن هناك رغبة غير متوقعة، فهي مذنبة بالمسؤولية التي تحرم من أن يكون هويتها عملًا.

بالنسبة للمسافة البادئة للفقرة، يتم وضع مسافة بادئة للفقرة بأكملها بالنسبة للفقرة السابقة.

مسافة بادئة بمقدار 2  em على اليسار:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua. إننا لا نسمح إلا بالحد الأدنى من النشاط الذي نمارسه من خلال العمل، ولا نتركه بعيدًا عن أي شيء يترتب على ذلك. Duis aute irure dolor in rerehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. باستثناء أن هناك رغبة غير متوقعة، فهي مذنبة بالمسؤولية التي تحرم من أن يكون هويتها عملًا.

يُستخدم عادةً وضع مسافة بادئة على كلا الجانبين في الاقتباسات، وهو اقتباس مُجمّع ، ويظهر هنا بمسافة 2  em على اليسار واليمين، ولكن نظرًا لعدم محاذاته لليمين ، فإن المساحة الفارغة على اليمين تختلف بناءً على طول السطر:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua. إننا لا نسمح إلا بالحد الأدنى من النشاط الذي نمارسه من خلال العمل، ولا نتركه بعيدًا عن أي شيء يترتب على ذلك. Duis aute irure dolor in rerehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. باستثناء أن هناك رغبة غير متوقعة، فهي مذنبة بالمسؤولية التي تحرم من أن يكون هويتها عملًا.

إليك نفس الشيء كما في السابق ولكن مع ضبط المحاذاة (اليسار واليمين):

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua. إننا لا نسمح إلا بالحد الأدنى من النشاط الذي نمارسه من خلال العمل، ولا نتركه بعيدًا عن أي شيء يترتب على ذلك. Duis aute irure dolor in rerehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. باستثناء أن هناك رغبة غير متوقعة، فهي مذنبة بالمسؤولية التي تحرم من أن يكون هويتها عملًا.

المسافة البادئة في البرمجة

في برمجة الحاسوب ، يُشير مصطلح "المسافة البادئة" إلى تنسيق شفرة المصدر بإضافة مسافة بيضاء إلى يسار نص الشفرة ، وذلك غالبًا لإظهار أن سلسلة أسطر الشفرة تُشكّل كتلة برمجية . عادةً، تُحاذى أسطر الكتلة بمقدار من المسافة البيضاء يُشير إلى عمق الكتلة في البنية الهرمية للشفرة. ويتم إزاحة كل مستوى داخلي في التسلسل الهرمي بمقدار مُضاعف لعرض هذه المسافة البادئة .

عادةً ما يتم تخزين المسافات البيضاء في التعليمات البرمجية على شكل أحرف مسافات بيضاء .

في اللغات ذات التنسيق الحر ، يقتصر دور المسافة البادئة على المبرمج فقط ، إذ يتجاهل معالج الشفرة (أي المترجم أو المفسر ) أحرف المسافات البيضاء. قد تحتوي الشفرة على مسافات بادئة غير متناسقة أو حتى معدومة، ولكنها عمومًا تُنسق بمسافات بادئة متناسقة إلى حد ما.

تعتمد بعض لغات البرمجة على المسافة البادئة لفصل بنية الكتل، وغالبًا ما يتم ذلك عبر قاعدة التباعد . وبسبب هذا الشرط النحوي ، يجب أن يتمتع الكود بمستوى من الاتساق لا يُشترط في لغات البرمجة الحرة.

تصف المصطلحات الجديدة outdent و unindent و dedent عكس المسافة البادئة - محاذاة نص الكود في سطر إلى يسار السطر السابق.

الاختلافات

تشمل الاختلافات الشائعة في تطبيق المسافات البادئة ما يلي: مقدار المسافة البادئة لكل كتلة في كل مستوى من مستويات التسلسل الهرمي للبرنامج، والتي تُقاس عادةً بالمسافات، وما إذا كان يتم تخزين أحرف المسافات البيضاء كمسافات عادية أو كعلامات جدولة . على الرغم من وجود ممارسات شائعة، إلا أن الإجماع ليس عالميًا. [ 1 ] وتتأثر هذه الاختلافات بعوامل قد تشمل، على سبيل المثال لا الحصر: قواعد اللغة، واللوائح التنظيمية ، والتفضيلات الشخصية.

الممارسات الشائعة

يوضح الجدول التالي الممارسات البارزة فيما يتعلق بمسافة بادئة الكود.

لغةحر الشكل؟ملحوظة
سحقنعميقترح دليل أسلوب فريتز ميهنر استخدام 2 أو 4 أو 8 مسافات ويستخدم 2 في جميع الأمثلة [ 2 ]

تستخدم جوجل مسافتين [ 3 ]

جنعمتستخدم نواة لينكس علامة تبويب واحدة [ 4 ] [ 5 ]

تستخدم ناسا 4 مساحات. [ 6 ]

كلينتون ستالي يؤيد 3 مسافات [ 7 ]

لغة سي++نعميوصي WebKit بأربع مسافات [ 8 ]

تستخدم جوجل مسافتين [ 9 ]

سي شاربنعماتفاقية مايكروسوفت : 4  مسافات [ 10 ]
CSSنعميستخدم كل من Drupal و GitHub و Google مسافتين [ 11 ] [ 12 ] [ 13 ] [ 14 ]

يستخدم ووردبريس علامات التبويب [ 15 ]

دارتنعمdart formatيستخدم مساحتين
دلفينعمدليل أسلوب دلفي: مسافتان [ 16 ]
فا#نعمدليل أسلوب F#: 4 مسافات [ 17 ]
يذهبنعمفعال Go :  قرص واحد [ 18 ]
هاسكللاتستخدم جوجل مسافتين [ 19 ]
HTMLنعمتستخدم جوجل مسافتين [ 13 ]

يستخدم HTML Tidy افتراضيًا مسافتين [ 20 ]

جافانعمتستخدم أوراكل 4 مسافات [ 21 ]

يستخدم نظام أندرويد 4 مسافات [ 22 ]

تستخدم معظم مكونات بيئة تطوير Eclipse علامات التبويب

جافا سكريبتنعميدعو دوغلاس كروكفورد إلى 4 مساحات [ 23 ]

يستخدم كل من GitHub و Google مسافتين [ 24 ] [ 25 ]

يستخدم jQuery علامات التبويب [ 26 ]

يستخدم مُحسِّن jsbeautifier المدمج في متصفح Firefox افتراضيًا مسافتين.

يستخدم برنامج PrettyPrinter في متصفحي جوجل كروم وإنترنت إكسبلورر 4 مسافات

جوليانعمدليل أسلوب جوليا: 4 مسافات [ 27 ]
كوتليننعمدليل أسلوب كوتلين: 4  مسافات [ 28 ]
لغة لوانعمدليل أسلوب Lua:  مسافتان [ 29 ]
بيرلنعميفضل لاري وول  4 مسافات [ 30 ]
PHPنعميستخدم دروبال مسافتين [ 31 ]

يستخدم كل من PEAR و Zend 4 مسافات [ 32 ] [ 33 ]

يستخدم CodeIgniter و WordPress علامات التبويب [ 34 ] [ 35 ]

يحدد PSR-2 أربعة مسافات [ 36 ]

باور شيلنعمدليل غير رسمي لأفضل ممارسات وأسلوب كتابة PowerShell: 4 مسافات [ 37 ]
بايثونلاPEP 8: 4  مسافات [ 38 ]
روبينعمدليل أسلوب روبي:  مسافتان [ 39 ]
الصدأنعمدليل أسلوب Rust: 4  مسافات [ 40 ]
سكالانعمدليل أسلوب سكالا:  مسافتان [ 41 ]
سويفتنعمتستخدم جوجل مسافتين [ 42 ]
تي سي إلنعمدليل أسلوب Tcl: 4  مسافات [ 43 ]
فيجوال  بيسكنعماتفاقية مايكروسوفت: 4  مسافات [ 44 ]
XMLنعمتستخدم جوجل مسافتين [ 45 ]

علامات تبويب مرنة

في عام 2006، تم اقتراح طريقة جديدة للضغط، تسمى علامات التوقف المرنة . [ 46 ] [ 47 ] [ 48 ] [ 49 ]

مراجع

  1. "علامات الجدولة مقابل المسافات: حرب مقدسة أبدية" . Jwz.org . 5 يناير 2007. تم الاطلاع عليه في 18 يناير 2014 .
  2. "دليل أسلوب Bash ومعيار البرمجة" (ملف PDF) . Lug.fh-swf.de .
  3. "نسخة مؤرشفة" . مؤرشفة من الأصل بتاريخ 26 يونيو 2014. تم الاطلاع عليها بتاريخ 23 يونيو 2014 .{{cite web}}: CS1 maint: archived copy as title ( link )
  4. "نسخة مؤرشفة" . مؤرشفة من الأصل بتاريخ 14 فبراير 2015. تم الاطلاع عليها بتاريخ 15 فبراير 2015 .{{cite web}}: CS1 maint: archived copy as title ( link )
  5. "أسلوب برمجة نواة لينكس" . مؤرشف من الأصل في 11 يونيو 2022. تم الاطلاع عليه في 21 يوليو 2022 .
  6. "دليل أسلوب C" . خادم التقارير الفنية التابع لناسا . أغسطس 1994.
  7. ستالي، كلينتون (2006). "قواعد أسلوب كتابة برامج لغة سي" . قسم علوم الحاسوب وهندسة البرمجيات، جامعة كال بولي .
  8. "إرشادات أسلوب كتابة الكود" . WebKit . 7 نوفمبر 2015. تم الاطلاع عليه بتاريخ 31 ديسمبر 2021 .
  9. أُرشف بتاريخ 6 أكتوبر 2014 في أرشيف الإنترنت (Wayback Machine) .
  10. بيل واغنر. "اتفاقيات برمجة لغة سي شارب (دليل برمجة سي شارب)" . Msdn.microsoft.com . تم الاطلاع عليه في 3 سبتمبر 2017 .
  11. "إرشادات تنسيق CSS" . Drupal.org . 14 يناير 2013. تم الاطلاع عليه في 18 يناير 2014 .
  12. "CSS · دليل الأنماط · GitHub" . Github.com . تم الاطلاع عليه بتاريخ 18 يناير 2014 .
  13. ١ ٢ "دليل أنماط HTML/CSS من جوجل" . جوجل جيت هاب . المسافة البادئة. مؤرشف من الأصل في ١٣ مارس ٢٠١٦. تم الاسترجاع في ١٣ مارس ٢٠١٦. قم بالمسافة البادئة بمقدار مسافتين في كل مرة .هذه نسخة مُعالجة بصيغة HTML من النسخة الرسمية، والتي يتم الاحتفاظ بها بصيغة XML.
  14. "دليل الأسلوب: أدلة الأسلوب لمشاريع المصادر المفتوحة التي أنشأتها جوجل" . Github.com . 3 سبتمبر 2017. تم الاطلاع عليه في 3 سبتمبر 2017 .
  15. "ووردبريس › معايير ترميز CSS « ​​إنشاء نواة ووردبريس" . Make.wordpress.org . 17 يوليو 2012. تم الاطلاع عليه في 20 يوليو 2018 .  
  16. "دليل أسلوب دلفي لكائنات باسكال - استخدام المسافات البيضاء" . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  17. "إرشادات تنسيق كود F#" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 14 أكتوبر 2020 .
  18. "Effective Go – The Go Programming Language" . golang.org . تم الاطلاع عليه بتاريخ 3 سبتمبر 2017 .
  19. "دليل أسلوب كتابة كود Haskell - ganeti - دليل أسلوب كتابة كود Haskell - برنامج إدارة المحاكاة الافتراضية القائم على المجموعات - استضافة مشاريع Google" . Code.google.com . 8 يناير 2014. مؤرشف من الأصل في 27 يونيو 2013. تم الاطلاع عليه في 18 يناير 2014 .
  20. "مرجع سريع لخيارات تهيئة HTML Tidy" . Tidy.sourceforge.net . ١٨ يونيو ٢٠٠٨. تم الاطلاع عليه في ١٨ يناير ٢٠١٤ .
  21. "اتفاقيات كتابة الكود للغة برمجة جافا: 4. المسافة البادئة" . Oracle.com . تم الاطلاع عليه بتاريخ 18 يناير 2014 .
  22. "إرشادات أسلوب كتابة الكود للمساهمين | مطورو أندرويد" . المصدر: android.com . تاريخ الاطلاع: 18 يناير 2014 .
  23. "اتفاقيات كتابة الكود للغة برمجة جافا سكريبت" . Javascript.crockford.com . 13 نوفمبر 2006. تم الاطلاع عليه بتاريخ 18 يناير 2014 .
  24. "دليل أسلوب جافا سكريبت" . Github.com . مؤرشف من الأصل بتاريخ 15 أغسطس 2013. تم الاطلاع عليه بتاريخ 18 يناير 2014 .
  25. "قواعد أسلوب جافا سكريبت" . Google-styleguide.googlecode.com . مؤرشف من الأصل بتاريخ 16 فبراير 2014. تم الاطلاع عليه بتاريخ 18 فبراير 2014 .
  26. مؤسسة jQuery - jquery.org. "دليل أسلوب جافا سكريبت | ساهم في jQuery" . Contribute.jquery.org . تم الاطلاع عليه بتاريخ 18 يناير 2014 .
  27. "دليل الأسلوب · لغة جوليا" . docs.julialang.org .
  28. "اتفاقيات البرمجة - لغة برمجة كوتلن" . كوتلن .
  29. "دليل أسلوب كتابة لغة لوا (lua-users wiki) . lua-users.org . تم الاطلاع عليه بتاريخ 3 سبتمبر 2017 .
  30. ألين، جون (JJ) (محرر). "perlstyle: دليل أسلوب كتابة بيرل" . وثائق بيرل 5 الإصدار 32.1 . مؤسسة بيرل . تم الاطلاع عليه بتاريخ 19 أبريل 2021 .
  31. "معايير البرمجة" . Drupal.org . تم الاطلاع عليه بتاريخ 18 يناير 2014 .
  32. "دليل المستخدم :: المسافة البادئة وطول السطر" . Pear.php.net . تم الاطلاع عليه بتاريخ 18 يناير 2014 . 
  33. "معيار ترميز PHP (مسودة) - المساهمون - ويكي Zend Framework" . Framework.zend.com . مؤرشف من الأصل في 3 يناير 2008. تم الاطلاع عليه في 18 يناير 2014 .
  34. "دليل الأسلوب : دليل مستخدم CodeIgniter" . Ellislab.com . مؤرشف من الأصل في 1 يونيو 2013. تم الاطلاع عليه في 18 يناير 2014 . 
  35. "ووردبريس › معايير برمجة PHP « إنشاء نواة ووردبريس" . Make.wordpress.org . 23 يوليو 2012. تم الاطلاع عليه في 18 يناير 2014 .  
  36. "PHP : دليل أسلوب البرمجة" . Php-fig.org . مؤرشف من الأصل بتاريخ 15 مارس 2014. تم الاطلاع عليه بتاريخ 18 فبراير 2014 . 
  37. "تخطيط وتنسيق التعليمات البرمجية - ممارسات وأساليب PowerShell" . ممارسات وأساليب PowerShell . تم الاطلاع عليه بتاريخ 17 أكتوبر 2021 .
  38. "PEP 8 – دليل أسلوب كتابة كود بايثون" . Python.org . تم الاطلاع عليه بتاريخ 3 سبتمبر 2017 .
  39. باتسوف، بوزيدار (3 سبتمبر 2017). "دليل أسلوب روبي: دليل أسلوب برمجة روبي مدفوع من المجتمع" . Github.com . تم الاطلاع عليه في 3 سبتمبر 2017 .
  40. "رست: لغة آمنة، متزامنة، وعملية" . Github.com . 3 سبتمبر 2017. تم الاطلاع عليه في 3 سبتمبر 2017 .
  41. "المسافة البادئة - توثيق لغة سكالا" . docs.scala-lang.org . تم الاطلاع عليه بتاريخ 3 سبتمبر 2017 .
  42. "دليل أسلوب Swift" . google.github.io . تم ​​الاطلاع عليه بتاريخ 17 أكتوبر 2021 .
  43. راي جونسون. "دليل أسلوب Tcl" (ملف PDF) . Tcl.tk. تم الاطلاع عليه بتاريخ 3 سبتمبر 2017 .
  44. "اتفاقيات الترميز المهيكلة" . msdn.microsoft.com . 4 يناير 2007. تم الاطلاع عليه في 3 سبتمبر 2017 .
  45. "دليل تنسيق مستندات XML من جوجل" . google.github.io . جوجل . تم الاطلاع عليه بتاريخ 17 أكتوبر 2021 .
  46. غرافغارد، نيك (2 يوليو 2006). "علامات الجدولة المرنة - طريقة أفضل لترتيب ومحاذاة التعليمات البرمجية" . تم الاطلاع عليه في 3 ديسمبر 2025. الحل البسيط هو إعادة تعريف كيفية تفسير علامات الجدولة بواسطة محرر النصوص . فبدلاً من القول بأن علامة الجدولة تضع النص الذي يليها في العمود التالي رقم N، ينبغي أن نقول إن علامة الجدولة هي فاصل بين خلايا الجدول بطريقة تُشبه استخدامها في ملفات القيم المفصولة بعلامات الجدولة (TSV).
  47. غرافغارد، نيك (2 يوليو 2006). "علامات الجدولة المرنة - حل مشكلة علامات الجدولة مقابل المسافات" . مؤرشف من الأصل في 19 يوليو 2006. تم الاطلاع عليه في 3 ديسمبر 2025. يكمن الحل إذن في إعادة تعريف كيفية تفسير محرر النصوص لعلامات الجدولة . فبدلاً من القول بأن علامة الجدولة (علامة جدولة ثابتة) ستنقل المؤشر حتى يصبح موضع المؤشر من مضاعفات N حرفًا، ينبغي أن نقول إن علامة الجدولة هي فاصل بين خلايا الجدول بطريقة مشابهة لكيفية استخدامها في ملفات القيم المفصولة بعلامات الجدولة (TSV).
  48. cvk (15 أكتوبر 2008). "علامات الجدولة المرنة - طريقة أفضل لترتيب وتنسيق الكود (سلسلة تعليقات على موقع Reddit)" . تم الاطلاع عليه في 3 ديسمبر 2025 .111 تعليقًا.
  49. ميسيك، بلازما س. (27 مايو 2021). "وضع المركبة الفضائية ووضع الجدولة: محاذاة النص/الرمز للخطوط ذات العرض المتغير" . تم الاطلاع عليه في 3 ديسمبر 2025. باستخدام وضع الجدولة، يمكنك استخدام علامات الجدولة لمحاذاة النص في أماكن أخرى غير الحافة اليسرى. وضع الجدولة هو في الأساس تطبيق لعلامات الجدولة المرنة.