Tạo mã bằng cách sử dụng đề xuất hoàn thành mã GitHub Copilot
GitHub Copilot có thể cung cấp các đề xuất hoàn thành mã cho nhiều ngôn ngữ lập trình và nhiều khung khác nhau, nhưng hoạt động đặc biệt tốt cho Python, JavaScript, TypeScript, Ruby, Go, C# và C++. Hoàn thành dòng mã được tạo dựa trên ngữ cảnh của mã bạn đang viết. Bạn có thể chấp nhận, từ chối hoặc chấp nhận một phần các đề xuất do GitHub Copilot cung cấp.
GitHub Copilot cung cấp hai cách để tạo hoàn thành dòng mã:
Từ chú thích: Bạn có thể tạo hoàn thành dòng mã bằng cách viết chú thích mô tả mã bạn muốn tạo. GitHub Copilot cung cấp các đề xuất hoàn thành mã dựa trên nhận xét bạn viết.
Từ mã: Bạn có thể tạo hoàn thành dòng mã bằng cách bắt đầu một dòng mã hoặc bằng cách nhấn Enter sau một dòng mã đã hoàn thành. GitHub Copilot cung cấp các đề xuất hoàn thành mã dựa trên mã bạn viết.
Sử dụng GitHub Copilot để tạo các dòng mã hoàn thành từ một nhận xét
GitHub Copilot tạo các đề xuất hoàn thành mã dựa trên nhận xét và ngữ cảnh hiện có của ứng dụng.
Bạn có thể sử dụng chú thích để mô tả các đoạn mã, phương pháp, cấu trúc dữ liệu và các thành phần mã khác.
Giả sử bạn có đoạn mã sau đây:
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");
}
}
Ví dụ: chú thích sau đây có thể được sử dụng để tạo cấu trúc dữ liệu:
/* public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price */
GitHub Copilot tạo một hoặc nhiều đề xuất hoàn thành mã dựa trên nhận xét mã của bạn và các tệp mã đang mở trong trình chỉnh sửa.
Lưu ý các kiểu dữ liệu được sử dụng để khai báo các trường của cấu trúc dữ liệu. GitHub Copilot chọn kiểu dữ liệu và tên biến dựa trên mã hiện có của bạn và nhận xét mã. GitHub Copilot cố gắng xác định cách ứng dụng sử dụng các biến và xác định các kiểu dữ liệu cho phù hợp.
Khi GitHub Copilot tạo nhiều đề xuất, bạn có thể chuyển qua các đề xuất bằng cách chọn mũi tên trái hoặc phải (> hoặc <) nằm ở bên trái của nút Chấp nhận. Điều này cho phép bạn xem lại và chọn đề xuất phù hợp nhất với nhu cầu của bạn.
Chấp nhận đề xuất hoàn thành mã không khớp chính xác với nội dung bạn muốn. Tuy nhiên, các thay đổi cần thiết để "sửa chữa" đề xuất sẽ rõ ràng. Trong trường hợp này, một số kiểu dữ liệu không phải là điều bạn muốn, nhưng bạn có thể điều chỉnh chúng sau khi chấp nhận tự động điền được đề xuất.
Nếu không có tùy chọn được đề xuất nào giống với tùy chọn bạn cần, có hai cách bạn có thể thử. Để mở tab trình soạn thảo mới chứa danh sách các đề xuất khác, nhấn phím Ctrl + Enter . Tổ hợp phím nóng này mở ra một tab mới chứa tối đa 10 đề xuất khác. Sau đó, mỗi đề xuất sẽ có một nút mà bạn có thể sử dụng để chấp nhận đề xuất. Tab sẽ tự động đóng lại sau khi bạn chấp nhận đề xuất. Tùy chọn khác của bạn là nhấn phím Esc để bỏ qua các đề xuất và thử lại. Bạn có thể điều chỉnh nhận xét mã để cung cấp thêm ngữ cảnh cho GitHub Copilot làm việc.
Lưu ý
GitHub Copilot đôi khi có thể đề xuất một đề xuất theo từng giai đoạn. Nếu điều này xảy ra, bạn có thể nhấn Enter để xem các giai đoạn bổ sung của đề xuất sau khi nhấn phím Tab.
Để chấp nhận cấu trúc dữ liệu được đề xuất, nhấn phím Tab hoặc chọn Chấp nhận.
Để sửa đổi kiểu dữ liệu trường, hãy cập nhật mã của bạn như sau:
public struct SalesData
{
public DateOnly dateSold;
public string departmentName;
public int productID;
public int quantitySold;
public double unitPrice;
}
Việc thực hiện điều chỉnh nhanh chóng đối với các đề xuất hoàn thành mã sẽ giúp đảm bảo rằng bạn đang xây dựng mã mình muốn. Điều đặc biệt quan trọng là phải thực hiện chỉnh sửa sớm trong quá trình phát triển của bạn khi các phần lớn trong cơ sở mã của bạn vẫn cần được phát triển. Các lần hoàn tất mã tiếp theo được dựa trên mã bạn đã viết, vì vậy điều quan trọng là phải đảm bảo rằng mã của bạn chính xác nhất có thể.
Sử dụng các đề xuất chỉnh sửa tiếp theo để theo dõi các thay đổi mã
Hoàn thành văn bản ma rất tốt trong việc điền mã mới khi bạn viết nó. Nhưng hầu hết các mã hóa hàng ngày liên quan đến việc chỉnh sửa mã hiện có - đổi tên biến, cập nhật kiểu dữ liệu hoặc sửa lỗi logic. Đề xuất sửa đổi tiếp theo của GitHub Copilot (NES) được thiết kế cho chính xác kịch bản này.
Khi bạn thực hiện một chỉnh sửa, NES phân tích thay đổi và dự đoán cả nơi chỉnh sửa tiếp theo của bạn cần xảy ra và chỉnh sửa đó sẽ là gì - ngay cả khi nó nằm trên một dòng khác hoặc trong một phần khác của tệp. Điều này giúp bạn luôn cập nhật mà không cần phải tìm kiếm thủ công mọi vị trí yêu cầu cập nhật.
Để bật đề xuất chỉnh sửa tiếp theo, hãy đặt cài đặt github.copilot.nextEditSuggestions.enabled thành true trong Visual Studio Code.
Sau khi được kích hoạt, bạn có thể sử dụng NES theo những cách sau:
Thực hiện sửa trong trình sửa – ví dụ: đổi tên biến hoặc thay đổi chữ ký phương thức.
Tìm mũi tên máng xối xuất hiện ở bên trái của trình chỉnh sửa. Mũi tên chỉ về vị trí của sửa đổi được đề xuất tiếp theo.
Nhấn phím Tab để điều hướng đến vị trí chỉnh sửa được đề xuất.
Nhấn Tab một lần nữa để chấp nhận đề xuất hoặc nhấn Escape để loại bỏ đề xuất đó.
Dưới đây là một số tình huống phổ biến mà NES đặc biệt hữu ích:
- Đổi tên lan truyền: Đổi tên một biến một lần và NES đề xuất cập nhật mọi tham chiếu khác đến biến đó trong tệp.
- Thay đổi loại: Thay đổi kiểu dữ liệu của trường và NES đề xuất cập nhật mã xuôi dòng sử dụng loại dữ liệu đó.
- Sửa logic: Sửa một tình trạng đảo ngược hoặc lỗi chính tả trong một từ khóa và NES gắn cờ phần mã liên quan yêu cầu cập nhật.
- Tái cấu trúc: Sau khi sao chép và dán một khối mã, NES đề xuất cách điều chỉnh nó để phù hợp với kiểu mã xung quanh.
Lưu ý
Đề xuất chỉnh sửa tiếp theo dự đoán thay đổi tiếp theo có khả năng xảy ra nhất dựa trên các chỉnh sửa hiện tại của bạn. Luôn xem xét từng đề xuất trước khi chấp nhận, vì cách khắc phục phù hợp cho tình huống cụ thể của bạn có thể khác nhau.
Tóm tắt
Hoàn thành dòng mã là một tính năng mạnh mẽ của GitHub Copilot có thể giúp bạn tạo mã nhanh chóng và hiệu quả. Bằng cách sử dụng chú thích để mô tả mã bạn muốn tạo, bạn có thể tạo cấu trúc dữ liệu, phương pháp và các thành phần mã khác với nỗ lực tối thiểu. Ngoài ra, GitHub Copilot có thể tạo hoàn thành dòng mã dựa trên mã bạn nhập, cho phép bạn xây dựng các ứng dụng phức tạp một cách dễ dàng.