本文档介绍了如何使用 Gemini Code Assist 代码自定义,并提供了一些最佳实践。借助此功能,您可以接收代码建议,这些建议来自贵组织的内部库、专用 API 和编码样式。
准备工作
如何使用代码自定义
下表列出了使用 Gemini Code Assist 代码自定义的方法:
表单 | 如何触发 | 备注和资源 |
---|---|---|
自然语言对话 |
在 IDE 中的 Gemini Code Assist 对话窗口中输入自然语言提示。 |
请考虑以下事项:
如需了解详情,请参阅与 Gemini Code Assist 对话。 |
生成代码 | 在 IDE 的快速选择栏中,无论是否选择了代码,请按 Command+Enter (macOS) 或 Ctrl+Enter。 | 如需了解详情,请参阅根据提示生成代码。 |
转换代码 | 在 IDE 的快速选择栏中,无论是否选择了代码,请输入 /fix 。 |
如需了解详情,请参阅根据提示生成代码。 |
自动填充 | 代码自定义会自动触发,并根据您编写的内容提供建议。 | 请考虑以下事项:
如需了解详情,请参阅获取代码补全。 |
远程代码库上下文 |
|
请考虑以下事项:
如需了解详情,请参阅利用远程代码库上下文获取更相关的建议。 |
用例和提示示例
下表提供了有关在特定用例中使用代码自定义的指导和示例:
使用场景 | 值得尝试的功能 |
---|---|
编写新代码 |
请在 IDE 或 Gemini Code Assist 对话中尝试以下操作以生成代码:
您可以在 Gemini Code Assist 对话中使用以下提示生成代码:
生成一些代码后,请尝试使用后续提示来改进代码:
|
清理、简化和重构代码 |
在 Gemini Code Assist 对话中尝试以下提示:
|
可读性 |
在 Gemini Code Assist 对话中尝试以下提示:
|
代码审核 |
在 Gemini Code Assist 对话中尝试以下提示:
|
调试 |
在 Gemini Code Assist 对话中尝试以下提示:
|
学习和初始配置 |
在 Gemini Code Assist 对话中尝试以下提示:
|
迁移 |
在 Gemini Code Assist 对话中尝试以下提示:
请尝试使用提示进行以下基于对话或代码生成的转换工作流:
|
生成文档 |
在 Gemini Code Assist 对话中尝试以下提示:
|
单元测试生成 |
在 Gemini Code Assist 对话中尝试以下提示:
|
最佳做法
- 使用相关的变量和函数名称或代码段。这有助于将代码自定义引导至最相关的代码示例。
- 使用您希望扩展的索引代码库,避免添加已弃用的功能。代码自定义有助于在整个代码库中适配代码风格、模式、语义、知识和实现方式。不建议扩展的代码库示例包括:已弃用的功能、自动生成的代码和旧版实现。
- 对于代码检索用例,请使用代码生成功能,而不是代码补全。使用“使用
FUNCTION_NAME
的定义,生成完全相同的函数”或“生成FUNCTION_NAME
的确切实现”等提示语。 - 在要检索的代码的文件中添加包含或导入,以提高 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
根据所选文件中的示例,为MODULE
生成单元测试。”
- “@
通过将远程代码库用作重点上下文来源,您可以从 Gemini Code Assist 获得更准确、更相关的建议,从而更快、更高效地编写代码。