跳到主要内容

代码补全

如果您希望获得最佳的代码补全体验,我们建议使用 Codestral,它可通过 Mistral API 获得。为此,请获取 API 密钥并将其添加到您的配置中

Codestral API 密钥

Codestral 和通用 Mistral API 的 API 密钥不同。如果您使用 Codestral,您可能需要 Codestral API 密钥,但如果您以团队形式共享密钥或希望使用 api.mistral.ai,请确保在您的 tabAutocompleteModel 中设置 "apiBase": "https://api.mistral.ai/v1"

使用 Ollama 进行设置(默认)

如果您想在本地运行代码补全模型,我们推荐使用 Ollama。为此,请首先从此处下载最新版本的 Ollama。然后,运行以下命令下载我们推荐的模型

ollama run qwen2.5-coder:1.5b

然后,将模型添加到您的配置中

模型下载完成后,您应该开始在 VS Code 中看到补全建议。

配置选项

中心代码补全模型

中心探索代码补全模型配置

代码补全用户设置

以下设置可以在 IDE 扩展的用户设置页面中配置代码补全功能

  • Multiline Autocompletions:控制代码补全的多行补全。可以设置为 always(始终)、never(从不)或 auto(自动)。默认为 auto
  • Disable autocomplete in files:逗号分隔的 glob 模式列表,用于禁用匹配文件的代码补全功能。例如,"_/.md, */.txt"

config.json 配置

config.json 配置格式(已弃用)通过 tabAutocompleteOptions 提供更多配置选项。请参阅JSON 参考了解更多详情。

常见问题

我想要更好的补全效果,应该使用 GPT-4 吗?

也许令人惊讶的是,答案是否定的。我们推荐用于代码补全的模型经过高度特定的提示格式训练,这使得它们能够响应代码补全请求(请在此处查看这些提示的示例)。一些顶级的商业模型,如 GPT-4 或 Claude,没有经过这种提示格式训练,这意味着它们无法生成有用的补全建议。幸运的是,出色的代码补全并不需要巨大的模型。大多数最先进的代码补全模型不超过 100 亿参数,超过此参数量并不会显著提高性能。

我没有看到任何补全建议

按照以下步骤操作,确保一切设置正确

  1. 确保您已勾选“启用 Tab 代码补全”设置(在 VS Code 中,您可以通过点击状态栏中的“Continue”按钮来切换;在 JetBrains 中,请转到 Settings -> Tools -> Continue)。
  2. 确保您已下载 Ollama。
  3. 运行 ollama run qwen2.5-coder:1.5b 命令以验证模型是否已下载。
  4. 确保禁用任何其他补全提供程序(例如 Copilot),因为它们可能会产生干扰。
  5. 检查日志输出以查找任何潜在错误:在 VS Code 中,按 cmd/ctrl + shift + P -> “Toggle Developer Tools” -> “Console”选项卡;在 JetBrains 中,查看 ~/.continue/logs/core.log。
  6. 检查 VS Code 设置,确保 "editor.inlineSuggest.enabled" 设置为 true(使用 cmd/ctrl + , 然后搜索此项并勾选复选框)
  7. 如果您仍然遇到问题,请在我们的Discord 中告知我们,我们将尽快提供帮助。

补全建议始终只有单行

为确保您收到多行补全建议,您可以在 tabAutocompleteOptions 中设置 "multilineCompletions": "always"。默认情况下,它是 "auto"。如果您仍然发现只看到单行补全建议,这可能是因为某些模型在文件中间开始时倾向于生成较短的补全。您可以尝试暂时将光标下方的文本移出当前活动文件,或切换到更大的模型。

我可以为代码补全配置一个“触发键”吗?

是的,在 VS Code 中,如果您不想自动显示建议,您可以

  1. 在 VS Code 设置中设置 "editor.inlineSuggest.enabled": false 以禁用自动建议
  2. 打开“键盘快捷方式”(cmd/ctrl+k, cmd/ctrl+s)并搜索 editor.action.inlineSuggest.trigger
  3. 点击“+”图标添加新的按键绑定
  4. 按下您想用于触发建议的按键组合(例如 cmd/ctrl + space
  5. 现在,每当您想查看建议时,都可以按下您的按键绑定(例如 cmd/ctrl + space)来手动触发建议

有没有快捷键可以一次接受一行?

这是 VS Code 的一个内置功能,但有点隐藏。按照这些设置重新分配 VS Code 中的键盘快捷方式

  1. 按下 Ctrl+Shift+P,输入命令:Preferences: Open Keyboard Shortcuts,然后进入键盘快捷方式设置页面。
  2. 搜索 editor.action.inlineSuggest.acceptNextLine
  3. 将按键绑定设置为 Tab
  4. 将触发条件(when)设置为 inlineSuggestionVisible && !editorReadonly。这将使多行补全(包括 Continue 以及 VS Code 内置或其他插件的片段)仍然有效,您将看到多行补全。然而,按下 Tab 将只填充一行。任何不需要的代码都可以通过 Esc 取消。如果您需要应用所有代码,只需多次按下 Tab

如何关闭代码补全

VS Code

点击屏幕右下角状态栏中的“Continue”按钮。勾选标记将变为“取消”符号,您将不再看到补全建议。您可以再次点击以重新开启。

或者,打开 VS Code 设置,搜索“Continue”并取消勾选“启用 Tab 代码补全”旁边的复选框。

您还可以使用默认快捷键通过组合键直接禁用代码补全:按住 ctrl/cmd + K(继续按住 ctrl/cmd),然后按 ctrl/cmd + A。这将关闭代码补全而无需进入设置。

JetBrains

打开 Settings -> Tools -> Continue 并取消勾选“启用 Tab 代码补全”旁边的复选框。

反馈

如果您正在关闭代码补全,我们很乐意听取我们如何改进的意见!请在我们的Discord 中告知我们,或在 GitHub 上提交问题。