提问人:grune02 提问时间:11/9/2023 最后编辑:grune02 更新时间:11/10/2023 访问量:141
ReSharper 和 GitHub Copilot 之间的冲突 同时使用 Tab 自动完成
Conflict between ReSharper and GitHub Copilot Auto-completions both using Tab at the same time
问:
在 Visual Studio 2022 中同时使用 ReSharper 和 GitHub Copilot 时,我遇到了问题。这两种工具都提供了代码建议,这非常有用,但它们有时会发生冲突,导致代码不可用。
- 例如,当我开始输入代码时,如果我输入字母“i”,ReSharper 会立即建议一个“if”语句。另一方面,GitHub Copilot 提供了一个完整的声明,该声明符合我尝试执行的操作的上下文,并且两者同时显示;ReSharper 及其上下文菜单,以及 Copilot 及其内联建议。
ReSharper建议:
if (expr)
{
}
它将插入符号移动到 expr 中的位置,以便让我填充表达式。
副驾驶建议:
if (Logger.IsDebugEnabled)
Logger.Info($"GetNearestClimate returned: {climateData}");
- 为了解决这个问题并优先考虑 GitHub Copilot 的建议,我已经启用了“在显示 GitHub Copilot 建议时禁用 ReSharper 自动完成”设置。我的期望是,当我按“Tab”键接受 GitHub Copilot 的建议时,它应该集成到我的代码中,并且 ReSharper 菜单应该关闭并且不使用。
但是,当我按下“Tab”时,问题就出现了。令人惊讶的是,ReSharper 和 GitHub Copilot 同时接受了这个建议。ReSharper 遵循其“if”语句模板,而 GitHub Copilot 则附加了一些代码,导致一堆无法使用和冲突的代码。
if (expr)
{
} Logger.Info($"GetNearestClimate returned: {climateData}");
在这些情况下,我该怎么做才能确保 GitHub Copilot 的建议优先于 ReSharper 的建议。如何管理此冲突并确保 GitHub Copilot 的代码建议得到一致使用,同时仍受益于 ReSharper 的宝贵功能,例如整个上下文菜单本身?
最好是,每当我点击“Tab”时,Copilot 都会消耗,而 ReSharper 会在我点击空格或进入时消耗,就像它已经一样 - 所以只是禁用 ReSharper 的“Tab”功能,但是我没有成功找到这样的选项。
我已经研究了设置,并尝试启用和禁用“在显示 GitHub Copilot 建议时禁用 ReSharper 自动完成”选项。
我还尝试研究是否可以禁用 ReSharper 的 Tab 键,但无济于事。
我将非常感谢任何见解、提示或解决方法,而无需禁用解决此问题的功能。感谢您的帮助。
答:
这恰好是一个已知问题 - https://youtrack.jetbrains.com/issue/RSRP-491939。在我们进行修复时,我建议在 ReSharper |选项 |环境 |智能感知 |常规。
评论