مولد EditorConfig

.editorconfig
النتائج

يحسم ملف .editorconfig في جذر المستودع جدال علامات التبويب مقابل المسافات ملفًا بملف، إذ يُخبر كل بيئة تطوير حديثة بكيفية تنسيق هذا المشروع لملفاته. بايثون: 4 مسافات. جافا سكريبت: 2. Makefile: علامات تبويب (إلزامية). يبني هذا المولّد ملف .editorconfig من خيارات التنسيق لديك (نمط المسافة البادئة وحجمها، نهاية السطر، مجموعة الأحرف، أقصى طول للسطر، سطر جديد ختامي، وقص المسافات الطرفية)، ويتضمن دائمًا التعديلين الشائعين: [*.md] يُبقي المسافات الطرفية لفواصل أسطر Markdown، و[Makefile] يستخدم علامات التبويب كما تتطلب أداة make.

كيفية إنشاء ملف .editorconfig

  1. 1

    حدد القيم الافتراضية العالمية

    مجموعة الأحرف (الافتراضي utf-8)، نهاية السطر (lf مقابل crlf)، نمط وحجم المسافة البادئة، أقصى طول للسطر، إضافة سطر جديد ختامي، وقص المسافات الطرفية.

  2. 2

    راجع التعديلات المضمنة

    يضيف المولّد دائمًا `[*.md]` مع `trim_trailing_whitespace = false` (يحتاج Markdown إلى مسافات طرفية لفواصل الأسطر) و`[Makefile]` مع `indent_style = tab` الذي تفرضه أداة make نفسها.

  3. 3

    انسخ الملف

    استخدم زر النسخ للحصول على `.editorconfig` المولّد وضعه في جذر المستودع.

  4. 4

    وسّعه لاحقًا

    هل تحتاج قواعد لكل لغة على حدة؟ أضف أقسامك الخاصة، مثل `[*.py]` مع `indent_size = 4`.

ما الذي يفعله ملف .editorconfig

ملف باسم .editorconfig في جذر المشروع (أو في أي دليل) يُعلن أعراف التنسيق. والمحررات التي تدعم EditorConfig (كل بيئات التطوير الرئيسية ومعظم محررات النص الحديثة) تطبّق هذه القواعد عند فتح الملف.

مثال على الناتج

بالإعدادات الافتراضية (مسافات، حجم 4، LF، utf-8) ينتج المولّد ما يلي:

root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

التوجيهات الرئيسية

التوجيه القيم المقبولة ملاحظات
root true / false اضبطه على true في جذر المشروع لإيقاف البحث
charset utf-8، utf-8-bom، latin1، utf-16-be، utf-16-le utf-8 هو الافتراضي
end_of_line lf, crlf, cr lf للعمل عبر المنصات؛ crlf للمستودعات الخاصة بويندوز فقط
indent_style space، tab
indent_size عدد صحيح عدد المسافات، يُتجاهَل عند استخدام tab
tab_width عدد صحيح العرض البصري لعلامة التبويب (الافتراضي indent_size)
insert_final_newline true / false يضمن ملفات متوافقة مع POSIX
trim_trailing_whitespace true / false عطّله في Markdown (حيث تعني المسافات الطرفية فواصل أسطر)

أعراف اللغات في لمحة

اللغة / الملف العُرف
JS، TS، JSON مسافتان
HTML، CSS، YAML مسافتان
Python 4 مسافات (PEP 8)
PHP 4 مسافات (PSR-12)
Ruby مسافتان
Go علامات تبويب (يفرضها gofmt)
Rust 4 مسافات (يفرضها rustfmt)
Java 4 مسافات
Makefile علامات تبويب (تفرضها أداة make نفسها)
Markdown الاحتفاظ بالمسافات الطرفية (تُستخدم لـ <br>)
Batch/CMD (.bat) نهايات أسطر crlf

الفخ: المسافات الطرفية في Markdown

في Markdown، يعني وجود مسافتين طرفيتين في نهاية السطر “أدخل <br> هنا”. إذا قص ملف .editorconfig المسافات الطرفية لكل الملفات، فستختفي فواصل الأسطر تلك. تجاوز ذلك بـ trim_trailing_whitespace = false لـ [*.md].

هل تدعمها بيئة التطوير المتكاملة لديك

الدعم الأصلي: VS Code، عائلة JetBrains IntelliJ، Sublime Text، Vim (من خلال إضافة)، Emacs (من خلال إضافة)، Atom، Notepad++، وXcode. إذا لم يدعم محرر ما خاصية EditorConfig بشكل افتراضي، فغالبًا ما يحتوي على إضافة تدعمها. كما أن الملف قابل للقراءة الآلية، مما يسمح لأدوات التدقيق والتنسيق بالتعامل معه بشكل صحيح.

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

في جذر المشروع تحت المسار root = true، يمكن إضافة ملفات إضافية من نوع .editorconfig إلى مجلدات فرعية لاستبدال مسارات محددة؛ حيث يتم البحث عبر هيكل المجلدات تدريجيًا وينتهي عند أول ملف من نوع root = true يتم العثور عليه.

لا. يتولى EditorConfig أساسيات المسافات ونهايات السطور في كل المحررات. أما Prettier وأدوات التدقيق المخصصة لكل لغة فتتولى قواعد الأسلوب الأعمق (علامات الاقتباس، والفواصل المنقوطة، والفواصل اللاحقة). وكلاهما يكمّل الآخر.

قم بتعيين end_of_line = crlf إذا كانت أدوات ويندوز الموجودة في المستودع تتطلبه فعليًا. الخيار الأفضل هو: إرسال ملف end_of_line = lf وإضافة ملفات .gitattributes و* text=auto، بحيث يقوم نظام Git بتوحيد نهايات السطور عند الإرسال، بينما تظل نهايات السطور عند استرجاع الملفات متوافقة مع نظام التشغيل المستخدم.

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

أدوات ذات صلة

الأداة متاحة بلغات أخرى