تخطي إلى المحتوى

منسق التعليمات البرمجية المجاني: تنسيق جافاسكريبت وبايثون وHTML والمزيد

قم بتنسيق التعليمات البرمجية الفوضوية على الفور مع المسافات البادئة والتباعد المناسب. يدعم 12+ لغة برمجية بما في ذلك جافاسكريبت وبايثون وHTML وCSS وجافا. يعمل عبر المتصفح، آمن، ومجاني. لا يتطلب تسجيل دخول.

منسق التعليمات البرمجية

قم بتنسيق التعليمات البرمجية بنقرة واحدة. اختر لغة، والصق التعليمات البرمجية الخاصة بك، واحصل عليها منسقة بشكل صحيح.

كيفية الاستخدام:

  1. اختر لغة البرمجة الخاصة بك من القائمة المنسدلة.
  2. الصق التعليمات البرمجية غير المنسقة في المنطقة المخصصة للإدخال.
  3. انقر على زر 'تنسيق التعليمات البرمجية'.
  4. انسخ النتيجة المنسقة من منطقة الإخراج.
حاسبة التحميل...
📚

التوثيق

ما هو منسّق الشيفرة؟

منسّق الشيفرة أداة تعيد كتابة الشيفرة المصدرية باستخدام مسافات بادئة وفواصل أسطر ومسافات متناسقة، من دون تغيير ما تفعله الشيفرة. يعمل منسّق الشيفرة هذا في متصفح ويب. وهو يدعم 12 لغة برمجة، منها JavaScript وPython وHTML وCSS.

كيف يعمل منسّق الشيفرة هذا

تستخدم الأداة مجموعة قواعد مختلفة لكل لغة. ولا تبني أيٌّ منها شجرة تحليل كاملة للشيفرة، باستثناء JSON.

  • JSON يُحلَّل بمحلّل JSON المضمّن في المتصفح، ثم يُطبع من جديد بمسافة بادئة من مسافتين. وإذا كان JSON غير صالح، تعرض الأداة رسالة خطأ ولا تُظهر أي ناتج.
  • تشترك JavaScript وTypeScript وJava وC وC++ وC# في منسّق واحد. يفحص المنسّق الشيفرة حرفًا حرفًا، مع تتبّع الأقواس المعقوفة والأقواس العادية والفواصل المنقوطة. يبدأ كل { كتلة جديدة ذات مسافة بادئة، وينهي كل من } أو ; سطرًا. تُنسخ التعليقات والسلاسل النصية المقتبسة من دون تغيير. لا يضيف هذا المنسّق مسافات حول العوامل أو بعد الفواصل إذا لم تكن موجودة في الشيفرة الأصلية؛ بل يعيد بناء فواصل الأسطر والمسافات البادئة فقط.
  • Python يقرأ المسافة البادئة الحالية لكل سطر ويعيد بناءها بأربع مسافات لكل مستوى، وفق قواعد التداخل التي تستخدمها لغة Python نفسها. ولا يقسّم الأسطر الطويلة ولا يضيف أسطرًا فارغة ولا مسافات حول العوامل؛ بل يوحّد فقط عمق المسافة البادئة لكل سطر.
  • يزيل CSS فواصل الأسطر والمسافات الزائدة، ثم يضيف فاصل سطر بعد كل من { و; وقبل كل }.
  • يضيف HTML وXML فاصل سطر ومسافتين بادئتين لكل مستوى من مستويات الوسوم المتداخلة، مع التعرّف على الوسوم القياسية ذاتية الإغلاق مثل <br> و<img> و<input>.
  • يحوّل SQL مجموعة ثابتة من الكلمات المفتاحية، مثل SELECT وFROM وWHERE وJOIN وORDER BY، إلى أحرف كبيرة، ويبدأ سطرًا جديدًا قبل كل جملة رئيسية.

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

اللغات المدعومة

اللغةامتداد الملف المعتادعرض المسافة البادئة
JavaScript.jsمسافتان (2)
TypeScript.tsمسافتان (2)
HTML.htmlمسافتان (2)
CSS.cssمسافتان (2)
Python.py4 مسافات
Java.java4 مسافات
C.c4 مسافات
C++.cpp4 مسافات
C#.cs4 مسافات
SQL.sqlفواصل أسطر حسب الجملة
JSON.jsonمسافتان (2)
XML.xmlمسافتان (2)

كيفية تنسيق الشيفرة

  1. اختر لغة برمجة من القائمة المنسدلة.
  2. الصق الشيفرة غير المنسّقة في مربع الإدخال.
  3. اختر «تنسيق الشيفرة».
  4. انسخ النتيجة المنسّقة من مربع الإخراج.

يحدث التنسيق بالكامل داخل المتصفح. ولا تُرسل الشيفرة مطلقًا إلى خادم.

مثال على تنسيق JavaScript

قبل التنسيق:

1function add(a, b) {
2    if (a > 0) { return a + b; }
3    return 0;
4}
5

بعد التنسيق:

1function add(a, b) {
2  if (a > 0) {
3    return a + b;
4  }
5  return 0;
6}
7

نقل المنسّق الشيفرة الموجودة داخل { } إلى سطر مستقل ذي مسافة بادئة، ووحّد المسافة البادئة إلى مسافتين لكل مستوى. وأبقى المسافات حول a > 0 وa + b كما وجدها تمامًا، لأنها كانت موجودة أصلًا.

مثال على تنسيق Python

قبل التنسيق:

1def calculate_average(numbers):
2  if len(numbers) == 0:
3    return 0
4  total = sum(numbers)
5  return total / len(numbers)
6

بعد التنسيق:

1def calculate_average(numbers):
2    if len(numbers) == 0:
3        return 0
4    total = sum(numbers)
5    return total / len(numbers)
6

استخدمت الشيفرة الأصلية مسافتين لكل مستوى من مستويات المسافة البادئة. وأعاد المنسّق بناء المسافة البادئة لكل سطر بأربع مسافات لكل مستوى، بما يطابق أربع مسافات لكل مستوى من المسافة البادئة في PEP 8، دليل الأسلوب الرسمي للغة Python. وأبقى كل سطر في ترتيبه ولم يمسّ المسافات داخل الأسطر.

لماذا يهم تنسيق الشيفرة

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

القيود

  • حجم الإدخال: تقبل الأداة ما يصل إلى 50,000 محرفًا من الشيفرة. ويُرفض الإدخال الأطول مع رسالة خطأ قبل بدء التنسيق.
  • لا يوجد فحص للصياغة في معظم اللغات: لا تُحلَّل المدخلات ولا تُتحقَّق صحتها إلا لمدخلات JSON. أما الشيفرة في اللغات 11 الأخرى فأعيد تنسيقها كما هي، حتى إذا كان فيها قوس مفقود أو سلسلة نصية غير مغلقة. وقد يكون الناتج في هذه الحالة ذا مسافات بادئة غير صحيحة بدلًا من الإبلاغ عن خطأ.
  • لا تغييرات في المسافات حول العوامل: تعيد منسّقات JavaScript وTypeScript واللغات المنحدرة من C ترتيب فواصل الأسطر والمسافات البادئة فقط. ولا تُدخل مسافة حول + أو = أو !==، ولا بعد فاصلة إذا لم تكن موجودة أصلًا.
  • PHP غير مدعومة: يؤدي اختيار لغة غير مدعومة إلى إعادة الشيفرة من دون تغيير.

الأسئلة الشائعة

هل تتحقق هذه الأداة من وجود أخطاء في صياغة الشيفرة؟ في JSON فقط. تُحلَّل مدخلات JSON، ولذلك ينتج عن JSON غير الصالحة رسالة خطأ. أما الشيفرة في اللغات المدعومة الأخرى فأعيد تنسيقها من دون التحقق من صحة صياغتها.

هل ترسل الشيفرة إلى خادم؟ لا. يجري التنسيق بالكامل في المتصفح باستخدام JavaScript. ولا تُرفع الشيفرة أو تُخزَّن في أي مكان.

ما الحد الأقصى لكمية الشيفرة التي يمكن تنسيقها؟ 50,000 محرف. ويؤدي لصق كمية أكبر من ذلك إلى ظهور خطأ قبل بدء التنسيق.

هل ستضيف مسافات مفقودة حول العوامل أو بعد الفواصل؟ لا، وذلك في JavaScript وTypeScript وJava وC وC++ وC#. تعيد هذه المنسّقات بناء المسافات البادئة وفواصل الأسطر حول الأقواس المعقوفة والفواصل المنقوطة فقط؛ وتنسخ بقية كل سطر كما كُتب.

ما المسافة البادئة التي تستخدمها؟ مسافتان في JavaScript وTypeScript وHTML وCSS وJSON وXML. وأربع مسافات في Python وJava وC وC++ وC#.

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

المراجع

  1. MDN Web Docs (Mozilla). JSON.stringify(). مرجع JSON.stringify() — تحدد الوسيطة الرقمية space عدد المسافات المستخدمة لكل مستوى من المسافة البادئة.
  2. Python Software Foundation. The Python Language Reference: Lexical analysis. التحليل المعجمي في Python: المسافة البادئة — تحدد المسافة البيضاء في بداية السطر مستوى المسافة البادئة له، وهو ما يجمّع العبارات.
  3. Python Software Foundation. PEP 8: Style Guide for Python Code. PEP 8 — "Use 4 spaces per indentation level."