للتحقق من ملف على macOS، انظر أولاً إلى مؤشر الاتصال عن بُعد (remote indicator) في VS Code، ثم تأكد من مسار الملف ومكان وجود ذلك المسار. تتصل نافذة Dev Container بحاوية، ولكن قد يتم تثبيت ملفات مساحة العمل الخاصة بها من جهاز Mac الخاص بك؛ بينما تخزن إعدادات الحاويات الأخرى الملفات داخل الحاوية فقط. يخبرك مؤشر النافذة بسياق الاتصال، بينما تساعد إعدادات مساحة العمل وفحوصات نظام الملفات في تحديد مكان تخزين الملف. يصف البرنامج التعليمي لحاويات التطوير في VS Code (Dev Containers tutorial) كلاً من السياق البعيد ومشروعاً نموذجياً تم تعيينه من نظام الملفات المحلي.
تحقق من مؤشر الاتصال عن بُعد الخاص بالنافذة
انظر إلى الزاوية السفلية اليسرى من نافذة VS Code. في حالة الاتصال بحاوية تطوير (Dev Container)، يعرض VS Code عنصرًا في شريط الحالة للاتصال عن بُعد. انقر فوقه لفتح الأوامر ذات الصلة بهذا السياق البعيد. يعد المؤشر فحصًا أوليًا مفيدًا: فهو يحدد ما إذا كانت هذه النافذة متصلة ببيئة بعيدة، ولكنه لا يخبرك في حد ذاته بما إذا كانت ملفات مساحة العمل مدعومة بمجلد Mac أو وحدة تخزين حاوية (container volume). يصف البرنامج التعليمي لـ VS Code هذا العنصر بأنه يوضح ما إذا كان السياق الحالي محليًا أم بعيدًا. البرنامج التعليمي لحاويات التطوير (Dev Containers tutorial)
إذا لم تشاهد مؤشر الاتصال عن بُعد، فهذا ليس دليلاً قاطعاً على أن علامة تبويب معينة في المحرر تشير إلى ملف Mac. فقد تكون تنظر إلى مستند بدون عنوان، أو ملف فردي تم فتحه خارج مساحة العمل، أو نافذة متصلة من خلال ميزة بعيدة مختلفة. تحقق من الملف النشط وسياق مساحة العمل الخاصة به قبل اتخاذ القرار.
تأكد من المجلد الذي ينتمي إليه الملف النشط
في المستكشف (Explorer)، حدد موقع الملف ولاحظ مجلد مساحة العمل الموجود أعلاه. انقر بزر الماوس الأيمن فوق الملف واختر Reveal in Finder عندما يكون متاحًا. يوثق VS Code هذا الإجراء الخاص بنظام macOS للانتقال إلى ملف أو مجلد في Finder. إذا أظهر Finder الملف في شجرة أدلة Mac، فهذا يؤكد وجود مسار محلي. إذا كان الملف في نافذة بعيدة وكان خيار Reveal in Finder غير متاح أو لا يحدد نسخة على Mac، فلا تفترض أن الملف محلي؛ بل تابع إجراء فحوصات إعدادات الطرفية (terminal) والحاوية. وثائق واجهة مستخدم VS Code
يمكنك أيضًا فتح لوحة الأوامر (Command Palette) باستخدام ⇧⌘P والبحث عن Copy Path of Active File. يساعدك المسار المنسوخ في تحديد المسار الذي يربطه VS Code بالملف. يعتبر مسار مثل /workspace/app.js مسارًا نموذجيًا لمساحة عمل حاوية Linux، بينما يعد المسار الذي يبدأ بـ /Users/ نموذجيًا لدليل Mac الرئيسي—لكن المسارات مجرد دلائل وليست دليلاً قاطعًا. يمكن للحاوية تثبيت مجلد Mac عند المسار /workspace، لذا فإن المسار الموجود داخل الحاوية وحده لا يوضح مكان تخزين البيانات. الأمر والاختصار موثقان في مرجع اختصارات لوحة المفاتيح الافتراضية.
استخدم الطرفية المدمجة لتحديد بيئتها
افتح Terminal > New Terminal في النافذة نفسها وشغّل أوامر القراءة فقط هذه:
pwd
uname -s
تبدأ الطرفية في مجلد مساحة العمل بشكل افتراضي. في نظام macOS، يطبع uname -s عادةً Darwin؛ وفي حاوية التطوير المستندة إلى Linux، يطبع عادةً Linux. إذا أظهرت الطرفية Linux بينما يُظهر مؤشر الاتصال عن بُعد سياق Dev Container، فإن الصدفة (shell) تعمل داخل بيئة الحاوية. يشير VS Code إلى أن طرفيته المدمجة تستخدم الصدفة للسياق الحالي وتبدأ من جذر مساحة العمل. أساسيات الطرفية (Terminal Basics)
تحدد هذه الأوامر بيئة الطرفية والدليل الحالي؛ ولا تثبت ما إذا كان مجلد مساحة العمل عبارة عن نقطة تثبيت مرتبطة (bind mount) من جهاز Mac الخاص بك أو بيانات مخزنة في وحدة تخزين الحاوية (container volume). للتحقق من هذا الاختلاف، افحص ملف .devcontainer/devcontainer.json الخاص بالمشروع أو إعداد Compose للبحث عن إعدادات مثل workspaceMount، أو workspaceFolder، أو نقاط تثبيت وحدات التخزين (volume mounts). توثق إرشادات مضيف Docker البعيد في VS Code كلاً من عمليات التثبيت المرتبطة (bind mounts) ووحدات التخزين المسماة (named volumes) كطرق منفصلة لتوفير ملفات مساحة العمل. التطوير على مضيف Docker بعيد
تفسير النتيجة قبل التحرير
استخدم الأدلة مجتمعة. نافذة VS Code محلية، ومسار Mac في Finder، وطرفية مدمجة بنظام Darwin كلها تشير إلى التحرير المحلي. بينما يشير مؤشر Dev Container وطرفية Linux إلى أن VS Code يعمل في سياق حاوية. لتحديد ما إذا كانت التعديلات مخزنة على جهاز Mac أو في الحاوية، حدد أيضًا كيفية تثبيت مساحة العمل: يمكن لنقطة التثبيت المرتبطة (bind mount) إتاحة ملفات Mac داخل الحاوية، بينما يمكن لوحدة التخزين المسماة (named volume) الاحتفاظ بالملفات في وحدة تخزين تديرها Docker.
إذا كان هذا التمييز مهمًا قبل إجراء أي تغيير، فتحقق من إعدادات التثبيت (mount) أو اسأل الشخص الذي أعد المشروع عن مساحة التخزين التي تستخدمها مساحة العمل. لا تستنتج وجود نسخة احتياطية على Mac من مجرد مسار الحاوية، ولا تستنتج أن التخزين مقتصر على الحاوية فقط لمجرد أن الطرفية تعمل بنظام Linux. تخبرك هذه الفحوصات عن نافذة VS Code النشطة ومساحة العمل الخاصة بها؛ ولا تثبت ما إذا كانت هناك نسخة أخرى موجودة في مكان آخر.
المصادر
البرنامج التعليمي لحاويات التطوير (Dev Containers tutorial) — Visual Studio Code
وثائق واجهة مستخدم VS Code — Visual Studio Code
مرجع اختصارات لوحة المفاتيح الافتراضية — Visual Studio Code
أساسيات الطرفية (Terminal Basics) — Visual Studio Code
التطوير على مضيف Docker بعيد — Visual Studio Code