我正在尝试制作一个 reshaprer 插件,以在 resharper 的构建/运行窗口中添加一个(或多个)配置,除了可执行文件、静态方法、项目之外。任何指导方针从哪里开始?或者如何访问构建的上下文和配置?目前正在检查 JetBrains.IDE.RunConfig、SolutionBuilders 等,但我们将不胜感激。这个插件应该是一个解决方案组件还是一个解决方案实例组件?Resharper 的 sdk 帮助运气文档构建/运行组件。
预先感谢!
我正在尝试制作一个 reshaprer 插件,以在 resharper 的构建/运行窗口中添加一个(或多个)配置,除了可执行文件、静态方法、项目之外。任何指导方针从哪里开始?或者如何访问构建的上下文和配置?目前正在检查 JetBrains.IDE.RunConfig、SolutionBuilders 等,但我们将不胜感激。这个插件应该是一个解决方案组件还是一个解决方案实例组件?Resharper 的 sdk 帮助运气文档构建/运行组件。
预先感谢!
IRunConfig
您可以通过实现和扩展可用的运行配置类型IRunConfigProvider
。
该类IRunConfigProvider
需要标记为[ShellComponent]
,并且可以从RunConfigProviderBase
抽象基类派生。您可以指定一个名称,例如"Executable"
,一个类型标识符,例如"exe"
和一个图标 ID。还有 CreateNew 方法,它将创建您的IRunConfig
类的一个新实例,此时该实例大部分未配置。
IRunConfig
接口不需要标记为组件,也应该派生自-RunConfigBase
看一下RunConfigExe
dotPeek 以查看如何实现的示例。您应该覆盖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 本身)。