有没有办法禁用GitHub Copilot的注释建议?

28

我非常喜欢Copilot,但它的注释建议有时可能毫无意义并且会让人分心。

是否有办法在保留代码建议的同时,在我编辑/添加代码中的注释时关闭Copilot?


2
希望他们将来能够添加内置选项,但我并不乐观。 - Ian Dunn
3个回答

4
我也曾感到烦恼,但在网上找不到一个好的自动化解决方案。因此,我编写了一个VSCode扩展程序,它会监视你当前选择区域所在的TextMate范围,并在检测到包含“comment”的范围时,暂时禁用Copilot的内联建议,直到你的光标移动到不包含“comment”的范围为止。
简而言之,它可以让Copilot在你编写注释时避开你,而在其他地方发挥其魔力。
希望你也能从中受益。
链接:https://marketplace.visualstudio.com/items?itemName=disable-copilot-comment-completions.disable-copilot-comment-completions

不确定这个是否有效,评分表明它有效,但在我今天安装了扩展之后,当我在JavaScript中输入注释时,Copilot仍然在愉快地胡言乱语。 - Hinton
我猜在使用VIM模式时也不起作用? - AntonOfTheWoods
@Hinton 如果您有时间,能否尝试提交一个 GH 问题并提供复制步骤?扩展程序的代码是在一天内编写的,而且我自那以后没有更新过它,所以如果有什么不工作的问题,我可能需要重新调整一些东西。GH 存储库链接在扩展页面中。 - JamesK
我在这个现有问题上添加了一条评论:https://github.com/jamesonknutson/disable-copilot-comment-completions/issues/4 - Hinton
问题是你需要输入“//”然后加上空格才能激活(甚至可能需要等待几毫秒再按空格键)。请注意右下角的“建议启用/禁用”状态。如果能修复这个问题就好了,但总体来说这是一个非常有用的扩展。 - undefined

2

我找到了一个解决评论建议问题的方法!

基本思路是创建一个键盘快捷方式,我们按下它就可以禁用内联建议。因此,在撰写评论之前,我们只需要按下键盘快捷键以禁用建议,然后编写评论,最后再按下键盘快捷键以重新启用建议。这不是完美的解决方案,但它有效!

操作步骤如下:

  1. 安装Toggle扩展程序
    • (它由vscode贡献者编写,使您能够使用键盘快捷键切换设置。我们需要这样做是因为Copilot扩展程序实际上没有提供用于禁用内联建议的键盘快捷键。)
  2. 将以下键盘快捷键片段添加到vscode的键绑定文件中。您只需要更改key的值即可使其起作用。(截至本评论编写时,github.copilot.inlineSuggest.enable是我们需要在此处切换的设置。如果他们在未来更改该设置名称,则必须相应地更改下面的代码片段。)
{
    "key": "shift+cmd+c",  // set this to whatever works for you
    "command": "toggle",
    // By the way, this "when" expression was inspired from the "when" expression for Copilot
    // extension's "Trigger Inline Suggestions" keyboard shortcut.
    "when": "editorTextFocus && !editorHasSelection",
    "args": {
      // This id is just a unique name you come up with yourself
      "id": "toggleGithubCopilotInlineSuggestionsBeingEnabled",
      // The names and values of the setting you want to toggle. In this case, it's to enable/disable the
      // `github.copilot.inlineSuggest.enable` setting.
      "value": [
        {
          "github.copilot.inlineSuggest.enable": true
        },
        {
          "github.copilot.inlineSuggest.enable": false
        }
      ]
    }
},

如果您想设置切换键盘快捷方式的详细信息,可以查看Toggle扩展的扩展页面。您也可以在这里阅读更多相关信息。

  1. 按下您设置的键盘快捷键,并注意vscode设置文件中相应的设置发生了变化。很酷,您完成了!

注意:这将允许您禁用内联建议的显示。但它不会使已经显示的当前内联建议消失。如果出现这种情况,只需按Esc即可。理想情况下,在弹出之前就应该事先禁用内联建议。这样,您就永远不必按Esc。


请在您的答案中提供所有相关信息,而不是链接到外部网站。 - Ian Dunn
1
@IanDunn 已收到,已完成。 - jaquinocode
这不是一个解决方案。 - undefined

1

基于当前状态的答案

我认为Esc可以做到这一点(在VSCode中隐藏内联建议)。 我使用Shift+Esc快捷键来关闭(隐藏)编辑器中的内联建议。从这里,我们可以看到Esc快捷键被映射到editor.action.inlineSuggest.hide。在我的keybindings.json文件中,我有以下内容

// Dismiss GitHub copilot suggestions
{
    "key": "shift+escape",
    "command": "editor.action.inlineSuggest.hide",
    "when": "editorTextFocus"
}

我看@jaquinocode的答案可能有更好的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接