إذا تعطلت فجأة إحدى مهام المشروع في VS Code—مثل التنسيق، أو فحص الأخطاء (linting)، أو تصحيح الأخطاء (debugging)، أو التنقل بين الملفات—فاستخدم ميزة Extension Bisect لتضييق نطاق البحث وتحديد الإضافة المفعلة المتسببة في ذلك. على نظام Mac، افتح لوحة الأوامر (Command Palette) باستخدام ⇧⌘P، وشغّل الأمر Help: Start Extension Bisect، وكرر المهمة نفسها بعد كل تغيير. إذا استمرت المشكلة، اختر This is bad؛ وإذا اختفت، اختر Good now. يختبر VS Code مجموعات من الإضافات ويضيّق نطاق البحث استناداً إلى تلك الإجابات. دليل Extension Bisect في VS Code

إعادة إنتاج نفس الخطأ قبل البدء بالاختبار

اكتب أولاً أقصر تسلسل للخطوات يؤدي باستمرار إلى حدوث المشكلة: على سبيل المثال، فتح ملف معين، وحفظه، ثم التحقق مما إذا كان التنسيق يعمل. سجّل ما كنت تتوقعه وما حدث بالفعل. احتفظ بنفس المشروع والملف والخطوات خلال كل جولة من جولات التنصيف (bisect). يمنح هذا كل إجابة أساساً متسقاً؛ فإذا كان العَرَض متقطعاً أو قمت بتغيير المهمة، فقد لا تحدد النتيجة السبب بشكل موثوق.

تحقق مما إذا كان السلوك مقتصراً على مساحة عمل واحدة (workspace) أم يحدث في عدة مساحات عمل. يمكن تعطيل الإضافة على مستوى عام (globally) أو لمساحة العمل الحالية فقط، لذا يمكن اختبار الخلل المرتبط بمشروع معين ومعالجته لاحقاً على مستوى مساحة العمل. يمكن الوصول إلى عرض الإضافات (Extensions view) عبر ⇧⌘X. يوثق VS Code عناصر التحكم في الإضافات على مستوى مساحة العمل والمستوى العام.

تشغيل Extension Bisect من لوحة الأوامر

على نظام macOS، اضغط على ⇧⌘P، واكتب Help: Start Extension Bisect، ثم حدد الأمر. يقوم VS Code بتعطيل مجموعات من الإضافات ويطلب منك الحكم على ما إذا كانت المشكلة لا تزال قائمة. نفّذ خطوات إعادة الإنتاج المسجلة لديك قبل تحديد This is bad أو Good now. يستخدم Bisect تلك الاستجابات لتحديد المجموعة التالية؛ استمر في الإجابة بناءً على العَرَض نفسه حتى يحدد VS Code الإضافة أو ينتهي دون العثور على أي منها. يوضح الدليل الرسمي العملية خطوة بخطوة حسب المجموعات.

عند وجود العديد من الإضافات المفعلة، فإن تضييق نطاق البحث بالنصف قد يستغرق عمليات فحص أقل بكثير مقارنة بتعطيلها واحدة تلو الأخرى. تعتمد العملية على دقة الملاحظات: فالإبلاغ باختيار "Good now" بينما لا تزال المشكلة موجودة، أو "This is bad" عندما تكون قد توقفت، يمكن أن يوجه البحث في مسار خاطئ. يشير دليل التنصيف أيضاً إلى أنه يبدأ بالتحقق مما إذا كانت المشكلة تظل قائمة مع تعطيل الإضافات، نظراً لأن السبب قد يكون من VS Code نفسه.

تأكيد النتيجة قبل تغيير إعداداتك

عندما يحدد VS Code إضافة مرشحة، كرر المهمة الأصلية مع تمكين هذه الإضافة ثم تعطيلها. في عرض الإضافات (Extensions view)، ابحث عن الإضافة، وحدد قائمة الترس الخاصة بها، واختر خيار التعطيل المناسب. قد يطلب VS Code إعادة تشغيل مضيف الإضافات (extension host)؛ استجب لهذا الطلب، ثم أعد إنتاج المشكلة. أعد تمكين الإضافة وتحقق مرة أخرى. إذا عاد العَرَض للظهور بثبات عند تمكينها واختفى عند تعطيلها، فهذا دليل أقوى على تورط هذه الإضافة. التعطيل عملية قابلة للتراجع؛ ولا يلزم إلغاء التثبيت لإجراء التشخيص. يوثق VS Code كيفية تعطيل الإضافات وتمكينها.

قد تكون الإضافة متورطة دون أن تكون هي السبب الوحيد؛ إذ قد تلعب إعداداتها أو تبعياتها أو تفاعلها مع إضافة أخرى دوراً في ذلك. اقرأ تفاصيلها في Marketplace وملف README الخاص بها لمعرفة الإعدادات والتبعيات التي توفرها، ثم تحقق مما إذا كان هناك تحديث أخير أو تغيير في التكوين يتزامن مع وقت تغير سير العمل. إذا كنت بحاجة إلى إبقاء الإضافة مثبتة، فقم بتعطيلها فقط لمساحة العمل المتأثرة متى أمكن ذلك؛ وإلا، فاتركها مفعلة وأبلغ ناشرها بالخطوات القابلة لإعادة الإنتاج ومُعرّف الإضافة (extension ID).

إذا لم يجد Bisect أي إضافة

جرب إجراء مقارنة نظيفة. يمكن لملفات تعريف VS Code (Profiles) عزل الإضافات والإعدادات: أنشئ Empty Profile من محرر Profiles، وافتح المشروع المتأثر باستخدامه، وكرر المهمة. يعطل الملف التعريفي الفارغ الإضافات والإعدادات المعدلة، فإذا استمر الخلل، فقد يكون السبب هو نواة VS Code الأساسية، أو أدوات المشروع، أو جزءاً آخر من البيئة. إذا اختفى، فهذا يشير إلى تورط الإضافات أو الإعدادات المخصصة، ولكن الملف التعريفي الفارغ بمفرده لا يثبت أياً منها هو السبب بالتحديد. وثائق ملفات تعريف VS Code.

يمكنك أيضاً تشغيل نافذة تشخيصية من تطبيق Terminal باستخدام الأمر code --disable-extensions . أثناء وجودك داخل دليل المشروع. على نظام Mac، يكون الصدفة الافتراضية (default shell) لتطبيق Terminal هو zsh؛ ولا يحتوي الأمر على أحرف صدفة خاصة (metacharacters) تتطلب وضع علامات اقتباس خاصة. يؤدي هذا إلى تعطيل الإضافات لتلك الجلسة المشغلة فقط، مما يجعله مفيداً للمقارنة السريعة. هذا الإجراء لا يحدد إضافة معينة؛ استخدم Bisect أو التعطيل على مستوى مساحة العمل من أجل ذلك. يجب أن يكون الأمر code متاحاً في مسار PATH الخاص بصدفتك. يوثق VS Code خيار التشغيل هذا؛ وتوثق Apple الصدفة الافتراضية لتطبيق Terminal.

عندما يتصرف المشروع بالطريقة نفسها مع تعطيل الإضافات، تحقق من البرامج النصية (scripts) والأدوات الخاصة بالمشروع نفسه، وإعدادات VS Code، وما إذا كانت المشكلة تحدث أيضاً في محرر أو بيئة أخرى. تعامل مع هذه الفحوصات كنقاط استدلال تشخيصية تالية بدلاً من اعتبارها دليلاً قاطعاً على مسؤولية مكون معين.

المصادر