إشارات السياق
أشر إلى عناصر محددة في مشروعك مباشرةً في محادثات Bob باستخدام إشارات @ للحصول على مساعدة دقيقة تراعي السياق.
أنواع الإشارات
باستخدام إشارات السياق، يمكنك الإشارة إلى عناصر متنوعة من مشروعك:
| نوع الإشارة | الصيغة | الوصف | مثال على الاستخدام |
|---|---|---|---|
| ملف | @/path/to/file.ts | يُدرج محتويات الملف في سياق الطلب | اشرح الدالة في @/src/utils.ts |
| مجلد | @/path/to/folder | يُدرج محتويات جميع الملفات مباشرةً في المجلد (غير متكرر) | حلّل الكود في @/src/components |
| مشكلات | @problems | يُدرج تشخيصات لوحة IBM Bob Problems | @problems أصلح جميع الأخطاء في كودي |
| طرفية | @terminal | يُدرج أمر الطرفية الأخير ومخرجاته | أصلح الأخطاء المعروضة في @terminal |
| Git commit | @a1b2c3d | يُشير إلى commit محدد بـ hash | ما الذي تغيّر في commit @a1b2c3d؟ |
| تغييرات Git | @git-changes | يعرض التغييرات غير المُنفَّذة | اقترح رسالة لـ @git-changes |
| URL | @https://example.com | يستورد محتوى موقع الويب | لخّص @https://docusaurus.io/ |
إشارات الملفات
إشارات الملفات هي النوع الأكثر استخداماً، وتتيح لك تضمين محتويات ملفات محددة في محادثتك مع Bob.
| الإمكانية | التفاصيل |
|---|---|
| الصيغة | @/path/to/file.ts (دائماً ابدأ بـ / من جذر مساحة العمل) |
| يوفر | محتويات الملف الكاملة مع أرقام الأسطر |
| يعمل مع | ملفات النص وPDF وملفات DOCX (مع استخراج النص) |
| يعمل في | الطلبات الأولية وردود التعليقات والرسائل اللاحقة |
| القيود | الملفات الكبيرة جداً قد تُقطَع؛ الملفات الثنائية غير مدعومة |
للملفات الكبيرة، يمكنك الإشارة إلى أقسام محددة باستخدام مسار الملف متبوعاً بأرقام الأسطر، مثل @/src/app.js:10-20 لتضمين الأسطر 10-20 فقط.
إشارات المجلدات
تتيح لك إشارات المجلدات الإشارة إلى ملفات متعددة دفعة واحدة، مما يوفر سياقاً أوسع من مجلد.
| الإمكانية | التفاصيل |
|---|---|
| الصيغة | @/path/to/folder (من دون شرطة مائلة في النهاية) |
| يوفر | المحتويات الكاملة لجميع الملفات داخل الدليل |
| يتضمن | محتويات ملفات النص غير الثنائية الموجودة مباشرةً في المجلد، وليس بشكل متكرر |
| الأنسب لـ | توفير سياق من عدة ملفات في دليل واحد |
| نصيحة | انتبه إلى حدود نافذة السياق عند الإشارة إلى أدلة كبيرة |
إشارات المجلدات غير متكررة، مما يعني أنها تتضمن فقط الملفات مباشرةً في المجلد المحدد، وليس في المجلدات الفرعية.
إشارة المشكلات
تستورد إشارة المشكلات التشخيصات من لوحة IBM Bob's Problems، مما يساعدك على حل مشكلات متعددة دفعة واحدة.
| الإمكانية | التفاصيل |
|---|---|
| الصيغة | @problems |
| يوفر | جميع الأخطاء والتحذيرات في لوحة المشكلات الخاصة بـ IBM Bob |
| يتضمن | مسارات الملفات وأرقام الأسطر ورسائل التشخيص |
| التجميع | مشكلات منظمة بحسب الملف لوضوح أفضل |
| الأنسب لـ | إصلاح الأخطاء من دون نسخ يدوي |
مثال على الاستخدام: @problems هل يمكنك مساعدتي في إصلاح جميع هذه المشكلات؟
إشارة الطرفية
تلتقط إشارات الطرفية مخرجات الأوامر الأخيرة، مما يساعدك على تصحيح أخطاء البناء أو تحليل نتائج الأوامر.
| الإمكانية | التفاصيل |
|---|---|
| الصيغة | @terminal |
| يلتقط | آخر أمر ومخرجاته الكاملة |
| يحافظ على | حالة الطرفية، ولا يمسحها |
| القيد | يقتصر على محتوى مخزن الطرفية المرئي |
| الأنسب لـ | تصحيح أخطاء البناء وتحليل نتائج الأوامر |
عند استكشاف فشل بناء وإصلاحه، جرّب ما الخطأ في @terminal؟ للحصول على تحليل فوري من دون نسخ المخرجات يدوياً.
إشارات Git
إشارات Git تساعدك على العمل مع التحكم بالإصدارات عبر الإشارة إلى commits والتغييرات.
| النوع | الصيغة | يوفر | القيود |
|---|---|---|---|
| Commit | @a1b2c3d | رسالة commit والمؤلف والتاريخ والـ diff الكامل | يعمل في repository من Git فقط |
| تغييرات العمل | @git-changes | مخرجات git status وdiff التغييرات غير المنفذة | يعمل في repository من Git فقط |
مثال على الاستخدام: ما الغرض من @a1b2c3d؟ أو اقترح رسالة commit لـ @git-changes
إشارات URL
تتيح لك إشارات URL الإشارة إلى محتوى الويب الخارجي في محادثاتك مع Bob.
| الإمكانية | التفاصيل |
|---|---|
| الصيغة | @https://example.com |
| المعالجة | تستخدم متصفحاً بلا واجهة لجلب المحتوى |
| التنقية | تزيل السكربتات والأنماط وعناصر التنقل |
| الناتج | تحوّل المحتوى إلى Markdown لتسهيل قراءته |
| القيد | قد لا تتحول الصفحات المعقدة بدقة كاملة |
تفيد إشارات URL في الرجوع إلى الوثائق. جرّب هل يمكنك شرح @https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise للحصول على مساعدة مع الوثائق الرسمية كسياق.
استخدام إشارات السياق
اكتب @ في إدخال المحادثة لتشغيل قائمة الاقتراحات المنسدلة.
استمر في الكتابة لتصفية الاقتراحات أو استخدم مفاتيح الأسهم للتنقل.
اختر بمفتاح Enter أو نقرة الفأرة.
ادمج إشارات متعددة في طلب: "أصلح @problems في @/src/component.ts"
حدد النص واستخدم اختصار لوحة المفاتيح ⌘ + L لإضافته إلى المحادثة.
تقترح القائمة المنسدلة تلقائياً:
- الملفات المفتوحة حديثاً.
- المجلدات المرئية.
- أحدث commits من Git.
- الكلمات الخاصة (
problemsوterminalوgit-changes). - جميع الملفات المفتوحة حالياً، بصرف النظر عن إعدادات التجاهل أو عوامل تصفية الأدلة.
تستبعد القائمة تلقائياً الأدلة الشائعة مثل node_modules و.git وdist وout لتقليل التشويش، مع أنه يمكنك تضمين محتواها بكتابتها يدوياً.
يمكنك جمع عدة إشارات في طلب واحد. جرّب قارن @/src/v1/api.js مع @/src/v2/api.js واشرح الاختلافات.
السلوكيات المهمة
التفاعل مع ملفات التجاهل
إشارات السياق لها سلوكيات محددة عند التعامل مع الملفات المتجاهلة:
| السلوك | الوصف |
|---|---|
تجاوز .bobignore | إشارات @ للملفات والمجلدات تتجاوز فحوصات .bobignore عند جلب المحتوى للسياق. |
تجاوز .gitignore | بالمثل، إشارات @ للملفات والمجلدات لا تحترم قواعد .gitignore عند جلب المحتوى. |
| احترام أوامر Git | الإشارات المتعلقة بـ Git (@git-changes، @commit-hash) تحترم .gitignore لأنها تعتمد على أوامر Git. |
تتجاوز إشارات السياق قواعد التجاهل، لذا يمكنك الإشارة إلى ملفات محددة قد يتجاهلها Bob أو Git عادةً. يفيد ذلك خصوصاً عندما تحتاج إلى مناقشة الملفات المنشأة أو غيرها من الملفات المتجاهلة غالباً.
الجمع بين كل شيء
إشارات السياق تُحسّن تفاعلاتك مع Bob بتوفير مراجع دقيقة لعناصر مشروعك. بدلاً من نسخ ولصق الأكواد أو وصف مواقع الملفات، يمكنك الإشارة مباشرةً إلى ما تناقشه.
مجموعات فعّالة من أنواع الإشارات المختلفة:
أصلح @problems في @/src/components واشرح ما كان خاطئاًراجع @git-changes واقترح تحسيناتقارن @/v1/api.js مع @https://api-docs.example.com وتحقق من التناسقات
الوكلاء الفرعيون
تعرّف على كيفية استخدام Bob للوكلاء الفرعيين لمعالجة المهام المركزة والمستقلة في سياقات معزولة من دون إرباك المحادثة الرئيسية.
نصائح Bob
تكتشف نصائح Bob مشكلات جودة الكود في الوقت الفعلي مع اقتراحات إعادة هيكلة مدعومة بالذكاء الاصطناعي للدوال المعقدة. قلّل الديون التقنية أثناء البرمجة.