使用 Gemini Code Assist 程式碼自訂功能
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
本文說明如何使用 Gemini Code Assist 程式碼自訂功能,並提供幾項最佳做法。這項功能會參考貴機構的內部程式庫、私人 API 和程式設計樣式,提供程式碼建議。
事前準備
-
透過企業版訂閱方案設定 Gemini Code Assist。
-
設定 Gemini Code Assist 程式碼自訂功能。
如何使用程式碼自訂功能
下表列出 Gemini Code Assist 程式碼自訂功能的使用方式:
| 表單 |
如何觸發 |
附註和資源 |
自然語言對話
|
在 IDE 的 Gemini Code Assist 對話中輸入自然語言提示。 |
請把握以下幾項重點:
- 無法查看對話記錄。避免多步驟查詢。
- 你可以要求提供來源的詳細資料,包括特定來源的連結。
- 在對話中傳送訊息時,如果醒目顯示或選取程式碼,Gemini Code Assist 會使用該程式碼提升程式碼自訂程度和對話品質。
詳情請參閱「與 Gemini Code Assist 對話」。
|
| 生成程式碼 |
在 IDE 的快速挑選列中,無論是否選取程式碼,按下 Command+Enter 鍵 (macOS) 或 Control+Enter 鍵。 |
詳情請參閱「使用提示生成程式碼」。 |
| 轉換程式碼 |
在 IDE 的快速挑選列中,無論是否選取程式碼,輸入 /fix。 |
詳情請參閱「使用提示生成程式碼」。 |
| 自動完成 |
系統會自動觸發程式碼自訂功能,並根據您輸入的內容提供建議。 |
請把握以下幾項重點:
- 程式碼完成功能需要達到一定程度的信賴度,才會提出建議。請確保有大量程式碼可用,以便擷取相關程式碼片段。
- 程式碼自動完成功能會檢查您是否擁有必要程式庫,以便使用函式的特定元素。
詳情請參閱「取得程式碼完成建議」。
|
| 遠端存放區環境 |
- 提示必須以 @ 符號開頭。系統會顯示已建立索引的可用遠端存放區清單。
- 從清單中選取要用於情境的存放區。
你也可以輸入存放區名稱來篩選清單。
- 選取存放區後,請撰寫提示的其餘部分。
|
請把握以下幾項重點:
- 代理模式不支援這項功能。
- 如果您要處理的工作大多與特定微服務、程式庫或模組相關,這項功能就非常實用。
詳情請參閱「透過遠端存放區內容取得更符合需求的建議」。
|
應用情境和提示範例
下表提供指引和範例,說明如何在特定用途中使用程式碼自訂功能:
| 用途 |
值得一試的操作 |
| 編寫新程式碼 |
如要在 IDE 或 Gemini Code Assist 對話中生成程式碼,請嘗試下列做法:
- 生成程式碼,使用程式碼集已提及的字詞。
- 貼上程式碼,例如函式簽章或含有註解的程式碼,然後要求 Gemini Code Assist 填入或取代註解。
TODOTODO從內容新增附有說明的註解。
在 Gemini Code Assist 對話中,使用下列提示詞生成程式碼:
- 「Write a main function where a connection to
DATABASE is created. 包括健康檢查。」
- 「請以以下結構撰寫
FUNCTION_OR_CLASS:
EXPLAIN_STRUCTURE。」
產生程式碼後,請嘗試使用後續提示詞來改善程式碼:
- 「請嘗試使用
/fix 指令調整產生的程式碼,例如修正語法錯誤。」
- 「Add missing imports」(新增缺少的匯入項目)。
- 「Try
/fix on chat-generated code.」
|
| 清理、簡化及重構程式碼 |
在 Gemini Code Assist 對話中試試下列提示:
- 「Can you merge
IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS
in this file?」(可以合併這個檔案中的 IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS 嗎?)
- 「請簡化
FUNCTION_NAME 函式。」
- 「Can you merge
FUNCTION_NAME_1 and
FUNCTION_NAME_2 into one function?」
- 「Could you inline some variables in
FUNCTION_NAME?」
- 「Could you simplify variable naming in the function
FUNCTION_NAME?」(請簡化函式 FUNCTION_NAME 中的變數命名)。
|
| 可讀性 |
在 Gemini Code Assist 對話中試試下列提示:
- 「請盡可能以較少的程式碼行數編寫
FUNCTION_NAME 函式。」
- 「Add comments to the function
FUNCTION_NAME.」
- 「Remove unnecessary whitespaces in the function
FUNCTION_NAME.」
- 「Format the function
FUNCTION_NAME in a
similar way as the rest of the code.」
|
| 審查程式碼 |
在 Gemini Code Assist 對話中試試下列提示:
- 「Split the code in parts and explain each part using our
codebase.」
- 「是否有更短且更容易瞭解的變數或關鍵字?」
- 「Can you give me useful code from the
REPOSITORY_NAME_PACKAGE_MODULE context for
this code?」
- 「你對函式
FUNCTION_NAME 有什麼看法?」
|
| 偵錯 |
在 Gemini Code Assist 對話中試試下列提示:
- 「我在嘗試執行 X/新增 Y 時收到錯誤訊息。為什麼?」
- 「Can you spot an error in the function
FUNCTION_NAME?」
- 「How would you fix the function
FUNCTION_NAME given this error
message?」
|
| 學習與新手上路 |
在 Gemini Code Assist 對話中試試下列提示:
- 「Split this code in parts and explain each of them using our
codebase.」
- 「Show how to call function
FUNCTION_NAME?」
- 「Show how to run the main function in the
ENVIRONMENT_NAME environment?」
- 「我們可以在技術上進行哪些重大改良,讓這段程式碼的效能更高?」
- 「Show me the implementation of
FUNCTION_OR_CLASS_NAME to achieve better
results and add what that specific element is」(顯示 FUNCTION_OR_CLASS_NAME 的實作方式,以獲得更佳結果,並新增該特定元素) - 例如「Show me the implementation of function foo where foo is the name of
the function.」(顯示函式 foo 的實作方式,其中 foo 是函式的名稱)。
|
| 遷移 |
在 Gemini Code Assist 對話中試試下列提示:
- 「請提供策略,協助我將
FILE_NAME 從 LANGUAGE_1 遷移至 LANGUAGE_2」- 例如從 Go 遷移至 Python。
- 「Given the function
FUNCTION_NAME in
repository REPOSITORY_NAME, find me an
equivalent function in language
LANGUAGE_NAME that I can use.」(在存放區 REPOSITORY_NAME 中,找到與函式 FUNCTION_NAME 等效的函式,並以語言 LANGUAGE_NAME 撰寫,供我使用。)
請嘗試使用提示,透過下列以對話或程式碼生成為基礎的轉換工作流程:
- 「將以
LANGUAGE_1 編寫的 FILENAME_COMPONENT 程式碼重構並遷移至 LANGUAGE_2」—例如從 Go 遷移至 Python。
- 遷移部分程式碼後,請嘗試下列做法:
- 選取較小的區塊,然後使用
/fix 調整至所需狀態。
- 請嘗試使用下列提示:
- 「有什麼地方可以改進嗎?」
- 「Give me possible pain points.」(請提供可能的痛點)。
- 「如果遷移作業正確無誤,您會如何測試這段程式碼?」
|
| 正在生成說明文件 |
在 Gemini Code Assist 對話中試試下列提示:
- 「Summarize the code in package or folder
X and provide documentation for the top five
important methods.」
- 「Generate documentation for
FUNCTION_OR_CLASS_NAME.」(為「<0x0A> FUNCTION_OR_CLASS_NAME」產生文件)。
- 「縮短說明文件,同時保留重要資訊。」
|
| 生成單元測試 |
在 Gemini Code Assist 對話中試試下列提示:
- 「Generate unit tests for
FILENAME.」(為 FILENAME 生成單元測試)。
- 「為
FUNCTION_NAME 函式新增最相關的測試案例。」
- 「移除您認為價值不高的測試案例。」
|
最佳做法
- 使用相關的變數和函式名稱或程式碼片段。這項指引會根據最相關的程式碼範例,引導您自訂程式碼。
- 使用要擴充的索引存放區,並避免新增已淘汰的功能。程式碼自訂功能有助於在整個程式碼集中,擴展程式碼樣式、模式、程式碼語意、知識和實作項目。不適合擴充的存放區範例包括已淘汰的功能、產生的程式碼和舊版實作項目。
- 如要擷取程式碼,請使用程式碼生成功能,而非程式碼完成功能。使用「根據
FUNCTION_NAME 的定義,生成完全相同的函式」或「生成 FUNCTION_NAME 的確切實作內容」等語言提示。
- 在要擷取的程式碼檔案中加入 include 或 import,提升 Gemini 的情境感知能力。
- 每個提示只能執行一個動作。舉例來說,如要擷取程式碼並在新函式中實作,請透過兩道提示執行下列步驟。
- 如要處理不只是程式碼的用途 (例如程式碼說明、遷移計畫或錯誤說明),請使用程式碼自訂功能進行對話,與 Gemini 討論程式碼集內容。
- 請注意,AI 模型生成內容具有不確定性。如果對回覆不滿意,再次執行相同的提示可能會得到更好的結果。
- 請注意,生成單元測試時,如果在本機開啟檔案,然後在對話中要求為該檔案或特定函式生成單元測試,通常效果會更好。
根據遠端存放區內容取得更符合需求的建議
你可以引導 Gemini Code Assist 專注於特定遠端存放區,取得更符合情境的相關程式碼建議。在對話中使用 @ 符號,即可選取一或多個存放區,做為提示的主要情境來源。如果您要處理的工作大多與特定微服務、程式庫或模組相關,這項功能就非常實用。
如要將遠端存放區做為脈絡,請在 IDE 的即時通訊中按照下列步驟操作:
- 提示必須以 @ 符號開頭。系統會顯示已建立索引的可用遠端存放區清單。
- 從清單中選取要用於情境的存放區。你也可以輸入存放區名稱來篩選清單。
- 選取存放區後,請撰寫提示的其餘部分。
這樣 Gemini 在生成回覆時,就會優先使用所選存放區的內容。
提示範例
以下列舉幾個使用這項功能的例子:
- 如要瞭解存放區:
- 「@
REPOSITORY_NAME 這個存放區的整體結構為何?」
- 「@
REPOSITORY_NAME 我是新加入團隊的成員,請簡要說明這個存放區的用途和主要模組。」
- 生成及修改程式碼:
- 「@
REPOSITORY_NAME 實作與這個存放區類似的驗證函式。」
- 「@
REPOSITORY_NAME 請按照所選存放區的慣例,重構下列程式碼。」
- 「@
REPOSITORY_A_NAME 如何使用這個存放區的最新函式,改善 REPOSITORY_B_NAME 中的程式碼?」
- 測試:
- 「@
UNIT_TEST_FILE_NAME Generate unit tests for MODULE based on the examples in the selected file.」(根據所選檔案中的範例,為 MODULE 生成單元測試)。
將遠端存放區做為情境的重點來源,Gemini Code Assist 就能提供更準確且相關的建議,協助您更快速有效率地編寫程式碼。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-10-23 (世界標準時間)。
[null,null,["上次更新時間:2025-10-23 (世界標準時間)。"],[],[]]