Resharper 运行配置
Posted
技术标签:
【中文标题】Resharper 运行配置【英文标题】:Resharper run configurations 【发布时间】:2016-08-23 15:37:01 【问题描述】:我正在尝试制作一个 reshaprer 插件,以在 resharper 的构建/运行窗口中添加一个(或多个)配置,除了可执行文件、静态方法、项目之外。 任何指导方针从哪里开始?或者如何访问构建的上下文和配置? 目前正在检查 JetBrains.IDE.RunConfig、SolutionBuilders 等,但我们将不胜感激。 这个插件应该是一个解决方案组件还是一个解决方案实例组件? Resharper 的 sdk 帮助运气文档构建/运行组件。
提前致谢!
【问题讨论】:
【参考方案1】:您可以通过实现IRunConfig
和IRunConfigProvider
来扩展可用的运行配置类型。
IRunConfigProvider
类需要标记为[ShellComponent]
,并且可以派生自RunConfigProviderBase
抽象基类。您可以指定一个名称,例如"Executable"
,类型标识符,例如"exe"
和一个图标 ID。还有 CreateNew 方法,它将创建您的 IRunConfig
类的新实例,此时该实例大部分未配置。
IRunConfig
接口不需要标记为组件,也应该从RunConfigBase
派生 - 请查看 dotPeek 中的RunConfigExe
以查看如何实现的示例。您应该覆盖 Execute
以便实际运行您需要运行的任何内容。您可以使用传入的RunConfigContext
类从ProcessStartInfo
或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;
编辑器的视图由 WPF 控件提供,该控件显示在 ReSharper 控制的对话框中。视图需要使用[View]
属性进行修饰,并且必须实现IView<T>
,其中T
是从CreateEditor
返回的具体类。这就是 ReSharper 将如何定位 CreateEditor
返回的视图模型的视图。同样,请查看 dotPeek 中的 RunConfigMethodView
以了解更多信息(如果您查看资源,您将能够看到 XAML 本身)。
【讨论】:
非常感谢马特!真的很有帮助。 并且已经上传到 Resharper 插件和 github。再次非常感谢。以上是关于Resharper 运行配置的主要内容,如果未能解决你的问题,请参考以下文章