檢視 GitHub Copilot 的程式碼開發特性

已完成

Visual Studio Code 實作GitHub Copilot使用兩個擴充功能,分別是 GitHub Copilot 和 GitHub Copilot Chat。 這些延伸模組可藉由產生擴充或改善應用程式的建議來提升開發人員生產力。 每個延伸模組都會提供一組功能,可協助您更有效率地開發程式碼:

  • GitHub Copilot 擴充功能會根據你在編輯器輸入的程式碼或程式碼註解,產生程式碼補全建議。
  • GitHub Copilot聊天擴充功能會根據聊天互動或針對特定程式碼的智慧行動產生程式碼建議。

注意

在本模組中,你會使用 GitHub Copilot 擴充功能來開發新的程式碼功能和應用程式。 有兩個獨立模組,分別介紹如何使用 GitHub Copilot 來建立單元測試並改進現有程式碼。

Visual Studio Code 中的 GitHub Copilot 工具

Visual Studio Code 提供輕鬆存取以下 GitHub Copilot 與 GitHub Copilot 聊天功能:

  • 使用程式碼行自動完成功能,以更有效率地撰寫程式碼。
  • 內嵌聊天:撰寫程式碼時,直接從編輯器啟動內嵌聊天交談,即可取得協助。
  • 聊天檢視:在側邊開啟 AI 助理,隨時協助您。
  • 快速聊天:快速提問,然後繼續工作。
  • 智慧動作:執行智慧動作,甚至不需要撰寫提示即可完成特定工作。

GitHub Copilot擴充將 AI 的力量帶入Visual Studio Code環境。

使用 GitHub Copilot 透過程式碼行補全生成程式碼

GitHub Copilot 在輸入程式碼時自動產生程式碼行補全。 你應用程式中已有的程式碼提供了上下文,GitHub Copilot用來產生準確的建議。 例如,假設您正在處理一個會處理客戶支出的類別。 類別使用一個包含所有客戶支出的清單。 您必須建立可傳回所有支出總和的方法。 如果您開始輸入方法簽章,GitHub Copilot 會產生建議,補齊該行程式碼。

螢幕擷取畫面顯示根據程式碼完成一行程式碼的建議。

如果您對建議感到滿意,請按 Tab 鍵或選取 [接受]。 自動完成可節省您的時間,並藉由提供變數名稱和其他程式碼元素,協助您正確撰寫程式碼。

您也可以使用程式碼行補全功能來檢視建構程式碼的不同選項。 例如,如果你開始輸入某個方法的呼叫語句,GitHub Copilot 會提供實作各種方法重載的建議。 您可以循環查看符合您意圖的建議並接受選項。 您也可以拒絕所有建議。 此流程可協助您快速探索不同的程式碼編寫風格和技術。

GitHub Copilot也會從程式碼註解產生程式碼行補全建議。 例如,如果你輸入一則描述你想建立的方法的註解,GitHub Copilot 會產生方法簽名和實作的建議。

螢幕擷取畫面顯示根據註解完成的程式碼行。

請注意,建議的程式碼完成會使用來自您現有程式碼和描述方法的程式碼註解的資訊。

開發人員會使用程式碼完成來加速初始程式碼結構的開發。

使用 GitHub Copilot 聊天產生程式碼

GitHub Copilot 聊天幫助你利用聊天介面和智慧操作來創建程式碼。 例如,如果你輸入提示,要求 GitHub Copilot Chat 建立新方法,GitHub Copilot 會提供一個或多個方法簽名和實作的建議。 檢閱,然後接受或捨棄建議,可協助您更快速且準確地建立初始版本的程式碼。

注意

Visual Studio Code GitHub Copilot 聊天擴充功能包含一個處理使用者輸入的聊天介面。 此訓練在提及您於聊天工作階段中提供的輸入時,會使用問題與提示這兩個詞彙。

GitHub Copilot 聊天特別適合開發實作不熟悉資源的程式碼,例如新的函式庫、框架或 API。 當你提交描述需求的提示時,GitHub Copilot Chat 會產生建議,示範如何達成你的目標。 檢閱建議也可以教您如何實作新的資源。

提供具有明確範圍與意圖的提示或問題給 GitHub Copilot Chat,可以提升生成的回應品質。 您可以詢問可提供內容的問題,並以交談樣式描述您的需求。 GitHub Copilot Chat 會利用你提供的資訊,產生符合你需求且符合編碼風格的程式碼建議。

您可以使用聊天參與者、slash 命令和聊天變數來釐清提示的內容。

  • 聊天室參與者,如 @workspace@terminal,有助於GitHub Copilot聊天理解你問題的上下文。
  • 斜線指令,如 /explain/new,有助於GitHub Copilot Chat 理解你問題的意圖或目的。
  • 聊天變數,例如 #file#editor,有助於Copilot聊天在考慮你問題的整體脈絡時聚焦於特定目標。

使用這些專門描述詞有助於GitHub Copilot聊天產生更準確且有用的回應。

您可以將聊天參與者與斜線命令結合,以執行特定動作。 例如,您可以使用下列提示,建構新的 C# 主控台應用程式:。 此提示包含聊天參與者(@workspace)及斜杠指令(/new),以協助GitHub Copilot聊天執行預定任務。

顯示用來建構主控台應用程式之聊天的螢幕擷取畫面。

GitHub Copilot可以搭建更複雜的工作區。 例如,下列提示會為使用 Express 架構、Pug 範本引擎和 TypeScript 的 Node.js 應用程式建立工作區:。

使用 GitHub Copilot 聊天視窗生成程式碼

Visual Studio Code 的聊天視窗提供一個協助你開發程式碼的 AI 助理。 你可以在不離開 Visual Studio Code 環境的情況下,向你的 AI 助理提問並獲得協助。 聊天檢視會在您開發程式碼以及探索解決困難程式碼問題的方法時提供協助。 您也可以使用 [聊天] 檢視來詢問關於現有程式碼的問題、取得錯誤或編碼邏輯問題的協助,以及取得使用資源的相關資訊。 聊天檢視可協助您學習新的編碼技術、探索不同的編碼風格,以及提升編碼技能。

聊天視窗會在 Visual Studio Code 程式碼編輯器右側的獨立面板中開啟。 要開啟聊天視窗,請從Visual Studio Code標題欄選擇Chat或使用Ctrl+Alt+I快捷鍵。

顯示 Visual Studio Code 中聊天視窗的「歡迎」訊息的截圖。

如果你需要在 Visual Studio Code 中有更多螢幕空間,可以在聊天視圖的右鍵選單中選擇在新視窗開啟聊天,以在獨立視窗中開啟聊天視圖。

螢幕擷取畫面顯示 Visual Studio Code 中的聊天檢視回應問題。

GitHub Copilot 聊天提供豐富且互動的結果,包含以下元素:

  • 簡單文字。 例如,為問題提供自然語言回應。
  • 影像 例如,顯示圖表或螢幕擷取畫面。
  • 按鈕。 例如,為了觸發某個事件。
  • 參考。 例如,您可以在統一資源識別項 (URI) 中找到更多資訊。
  • 文件樹 例如,聊天參與者提議建立新的工作區時,顯示工作區預覽。

下列範例顯示用來建立 Express 應用程式的提示回應。 GitHub Copilot Chat 提供簡單的文字說明、一個顯示建議工作區結構的樹狀圖,以及一個可用來建立新工作區的按鈕。

顯示聊天檢視的螢幕擷取畫面,其中顯示 [建立工作區] 按鈕。

GitHub Copilot會保留你們對話的紀錄。 這些歷史記錄用來改善 GitHub Copilot 聊天建議的回應與後續問題。

在聊天檢視中管理程式碼區塊

根據你的問題,GitHub Copilot Chat 可能會在回應中回傳原始碼。 原始程式碼會顯示為程式碼區塊,而且您可以透過幾種不同的方式管理程式碼。

如果您將滑鼠指標停留在程式碼區塊上方,則會顯示用來管理程式碼區塊的選項。 你最初的選項是 套用、 插入(Ctrl+Enter)和 複製。

顯示聊天檢視中程式碼區塊的螢幕擷取畫面。

[更多動作 (...)] 按鈕會顯示 [插入至終端 (Ctrl+Alt+Enter)] 和 [插入至新檔案] 的選項。

如果 GitHub Copilot Chat 偵測到某個程式碼區塊包含指令,你可以直接在內建終端機中執行,使用插入終端機(Ctrl+Alt+Enter)。 此選項會建立或開啟使用中的終端,並插入命令文字,備妥供您執行。

顯示聊天檢視中 [插入到終端] 選項的螢幕擷取畫面。

使用 GitHub Copilot 的內嵌聊天功能產生程式碼

內嵌的聊天介面可讓您存取功能強大的 AI 功能,同時使您專注於程式碼。 在程式碼編輯器工作時,按下鍵盤上的 Ctrl+I 即可開啟內嵌聊天。

您可以透過下列方式使用內嵌聊天:

  • 詢問有關現有程式碼的問題。
  • 修改或取代現有的程式碼。
  • 產生新的程式碼。

使用內嵌聊天建立新功能

內嵌聊天介面可用來開發新的程式碼功能。 例如,您可以使用內嵌聊天來建立新的使用者介面元件、新的 API 端點,或新的資料處理管道。

您可以完成下列步驟,使用內嵌聊天來建立新的程式碼功能:

  1. 在編輯器中選取程式碼。

  2. 按鍵盤上的 Ctrl+I,以開啟內嵌聊天介面。

  3. 輸入描述您要建立的功能的提示。

  4. 請參考 GitHub Copilot Chat 提供的建議,必要時再細化你的提示。

  5. 一旦滿意,請接受建議。

以下範例示範如何使用內嵌聊天建立新方法:

螢幕擷取畫面顯示使用內嵌聊天工作階段建立方法。

使用即時聊天來建立正則表達式

規則運算式是用來比對字串中字元組合的模式。 有些開發人員覺得正則運算式很難撰寫,因為它們可能很複雜、也不容易理解。

內嵌聊天介面可用來快速且準確地產生規則運算式。 例如,您可以使用內嵌聊天來產生規則運算式,用於驗證電子郵件地址、電話號碼、郵遞區號和其他資料模式。

您可以依照下列步驟,使用內嵌聊天建立正則運算式:

  1. 在編輯器中選取程式碼。

  2. 按鍵盤上的 CtrlI,以開啟內嵌聊天介面。

  3. 輸入描述您需要驗證的資料模式的提示。

  4. 請參考 GitHub Copilot Chat 提供的建議,當你滿意後,接受該建議。

以下範例示範如何使用即時聊天來建立電子郵件地址的正則運算式:

螢幕擷取畫面顯示使用內嵌聊天工作階段建立正則運算式。

檢視 GitHub Copilot Chat 產生的回應總是很重要的。

GitHub Copilot Chat 建議可用以下正則表達式來驗證電子郵件地址:^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$

讓我們花一分鐘的時間來評估建議的規則運算式。

:此符號代表行的開頭。 電子郵件地址必須從這裡開始。

運算式的這一部分會比對中括號 ([]) 內的一個或多個 (+) 字元。 這些字元可以是小寫 (a-z)、大寫 (A-Z)、數字 (0-9),或特殊字元,例如底線 (_)、句號 (.)、加號 (+) 或連字號 (-)。

:運算式的這個部分是「At」符號 (@)。 這是電子郵件地址內的字面字符。

:運算式的此部分與第一個部分類似,但用於電子郵件的網域名稱部分。 它可以包含一或多個小寫、大寫、數字或連字號 (-) 字元。

:運算式的這個部分是常值句點 (.) 字元。 它將網域名稱與網域副檔名分隔開。

:運算式的這個部分符合網域副檔名。 它可以包含一或多個小寫、大寫、數字、連字號 (-) 或句號 (.) 字元。

:此符號代表行的結尾。 電子郵件地址必須在這裡結束。

整體而言,此規則運算式是驗證電子郵件位址的良好起點,但它有一些限制,且可能未涵蓋所有有效的電子郵件格式。 您可能想要考慮針對重要應用程式使用更完整的模式,甚至使用專用的電子郵件驗證程式庫。

摘要

GitHub Copilot擴充功能幫助開發者更快且錯誤更少地撰寫程式碼。 GitHub Copilot 擴充功能會根據你在編輯器輸入的程式碼或程式碼註解,產生程式碼補全建議。 GitHub Copilot聊天擴充功能會根據聊天互動或針對特定程式碼的智慧行動產生程式碼建議。