مقارنة الأكواد البرمجية
قارن بين نسختين من الشيفرة جنبًا إلى جنب أو في عرض موحّد، مع تلوين الصياغة وأرقام الأسطر وخيارات المسافات وملف diff قابل للنسخ والتنزيل.
كيفية المقارنة بين مقطعين من الشيفرة
- الصق النسخة القديمة في الشيفرة الأصلية والنسخة الجديدة في الشيفرة المعدّلة.
- اختر اللغة، أو اتركها على اكتشاف تلقائي: تخمّن الأداة اللغة من الشيفرة وتعرض اللغة المكتشفة بجانب الإحصاءات.
- اختر العرض: جنبًا إلى جنب أو مدمج (موحّد).
- اضبط الخيارات التي تحتاجها: تجاهل المسافات والإزاحة، وتجاهل حالة الأحرف، وإبراز الكلمات المتغيرة، وعرض التغييرات فقط (3 أسطر من السياق).
- انقر قارن. بعد المقارنة الأولى، تتابع النتيجة تعديلاتك أثناء الكتابة.
- انقر نسخ بصيغة diff موحّدة أو تنزيل ملف .diff لإعادة استخدام التغيير كرقعة (patch).
يبادل زر تبديل الجانبين بين النسختين، فتتحول الإضافات إلى حذوفات والعكس.
قراءة نتيجة المقارنة
الأسطر المحذوفة ملوّنة بالأحمر وتنتمي إلى النسخة الأصلية، والأسطر المضافة ملوّنة بالأخضر وتنتمي إلى النسخة الجديدة. ويحتفظ كل سطر برقمه في ملفه، لتنتقل إليه مباشرةً في محررك.
- جنبًا إلى جنب يضع الملفين في عمودين مرقّمين، ويجاور السطر المعدَّل نسخته الجديدة. ومع إبراز الكلمات المتغيرة تُعلَّم الكلمات التي تغيّرت داخل السطر؛ ومن دونه يحتفظ السطران بألوان الصياغة كاملة.
- مدمج (موحّد) يعرض عمودًا واحدًا كما في مراجعة الشيفرة: لكل كتلة متغيرة تأتي الأسطر المحذوفة (−) أولًا، ثم الأسطر المضافة (+)، مع رقمي السطر القديم والجديد.
- عرض التغييرات فقط (3 أسطر من السياق) يطوي المقاطع الطويلة غير المتغيرة في علامة «⋯ N سطرًا دون تغيير»، ما يسهّل مراجعة الملفات الكبيرة كثيرًا.
ويحصي سطر الإحصاءات الأسطر المضافة والمحذوفة وغير المتغيرة.
تلوين الصياغة
يجري التلوين في متصفحك بمكتبة highlight.js. ولا تُحمَّل إلا قواعد اللغة المختارة، عند أول مقارنة، لتبقى الصفحة خفيفة. تشمل اللغات المدعومة JavaScript وTypeScript وPython وJava وC# وC / C++ وGo وRust وPHP وRuby وCSS وHTML / XML وJSON وYAML وSQL وBash / Shell وMarkdown. يعتمد الاكتشاف التلقائي على قرائن بسيطة (الكلمات المفتاحية، والأقواس، ومحاولة تحليل JSON)؛ فإن أخطأ التخمين، فاختر اللغة بنفسك أو اختر نص عادي.
المسافات والإزاحة ونهايات الأسطر
يقارن خيار تجاهل المسافات والإزاحة الأسطر بعد تشذيب أطرافها ودمج تتابعات المسافات وعلامات الجدولة، فلا يظهر أي فرق في ملف أُعيدت إزاحته من مسافتين إلى 4 مسافات، أو من علامات الجدولة إلى المسافات. وتُوحَّد نهايات الأسطر في Windows (CRLF) وUnix (LF) قبل المقارنة، فيُعدّ الملف الذي لم يتغير فيه سوى نهايات الأسطر مطابقًا. لاحظ أن المسافات قد تكون مهمة في Python وYAML وملفات Makefile: عطّل الخيار عندما تكون للإزاحة دلالة.
صيغة diff الموحّدة
تستخدم الرقعة المصدَّرة الصيغة الموحّدة القياسية التي يقرؤها git apply وpatch وأدوات مراجعة الشيفرة: ترويسة باسمي الملفين، ثم مقاطع (hunks) تبدأ بـ @@ -a,b +c,d @@ مع ثلاثة أسطر من السياق حول كل تغيير. ويُسمّى الملفان original وchanged مع امتداد يوافق اللغة.
الأسئلة الشائعة
هل تُرفع شيفرتي إلى خادم؟
لا. تجري المقارنة والتلوين كلاهما محليًا في متصفحك، ولا تغادر الشيفرة جهازك أبدًا.
ما الفرق بين هذه الأداة وأداة مقارنة النصوص؟
تستخدم محرّك المقارنة نفسه سطرًا بسطر، لكنها تضيف تلوين الصياغة، والعرض الموحّد، وطيّ السياق، ومعالجة للمسافات موجّهة للشيفرة البرمجية.
لماذا يظهر سطران على أنهما مختلفان وهما يبدوان متطابقين؟
على الأرجح يختلفان في أحرف غير مرئية: مسافات زائدة في النهاية، أو علامات جدولة مقابل مسافات، أو مسافة غير منقسمة. فعّل تجاهل المسافات والإزاحة للتأكد.
هل يمكنني تطبيق الرقعة المنزَّلة باستخدام Git؟
نعم. احفظها ثم نفّذ patch original.js < changes.diff، أو عدّل أسماء الملفات في الترويسة واستخدم git apply.
ما الحجم الأقصى للمقاطع؟
تُقارن عدة آلاف من الأسطر بسرعة. وإذا كان ملفان كبيران جدًا مختلفين تمامًا، تتوقف الأداة بعد بضع ثوانٍ وتطلب منك مقارنة أجزاء أصغر.
أدوات ذات صلة
- مقارنة نصين وإظهار الفروق قارن بين نصين واعرض كل الفروق جنبًا إلى جنب أو مدمجة، حسب الأسطر أو الكلمات أو الأحرف. أداة مقارنة خاصة تعمل في متصفحك.
- منسّق JSON ومدقّقه أداة مجانية لتنسيق JSON والتحقق من صحته: جمّل JSON واضغطه وافحصه في متصفحك، مع تحديد أخطاء الصياغة بالسطر والعمود.
- اختبار التعبيرات النمطية (Regex) اختبر تعبيرات JavaScript النمطية مباشرةً مع إبراز التطابقات ومجموعات الالتقاط والاستبدال وشرح واضح لكل جزء من النمط.