檢視 GitHub Copilot 的程式碼補全功能

已完成

GitHub Copilot 在輸入程式碼時會提供自動補全式的建議。 除了標準的自動補全建議外,GitHub Copilot 也提供下一次編輯建議(NES),能預測你下一次編輯的位置並建議完成。

當您執行下列動作時,會收到自動完成樣式的建議:

  • 在編輯器中輸入部分或完整的程式代碼行。
  • 在編輯器中輸入部分或完整的程式代碼批注。
  • 在編輯器中輸入空白代碼行。

隨著你編輯程式碼,下一步編輯建議會自動出現。 它們會根據你最近的編輯來預測你下一步可能做的修改,並以一個特別的指示器顯示建議的編輯位置。

產生自動完成建議

GitHub Copilot 會根據您正在撰寫的程式碼提供程式碼補全建議,以加速應用程式開發。

舉例來說,假設你想建立一個名為 addInt C# 的方法,回傳兩個整數的和。 如果您開始輸入方法簽章,GitHub Copilot 會建議它認為您想建立的程式碼。

顯示自動完成新增兩個數字的螢幕擷取畫面。

會顯示建議的自動完成,但不以彩色語法醒目提示。 這有助於區分自動完成與現有的程式碼。 您可以按 Tab 鍵來接受建議的程式代碼。

截圖顯示已接受的自動補全建議。

您可以按 Esc 鍵來關閉建議。

addInt 的例子有點簡單,你可能會好奇 GitHub Copilot 怎麼處理更複雜的問題。

假設您想要建立接受數字清單的方法,並傳回清單中包含的質數總和。 你可以把這個方法 addPrimeNumbersInNumericList命名為 。 當你開始輸入方法簽名時,GitHub Copilot會自動產生一個建議。 例如:

顯示為清單中質數相加的方法提供自動補全的螢幕擷取畫面。

請務必先檢閱建議再接受建議。 此自動完成看起來不錯,因此您可以按 Tab 鍵接受建議。

讓我們繼續進一步探討這個情境。

一旦建議合併到程式碼中,你會注意到 isPrime 方法被紅線底線標示。 這是因為這個 isPrime 方法還不存在於程式碼中。

截圖顯示 addPrimeNumbersInNumericList 方法已合併到程式碼中,isPrime 以紅色底線標示。

GitHub Copilot 受過最佳實務的訓練,包括將複雜問題拆解成更小、更易管理的部分。 在這種情況下,GitHub Copilot建議你建立一個獨立的isPrime方法來檢查一個數字是否質數。

GitHub Copilot 已準備好建議 isPrime 方法的程式碼片段。 當你在 addPrimeNumbersInNumericList 方法下方輸入空白行時,GitHub Copilot 會建議你可以使用一個 isPrime 方法。

顯示自動完成新增 isPrime 方法的螢幕擷取畫面。

自動完成建議會藉由提供程式碼片段來加速開發過程。 但是,如果建議不完全是你需要的呢? GitHub Copilot 提供一個管理自動補全建議的介面。

管理自動完成建議

當GitHub Copilot建議自動補全時,也會提供管理建議的介面。 您可以接受建議、檢閱其他建議,或關閉建議。

當您將滑鼠指標暫留在建議的自動完成上方時,您會看到數個選項可管理建議。

截圖顯示自動補全建議的「接受」選項。

管理建議的預設介面包含下列選項:

  • 選擇 接受建議(完整)即可。 您也可以按 Tab 鍵來接受建議。
  • 選取接受文字來部分接受建議。 你也可以按(右箭頭)鍵來部分接受建議 Ctrl +
  • 請選擇 ><查看其他建議。 你也可以按 Alt + ] or Alt + [ 鍵查看其他建議。

選擇 接受 Word選項,即可接受建議的下一個字詞。 當您想要接受建議的一部分,然後繼續輸入您自己的程式代碼時,這會很有用。 例如,你可以接受方法建議的 isPrime 第一個字。

顯示自動完成建議進行中 Accept Word 選項的螢幕擷取畫面。

繼續選擇接受建議,直到你接受了你想要的全部建議。

選取「接受文字」按鈕右側的省略符號 (...) 圖示,可取得其他選項,例如一律顯示工具列開啟建議面板

截圖顯示自動補全建議的額外工具列選項。

選擇 「永遠顯示工具列」選項, 確保在使用鍵盤快捷鍵管理自動補全建議時,工具列仍可見。 選擇 Open Completions Panel 選項後,會開啟 GitHub Copilot Completions Panel。 本單元結尾會介紹如何使用 GitHub Copilot Completions Panel 檢視多個建議。

備註

要接受整行建議,你需要設定自訂的快捷鍵來執行該 editor.action.inlineSuggest.acceptNextLine 命令。 這個選項預設在工具列中沒有。

從批注產生程式代碼建議

除了根據程式碼建議自動補全外,GitHub Copilot 也可以使用程式碼註解來建議程式碼片段。 使用自然語言片語來描述您想要建立的程式碼。 這使GitHub Copilot能提出符合特定需求的自動補全建議。 例如,您可以指定要在計算中使用的演算法類型,或您想要新增至類別的方法和屬性。

讓我們回到質數範例。 此時,您有下列程序代碼:

這張截圖顯示質數範例的當前程式碼。

addPrimeNumbersInNumericListisPrime方法似乎都已經完整。 不過,當你呼叫 addPrimeNumbersInNumericList 方法時,仍然需要一份可以作為參數的數字清單。 您可以撰寫描述所需數字清單的批註。 例如,範圍從 1 到 1000 的 100 個隨機數清單。

當你開始輸入留言時,GitHub Copilot會建議自動補全,幫你完成留言。 GitHub Copilot 利用你周圍的程式碼來改進建議。 舉例來說,如果你開始輸入註解 // create,GitHub Copilot 會利用周圍的程式碼來預測你想建立的內容。 在這種情況下GitHub Copilot會用 addPrimeNumbersInNumericList 方法來預測你想要產生 a list of numbers

截圖顯示「create」這個字被加到留言欄。

當你繼續撰寫評論時,GitHub Copilot 會更新自動完成建議。 當你準備好接受建議時,選擇 接受 或按下 Tab 鍵。

顯示在註解行中加入「create a list of 100 random numbers」字樣的螢幕擷取畫面。

當你在註解後建立新程式碼行時,GitHub Copilot會根據註解和你現有的程式碼開始產生程式碼片段。

截圖顯示GitHub Copilot加入第一行程式碼行。

依建議出現的順序接受每一個建議。

截圖顯示GitHub Copilot持續新增程式碼行。

如果GitHub Copilot沒完成,系統會產生另一個建議讓你接受。

截圖顯示出GitHub Copilot完成了數字列表。

如果你在程式碼片段完成後輸入新的程式碼行,GitHub Copilot會根據你的程式碼專案需求產生另一個自動補全建議。 在此情況下,GitHub Copilot 建議一行程式碼行呼叫 addPrimeNumbersInNumericList 方法,並傳遞名為 numbers 的清單。

截圖顯示 GitHub Copilot 建議的函式呼叫。

使用 GitHub Copilot Completions Panel 檢視多個建議

如果你對最初的自動補全建議不滿意,GitHub Copilot可以在編輯器中開啟一個新分頁,裡面有更多選項。 您可以檢閱較大的建議清單,以尋找更好的相符項目,然後加以選取。

為了示範這項功能,讓我們回到質數範例的先前階段。

假設你還是需要建立這個 isPrime 方法。 當你在addPrimeNumbersInNumericList方法下方輸入空白行時,GitHub Copilot會建議你用isPrime方法。 這是您先前使用的相同流程。 不過,假設你對GitHub Copilot提供的建議不滿意,想看到更多選項。

要開啟GitHub Copilot完成面板並查看其他建議,請按 Ctrl + Enter 鍵。 你也可以打開「更多動作」選單,選擇 「開啟完成面板」。

截圖顯示GitHub Copilot建議標籤。

GitHub Copilot完成面板顯示最多 10 個其他建議。 檢閱建議以找出最符合您需求的建議。

要接受建議,請在建議下方選擇「 接受建議 」標籤。 例如,在第一個建議下方選擇「 接受建議1 」標籤。

若要拒絕所有建議,請關閉索引標籤。

總結

自動補全建議和下一步編輯建議能幫助你更有效率、更準確地撰寫程式碼。 GitHub Copilot 會在您輸入程式碼時提供自動補全建議,也會提供預測您下一步可能編輯內容的下一次編輯建議。 您可以輸入部分或完整的程式代碼行、部分或完整的程式代碼批注,或空白程式代碼行,以產生自動完成建議。 您可以按 Tab 鍵接受建議,或按下 Esc 鍵來關閉建議。 您可以使用將滑鼠停留在建議上方時出現的工具列來管理建議。 工具列讓你能檢視其他建議、接受建議、接受建議中的一個字,或開啟GitHub Copilot完成面板查看更多建議。