إنشاء الكود باستخدام اقتراحات إكمال الكود في GitHub Copilot

مكتمل

يمكن ل GitHub Copilot تقديم اقتراحات لإكمال الشيفرة للعديد من لغات البرمجة ومجموعة واسعة من الأطر، لكنه يعمل بشكل جيد بشكل خاص على Python وJavaScript وTypeScript وRuby وGo وC# وC++. يتم إنشاء إكمال سطر التعليمات البرمجية استنادا إلى سياق التعليمات البرمجية التي تكتبها. يمكنك قبول أو رفض أو قبول جزئي للاقتراحات التي قدمها GitHub Copilot.

يوفر GitHub Copilot طريقتين لتوليد إكمال أسطر الكود:

  • من تعليق: يمكنك إنشاء إكمال سطر التعليمات البرمجية عن طريق كتابة تعليق يصف التعليمات البرمجية التي تريد إنشاؤها. يقدم GitHub Copilot اقتراحات لإكمال الكود بناء على التعليق الذي كتبته.

  • من التعليمات البرمجية: يمكنك إنشاء إكمال سطر التعليمات البرمجية عن طريق بدء سطر التعليمات البرمجية، أو بالضغط على Enter بعد سطر التعليمات البرمجية المكتملة. يقدم GitHub Copilot اقتراحات لإكمال الكود بناء على الكود الذي تكتبه.

استخدم GitHub Copilot لتوليد إكمال أسطر الكود من تعليق

يقوم GitHub Copilot بإنشاء اقتراحات لإكمال الكود بناء على التعليق والسياق الحالي لتطبيقك.

يمكنك استخدام التعليقات لوصف قصاصات التعليمات البرمجية والأساليب وبنى البيانات وعناصر التعليمات البرمجية الأخرى.

لنفترض أن لديك القصاصة البرمجية التالية:


namespace ReportGenerator;

class QuarterlyIncomeReport
{
    static void Main(string[] args)
    {
        // create a new instance of the class
        QuarterlyIncomeReport report = new QuarterlyIncomeReport();

        // call the GenerateSalesData method

        // call the QuarterlySalesReport method
        
    }

    public void QuarterlySalesReport()
    {

        Console.WriteLine("Quarterly Sales Report");
    }
}    

على سبيل المثال، يمكن استخدام التعليق التالي لإنشاء بنية بيانات:


/* public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price */

يقوم GitHub Copilot بإنشاء اقتراح أو أكثر لإكمال الكود بناء على تعليق الكود الخاص بك وملفات الكود المفتوحة في المحرر.

لقطة شاشة تعرض إكمال التعليمات البرمجية لتعليق يصف بنية البيانات.

لاحظ أنواع البيانات المستخدمة للإعلان عن حقول بنية البيانات. GitHub Copilot يختار أنواع البيانات وأسماء المتغيرات بناء على الكود الحالي وتعليق الكود. يحاول GitHub Copilot تحديد كيفية استخدام التطبيق للمتغيرات وتعريف أنواع البيانات وفقا لذلك.

عندما يولد GitHub Copilot أكثر من اقتراح، يمكنك التنقل بين الاقتراحات باختيار الأسهم اليسرى أو اليمنى (> أو <) الموجودة على يسار زر قبول. يتيح لك ذلك مراجعة الاقتراح الذي يناسب احتياجاتك وتحديده.

لا بأس من قبول اقتراح إكمال التعليمات البرمجية الذي لا يتطابق تماما مع ما تريده. ومع ذلك، يجب أن تكون التغييرات المطلوبة "لإصلاح" الاقتراح واضحة. في هذه الحالة، بعض أنواع البيانات ليست ما تريد، ولكن يمكنك ضبطها بعد قبول الإكمال التلقائي المقترح.

إذا لم يكن أي من الخيارات المقترحة مشابها لما تحتاجه، فهناك أمران يمكنك تجربتهما. لفتح علامة تبويب محرر جديدة تحتوي على قائمة اقتراحات أخرى، اضغط على المفاتيح Ctrl + Enter. تفتح تركيبة مفتاح التشغيل السريع هذه علامة تبويب جديدة تحتوي على ما يصل إلى 10 اقتراحات أخرى. يتبع كل اقتراح زر يمكنك استخدامه لقبول الاقتراح. يتم إغلاق علامة التبويب تلقائيا بعد قبول اقتراح. الخيار الآخر هو الضغط على مفتاح Esc لتجاهل الاقتراحات والمحاولة مرة أخرى. يمكنك تعديل تعليق الكود لتوفير سياق أوسع ليعمل مع GitHub Copilot.

إشعار

يمكن ل GitHub Copilot أحيانا اقتراح على مراحل. إذا حدث ذلك، يمكنك الضغط على مفتاح الإدخال Enter لمشاهدة مراحل إضافية من الاقتراح بعد الضغط على المفتاح Tab.

لقبول بنية بيانات مقترحة، اضغط على المفتاح Tab أو حدد قبول.

لتعديل أنواع بيانات الحقل، قم بتحديث التعليمات البرمجية الخاصة بك كما يلي:

public struct SalesData
{
    public DateOnly dateSold;
    public string departmentName;
    public int productID;
    public int quantitySold;
    public double unitPrice;
}

يساعد إجراء تعديلات سريعة على اقتراحات إكمال التعليمات البرمجية على التأكد من أنك تنشئ التعليمات البرمجية التي تريدها. من المهم بشكل خاص إجراء التصحيحات في وقت مبكر من عملية التطوير الخاصة بك عندما لا تزال هناك أجزاء كبيرة من قاعدة التعليمات البرمجية الخاصة بك بحاجة إلى التطوير. تستند إكمالات التعليمات البرمجية اللاحقة إلى التعليمات البرمجية التي كتبتها بالفعل، لذلك من المهم التأكد من أن التعليمات البرمجية الخاصة بك دقيقة قدر الإمكان.

استخدم اقتراحات التعديل التالي لمتابعة تغييرات الكود

إكمال النصوص الشبحية ممتاز في تعبئة الكود الجديد أثناء الكتابة. لكن معظم البرمجة اليومية تتضمن تعديل الشيفرة الموجودة — إعادة تسمية متغير، تحديث نوع بيانات، أو إصلاح خطأ منطقي. اقتراحات التعديل التالية من GitHub Copilot (NES) مصممة خصيصا لهذا السيناريو.

عندما تقوم بتعديل، يقوم NES بتحليل التغيير ويتوقع مكان التعديل التالي وما يجب أن يكون عليه ذلك التعديل — حتى لو كان على خط مختلف أو في جزء مختلف من الملف. هذا يبقيك في التدفق دون الحاجة للبحث يدويا عن كل موقع يحتاج إلى تحديثات.

لتفعيل اقتراحات التعديل التالية، قم بتعيين إعداد github.copilot.nextEditSuggestions.enabled على true في تعليمة Visual Studio برمجية.

بمجرد تفعيله، يمكنك استخدام NES بالطرق التالية:

  1. قم بإجراء تعديل في المحرر — على سبيل المثال، إعادة تسمية متغير أو تغيير توقيع الطريقة.

  2. ابحث عن سهم المزاريب الذي يظهر على يسار المحرر. يشير السهم نحو موقع التعديل المقترح التالي.

  3. اضغط على علامة تبويب للانتقال إلى موقع التعديل المقترح.

  4. اضغط على تاب مرة أخرى لقبول الاقتراح، أو اضغط Escape لرفض الاقتراح.

إليك بعض السيناريوهات الشائعة التي يكون فيها NES مفيدا بشكل خاص:

  • إعادة تسمية الانتشار: إعادة تسمية متغير مرة واحدة ويقترح NES تحديث كل إشارة أخرى له في الملف.
  • تغييرات النوع: تغيير نوع بيانات الحقل ويقترح NES تحديث الكود اللاحق الذي يستخدمه.
  • تصحيحات منطقية: عند إصلاح حالة معكوسة أو خطأ مطبعي في كلمة مفتاحية يقوم NES بتحديد قسم الكود المرتبط الذي يتطلب تحديثات.
  • إعادة الهيكلة: بعد نسخ ولصق كتلة الكود، يقترح NES كيفية تكييفها لتتناسب مع نمط الكود المحيط.

إشعار

اقتراحات التعديل التالية تتوقع التغيير الأكثر احتمالا بناء على تعديلاتك الحالية. دائما راجع كل اقتراح قبل قبوله، لأن الحل المناسب لحالتك قد تختلف.

الملخص

إكمال أسطر الكود هو ميزة قوية في GitHub Copilot يمكن أن تساعدك في توليد الكود بسرعة وكفاءة. باستخدام التعليقات لوصف التعليمات البرمجية التي تريد إنشاؤها، يمكنك إنشاء بنيات البيانات والأساليب وعناصر التعليمات البرمجية الأخرى بأقل جهد ممكن. بالإضافة إلى ذلك، يمكن ل GitHub Copilot توليد إكمال أسطر الشيفرة بناء على الكود الذي تدخله، مما يسمح لك ببناء تطبيقات معقدة بسهولة.