与 Gemini Code Assist Standard 和 Enterprise 对话

本文档介绍了如何使用 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 EditorCloud WorkstationsAndroid Studio 中探索 Gemini Code Assist。

准备工作

VS Code

  1. 设置 Gemini Code Assist Standard 或 Enterprise(如果尚未设置)。

  2. 在代码文件中测试 Gemini Code Assist 功能之前,请确保您的文件所使用的编程语言受支持。如需详细了解支持的编码语言,请参阅支持的编码语言

  3. 如果您倾向于在代理环境下使用 IDE,请参阅 Visual Studio Code 中的网络连接

IntelliJ

  1. 设置 Gemini Code Assist Standard 或 Enterprise(如果尚未设置)。

  2. 在代码文件中测试 Gemini Code Assist 功能之前,请确保您的文件所使用的编程语言受支持。如需详细了解支持的编码语言,请参阅支持的编码语言

  3. 如果您倾向于在代理环境下使用 IDE,请参阅 HTTP 代理

使用 Gemini Code Assist 对话功能获取代码说明

在本部分中,您将提示 Gemini Code Assist 对现有代码进行解释。

VS Code

如需获取代码的说明,请按以下步骤操作:

  1. 打开您的代码文件。

  2. 在 IDE 的活动栏中,点击 spark Gemini Code Assist

  3. Gemini Code Assist 窗格中,输入提示 Explain this code to me,然后点击 send 发送

    Gemini Code Assist 会将代码文件中的内容作为提示参考,并返回解释结果。

    如需引用特定代码块(而不是文件中的所有代码),您可以选择代码文件中的代码块,然后提示 Gemini Code Assist。

IntelliJ

如需获取代码的说明,请按以下步骤操作:

  1. 在 IDE 中,打开您的代码文件。

  2. 在 Gemini Code Assist 工具窗口中,输入提示 Explain this code to me,然后点击提交

Gemini Code Assist 会将代码文件中的内容作为提示参考,并返回解释结果。

如果您只想了解代码的某个部分,可以选择相应代码,然后再次提示 Gemini Code Assist。Gemini Code Assist 仅会将所选代码作为生成回答的参考内容。

Gemini Code Assist 在其回答中为您提供代码时,您可以选择回答末尾列出的以下选项:

  • 在光标处插入:将生成的代码插入到当前文件的当前光标位置。

  • 插入到新文件:打开一个新文件,并将生成的代码插入到该新文件中。

    Gemini 会在生成的代码回答末尾列出可执行的代码操作选项。

当 Gemini Code Assist 识别出代码块中使用的语言,并且当前 IDE 支持该语言时,这些选项才可用。

查看查询历史记录

如果您想重复使用之前的提示,可以点击 schedule 显示查询记录,前往 Gemini Code Assist 工具窗口,在查询记录中找到这些提示。

工具窗口中的 Gemini 查询记录。

创建多个对话

您可以创建多个与 Gemini Code Assist 的对话,这些对话包含其自己的上下文,与其他对话无关。您的对话记录会显示您的首次对话和上次更新时间戳。对话数量上限为 20 个。达到此上限后,当您添加新对话时,系统会自动删除最早的对话。

VS Code

  1. 如需添加新对话,请点击 add 发起新对话,然后在文本字段中输入提示。输入提示后,Gemini Code Assist 会创建新对话。
  2. 如需访问之前的对话,请点击 history 继续之前的对话。系统会显示您的对话列表。选择要查看的对话。
  3. 如需删除对话消息串,请点击继续之前的对话,然后点击要删除的对话旁边的 delete 删除

IntelliJ

目前,Gemini Code Assist for IntelliJ 和其他受支持的 JetBrains IDE 不支持此功能。

重置对话记录

Gemini Code Assist 在回答提示时会使用对话记录来获取更多上下文信息。如果您的对话记录不再与您要实现的目标相关,您可以重置对话记录

管理对话

您可以通过执行以下操作来管理 Gemini Code Assist 对话设置:

配置自动滚动

VS Code

默认情况下,Gemini Code Assist 会自动滚动浏览对话。如需停用此行为,请执行以下任务:

  1. 依次前往设置 > 扩展程序 > Gemini Code Assist

  2. 搜索自动滚动设置,然后取消选中相应复选框。

IntelliJ

Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。

停止正在进行的对话

VS Code

您可以按 stop 停止来停止正在进行的对话回答:

用于停止正在进行的 VS Code Gemini Code Assist 对话回答的按钮

IntelliJ

您可以按 stop 停止来停止正在进行的对话回答:

用于停止正在进行的 IntelliJ Gemini Code Assist 对话回答的按钮

配置预览窗格

默认情况下,Gemini Code Assist 对话的预览窗格设置处于启用状态。启用此设置后,Gemini Code Assist 对话中的预览代码块会显示前 6 行代码。您可以展开和收起代码块。

如需更改默认设置,请执行以下任务:

VS Code

  1. 在 IDE 中,依次前往设置 > 扩展程序 > Gemini Code Assist

  2. 搜索默认代码块显示设置。

  3. 从下列选项中选择一项:

    • 展开:自动展开 Gemini Code Assist 对话回答中的所有代码块。

    • 预览:仅显示代码块中的前 6 行代码。您必须展开 Gemini Code Assist 对话回答中的代码块,才能看到其余代码。这是默认设置。

    • 收起:自动收起 Gemini Code Assist 对话回答中的所有代码块。

    当 IDE 重新加载时,新设置会生效。

IntelliJ

Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。

通过对话使用所选代码提示 Gemini Code Assist

Gemini Code Assist 可以根据您选择的代码执行任务或回答您的问题。如需根据提示和所选代码生成代码,请按以下步骤操作:

VS Code

  1. 在活动栏中,点击 spark Gemini Code Assist 以打开 Gemini Code Assist 窗格。

  2. 在代码文件中,选择一个代码块。

  3. Gemini Code Assist 窗格文本字段中,输入所选代码的提示。

    例如,在代码中选择一个函数,然后输入提示 Write a unit test for this function

    Gemini 会将您选择的代码作为参考,并生成对提示的回答。

IntelliJ

  1. 在活动栏中,点击 星光图标 Gemini Code Assist,打开 Gemini Code Assist 工具窗口。

  2. 在代码文件中,选择一个代码块。

  3. 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

  1. 在代码文件中,选择一个代码段。

  2. 在 Gemini Code Assist 对话文本字段中,点击添加到对话上下文

    Gemini Code Assist 会将所选代码段添加到上下文抽屉式导航栏中。

  3. 在 Gemini Code Assist 对话文本字段中,输入提示 what does this code do?

    Gemini Code Assist 会根据您在上下文抽屉式导航栏中选择的代码段来回答您的提示。

IntelliJ

Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。

通过对话使用所选终端输出提示 Gemini Code Assist

Gemini Code Assist 可以根据所选的终端输出执行任务或回答您的问题。如需获取所选终端输出的说明,请按以下步骤操作:

VS Code

  1. 在 IDE 中,打开终端(视图 > 终端)。

  2. 选择任意终端输出。

  3. 右键点击所选终端输出,然后选择 Gemini Code Assist:添加到对话上下文

    Gemini Code Assist 会将终端输出添加到上下文抽屉式导航栏中。

  4. 在 Gemini Code Assist 对话文本字段中,输入提示 what does this do?

    Gemini Code Assist 会根据您在上下文抽屉式导航栏中选择的终端输出来回答您的提示。

IntelliJ

Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。

在工作区上下文中指定文件和文件夹

您可以在工作区中指定文件或文件夹,供 Gemini Code Assist 用作上下文。指定文件夹后,Gemini Code Assist 会将该文件夹中的文件以及子文件夹中的文件用作上下文。

VS Code

如需在对话提示中指定文件或文件夹,请输入 @,然后选择要指定的文件或文件夹。

对 VS Code 使用本地代码库感知指定文件和文件夹。

如需了解代码库中两个文件的区别,请按以下步骤操作:

  1. 在活动栏中,点击 spark Gemini Code Assist

  2. 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

如需在对话提示中指定文件或文件夹,请输入 @,然后选择要指定的文件或文件夹。

为 IntelliJ 指定具有本地代码库感知功能的文件。

如需了解代码库中两个文件的区别,请按以下步骤操作:

  1. 在活动栏中,点击 spark Gemini Code Assist

  2. 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

  1. 在 IDE 的活动栏中,点击 spark Gemini Code Assist

  2. 如需查看上下文抽屉式导航栏中的文件和文件夹,请点击上下文项

    Gemini Code Assist for VS Code 的上下文抽屉式导航栏

  3. 如需从上下文抽屉式导航栏中移除各项,请点击 close 移除

IntelliJ

  1. 在活动栏中,点击 spark Gemini Code Assist

  2. 如需查看上下文抽屉式导航栏中的文件和文件夹,请点击上下文

    Gemini Code Assist for IntelliJ 的上下文抽屉式导航栏

  3. 如需从上下文抽屉式导航栏中移除文件和文件夹,请点击 close 移除

从本地上下文中排除文件

默认情况下,如果在 .aiexclude.gitignore 文件中指定了相应文件,Gemini Code Assist 会在代码补全、代码生成、代码转换和对话的上下文中,从本地使用中排除这些文件。

如需了解如何从本地使用中排除文件,请参阅从 Gemini Code Assist 使用中排除文件

在对话中还原到检查点

应用 Gemini Code Assist 根据您的提示生成的更改后,您可以选择将修改后的代码文件还原到特定检查点,这会将所有已应用于代码文件的更改还原。

还原到检查点不会还原您可能对代码文件进行的手动更改。

如需将代码文件还原到检查点,请按以下步骤操作:

VS Code

在 Gemini Code Assist 对话窗格中,点击还原到检查点。这会将您的代码文件还原到进行修改之前的检查点状态。

VS Code Gemini Code Assist 中的“还原到检查点”按钮。

IntelliJ

Gemini Code Assist for IntelliJ 和其他 JetBrains IDE 不支持此功能。

查看代码差异

默认情况下,Gemini Code Assist 会通过代码差异建议对代码进行更改。您可以随时触发此差异,只需让 Gemini Code Assist 对您的代码进行更改即可。

在本部分中,您将提示 Gemini Code Assist 优化代码文件,查看代码文件中的差异,并根据需要接受或拒绝更改。

VS Code

  1. 打开代码文件后,提示 Gemini Code Assist optimize this file。如果您想优化多个文件和文件夹,请提示 Gemini Code Assist optimize @FILE1 and @FILE2

    Gemini Code Assist 会在代码文件中针对您的提示提供代码更改建议,并提供内嵌差异来展示这些更改。

  2. 在代码文件中,点击 check_small 接受close_small 拒绝

    接受或拒绝 VS Code Gemini Code Assist 中建议的文件中的单个更改。

  3. 如果 Gemini Code Assist 在您的代码文件中建议了多个更改,请点击建议上方的查看,然后点击下一个上一个,以循环浏览其他建议。

  4. 如果您想接受或拒绝所有建议的更改,请点击接受文件拒绝文件

    接受或拒绝 VS Code Gemini Code Assist 中文件的所有更改。

IntelliJ

  1. 打开代码文件后,提示 Gemini Code Assist optimize this file。如果您想优化多个文件和文件夹,请提示 Gemini Code Assist optimize @FILE1 and @FILE2

    Gemini Code Assist 会在代码文件中针对您的提示提供代码更改建议,并在对话回答中提供说明这些更改的差异。

  2. 在对话回答中,点击 check_small 接受更改

    接受 IntelliJ Gemini Code Assist 中文件的所有更改。

更改差异视图设置

VS Code

如果您愿意,可以按照以下步骤更改此设置,以便在 IDE 中显示单独的差异视图窗口:

  1. 在活动栏中,依次前往 设置 设置 > 设置

  2. 在设置的用户标签页中,依次前往扩展程序 > Gemini Code Assist

  3. 滚动到 Geminicodeassist > 对话:更改视图设置。

  4. 在下拉列表中,选择以下选项之一:

    • 内嵌建议(默认处于启用状态):显示在代码文件中的代码更改。
    • 默认差异视图:打开一个新文件,其中并排显示代码更改。

IntelliJ

目前,Gemini Code Assist for IntelliJ 和其他受支持的 JetBrains IDE 不支持此功能。

创建自定义命令

默认情况下,Gemini Code Assist 会为 VS Code 提供 /generate 等命令,并为 IntelliJ 和其他受支持的 JetBrains IDE 提供生成代码等命令。您还可以创建自己的自定义命令,以帮助您在 IDE 中更快地完成重复性任务。

在本部分中,您将创建一个名为 add-comments 的自定义命令,用于向代码文件中的代码添加注释。对于 IntelliJ 和其他受支持的 JetBrains IDE,您将通过提示库和编辑器内提示创建、保存和执行自定义命令。

VS Code

  1. 在代码文件中,按 Ctrl+I(适用于 Windows 和 Linux)或 Command+I(适用于 macOS),以打开 Gemini Code Assist 快速选择菜单。

  2. 在该菜单中,搜索并选择首选项:打开设置 (UI)

  3. 搜索设置字段中,输入 Geminicodeassist: Custom Commands

  4. 自定义命令框中,选择添加项

  5. 字段中,输入 add-comments 作为命令的名称。

  6. 字段中,输入 add comments to all functions without comments in my code 作为提示。

  7. 点击确定

您现在可以在 IDE 中使用自定义命令 add-comments。该命令会显示在“Gemini Code Assist 快速选择”菜单(Ctrl+I [适用于 Windows 和 Linux] 或 Command+I [适用于 macOS])的命令列表中。

IntelliJ

  1. 在 IDE 中,依次前往设置 > 工具 > Gemini > 提示库

    IntelliJ Gemini Code Assist 的提示库

  2. 提示库窗口中,点击 add 添加

  3. 将自定义命令命名为 add-comments

  4. 在提示库的文本框中,输入提示:Add comments to all functions without comments in this code

  5. 选中在编辑器内提示中显示复选框(如果未选中)。

  6. 点击确定,将自定义命令保存在提示库中。

  7. 在代码文件中,突出显示要修改的代码。

  8. 右键点击突出显示的代码,依次前往 Gemini > 提示库,然后选择自定义命令 add-comments

    Gemini Code Assist 会执行 add-comments 命令,并向突出显示的代码添加注释。

您还可以通过执行以下任务,使用编辑器内提示调用自定义命令:

  1. 在代码文件中,突出显示要修改的代码,然后按 Alt+\(适用于 Windows 和 Linux)或 Cmd+\(适用于 macOS),以打开 Gemini Code Assist 快速选择菜单。

  2. 在菜单中,选择您的自定义指令 add-comments

    Gemini Code Assist 会执行 add-comments 命令,并向突出显示的代码添加注释。

创建规则

您可以创建供 Gemini Code Assist 遵循的规则,这些规则会包含在您输入的每个对话提示中。

借助 Gemini 中的规则,您可以定义偏好设置,例如:

  • 编码样式
  • 输出格式
  • 技术栈
  • 语言

例如,您可以创建一条规则,例如“Always give me concise responses in Kotlin”。

VS Code

  1. 在代码文件中,按 Ctrl+I(适用于 Windows 和 Linux)或 Command+I(适用于 macOS),以打开 Gemini Code Assist 快速选择菜单。

  2. 在该菜单中,搜索并选择首选项:打开设置 (UI)

  3. 搜索设置字段中,输入 Geminicodeassist: Rules

  4. 在文本字段中,输入规则,例如:Always generate unit tests when creating a new function。您还可以在文本字段中添加包含多行的一条或多条规则。

    在“规则”设置中添加规则后,Gemini Code Assist 会在您每次发出提示或请求时考虑相应规则。

    如需移除规则,请从“规则”文本字段中删除相应内容。

IntelliJ

  1. 如需创建规则,请依次前往设置 > 工具 > Gemini > 提示库 > 规则,然后在编辑器中修改文本。
  2. 如需设置规则的范围,请在范围下拉菜单中选择 IDE项目

    • IDE 级规则仅供您自己使用,并且可用于多个项目。
    • 项目级规则可以在处理同一项目的团队成员之间共享。

    如需在整个团队中共享提示,您必须将 .idea 文件夹添加到版本控制系统。

已知问题

本部分简要介绍了 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
    
  • 许可引用警告不会在各个会话之间保留

    如果许可引用警告无法在各会话中保留,请查阅持久性日志:

    1. 依次点击视图 > 输出

    2. 选择 Gemini Code Assist - 引用

  • Gemini Code Assist 输出窗口中的连接问题

    如果您在 Gemini Code Assist 输出窗口中看到连接错误或其他连接问题,请尝试以下操作:

    • 配置防火墙以允许访问 oauth2.googleapis.comcloudaicompanion.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 服务器可能存在问题。

    如需详细了解您的问题,请执行以下操作:

    1. 在状态栏中,点击 spark Gemini Code Assist,然后选择发送反馈

    2. 点击任意日志文件旁的显示按钮,以查看更多详细信息并辅助排查问题。

IntelliJ

截至目前,Gemini Code Assist for IntelliJ 和其他支持的 JetBrains IDE 暂无已知问题。

提供反馈

如需就您的体验提供反馈,请按以下步骤操作:

VS Code

  1. 您可以通过以下任一方式提供反馈:

    • 在状态栏中,点击 spark Gemini Code Assist,然后在快速选择菜单中选择发送反馈
    • 打开命令面板 (Ctrl/Command + Shift + P),然后选择 Gemini Code Assist:发送反馈
  2. 在表单中,填写标题评论字段。

  3. 针对 Gemini Code Assist 的反馈表单中,从反馈类别类型下拉菜单中选择相应选项。

  4. 评论字段中详细说明您的体验。

  5. 请务必在反馈报告中附上 Gemini Code Assist 日志。默认情况下,此选项处于选中状态。

  6. 根据需要勾选或取消勾选任何其他选项。

  7. 点击提交反馈

IntelliJ

  1. 在状态栏中,点击 spark Gemini Code Assist

  2. 在对话中提示 Gemini Code Assist 后,如果您对回答不满意,请点击 thumb_down 不喜欢,然后选择提供反馈

  3. 在表单顶部的文本字段中,输入您的反馈。

  4. 如果您希望分享 Gemini Code Assist 日志,请务必勾选相应的日志文件。

  5. 点击提交反馈

后续步骤