Генерируйте код с использованием предложений по автодополнению кода от GitHub Copilot
GitHub Copilot может предоставлять предложения по завершению кода для многочисленных языков программирования и широкий спектр платформ, но особенно хорошо подходит для Python, JavaScript, TypeScript, Ruby, Go, C# и C++. Завершения строки кода создаются на основе контекста написанного кода. Вы можете принять, отклонить или частично принять предложения, предоставляемые GitHub Copilot.
GitHub Copilot предоставляет два способа генерации автозавершений строк кода.
Из комментария: можно сгенерировать автозавершения строк кода, написав комментарий, описывающий код, который хотите создать. GitHub Copilot предоставляет предложения по завершению кода на основе комментариев, которые вы пишете.
Из кода: можно создавать завершения строки кода, запуская кодовую строку или нажав клавишу ВВОД после завершения строки кода. 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 создает несколько предложений, вы можете циклически перемещаться по предложениям, выбрав стрелки влево или вправо (> или <), расположенные слева от кнопки Accept. Это позволяет просматривать и выбирать предложения, которые лучше всего соответствуют вашим потребностям.
Это нормально принять предложение о завершении кода, которое не является точным совпадением с тем, что вы ожидали. Однако изменения, необходимые для "исправления" предложения, должны быть понятными. В этом случае некоторые типы данных не нужны, но их можно изменить после принятия предлагаемого автозаполнения.
Если ни один из предлагаемых вариантов не похож на то, что вам нужно, можно попробовать два способа. Чтобы открыть новую вкладку редактора, содержащую список других предложений, нажмите клавиши CTRL + ВВОД . Эта комбинация горячего ключа открывает новую вкладку, содержащую до 10 дополнительных предложений. За каждым предложением следует кнопка, которую можно использовать для принятия предложения. Вкладка закрывается автоматически после принятия предложения. Другим вариантом является нажатие клавиши ESC , чтобы закрыть предложения и повторить попытку. Вы можете настроить комментарий кода, чтобы обеспечить больше контекста для работы с GitHub Copilot.
Замечание
GitHub Copilot иногда может предлагать рекомендацию пошагово. Если это произойдет, можно нажать клавишу TAB, а затем клавишу ВВОД, чтобы увидеть дополнительные этапы подсказки.
Чтобы принять предлагаемую структуру данных, нажмите клавишу TAB или нажмите кнопку "Принять".
Чтобы изменить типы данных полей, обновите код следующим образом:
public struct SalesData
{
public DateOnly dateSold;
public string departmentName;
public int productID;
public int quantitySold;
public double unitPrice;
}
Быстрое изменение предложений по завершению кода помогает гарантировать, что вы создаете нужный код. Особенно важно внести исправления в начале процесса разработки, когда необходимо разработать большую часть базы кода. Последующие завершения кода основаны на уже написанном коде, поэтому важно убедиться, что код является максимально точным.
Следуйте следующим предложениям редактирования для выполнения изменений в коде
Фантомные завершения текста отлично подходят для заполнения нового кода при написании текста. Но большинство повседневных кодов включает изменение существующего кода — переименование переменной, обновление типа данных или исправление ошибки логики. Следующие предложения по редактированию (NES) от GitHub Copilot предназначены именно для этого сценария.
При внесении изменений NES анализирует изменения и предсказывает, где нужно сделать следующее изменение и каким оно должно быть, даже если это на другой строке или в другой части файла. Это позволяет вам не выпадать из рабочего ритма без необходимости вручную искать все места, для которых требуются обновления.
Чтобы включить следующие варианты редактирования, задайте для параметра github.copilot.nextEditSuggestions.enabled значение true в Visual Studio Code.
После включения NES можно использовать следующим образом:
Внесите изменения в редактор, например переименуйте переменную или измените сигнатуру метода.
Найдите стрелку на полях, которая отображается слева от редактора. Стрелка указывает на расположение следующего предлагаемого изменения.
Нажмите клавишу TAB , чтобы перейти к предлагаемому расположению редактирования.
Нажмите клавишу TAB еще раз, чтобы принять предложение, или нажмите клавишу ESCAPE , чтобы закрыть его.
Ниже приведены некоторые распространенные сценарии, в которых NES особенно полезно:
- Переименование распространения: переименуйте переменную один раз и NES предлагает обновить каждую другую ссылку на нее в файле.
- Изменение типа: Изменение типа данных поля, при этом NES предлагает обновить задействованный код, который использует его.
- Исправления логики: исправление инвертированного условия или опечатки в ключевом слове и NES помечает соответствующий раздел кода, требующий обновлений.
- Рефакторинг. После копирования и вставки блока кода NES предлагает адаптировать его в соответствии с окружающим стилем кода.
Замечание
Следующие предложения редактирования прогнозируют наиболее вероятное следующее изменение на основе текущих изменений. Всегда просматривайте каждое предложение перед принятием его, так как правильное исправление для конкретного сценария может отличаться.
Сводка
Завершение строки кода — это мощная функция GitHub Copilot, которая помогает быстро и эффективно создавать код. Используя примечания для описания создаваемого кода, можно создавать структуры данных, методы и другие элементы кода с минимальными усилиями. Кроме того, GitHub Copilot могут создавать завершения строки кода на основе введенного кода, что позволяет легко создавать сложные приложения.