Resharper 运行 配置
Resharper run configurations
我正在尝试制作一个 reshaprer 插件来添加一个(或多个)配置,除了可执行文件、静态方法、项目,在 resharper 的 build/run window。
任何指南从哪里开始?或者如何访问构建的上下文和配置?
目前正在检查 JetBrains.IDE.RunConfig、SolutionBuilders 等,但我们将不胜感激。
这个插件应该是 SolutionComponent 还是 SolutionInstanceComponent?
Resharper 的 sdk 帮助幸运文档 build/run 组件。
提前致谢!
您可以通过实施 IRunConfig
和 IRunConfigProvider
来扩展可用的 运行 配置类型。
IRunConfigProvider
class需要标记为[ShellComponent]
,可以从RunConfigProviderBase
抽象基class派生。您可以指定一个名称,例如"Executable"
,类型标识符,例如"exe"
和一个图标 ID。还有 CreateNew 方法,它将创建 IRunConfig
class 的新实例,此时大部分未配置。
IRunConfig
接口不需要标记为组件,也应该派生自 RunConfigBase
- 查看 dotPeek 中的 RunConfigExe
以了解如何使用的示例实施。您应该重写 Execute
以便实际 运行 无论您需要什么 运行。您可以使用传入的 RunConfigContext
class 实际执行来自 ProcessStartInfo
或 IProject
的进程 - 这将通过 运行 执行它处理、调试它或其他东西,例如代码覆盖率或分析。
对于 .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 本身)。
我正在尝试制作一个 reshaprer 插件来添加一个(或多个)配置,除了可执行文件、静态方法、项目,在 resharper 的 build/run window。 任何指南从哪里开始?或者如何访问构建的上下文和配置? 目前正在检查 JetBrains.IDE.RunConfig、SolutionBuilders 等,但我们将不胜感激。 这个插件应该是 SolutionComponent 还是 SolutionInstanceComponent? Resharper 的 sdk 帮助幸运文档 build/run 组件。
提前致谢!
您可以通过实施 IRunConfig
和 IRunConfigProvider
来扩展可用的 运行 配置类型。
IRunConfigProvider
class需要标记为[ShellComponent]
,可以从RunConfigProviderBase
抽象基class派生。您可以指定一个名称,例如"Executable"
,类型标识符,例如"exe"
和一个图标 ID。还有 CreateNew 方法,它将创建 IRunConfig
class 的新实例,此时大部分未配置。
IRunConfig
接口不需要标记为组件,也应该派生自 RunConfigBase
- 查看 dotPeek 中的 RunConfigExe
以了解如何使用的示例实施。您应该重写 Execute
以便实际 运行 无论您需要什么 运行。您可以使用传入的 RunConfigContext
class 实际执行来自 ProcessStartInfo
或 IProject
的进程 - 这将通过 运行 执行它处理、调试它或其他东西,例如代码覆盖率或分析。
对于 .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 本身)。