# getDiagnostics

يسترجع تشخيصات خادم اللغة (أخطاء، تحذيرات، تلميحات) من IDE المتصل لملف معين أو لكل ملف يفتحه IDE حالياً. يُستخدم للتحقق من أن تغييرات الشفرة تُصنَّف نظيفاً قبل الإعلان عن إنجاز المهمة.

## متى يُستخدم

- بعد `Edit` أو `Write` للتأكد من أن التغيير لم يُدخل خطأ نوع أو صياغة أو تحذير lint.
- قبل إنهاء مهمة لمسح كل ملف مفتوح بحثاً عن مشاكل غير محلولة.
- عند تشخيص خطأ يُبلِّغ عنه المستخدم — سحب الرسالة الدقيقة من المُصنِّف أو مُفحص النوع من IDE يتجنب التخمين.
- كبديل خفيف لتشغيل أمر بناء أو اختبار كامل عندما تحتاج فقط إلى فحص الصحة الثابتة.

لا تعتمد على `getDiagnostics` بديلاً لمجموعة الاختبارات. يُبلِّغ عما يراه خادم اللغة، لا عما يعمل في وقت الاختبار أو الإنتاج.

## المعاملات

- `uri` (سلسلة، اختياري): URI الملف (عادة `file:///absolute/path`) لجلب تشخيصات له. عند الحذف، تُعيد الأداة التشخيصات لكل ملف يفتحه IDE حالياً.

## أمثلة

### مثال 1: فحص ملف واحد بعد التعديل

```
getDiagnostics(
  uri="file:///Users/sky/project/src/auth.ts"
)
```

يُعيد أي أخطاء TypeScript أو تحذيرات ESLint أو رسائل خادم اللغة الأخرى لـ `src/auth.ts`.

### مثال 2: مسح جميع الملفات المفتوحة

```
getDiagnostics()
```

يُعيد التشخيصات عبر كل محرر مفتوح حالياً. مفيد في نهاية إعادة هيكلة متعددة الملفات للتأكد من عدم تراجع أي شيء آخر.

## ملاحظات

- `getDiagnostics` أداة جسر IDE. متاحة فقط عندما يكون Claude Code متصلاً بتكامل IDE داعم (مثل ملحق VS Code). في جلسة طرفية عادية لن تظهر الأداة.
- تعكس النتائج أياً من خوادم اللغة التي حمَّلها IDE — TypeScript، Pyright، ESLint، rust-analyzer، إلخ. الجودة والتغطية تعتمدان على إعداد IDE للمستخدم، لا على Claude Code.
- التشخيصات حية. بعد التعديل، أعطِ خادم اللغة لحظة لإعادة التحليل قبل تفسير نتيجة فارغة نجاحاً — أعد التشغيل إذا كان الملف قد حُفظ للتو.
- تشمل مستويات الخطورة عادة `error` و`warning` و`information` و`hint`. ركِّز على `error` أولاً؛ قد تكون التحذيرات أسلوب مشروع مقصوداً.
- للملفات غير المفتوحة حالياً في IDE، قد لا يملك خادم اللغة تشخيصات للإبلاغ عنها حتى لو احتوى الملف على مشاكل حقيقية. افتح الملف أو شغِّل البناء للتغطية الموثوقة.
