ForHosting KIT · النصوص والذكاء الاصطناعي

تحويل التبويبات إلى مسافات

علامة الجدولة في بداية السطر تصبح 4 مسافات، أما بعد حرف واحد فتصبح 3: كل علامة تقفز إلى موضع الجدولة التالي، فتبقى المحاذاة كما هي ولا يبقى في الملف سوى المسافات. مجاني في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
النص
function hi() { return true; }
حجم علامة الجدولة
4
تحصل على
النص
function hi() { return true; }
علامات التبويب المستبدلة
1
المسافات المضافة
4
الأحرف قبل
31

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

كيف توسّع توقفات الجدولة التبويبات إلى مسافات دون فقدان المحاذاة

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

تُحفظ أحرف الإرجاع في ملفات CRLF دون إعادة تعيين العمود حتى تغذية السطر، فلا تشوّش نهايات الأسطر بأسلوب Windows حساب الأعمدة.

متى تثبت واجهة تحويل الجدولة إلى مسافات قيمتها في سير العمل الحقيقي

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

فشل التحقق لا يستهلك الرصيد.

الواجبات وتسليمات LMS

طبّع شيفرة الطالب عند الرفع ليقارن المصححون الآليون ملفات مسافات فقط ولا يفشلوا بسبب أحرف جدولة غير مرئية.

كيف يوسّع محوّل الجدولة إلى مسافات كل علامة جدولة؟

تُوسَّع العلامات الأولى والداخلية بهذه الطريقة فتُحفظ المحاذاة المرئية.

ماذا لو لم يحتوِ النص على أحرف جدولة؟

يمكن تخطي إعادة كتابة الملف عندما يكون changed false.

لماذا تحولت علامة جدولة إلى ثلاث مسافات لا أربع؟

لأن علامة الجدولة قفزة إلى الموضع التالي وليست عددًا ثابتًا من المسافات. مع عرض 4 تحتاج العلامة الواقعة بعد حرف واحد إلى ثلاث مسافات فقط لتبلغ ذلك الموضع.

ما عرض الجدولة الذي ينبغي أن أختاره؟

اختر العرض الذي يتوقعه محررك أو دليل الأسلوب لديك. القيمة الافتراضية 4 وهي الشائعة في المحررات الحديثة، ويُقبل أي عدد صحيح من 1 إلى 16، فيشمل ذلك أسلوب المسافتين.

هل تبقى نهايات أسطر ويندوز كما هي؟

نعم. يبقى حرف الرجوع إلى بداية السطر دون تغيير، ولا يبدأ عد الأعمدة من جديد إلا عند حرف السطر الجديد، فتخرج ملفات ويندوز بنهاياتها نفسها وبأعمدة محاذاة.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/dev/tabs-to-spaces

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/dev/tabs-to-spaces \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"function hi() {\n\treturn true;\n}"}'
{
  "text": "function hi() {\n\treturn true;\n}"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.tabs_to_spaces",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

المنطق الخالص نفسه يغذّي الأداة المجانية في المتصفح ومسار API، فتتطابق إعادة الكتابة الدفعية في CI مع ما تمعاينه في الأداة.

كيف توسّع توقفات الجدولة التبويبات إلى مسافات دون فقدان المحاذاة

ينفّذ هذا المحوّل القاعدة ذاتها: يحتفظ بفهرس عمود يبدأ من الصفر ويُعاد عند كل تغذية سطر، ويزيد واحدًا لكل حرف عادي (بما في ذلك المسافات العادية)، وعند رؤية علامة جدولة يحسب n يساوي tab_size ناقص العمود modulo tab_size، ثم يُخرج بالضبط n مسافة ويقدّم العمود بمقدار n. لذلك تصبح علامة في العمود صفر مع tab_size أربعة أربع مسافات، بينما تصبح علامة في العمود واحد ثلاث مسافات، وعلامة جالسة أصلًا على توقف تنتج توقفًا كاملًا جديدًا من أربع مسافات. الخوارزمية مرور واحد من اليسار إلى اليمين بلا استباق ولا تحليل لغة ولا استدعاءات شبكة، فنفس الدخل ينتج دائمًا نفس الخرج على كل Worker وفي المتصفح.

حقول الإدخال وشكل الاستجابة والحدود وأخطاء التحقق

أرسل جسم JSON يحوي الحقل النصي الإلزامي text الذي يحمل الشيفرة أو النص العادي المراد تطبيعه. تُقبل أسماء بديلة اختيارية مثل input وcode وsource وcontent وbody لنفس الحمولة لتقليل إعادة التسمية في النماذج والسكربتات القائمة. العدد الصحيح الاختياري tab_size يضبط عرض توقف الجدولة؛ الافتراضي أربعة، بما يوافق معظم المحررات الحديثة وأدلة أسلوب JavaScript وPython وRust التي تتوقع مسافات بادئة بأربع أو مسافتين بعد زوال التبويبات. القيم الصالحة أعداد صحيحة من واحد إلى ستة عشر شاملة؛ خارج النطاق وغير الصحيحات وNaN وInfinity تفشل بـ invalid_input مع تسمية tab_size. غياب text أو كونه غير نص أو نصًا فارغًا يفشل بـ invalid_input ولا يُحاسب. أقصى طول للإدخال مئة ألف حرف حتى تبقى الدعوة ضمن ميزانية ذاكرة Worker لملفات المصدر المعتادة ومقتطفات متعددة الملفات الصغيرة. عند النجاح تتضمن الاستجابة text السلسلة الموسَّعة بالكامل؛ tab_size العرض المطبَّق؛ tabs_replaced عدد أحرف الجدولة؛ spaces_added إجمالي المسافات المُدرجة؛ chars_before وchars_after الطولين قبل وبعد؛ line_count عدد الأسطر بعد التقسيم على أشكال السطر الجديد الشائعة؛ changed منطقي true عند توسيع علامة واحدة على الأقل؛ وmessage ملخصًا بشريًا قصيرًا. إن خلا الدخل من علامات الجدولة يُعاد text دون تغيير وtabs_replaced صفر وchanged false وتوضح الرسالة أن شيئًا لم يُغيَّر لتتمكن من تخطي إعادة كتابة الملف.

متى تثبت واجهة تحويل الجدولة إلى مسافات قيمتها في سير العمل الحقيقي

سكربتات الترحيل التي تحوّل مستودعًا قديمًا دفعة من الجدولة إلى المسافات تستدعي العقد نفسه من حلقة shell أو Worker طرفي دون تثبيت وحدات Node على كل حاسوب محمول. لأن التنفيذ parse خالص من المستوى A، كل استدعاء ناجح يكلف السعر الأساسي المنشور $0.002 بلا رموز نموذج ولا شبكة صادرة. أبقِ الطلبات تحت حد الأحرف وثبّت tab_size في الإعدادات لتحصل على مصدر بمسافات فقط قابل للتكرار لـ CI وإضافات LMS والدفعات دون إقامة منسّق واعٍ باللغة لإصلاح مسافة بادئة على مستوى الحرف.

تطبيع الأسلوب في CI

وسّع علامات الجدولة الصلبة إلى مسافات بـ tab_size ثابت قبل lint والتنسيق لتبقى الفروق نظيفة وتقبل الأدوات التي ترفض المسافة البادئة المختلطة التغيير.

إعادة كتابة جماعية لمستودعات قديمة

حوّل دفعةً الوحدات ذات مسافة بادئة بالجدولة إلى مسافات فقط عبر API مع الحفاظ على علامات محاذاة وسط السطر كسلاسل مسافات صحيحة العمود.

ما القيم المسموحة لـ tab_size؟

أي عدد صحيح من 1 إلى 16 شاملًا. الافتراضي 4. القيم خارج النطاق أو غير الصحيحة تفشل بـ invalid_input ولا تُحاسب.

هل تُزال المسافات الموجودة أو تُضغط؟

لا. أحرف المسافة الموجودة تبقى دون تغيير. فقط أحرف الجدولة U+0009 تُستبدل بسلسلة المسافات التي يطلبها العمود الحالي وtab_size.

ما تكلفة محوّل علامات الجدولة إلى مسافات؟

أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل استدعاء ناجح؛ الإدخال غير الصالح لا يُحاسب.

اطّلع على توثيق KIT الكامل ←