我正在为Xamarin Studio开发一个MonoDevelop插件,我正在尝试写入Tool Output窗口(又名Pad)。 “工具输出”窗口是代码生成器将其输出写入的位置,因此必须可以。
我尝试过写入Console,Trace和Debug,以及使用Workbench.StatusBar.ShowMessage(),但这些都没有写入Tool Output窗口。
答案 0 :(得分:2)
以下代码将更新状态栏并将一些文本写入“工具输出”窗口。
using (var monitor = MonoDevelop.Ide.IdeApp.Workbench.ProgressMonitors.GetToolOutputProgressMonitor (false)) {
monitor.BeginTask ("Running...", 1);
monitor.Log.WriteLine ("Test");
monitor.EndTask ();
monitor.ReportSuccess ("Done.");
}
监视器提供了一种使用BeginTask和ReportSuccess,ReportError方法更新状态栏的方法。它还提供了一种使用Log对象上的方法将文本直接写入“工具输出”窗口的方法。
如果您要创建自定义工具,则无需执行所有这些额外工作。您可以实现ISingleFileCustomTool接口,该接口会向您传递进度监视器。然后在addin的xml文件中注册自定义工具:
<Extension path = "/MonoDevelop/Ide/CustomTools">
<Tool name="ResXFileCodeGenerator" type="MonoDevelop.Ide.CustomTools.ResXFileCodeGenerator" />
<Tool name="PublicResXFileCodeGenerator" type="MonoDevelop.Ide.CustomTools.PublicResXFileCodeGenerator" />
</Extension>