本文件說明如何使用 Gemini Code Assist (IDE 中的 AI 技術輔助協作工具),在 VS Code、IntelliJ 和其他支援的 JetBrains IDE 中執行以下作業:
- 提供指引,協助您解決程式碼問題。
- 為專案產生程式碼。
- 在編寫程式時接收行內建議。
瞭解 Gemini for Google Cloud 如何使用您的資料,以及使用時機。
為了協助您遵守程式碼的任何授權規定,Gemini Code Assist 會在建議內容直接引用特定來源的大量內容時,提供來源引用資訊。如要進一步瞭解 Gemini 引用來源的方式和時機,請參閱「Gemini 如何協助您產生程式碼並引用來源」。
本文檔適用於所有技能程度的開發人員。假設您具備 VS Code 或 IntelliJ 和其他支援的 JetBrains IDE 工作知識。如有需要,您也可以在 Cloud Shell 和 Cloud Workstations 中探索 Gemini Code Assist。
事前準備
- 在程式碼檔案中測試 Gemini Code Assist 功能前,請確認檔案的程式語言是否受支援。如要進一步瞭解支援的程式語言,請參閱「支援的程式語言」。
- 如果您偏好在 Proxy 後方使用 IDE,請參閱「Visual Studio Code 中的網路連線」。
在程式碼檔案中測試 Gemini Code Assist 功能前,請確認檔案的程式語言是否受支援。如要進一步瞭解支援的程式語言,請參閱「支援的程式語言」。
如果您偏好在 Proxy 後方使用 IDE,請參閱「HTTP Proxy」。
與 Gemini Code Assist 對話
在本節中,您會提示 Gemini Code Assist 解釋現有程式碼。
如要取得程式碼說明,請按照下列步驟操作:
開啟程式碼檔案。
在 IDE 的活動列中,按一下 spark「Gemini Code Assist」。
在「Gemini Code Assist」窗格中輸入提示
Explain this code to me
,然後按一下 send「傳送」。Gemini 會使用程式碼檔案中的程式碼做為提示的參照,並回覆程式碼說明。
如要參照特定的程式碼區塊,而非檔案中的所有程式碼,您可以選取程式碼檔案中的區塊,然後提示 Gemini。
如要取得程式碼說明,請按照下列步驟操作:
在 IDE 中開啟程式碼檔案。
在 Gemini Code Assist 工具視窗中輸入提示
Explain this code to me
,然後按一下「提交」。
Gemini Code Assist 會使用程式碼檔案中的程式碼做為提示的參照,並回覆程式碼說明。
如果您只想瞭解程式碼的某個部分,可以選取特定程式碼,然後再次提示 Gemini Code Assist。Gemini Code Assist 只會將所選程式碼用於參照其產生的回應。
當 Gemini Code Assist 在回應中提供程式碼時,您可以選取回應結尾處列出的下列選項:
插入游標位置:將產生的程式碼插入目前檔案的游標位置。
插入至新檔案:開啟新檔案,並將產生的程式碼插入新檔案中。
當 Gemini Code Assist 識別程式碼區塊使用的語言,且目前 IDE 支援該語言時,就會提供這些選項。
查看查詢記錄
如果您想重複使用先前的提示,請按一下 schedule「Show Query History」,在 Gemini Code Assist 工具視窗中查看「Query History」,即可找到相關提示。
重設即時通訊記錄
回覆提示時,Gemini Code Assist 會使用對話記錄提供額外的背景資訊。如果即時通訊記錄不再與你要達成的目標相關,可以重設即時通訊記錄:
在「Gemini Code Assist」窗格中,按一下 delete「Reset Chat」。
在 Gemini Code Assist 工具視窗中,按一下 delete「清除對話記錄」。這麼做也會清除查詢記錄。
使用提示產生程式碼
以下各節將說明如何使用 Gemini Code Assist,在程式碼檔案中使用範例提示 Function to create a Cloud Storage
bucket
產生程式碼。您也可以選取程式碼的一部分,然後透過聊天功能向 Gemini Code Assist 尋求協助,並在編寫程式碼時接收並接受或拒絕程式碼建議。
透過程式碼轉換提示 Gemini Code Assist
程式碼轉換功能可讓您使用 Quick Pick 選單中的指令或自然語言提示,要求修改程式碼,並提供差異檢視畫面,顯示程式碼的待處理變更。如要提示 Gemini Code Assist 進行程式碼轉換,請按照下列步驟操作:
在程式碼檔案的新行中,按下 Control + I 鍵 (Windows 和 Linux) 或 Command + I 鍵 (macOS),即可開啟 Gemini Code Assist Quick Pick 列。
在選單中使用
/generate
指令,輸入/generate function to create a Cloud Storage bucket
,然後按下 Enter 鍵 (適用於 Windows 和 Linux) 或 Return 鍵 (適用於 macOS)。Gemini Code Assist 會根據差異檢視畫面中的提示產生程式碼。
選用:如要接受這些變更,請按一下「接受」。
在程式碼檔案中使用註解提示 Gemini Code Assist
如有需要,您也可以在程式碼檔案中使用註解提示 Gemini Code Assist,步驟如下:
在新行上輸入註解
Function to create a Cloud Storage bucket
,然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。如要產生程式碼,請按下 Control + Enter 鍵 (Windows 和 Linux) 或 Control + Return 鍵 (macOS)。
Gemini Code Assist 會在程式碼檔案中提示文字旁,以鬼影文字的形式產生程式碼。
選用步驟:如要接受產生的程式碼,請按下 Tab 鍵。
透過即時通訊,向 Gemini Code Assist 提示所選程式碼
Gemini Code Assist 可根據您選取的程式碼執行工作或回答問題。如要取得根據提示產生的程式碼,請按照下列步驟操作:
在活動列中,按一下 spark「Gemini Code Assist」,開啟「Gemini Code Assist」窗格。
在程式碼檔案中選取程式碼區塊。
在 Gemini Code Assist 窗格文字欄位中,輸入所選程式碼的提示。
舉例來說,您可以選取程式碼中的函式,然後輸入提示
Write a unit test for this function
:Gemini 會使用您選取的程式碼做為參考,並回應提示。
透過程式碼轉換提示 Gemini Code Assist
程式碼轉換功能可讓您使用「快速挑選」選單中的指令或自然語言提示,要求修改程式碼,並提供差異檢視畫面,顯示程式碼的待處理變更。如要提示 Gemini Code Assist 進行程式碼轉換,請按照下列步驟操作:
在程式碼檔案的新行中,按下 Alt + (適用於 Windows 和 Linux) 或 Cmd + (適用於 macOS),即可開啟 Gemini Code Assist Quick Pick 選單。
在選單中使用
/generate
指令,輸入/generate function to create a Cloud Storage bucket
,然後按下 Enter 鍵 (適用於 Windows 和 Linux) 或 Return 鍵 (適用於 macOS)。Gemini Code Assist 會根據差異檢視畫面中的提示產生程式碼。
選用:如要接受這些變更,請按一下「接受變更」。
您可以在 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
在程式碼檔案的新行中,輸入註解
Function to create a Cloud Storage bucket
。如要產生程式碼,請按下 Alt + G 鍵 (適用於 Windows 和 Linux) 或 Option + G 鍵 (適用於 macOS)。或者,您也可以在註解旁邊按一下滑鼠右鍵,然後選取「Generate Code」。
Gemini Code Assist 會以鬼影文字的形式,在註解下方產生程式碼。
選用步驟:如要接受產生的程式碼,請按下 Tab 鍵。
透過即時通訊,向 Gemini Code Assist 提示所選程式碼
Gemini Code Assist 可根據您選取的程式碼執行工作或回答問題。如要取得根據提示產生的程式碼,請按照下列步驟操作:
在活動列中,按一下「spark」Gemini Code Assist,開啟 Gemini Code Assist 工具視窗。
在程式碼檔案中選取程式碼區塊。
在 Gemini Code Assist 工具視窗文字欄位中,輸入所選程式碼的提示。
例如,在程式碼中選取函式,然後輸入提示
Write a unit test for this function.
Gemini Code Assist 會使用您選取的程式碼做為參考,並回應提示。
選用:變更產生程式碼的鍵盤快速鍵
如果產生程式碼的預設鍵盤快速鍵無法正常運作,請按照下列步驟變更鍵盤快速鍵:
在 IDE 中,按一下「File」 (適用於 Windows 和 Linux) 或「Code」 (適用於 macOS),然後依序前往「Settings」 >「Keyboard Shortcuts」。
在鍵盤快速鍵清單中,捲動至找到「Gemini Code Assist: Generate code」。
按一下「Gemini Code Assist:產生程式碼」,然後點選 edit「Change Keybinding」。
在隨即顯示的對話方塊中,輸入你要使用的捷徑。
按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。
您現在可以使用新指派的鍵盤快速鍵,透過 Gemini Code Assist 產生程式碼。
如要進一步瞭解如何變更 IDE 中的快速鍵,請參閱「Visual Studio Code 的按鍵繫結」。
依序前往 settings「IDE 和專案設定」 >「設定」 >「鍵盤指派」 >「Gemini Code Assist」。
在 Gemini Code Assist 上按一下滑鼠右鍵,然後選取「新增鍵盤快速鍵」。
輸入你偏好的鍵盤快速鍵,然後按一下「確定」。
在 Gemini Code Assist 上按一下滑鼠右鍵,然後選取「移除」Alt + G (適用於 Windows 和 Linux),或「移除」Option + G (適用於 macOS)。
您現在可以使用新的鍵盤快速鍵,在程式碼檔案中產生程式碼。
取得程式碼完成功能
在您編寫程式碼時,Gemini Code Assist 會提供內嵌程式碼建議 (也稱為「程式碼補全」),您可以接受或忽略這些建議。如要取得程式碼完成功能,請按照下列步驟操作:
在程式碼檔案的新行中,開始編寫函式。舉例來說,如果您在 Python 檔案中編寫
def
。Gemini Code Assist 會以虛線文字的形式提供程式碼建議。
如要接受 Gemini Code Assist 提供的程式碼建議,請按下 Tab 鍵。如要忽略建議,請按下 Esc 鍵或繼續編寫程式碼。
在程式碼檔案的新行中,開始編寫函式。舉例來說,如果您在 Python 檔案中編寫
def
。Gemini Code Assist 會以內嵌建議的形式提供程式碼建議。
如要接受 Gemini Code Assist 提供的程式碼建議,請按下 Tab 鍵。如要忽略建議,請按下 Esc 鍵或繼續編寫程式碼。
選用:如果您想使用其他快捷鍵接受內嵌建議,請將游標停留在內嵌建議上,然後點選隨即顯示的「Tab」下拉式選單。接著選取你偏好的捷徑,或按一下「自訂」來輸入自己的捷徑。
選用步驟:停用程式碼補全功能
程式碼完成功能預設為啟用。如要停用程式碼完成功能,請按照下列步驟操作:
在 IDE 中,依序點選「Code」 (適用於 macOS) 或「File」 (適用於 Windows 和 Linux),然後前往「Settings」 >「Settings」。
在「設定」對話方塊的「使用者」分頁中,依序前往「擴充功能」>「Gemini Code Assist」。
捲動至「Duet AI:內嵌建議:啟用自動功能」清單,然後選取「關閉」。
這麼做會關閉內嵌建議功能。您仍可按下 Control + Enter 鍵 (Windows 和 Linux) 或 Control + Return 鍵 (macOS),手動觸發內嵌建議。
在 IDE 的狀態列中,按一下 spark「Gemini Code Assist:Active」,然後選取「Enable AI Code Completion」。
這麼做會停用程式碼完成設定,Gemini Code Assist 將不再提供內嵌建議,直到您再次啟用該設定為止。
使用智慧動作
為了協助您提高工作效率,同時盡量減少情境切換,Gemini Code Assist 會直接在程式碼編輯器中提供 AI 技術輔助的智慧動作。在程式碼編輯器中選取程式碼時,您可以查看與當前內容相關的動作清單,並從中選取所需動作。
如要在程式碼中使用智慧動作,請按照下列步驟操作:
在程式碼檔案中選取程式碼區塊。
按一下所選程式碼區塊旁的 lightbulb「顯示程式碼動作」。
選取「產生單元測試」等動作。
Gemini 會根據所選動作產生回覆。
在程式碼檔案中選取一行或一區塊的程式碼。
在所選程式碼上按一下滑鼠右鍵,然後選取智慧動作,例如「產生單元測試」。
選取智慧動作後,Gemini Code Assist 會自動在 Gemini Code Assist 工具視窗中,針對提示產生回應。
使用程式碼轉換快速修正功能
如果程式碼有錯誤,Gemini Code Assist 會提供快速修正選項,讓您透過程式碼轉換來修正錯誤。
如要在程式碼檔案中套用快速修正程式,請按照下列步驟操作:
在程式碼檔案中,將游標懸停在波浪狀錯誤行上,然後依序選取「Quick Fix」和「/fix」。
套用快速修正後,系統會顯示差異檢視畫面。如要接受這些變更,請按一下「接受」。
在程式碼檔案中,按一下代表程式碼有誤的紅色燈泡圖示,然後選取「Fix with Gemini」。
套用修正項目後,系統會顯示差異檢視畫面。如要接受這些變更,請按一下「接受」。
在工作區中提示特定檔案,並提供本機程式碼集認知
當您指定 Gemini Code Assist 可用來做為背景資訊的檔案時,本機程式碼集感知功能可協助您取得高品質的程式碼建議,這些建議在程式碼集的廣泛背景資訊中,具有語法正確性和語意意義。
如要在即時通訊提示中指定檔案,請輸入 @,然後選取要指定的檔案。
如要瞭解程式碼庫中兩個檔案的差異,請按照下列步驟操作:
在活動列中,按一下 spark「Gemini Code Assist」。
在「Gemini Code Assist」窗格中輸入提示
Explain the difference between @YOUR_FILE_NAME_1 and @YOUR_FILE_NAME_2
,然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS),或 Tab 鍵。您也可以按一下清單中的檔案名稱來選取檔案。點選檔案名稱即可將檔案新增至提示內容,並在 IDE 中開啟檔案。Gemini Code Assist 會使用您指定的兩個檔案做為背景資訊,回覆您的提示。Gemini Code Assist 也會納入您在「Context Sources」中指定的檔案。
指定這些檔案後,您可以在相同的聊天記錄中繼續提出其他問題或提示,而無須再次指定檔案。
舉例來說,在 Gemini Code Assist 窗格中輸入提示 How can I
improve YOUR_FILE_NAME_1?
(不含 @ 符號),然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。
Gemini Code Assist 會回覆您對提示中指定檔案的查詢。
選用:使用 .aiexclude 檔案從內容中排除檔案
您可以建立 .aiexclude
檔案,將檔案排除在 Gemini Code Assist 的內容考量範圍之外。.aiexclude
檔案的語法與 .gitignore
檔案相似,但有以下差異:
- 空白或不存在的
.aiexclude
檔案不會封鎖目錄和所有子目錄中的任何檔案。 .aiexclude
檔案不支援否定,也就是在模式前面加上驚嘆號 (!
)。.aiexclude
檔案會貪婪地比對*
字元。這會在目錄和檔案中不加區分地進行比對。這個.aiexclude
檔案不會針對資料夾或檔案區分**
或*
。
目前僅支援單一 .aiexclude
檔案。如要設定 .aiexclude
檔案,請在工作區資料夾的根目錄中建立名為 .aiexclude
的檔案。
範例
以下範例說明如何設定 .aiexclude
檔案:
封鎖工作區目錄中或以下所有名為
apikeys.txt
的檔案:apikeys.txt
封鎖工作區目錄中或以下所有副檔名為
.key
的檔案:*.key
只封鎖
.aiexclude
檔案所在目錄中的 apikeys.txt 檔案,而非任何子目錄:/apikeys.txt
封鎖目錄
my/sensitive/dir
和所有子目錄中的所有檔案。路徑應以工作區根目錄為基準。my/sensitive/dir/*
停用與引文來源相符的程式碼建議
Gemini Code Assist 會在直接引用其他來源 (例如現有的開放原始碼) 的長篇內容時,提供引用資訊。詳情請參閱「Gemini 引用來源的方式和情形」。
如要避免系統建議與您引用的來源相符的程式碼,請按照下列步驟操作:
在 IDE 的活動列中,依序按一下「管理」 >「設定」。
在設定視窗的「使用者」分頁中,依序前往「擴充功能」>「Gemini Code Assist」。
捲動畫面,找到「Duet AI」>「朗誦:引文長度上限」。
將值設為
0
。Gemini Code Assist 不再建議您使用與引文來源相符的程式碼。
已知問題
本節將概略說明 Gemini Code Assist 的已知問題:
如果聊天回覆包含大型開放式檔案的更新版本,可能會遭到截斷
如要解決這個問題,請選取較小的程式碼區段,並在即時通訊提示中加入其他指令,例如
only output the selected code.
Vim:除非處於插入模式,否則無法接受或略過程式碼產生建議
在一般模式下使用 Vim 外掛程式時,您無法接受或略過程式碼建議。
如要解決這個問題,請按下 i 鍵進入插入模式,然後按下 Tab 鍵接受建議。
Vim:按下 Esc 關閉建議時,行為不一致
按下 Esc 鍵時,IDE 和 Gemini 建議都會關閉。這項行為與非 Vim 行為不同,在 Vim 中,按下 Esc 會重新觸發 Gemini。
登入嘗試一直逾時
如果登入嘗試次數持續逾時,請嘗試在
settings.json
檔案中新增cloudcode.beta.forceOobLogin
設定:"cloudcode.beta.forceOobLogin": true
授權朗讀警告不會在不同工作階段間保留
如果授權朗讀警告不會在工作階段中保留,請參閱持續記錄:
依序點選「檢視」 >「輸出」。
選取「Gemini Code Assist - Citations」。
Gemini Code Assist 輸出視窗中的連線問題
如果在 Gemini Code Assist 輸出視窗中看到連線錯誤或其他連線問題,請嘗試下列操作:
設定防火牆,允許存取
oauth2.googleapis.com
和cloudaicompanion.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
針對 IntelliJ 和其他支援的 JetBrains IDE,Gemini Code Assist 沒有已知的問題。
提供意見
如要提供使用體驗的意見回饋,請按照下列步驟操作:
在狀態列中,按一下 spark「Gemini Code Assist」,然後在「Quick Pick」選單中選取「Send feedback」。
在表單中填寫「標題」和「註解」欄位。
如果您想分享 Skaffold 或 AI Companion 記錄檔,請務必選取「Send Skaffold logs」或「Send AI Companion logs」選項。
按一下「提交意見回饋」。
在狀態列中,按一下 spark「Gemini Code Assist」,然後在選單中選取「提交意見回饋」。
在表單頂端的文字欄位中輸入意見回饋。
如要分享 Gemini Code Assist 記錄,請務必選取記錄檔案。
按一下「提交意見回饋」。