c# - 同时使用 Tab 的 ReSharper 和 GitHub Copilot 自动完成之间的冲突

标签 c# resharper visual-studio-2022 github-copilot

我在 Visual Studio 2022 中使用 ReSharper 和 GitHub Copilot 时遇到问题。这两个工具都提供代码建议,非常有用,但它们有时会发生冲突,导致代码无法使用。

  • 例如,当我开始输入代码时,如果我输入字母“i”,ReSharper 会立即建议使用“if”语句。另一方面,GitHub Copilot 提供了一个完整的声明,适合我正在尝试做的事情的上下文,并且两者同时显示; ReSharper 及其上下文菜单,Copilot 及其内嵌建议。

ReSharper 建议:

if (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 的宝贵功能(例如整个上下文菜单本身)?

最好,Copilot 会在我点击“Tab”时消耗,而 ReSharper 会在我点击空格或 Enter 时消耗,就像它已经做的那样 - 所以只需禁用 ReSharper 的“Tab”功能,但是我没有成功找到这样的选项。

我已经查看了设置并尝试启用和禁用“在显示 GitHub Copilot 建议时禁用 ReSharper 自动完成”。选项。

我也尝试过研究是否可以禁用 ReSharper 的 Tab 键,但无济于事。

我非常感谢任何见解、提示或解决方法,而无需禁用功能来解决此问题。感谢您的帮助。

最佳答案

这恰好是一个已知问题 - https://youtrack.jetbrains.com/issue/RSRP-491939 。当我们致力于修复时,我建议在 ReSharper 中从 ReSharper 补全切换到 VS one |选项|环境 |智能感知 |一般。

关于c# - 同时使用 Tab 的 ReSharper 和 GitHub Copilot 自动完成之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77452379/

相关文章:

c# - 当文本框失焦时显示文本框文本突出显示

visual-studio - ReSharper "Move to resource"不起作用

c# - 尽管存在 pdb 文件,Resharper 不会导航到外部源

visual-studio-2010 - VS2010 上的 Resharper?

c++20 msvc错误c3861找不到基本成员

c# - 如何在任务产生事件时从任务中获取异常

c# - oo-spaghettio 网络架构

c# - 那些单元测试没问题吗?

visual-studio - 如何在 Visual Studio 2022 中保留旧的深色主题

c# - 在 Visual Studio 2022 (.NET6) 中创建 C# 项目模板