التصحيح بدعم الذكاء الاصطناعي للغة
تلميح
تساعدك ميزات التصحيح المدعومة بالذكاء الاصطناعي في Cursor على تحديد المشكلات وإصلاحها بشكل أسرع من خلال توفير تحليلات واقتراحات ذكية.
البدء
تمكين دعم التصحيح بالذكاء الاصطناعي
- افتح لوحة الأوامر (Ctrl/Cmd + Shift + P)
- اكتب "Enable AI Debug"
- حدد لتفعيل الميزة
الميزات الأساسية
1. تحليل الأخطاء
عندما تواجه خطأ، يمكن للذكاء الاصطناعي المساعدة في تحليله:
example-error.js
// خطأ في الكود
const user = getUserData();
console.log(user.name.toLowerCase());
// تحليل الذكاء الاصطناعي
// ⚠️ إشارة محتملة إلى قيمة فارغة
// - قد يكون user بقيمة null/undefined
// - قد يكون user.name بقيمة null/undefined
// الاقتراح: إضافة فحوصات للقيم الفارغة
2. إصلاحات سريعة
يقترح الذكاء الاصطناعي إصلاحات للمشكلات الشائعة:
component.tsx
// قبل: خطأ في النوع
const handleClick = (event) => {
console.log(event.value);
};
// اقتراح الذكاء الاصطناعي
const handleClick = (event: React.MouseEvent) => {
console.log(event.currentTarget.value);
};
ميزات متقدمة
1. تحليل وقت التشغيل
يمكن للذكاء الاصطناعي تحليل سلوك وقت التشغيل:
performance.py
# مشكلة في الأداء
def process_data(items):
result = []
for item in items:
result.append(transform(item))
return result
# اقتراح الذكاء الاصطناعي
def process_data(items):
return [transform(item) for item in items]
# 🚀 تحسين الأداء:
# - فهم القائمة أسرع
# - يقلل من تخصيص الذاكرة
2. التصحيح المدرك للسياق
يفهم الذكاء الاصطناعي سياق قاعدة التعليمات البرمجية الخاصة بك:
auth.service.ts
// الكود الأصلي مع خطأ
async function validateUser(token) {
const user = await getUser(token);
return user.isValid;
}
// تحليل التصحيح بالذكاء الاصطناعي
/**
* المشكلات المكتشفة:
* 1. لا توجد معالجة للأخطاء للرموز غير الصالحة
* 2. لا يوجد فحص للنوع لكائن المستخدم
* 3. فحص القيمة الفارغة مفقود للمستخدم
*/
// الإصلاح المقترح من الذكاء الاصطناعي
async function validateUser(token: string): Promise<boolean> {
try {
const user = await getUser(token);
return user?.isValid ?? false;
} catch (error) {
console.error('فشل التحقق من المستخدم:', error);
return false;
}
}
سير عمل التصحيح
1. التصحيح التفاعلي
استخدم الذكاء الاصطناعي أثناء جلسات التصحيح:
// ضع نقاط توقف مدعومة بالذكاء الاصطناعي
debugger; // سيحلل الذكاء الاصطناعي حالات المتغيرات
// وحدة تحكم تصحيح الذكاء الاصطناعي
> ai.analyze(variableName)
> ai.suggest.fix()
> ai.explain.state()
2. تحليل السجلات
يمكن للذكاء الاصطناعي المساعدة في تحليل السجلات المعقدة:
# مخرجات سجل معقدة
[2024-03-20T10:15:30] خطأ: تم رفض الاتصال...
[2024-03-20T10:15:31] محاولة إعادة المحاولة 1...
[2024-03-20T10:15:32] خطأ: انتهاء المهلة...
# تحليل الذكاء الاصطناعي
"""
المشكلة المكتشفة: مشكلة في اتصال الشبكة
- رف ض الاتصال الأولي
- انتهاء المهلة عند إعادة المحاولة
الاقتراح: تحقق من إعدادات الشبكة وقواعد جدار الحماية
"""
ميزات خاصة باللغة
JavaScript/TypeScript
- JavaScript
- TypeScript
// استنتاج النوع
function processData(data) {
// يقترح الذكاء الاصطناعي أنواعًا بناءً على الاستخدام
return data.map(item => item.value);
}
// فحص النوع
interface DataItem {
value: string;
}
function processData(data: DataItem[]) {
return data.map(item => item.value);
}
Python
# تلميحات النوع وفحوصات وقت التشغيل
def calculate_average(numbers: List[float]) -> float:
# يقترح الذكاء الاصطناعي التحقق من صحة الإدخال
if not numbers:
raise ValueError("تم توفير قائمة فارغة")
return sum(numbers) / len(numbers)
أفضل الممارسات
1. منع الأخطاء
استخدم الذكاء الاصطناعي لاكتشاف الأخطاء المحتملة:
// منع الخطأ المقترح من الذكاء الاصطناعي
function divideNumbers(a: number, b: number): number {
// يضيف الذكاء الاصطناعي فحوصات الأمان
if (typeof a !== 'number' || typeof b !== 'number') {
throw new TypeError('يجب أن تكون الوسائط أرقامًا');
}
if (b === 0) {
throw new Error('القسمة على صفر');
}
return a / b;
}
2. جودة الكود
يساعد الذكاء الاصطناعي في الحفاظ على جودة الكود:
// قبل
function fn(x) {
var res = x + 1;
return res;
}
// بعد (محسّن بالذكاء الاصطناعي)
const increment = (value: number): number => {
return value + 1;
};
3. تحسين الأداء
يحدد الذكاء الاصطناعي مشكلات الأداء:
// مشكلة في الأداء
const results = data
.filter(item => item.active)
.map(item => transform(item))
.filter(item => item !== null);
// تحسين الذكاء الاصطناعي
const results = data.reduce((acc, item) => {
if (item.active) {
const transformed = transform(item);
if (transformed !== null) {
acc.push(transformed);
}
}
return acc;
}, []);
تقنيات التصحيح المتقدمة
1. اكتشاف تسرب الذاكرة
يساعد الذكاء الاصطناعي في تحديد تسربات الذاكرة:
// اكتشاف تسرب الذاكرة
class Component {
constructor() {
// تحذير الذكاء الاصطناعي: تسرب ذاكرة محتمل
window.addEventListener('resize', this.onResize);
}
// اقتراح الذكاء الاصطناعي
cleanup() {
window.removeEventListener('resize', this.onResize);
}
}
2. تصحيح غير متزامن
قم بتصحيح العمليات غير المتزامنة باستخدام الذكاء الاصطناعي:
// تصحيح غير متزامن
async function fetchData() {
try {
const response = await api.get('/data');
return response.data;
} catch (error) {
// يوفر الذكاء الاصطناعي معالجة أخطاء مدركة للسياق
if (error.response?.status === 404) {
return [];
}
throw new Error(`فشل جلب البيانات: ${error.message}`);
}
}