Resharper 运行 配置

Resharper run configurations

我正在尝试制作一个 reshaprer 插件来添加一个(或多个)配置,除了可执行文件、静态方法、项目,在 resharper 的 build/run window。 任何指南从哪里开始?或者如何访问构建的上下文和配置? 目前正在检查 JetBrains.IDE.RunConfig、SolutionBuilders 等,但我们将不胜感激。 这个插件应该是 SolutionComponent 还是 SolutionInstanceComponent? Resharper 的 sdk 帮助幸运文档 build/run 组件。

提前致谢!

您可以通过实施 IRunConfigIRunConfigProvider 来扩展可用的 运行 配置类型。

IRunConfigProviderclass需要标记为[ShellComponent],可以从RunConfigProviderBase抽象基class派生。您可以指定一个名称,例如"Executable",类型标识符,例如"exe" 和一个图标 ID。还有 CreateNew 方法,它将创建 IRunConfig class 的新实例,此时大部分未配置。

IRunConfig 接口不需要标记为组件,也应该派生自 RunConfigBase - 查看 dotPeek 中的 RunConfigExe 以了解如何使用的示例实施。您应该重写 Execute 以便实际 运行 无论您需要什么 运行。您可以使用传入的 RunConfigContext class 实际执行来自 ProcessStartInfoIProject 的进程 - 这将通过 运行 执行它处理、调试它或其他东西,例如代码覆盖率或分析。

对于 .exe,这很简单:

public override void Execute(RunConfigContext context)
{
  context.ExecutionProvider.Execute(GetStartInfo(context), context, this);
}

但对于更复杂的示例,请查看 RunConfigMethod.Execute,它使用自己的独立启动器可执行文件,并传入命令行参数以加载正确的程序集并执行给定的静态方法。

设置是用ReadSpecific/SaveSpecific实现的,你可以用CreateEditor提供一个编辑器视图模型。您需要设置 class,例如:

[SettingsKey(typeof (ConfigSettings), ".exe config")]
public class ExeSettings
{
  [SettingsEntry(null, "Path to .exe")] public string Executable;
  [SettingsEntry(null, "Working directory")] public string WorkingDirectory;
  [SettingsEntry(null, "Command line arguments")] public string Arguments;
}

编辑器的视图由显示在 ReSharper 控制的对话框中的 WPF 控件提供。视图需要用 [View] 属性修饰,并且必须实现 IView<T>,其中 T 是从 CreateEditor 返回的具体 class。这就是 ReSharper 为 CreateEditor 返回的视图模型定位视图的方式。再次查看 dotPeek 中的 RunConfigMethodView 以了解更多信息(如果您查看资源,您将能够看到 XAML 本身)。