本文档介绍了如何使用 Gemini Code Assist Standard 和 Enterprise(IDE 中 AI 赋能的协作工具)帮助您在 VS Code、IntelliJ 和其他支持的 JetBrains IDE 中执行以下操作:
- 获得指导,帮助您解决代码问题。
- 为您的项目生成代码。
- 通过指定文件和文件夹来管理项目的上下文。
- 创建自定义指令和规则。
借助代码自定义功能,您可以直接从 Gemini Code Assist Enterprise 获取基于贵组织的私有代码库的代码建议。了解如何配置代码自定义。
本文档适用于各种技能水平的开发者。本文档假定您熟悉 VS Code、IntelliJ 和其他受支持的 JetBrains IDE,并且熟悉 Google Cloud。如果您愿意,也可以在 Cloud Shell Editor、Cloud Workstations 和 Android Studio 中探索 Gemini Code Assist。
准备工作
VS Code
在代码文件中测试 Gemini Code Assist 功能之前,请确保您的文件所使用的编程语言受支持。如需详细了解支持的编码语言,请参阅支持的编码语言。
如果您倾向于在代理环境下使用 IDE,请参阅 Visual Studio Code 中的网络连接。
IntelliJ
使用 Gemini Code Assist 对话功能获取代码说明
在本部分中,您将提示 Gemini Code Assist 对现有代码进行解释。
VS Code
如需获取代码的说明,请按以下步骤操作:
打开您的代码文件。
在 IDE 的活动栏中,点击 spark Gemini Code Assist。
在 Gemini Code Assist 窗格中,输入提示
Explain this code to me
,然后点击 send 发送。Gemini Code Assist 会将代码文件中的内容作为提示参考,并返回解释结果。
如需引用特定代码块(而不是文件中的所有代码),您可以选择代码文件中的代码块,然后提示 Gemini Code Assist。
IntelliJ
如需获取代码的说明,请按以下步骤操作:
在 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 显示查询记录,前往 Gemini Code Assist 工具窗口,在查询记录中找到这些提示。
创建多个对话
您可以与 Gemini Code Assist 创建多个对话,每个对话都包含自己的上下文,与其他对话区分开来。聊天记录会显示您的首次对话和上次更新时间戳。最多只能保存 20 个对话。 达到此上限后,当您添加新对话时,系统会自动删除最早的对话。
VS Code
- 如需添加新对话,请点击添加 新对话,然后在文本字段中输入提示。输入提示后,Gemini Code Assist 会创建新对话。
- 如需访问之前的对话,请依次点击历史记录 继续上次对话。系统会显示您的对话列表。选择要查看的对话。
- 如需删除聊天会话,请点击继续上次对话,然后点击要删除的对话旁边的删除 删除。
IntelliJ
Gemini Code Assist for IntelliJ 和其他受支持的 JetBrains IDE 目前不支持此功能。
重置对话记录
Gemini Code Assist 在回答提示时会使用对话记录来获取更多上下文信息。如果您的对话记录不再与您要实现的目标相关,您可以重置对话记录。
管理聊天
您可以通过以下方式管理 Gemini Code Assist 聊天设置:
配置自动滚动
VS Code
默认情况下,Gemini Code Assist 会自动滚动浏览您的对话。如需停用此行为,请执行以下任务:
依次前往设置 > 扩展程序 > Gemini Code Assist。
搜索自动滚动设置,然后取消选中该复选框。
IntelliJ
Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。
停止正在进行的聊天
VS Code
您可以按停止 停止来停止正在进行的聊天回复:
IntelliJ
Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。
使用对话功能向 Gemini Code Assist 提示所选代码
Gemini Code Assist 可以根据您选择的代码执行任务或回答您的问题。如需根据提示和所选代码生成代码,请按以下步骤操作:
VS Code
在活动栏中,点击 spark Gemini Code Assist 以打开 Gemini Code Assist 窗格。
在代码文件中,选择一个代码块。
在 Gemini Code Assist 窗格文本字段中,输入所选代码的提示。
例如,在代码中选择一个函数,然后输入提示
Write a unit test for this function
。Gemini 会将您选择的代码作为参考,并生成对提示的回答。
IntelliJ
在活动栏中,点击 星光图标 Gemini Code Assist,打开 Gemini Code Assist 工具窗口。
在代码文件中,选择一个代码块。
在 Gemini Code Assist 工具窗口文本字段中,输入所选代码的提示。
例如,在代码中选择一个函数,然后输入提示
Write a unit test for this function.
Gemini Code Assist 会将您选择的代码作为参考,并生成对提示的回答。
将所选代码段添加到上下文
您可以选择、附加和指示 Gemini Code Assist 专注于代码段。代码段选择功能支持对较小的代码块(而非整个文件)进行离散分析。
在代码文件中选择代码段时,您可以指示 Gemini Code Assist 将代码段添加到上下文抽屉。
在编辑器窗口中选择但尚未添加到上下文抽屉中的任何内容也会自动包含在上下文中。所选代码段仅会显示在一次对话中。这些信息不会保留在上下文抽屉中,但会保留在 Gemini Code Assist 对话记录中。
在本部分中,您将所选代码段添加到上下文中,并从 Gemini Code Assist 获取有关该代码段的说明:
VS Code
在代码文件中,选择一个代码段。
在 Gemini Code Assist Chat 文本字段中,点击添加到对话上下文。
Gemini Code Assist 会将所选代码段添加到上下文抽屉中。
在 Gemini Code Assist Chat 文本字段中,输入提示
what does this code do?
。Gemini Code Assist 会根据您在上下文抽屉中选择的代码段回答您的问题。
IntelliJ
Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。
使用对话功能向 Gemini Code Assist 提示所选终端输出
Gemini Code Assist 可以根据所选的终端输出执行任务或回答您的问题。如需获取所选终端输出的说明,请按以下步骤操作:
VS Code
在 IDE 中,打开终端(View > Terminal)。
选择任意终端输出。
右键点击所选的终端输出,然后选择 Gemini Code Assist:Add to Chat Context。
Gemini Code Assist 会将您的终端输出添加到上下文抽屉中。
在 Gemini Code Assist Chat 文本字段中,输入提示
what does this do?
。Gemini Code Assist 会根据您在上下文抽屉中选择的终端输出来回答您的问题。
IntelliJ
Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。
在工作区中启用本地代码库感知功能,以便基于指定文件和文件夹发出提示
当您为 Gemini Code Assist 指定文件或文件夹作为上下文时,本地代码库感知功能可在更广泛的上下文中提供语法正确、语义准确的高质量代码建议。
当您指定文件夹时,Gemini Code Assist 会将该文件夹中的文件以及子文件夹中的文件用作上下文。
VS Code
如需在对话提示中指定文件或文件夹,请输入 @,然后选择要指定的文件或文件夹。
如需了解代码库中两个文件的区别,请按以下步骤操作:
在活动栏中,点击 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 还会将您指定的文件纳入上下文来源。
现在,您已指定这些文件,可以继续在同一对话记录中询问其他问题或提示,而无需再次指定文件。
例如:在 Gemini Code Assist 窗格中,输入提示符 How can I
improve YOUR_FILE_NAME_1?
(不带 @ 符号),然后按 Enter 键(Windows 和 Linux)或 Return 键 (macOS)。
Gemini Code Assist 会根据您在提示中指定的文件回答您的问题。
IntelliJ
如需在对话提示中指定文件或文件夹,请输入 @,然后选择要指定的文件或文件夹。
如需了解代码库中两个文件的区别,请按以下步骤操作:
在活动栏中,点击 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 还会将您指定的文件纳入上下文来源。
现在,您已指定这些文件,可以继续在同一对话记录中询问其他问题或提示,而无需再次指定文件。
例如:在 Gemini Code Assist 窗格中,输入提示符 How can I
improve YOUR_FILE_NAME_1?
(不带 @ 符号),然后按 Enter 键(Windows 和 Linux)或 Return 键 (macOS)。
Gemini Code Assist 会根据您在提示中指定的文件回答您的问题。
在上下文抽屉中管理文件和文件夹
指定要用作 Gemini Code Assist 提示上下文的文件或文件夹后,这些文件和文件夹会放置在上下文抽屉中,您可以在其中查看这些文件和文件夹,并将其从提示上下文中移除。
如需管理情景抽屉中的文件和文件夹,请执行以下任务:
VS Code
在 IDE 的活动栏中,点击 spark Gemini Code Assist。
如需查看情景抽屉中的文件和文件夹,请点击情景项。
如需从上下文抽屉中移除内容,请点击 close Remove(移除)。
IntelliJ
在活动栏中,点击 spark Gemini Code Assist。
如需在上下文抽屉中查看文件和文件夹,请点击上下文。
如需从上下文抽屉中移除文件和文件夹,请点击 close Remove(移除)。
从本地上下文中排除文件
默认情况下,如果文件在 .aiexclude
或 .gitignore
文件中指定,Gemini Code Assist 会在代码补全、代码生成、代码转换和聊天上下文中排除本地使用的文件。
如需了解如何将文件从本地使用中排除,请参阅将文件从 Gemini Code Assist 使用中排除。
创建自定义命令
默认情况下,Gemini Code Assist 会为 VS Code 提供 /generate
等命令,并为 IntelliJ 和其他受支持的 JetBrains IDE 提供生成代码等命令。您还可以创建自己的自定义命令,以便在 IDE 中更快地完成重复性任务。
在本部分中,您将创建一个名为 add-comments
的自定义命令,用于向代码文件中的代码添加注释。对于 IntelliJ 和其他受支持的 JetBrains IDE,您将通过提示库和编辑器内提示创建、保存和执行自定义命令。
VS Code
在代码文件中,按 Control+I(适用于 Windows 和 Linux)或 Command+I(适用于 macOS)以打开 Gemini Code Assist 快速选择菜单。
在菜单中,搜索并选择偏好设置:打开设置 (UI)。
在 Search settings(搜索设置)字段中,输入
Geminicodeassist: Custom Commands
。在自定义指令框中,选择添加项。
在 Item 字段中,输入
add-comments
作为该命令的名称。在值字段中,输入
add comments to all functions without comments in my code
作为提示。点击确定。
您现在可以在 IDE 中使用自定义命令 add-comments
。该命令会显示在 Gemini Code Assist 快速选择菜单(Ctrl+I [适用于 Windows 和 Linux] 或 Command+I [适用于 macOS])中的命令列表中。
IntelliJ
在 IDE 中,依次前往设置 > 工具 > Gemini > 提示库。
在问题库窗口中,点击 add 添加。
将自定义命令命名为
add-comments
。在“问题库”的文本框中,输入问题:
Add comments to all functions without comments in this code
。选中在编辑器内提示中显示复选框(如果未选中)。
点击 OK 将自定义指令保存到“问题库”中。
在代码文件中,突出显示要修改的代码。
右键点击突出显示的代码,然后依次前往 Gemini > Prompt Library(提示库),然后选择自定义命令
add-comments
。Gemini Code Assist 会执行
add-comments
命令,并为突出显示的代码添加注释。
您还可以通过执行以下任务,使用编辑器内提示调用自定义命令:
在代码文件中,突出显示要修改的代码,然后按 Alt+\(Windows 和 Linux)或 Cmd+\ (macOS) 以打开 Gemini Code Assist 快速选择菜单。
在菜单中,选择您的自定义命令
add-comments
。Gemini Code Assist 会执行
add-comments
命令,并为突出显示的代码添加注释。
创建规则
您可以创建 Gemini Code Assist 要遵循的规则,这些规则会包含在您输入的每个聊天提示中。
VS Code
在代码文件中,按 Control+I(适用于 Windows 和 Linux)或 Command+I(适用于 macOS)以打开 Gemini Code Assist 快速选择菜单。
在菜单中,搜索并选择偏好设置:打开设置 (UI)。
在 Search settings(搜索设置)字段中,输入
Geminicodeassist: Rules
。在文本字段中输入规则,例如:
Always generate unit tests when creating a new function
。您还可以在文本字段中添加一个或多个包含多行内容的规则。在“规则”设置中添加规则后,Gemini Code Assist 会针对您发出的每个提示或请求考虑相应规则。
如需移除规则,请从“规则”文本字段中删除相应内容。
IntelliJ
Gemini Code Assist for IntelliJ 和其他受支持的 JetBrains IDE 目前不支持此功能。
已知问题
本部分简要介绍了 Gemini Code Assist 的已知问题:
VS Code
如果对话回答包含大型打开文件的更新版本,可能会被截断
如需解决此问题,请选择较小的一小段代码,并在对话提示中添加额外的指令,例如
only output the selected code.
Vim:除非处于插入模式,否则无法接受或拒绝代码生成建议
在常规模式下使用 Vim 插件时,您无法接受或忽略代码建议。
如需解决此问题,请按 i 键进入插入模式,然后按 Tab 键接受建议。
Vim:按 Esc 键以忽略建议时行为不一致
按 Esc 键时,IDE 和 Gemini Code Assist 建议都会关闭。此行为与非 Vim 行为不同,后者在按下 Esc 键时会重新触发 Gemini Code Assist。
登录尝试反复超时
如果您的登录尝试反复超时,请尝试将
cloudcode.beta.forceOobLogin
设置添加到settings.json
文件中:"cloudcode.beta.forceOobLogin": true
许可引用警告不会在各个会话之间保留
如果许可引用警告无法在各会话中保留,请查阅持久性日志:
依次点击视图 > 输出。
选择 Gemini Code Assist - 引用。
Gemini Code Assist 输出窗口中的连接问题
如果您在 Gemini Code Assist 输出窗口中看到连接错误或其他连接问题,请尝试以下操作:
配置防火墙以允许访问
oauth2.googleapis.com
和cloudaicompanion.googleapis.com
。配置防火墙以允许通过 HTTP/2 进行通信,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 服务器可能存在问题。
如需详细了解您的问题,请执行以下操作:
在状态栏中,点击 spark Gemini Code Assist,然后选择发送反馈。
点击任意日志文件旁的显示按钮,以查看更多详细信息并辅助排查问题。
IntelliJ
截至目前,Gemini Code Assist for IntelliJ 和其他支持的 JetBrains IDE 暂无已知问题。
提供反馈
如需就您的体验提供反馈,请按以下步骤操作:
VS Code
在状态栏中,点击 spark Gemini Code Assist,然后在快速选择菜单中选择发送反馈。
在表单中,填写标题和评论字段。
如果您希望分享 Skaffold 或 AI Companion 日志,请务必选择发送 Skaffold 日志或发送 AI Companion 日志选项。
点击提交反馈。
IntelliJ
在状态栏中,点击 spark Gemini Code Assist,然后在菜单中选择提交反馈。
在表单顶部的文本字段中,输入您的反馈。
如果您希望分享 Gemini Code Assist 日志,请务必勾选相应的日志文件。
点击提交反馈。
后续步骤
- 了解如何撰写更好的提示。
- 了解 Gemini for Google Cloud 如何使用您的数据。
- 了解 Gemini Code Assist 价格。
- 详细了解 Google Cloud 合规性。