Resharper 运行配置

Posted

技术标签:

【中文标题】Resharper 运行配置【英文标题】:Resharper run configurations 【发布时间】:2016-08-23 15:37:01 【问题描述】:

我正在尝试制作一个 reshaprer 插件,以在 resharper 的构建/运行窗口中添加一个(或多个)配置,除了可执行文件、静态方法、项目之外。 任何指导方针从哪里开始?或者如何访问构建的上下文和配置? 目前正在检查 JetBrains.IDE.RunConfig、SolutionBuilders 等,但我们将不胜感激。 这个插件应该是一个解决方案组件还是一个解决方案实例组件? Resharper 的 sdk 帮助运气文档构建/运行组件。

提前致谢!

【问题讨论】:

【参考方案1】:

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

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

IRunConfig 接口不需要标记为组件,也应该从RunConfigBase 派生 - 请查看 dotPeek 中的RunConfigExe 以查看如何实现的示例。您应该覆盖 Execute 以便实际运行您需要运行的任何内容。您可以使用传入的RunConfigContext 类从ProcessStartInfoIProject 实际执行进程 - 这将通过运行进程、调试它或其他方式来执行它,例如代码覆盖率或分析.

对于一个 .exe,这很简单:

public override void Execute(RunConfigContext context)

  context.ExecutionProvider.Execute(GetStartInfo(context), context, this);

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

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

[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;

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

【讨论】:

非常感谢马特!真的很有帮助。 并且已经上传到 Resharper 插件和 github。再次非常感谢。

以上是关于Resharper 运行配置的主要内容,如果未能解决你的问题,请参考以下文章

ReSharper 配置及用法(ZHUANG)

ReSharper 配置及用法

ReSharper 配置及用法

ReSharper 配置及用法

ReSharper 配置及用法

ReSharper 配置及用法