1

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

预先感谢!

4

1 回答 1

1

IRunConfig您可以通过实现和扩展可用的运行配置类型IRunConfigProvider

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

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

对于 .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;
}

编辑器的视图由显示在 ReSharper 控制的对话框中的 WPF 控件提供。视图需要用[View]属性修饰,并且必须实现IView<T>从哪里T返回的具体类CreateEditor。这就是 ReSharper 将如何定位由CreateEditor. 再次,RunConfigMethodView在 dotPeek 中查看更多关于发生了什么的信息(如果您查看资源,您将能够看到 XAML 本身)。

于 2016-08-24T09:11:16.553 回答