透過 Gemini Code Assist Standard 和 Enterprise 編寫程式碼

本文件說明如何使用 Gemini Code Assist Standard 和 Enterprise,這項工具是 IDE 中的 AI 輔助協作工具,可協助您在 VS Code、IntelliJ 和其他支援的 JetBrains IDE 中執行以下操作:

  • 使用程式碼轉換功能為專案產生程式碼。
  • 在編寫程式碼時接收程式碼補全功能。
  • 使用智慧型動作。

如果您使用 Gemini Code Assist Enterprise,可以使用程式碼自訂功能,直接從 Gemini Code Assist Enterprise 取得根據貴機構私人程式碼集提供的程式碼建議。瞭解如何設定程式碼自訂功能

本文檔適用於各項技能等級的開發人員。本教學課程假設您具備 VS Code 或 IntelliJ 和其他支援的 JetBrains IDE 的工作知識,且熟悉 Google Cloud。如有需要,您也可以在 Cloud Shell 編輯器Cloud WorkstationsAndroid Studio 中探索 Gemini Code Assist。

事前準備

VS Code

  1. 設定 Gemini Code Assist Standard 或 Enterprise (如尚未設定)。

  2. 在程式碼檔案中測試 Gemini Code Assist 功能前,請確認檔案的程式語言是否受支援。如要進一步瞭解支援的程式語言,請參閱「支援的程式語言」。

  3. 如果您偏好在 Proxy 後方使用 IDE,請參閱「Visual Studio Code 中的網路連線」。

IntelliJ

  1. 設定 Gemini Code Assist Standard 或 Enterprise (如尚未設定)。

  2. 在程式碼檔案中測試 Gemini Code Assist 功能前,請確認檔案的程式語言是否受支援。如要進一步瞭解支援的程式語言,請參閱「支援的程式語言」。

  3. 如果您偏好在 Proxy 後方使用 IDE,請參閱「HTTP Proxy」。

使用提示產生程式碼

以下各節將說明如何使用 Gemini Code Assist,在程式碼檔案中使用範例提示 Function to create a Cloud Storage bucket 產生程式碼。您也可以選取程式碼的一部分,然後透過聊天功能向 Gemini Code Assist 尋求協助,並在編寫程式碼時接收並接受或拒絕程式碼建議。

透過程式碼轉換提示 Gemini Code Assist

程式碼轉換功能可讓您使用 Quick Pick 選單中的指令或自然語言提示,要求修改程式碼,並提供差異檢視畫面,顯示程式碼的待處理變更。如要提示 Gemini Code Assist 進行程式碼轉換,請按照下列步驟操作:

VS Code

  1. 在程式碼檔案的新行中,按下 Control + I 鍵 (Windows 和 Linux) 或 Command + I 鍵 (macOS),即可開啟 Gemini Code Assist Quick Pick 選單。

  2. 在選單中使用 /generate 指令,輸入 /generate function to create a Cloud Storage bucket,然後按下 Enter 鍵 (適用於 Windows 和 Linux) 或 Return 鍵 (適用於 macOS)。

    Gemini Code Assist 會使用 /generate 指令產生程式碼。

    Gemini Code Assist 會根據您在差異檢視畫面中提示的內容,產生程式碼。

    Gemini Code Assist 會開啟差異檢視畫面,顯示已產生的程式碼。

  3. 選用:如要接受這些變更,請按一下「接受」

IntelliJ

  1. 在程式碼檔案的新行中,按下 Alt + 鍵 (適用於 Windows 和 Linux) 或 Cmd + 鍵 (適用於 macOS),即可開啟 Gemini Code Assist Quick Pick 選單。

  2. 在選單中使用 /generate 指令,輸入 /generate function to create a Cloud Storage bucket,然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。

    在 IntelliJ Gemini Code Assist 中使用程式碼轉換功能產生函式

    Gemini Code Assist 會根據您在差異檢視畫面中提示的內容,產生程式碼。

    IntelliJ Gemini Code Assist 中的程式碼轉換差異檢視畫面

  3. 選用:如要接受這些變更,請按一下「接受變更」

    您可以在 IDE 中使用下列程式碼轉換指令:

    • /fix:修正程式碼中的錯誤或問題。範例:/fix potential NullPointerExceptions in my code
    • /generate:產生程式碼。範例:/generate a function to get the current time
    • /doc:在程式碼中加入說明。範例:/doc this function
    • /simplify:簡化程式碼。範例:/simplify if statement in this code

在程式碼檔案中使用註解提示 Gemini Code Assist

如有需要,您也可以在程式碼檔案中使用註解提示 Gemini Code Assist,步驟如下:

VS Code

  1. 在新行中輸入註解 Function to create a Cloud Storage bucket,然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。

  2. 如要產生程式碼,請按下 Control + Enter 鍵 (Windows 和 Linux) 或 Control + Return 鍵 (macOS)。

    Gemini Code Assist 會在程式碼檔案中提示文字旁,以鬼影文字形式產生程式碼。

  3. 選用步驟:如要接受產生的程式碼,請按下 Tab 鍵。

IntelliJ

  1. 在程式碼檔案的新行中,輸入註解 Function to create a Cloud Storage bucket

  2. 如要產生程式碼,請按下 Alt + G 鍵 (適用於 Windows 和 Linux) 或 Option + G 鍵 (適用於 macOS)。或者,您也可以在註解旁邊按一下滑鼠右鍵,然後選取「Generate Code」

    Gemini Code Assist 會以鬼影文字的形式,在註解下方產生程式碼。

  3. 選用步驟:如要接受產生的程式碼,請按下 Tab 鍵。

選用:變更產生程式碼的鍵盤快速鍵

如果產生程式碼的預設鍵盤快速鍵無法正常運作,請按照下列步驟變更鍵盤快速鍵:

VS Code

  1. 在 IDE 中,按一下「File」 (適用於 Windows 和 Linux) 或「Code」 (適用於 macOS),然後依序前往「Settings」>「Keyboard Shortcuts」

  2. 在鍵盤快速鍵清單中,捲動至找到「Gemini Code Assist: Generate code」

  3. 依序點選「Gemini Code Assist: Generate Code」和「Change Keybinding」(變更鍵綁定) edit

  4. 在隨即顯示的對話方塊中,輸入你要使用的捷徑。

  5. 按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。

    您現在可以使用新指派的鍵盤快速鍵,透過 Gemini Code Assist 產生程式碼。

如要進一步瞭解如何變更 IDE 中的快速鍵,請參閱「Visual Studio Code 的按鍵繫結」。

IntelliJ

  1. 依序前往 settings IDE 和專案設定 > 設定 > 鍵盤指派 > Gemini Code Assist

  2. Gemini Code Assist 上按一下滑鼠右鍵,然後選取「新增鍵盤快速鍵」

  3. 輸入你偏好的鍵盤快速鍵,然後按一下「確定」

  4. Gemini Code Assist 上按一下滑鼠右鍵,然後選取「移除」Alt + G (適用於 Windows 和 Linux),或「移除」Option + G (適用於 macOS)。

您現在可以使用新的鍵盤快速鍵,在程式碼檔案中產生程式碼。

取得程式碼完成功能

在您編寫程式碼時,Gemini Code Assist 會提供內嵌程式碼建議 (也稱為「程式碼完成」),您可以接受或忽略這些建議。如要取得程式碼完成功能,請按照下列步驟操作:

VS Code

  1. 在程式碼檔案的新行中,開始編寫函式。舉例來說,如果您在 Python 檔案中編寫 def

    Gemini Code Assist 會以鬼影文字的形式提供程式碼建議。

  2. 如要接受 Gemini Code Assist 提供的程式碼建議,請按下 Tab 鍵。如要忽略建議,請按下 Esc 鍵或繼續編寫程式碼。

IntelliJ

  1. 在程式碼檔案的新行中,開始編寫函式。舉例來說,如果您在 Python 檔案中編寫 def

    Gemini Code Assist 會以內嵌建議的形式提供程式碼建議。

  2. 如要接受 Gemini Code Assist 提供的程式碼建議,請按下 Tab 鍵。如要忽略建議,請按下 Esc 鍵或繼續編寫程式碼。

  3. 選用:如果您想使用其他快捷鍵接受內嵌建議,請將游標停留在內嵌建議上,然後點選出現的「Tab」下拉式選單。接著選取你偏好的捷徑,或按一下「自訂」來輸入自己的捷徑。

    Gemini 提供下拉式選單,可讓你變更捷徑,接受內文建議。

選用步驟:停用程式碼補全功能

程式碼完成功能預設為啟用。如要停用程式碼完成功能,請按照下列步驟操作:

VS Code

  1. 在 IDE 中,按一下「Code」 (適用於 macOS) 或「File」 (適用於 Windows 和 Linux),然後依序前往「Settings」>「Settings」

  2. 在「Settings」對話方塊的「User」分頁中,依序前往「Extensions」>「Gemini Code Assist」

  3. 捲動至找到「Duet AI:內嵌建議:啟用自動功能」清單,然後選取「關閉」

    這麼做會關閉內嵌建議功能。您仍可按下 Control + Enter 鍵 (Windows 和 Linux) 或 Control + Return 鍵 (macOS),手動觸發內嵌建議。

IntelliJ

在 IDE 的狀態列中,按一下 spark「Gemini Code Assist:Active」,然後選取「Enable AI Code Completion」

IntelliJ 狀態列中的 Gemini 程式碼補全按鈕。

這麼做會停用程式碼完成設定,Gemini Code Assist 將不再提供內嵌建議,直到您再次啟用該設定為止。

使用智慧型動作

為了協助您提高工作效率,同時盡量減少切換情境,Gemini Code Assist 會直接在程式碼編輯器中提供 AI 技術輔助的智慧動作。在程式碼編輯器中選取程式碼時,您可以查看與當前內容相關的動作清單,並從中選取所需動作。

如要在程式碼中使用智慧動作,請按照下列步驟操作:

VS Code

  1. 在程式碼檔案中選取程式碼區塊。

  2. 按一下所選程式碼區塊旁的 lightbulb「顯示程式碼動作」

    在 VS Code 中選取程式碼區塊後,智慧動作燈泡圖示就會顯示。

  3. 選取「產生單元測試」等動作

    Gemini Code Assist 會根據您選取的動作產生回覆。

IntelliJ

  1. 在程式碼檔案中選取一行或一區塊的程式碼。

  2. 在所選程式碼上按一下滑鼠右鍵,然後選取智慧動作,例如「產生單元測試」

    選取智慧動作後,Gemini Code Assist 會自動提示您在 Gemini Code Assist 工具視窗中,針對提示產生回應。

使用程式碼轉換快速修正功能

如果程式碼有錯誤,Gemini Code Assist 會提供快速修正選項,讓您透過程式碼轉換來修正錯誤。

如要在程式碼檔案中套用快速修正程式,請按照下列步驟操作:

VS Code

  1. 在程式碼檔案中,將指標懸停在波浪狀錯誤行上,然後依序選取「Quick Fix」和「/fix」

    IDE 中的程式碼轉換快速修正功能。

  2. 套用快速修正後,會顯示差異檢視畫面。如要接受這些變更,請按一下「接受」

IntelliJ

  1. 在程式碼檔案中,按一下代表程式碼有誤的紅色燈泡圖示,然後選取「Fix with Gemini」

    在 IDE 中使用 Gemini 修正程式碼轉換選項。

  2. 套用修正後,系統會顯示差異檢視畫面。如要接受這些變更,請按一下「接受」

停用與引述來源相符的程式碼建議

Gemini Code Assist 會在直接引用其他來源 (例如現有的開放原始碼) 的長篇內容時,提供引用資訊。詳情請參閱「Gemini 引用來源的方式和情形」。

如要避免系統建議與引用來源相符的程式碼,請按照下列步驟操作:

  1. 在 IDE 的活動列中,依序點選「管理」>「設定」

  2. 在設定視窗的「使用者」分頁中,依序前往「Extensions」>「Gemini Code Assist」

  3. 捲動畫面,找到「Duet AI」>「朗讀:最大引文長度」

  4. 將值設為 0

    Gemini Code Assist 不再建議您使用與引文來源相符的程式碼。

已知問題

本節將概略說明 Gemini Code Assist 的已知問題:

VS Code

  • 如果聊天回覆包含大型開放式檔案的更新版本,可能會遭到截斷

    如要解決這個問題,請選取較小的程式碼區段,並在即時通訊提示中加入其他指令,例如 only output the selected code.

  • Vim:除非處於插入模式,否則無法接受或略過程式碼產生建議

    在一般模式下使用 Vim 外掛程式時,您無法接受或略過程式碼建議。

    如要解決這個問題,請按下 i 鍵進入插入模式,然後按下 Tab 鍵接受建議。

  • Vim:按下 Esc 關閉建議時,行為不一致

    按下 Esc 鍵時,IDE 和 Gemini Code Assist 建議都會關閉。這項行為與非 Vim 行為不同,在非 Vim 行為中,按下 Esc 會重新觸發 Gemini Code Assist。

  • 登入嘗試一直逾時

    如果登入嘗試次數持續逾時,請嘗試在 settings.json 檔案中新增 cloudcode.beta.forceOobLogin 設定:

     "cloudcode.beta.forceOobLogin": true
    
  • 授權朗讀警告不會在不同工作階段中保留

    如果授權朗讀警告不會在工作階段中保留,請參閱持續記錄:

    1. 依序按一下「查看」>「輸出」

    2. 選取「Gemini Code Assist - Citations」

  • Gemini Code Assist 輸出視窗中的連線問題

    如果在 Gemini Code Assist 輸出視窗中看到連線錯誤或其他連線問題,請嘗試下列操作:

    • 設定防火牆,允許存取 oauth2.googleapis.comcloudaicompanion.googleapis.com

    • 設定防火牆,允許透過 gRPC 使用的 HTTP/2 進行通訊。

    您可以使用 grpc-health-probe 工具測試連線狀態。檢查成功的結果會產生以下輸出內容:

    $ grpc-health-probe -addr cloudaicompanion.googleapis.com:443 -tls error: this server does not implement the grpc health protocol (grpc.health.v1.Health): GRPC target method can't be resolved

    檢查失敗會產生以下輸出內容:

    timeout: failed to connect service "cloudaicompanion.googleapis.com:443" within 1s

    如要取得更多詳細資料,請在 grpc-health-probe 之前執行下列指令:

    export GRPC_GO_LOG_SEVERITY_LEVEL=info
    
  • 選取 Gemini Code Assist 專案後,「啟用 Gemini Code Assist」仍會顯示

    如果您按照本指南中的操作說明選取專案 (包括啟用 Gemini for Google Cloud API),則可能有 LS 伺服器問題。

    如要進一步瞭解問題,請執行下列操作:

    1. 在狀態列中,按一下 spark「Gemini Code Assist」,然後選取「Send feedback」

    2. 按一下任何記錄檔的「顯示」,即可查看更多詳細資料,並協助排除問題。

IntelliJ

針對 IntelliJ 和其他支援的 JetBrains IDE,Gemini Code Assist 沒有任何已知問題。

提供意見

如要提供使用體驗的意見回饋,請按照下列步驟操作:

VS Code

  1. 在狀態列中,按一下 spark「Gemini Code Assist」,然後在「Quick Pick」選單中選取「Send feedback」

  2. 在表單中填寫「標題」和「註解」欄位。

  3. 如果您想分享 Skaffold 或 AI Companion 記錄檔,請務必選取「Send Skaffold logs」或「Send AI Companion logs」選項。

  4. 按一下「提交意見回饋」

IntelliJ

  1. 在狀態列中,按一下 spark「Gemini Code Assist」,然後在選單中選取「提交意見回饋」

  2. 在表單頂端的文字欄位中輸入意見回饋。

  3. 如要分享 Gemini Code Assist 記錄,請務必選取記錄檔案。

  4. 按一下「提交意見回饋」

後續步驟