1
我正在開發一個Xamarin Studio的MonoDevelop插件,我正在嘗試寫入Tool Output窗口(又名Pad)。 「工具輸出」窗口是代碼生成器將其輸出寫入其中的位置,因此它必須是可能的。如何從MonoDevelop插件中寫入到工具輸出面板?
我試過編寫控制檯,跟蹤和調試,以及使用Workbench.StatusBar.ShowMessage(),但沒有寫入到工具輸出窗口。
我正在開發一個Xamarin Studio的MonoDevelop插件,我正在嘗試寫入Tool Output窗口(又名Pad)。 「工具輸出」窗口是代碼生成器將其輸出寫入其中的位置,因此它必須是可能的。如何從MonoDevelop插件中寫入到工具輸出面板?
我試過編寫控制檯,跟蹤和調試,以及使用Workbench.StatusBar.ShowMessage(),但沒有寫入到工具輸出窗口。
以下代碼將更新狀態欄並將一些文本寫入「工具輸出」窗口。
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對象上的方法直接將文本寫入Tool Output窗口的方法。
如果你正在創建一個自定義工具,你不需要做所有這些額外的工作。您可以實現傳遞進度監視器的ISingleFileCustomTool界面。然後將自定義工具註冊到您的插件的xml文件中:
<Extension path = "/MonoDevelop/Ide/CustomTools">
<Tool name="ResXFileCodeGenerator" type="MonoDevelop.Ide.CustomTools.ResXFileCodeGenerator" />
<Tool name="PublicResXFileCodeGenerator" type="MonoDevelop.Ide.CustomTools.PublicResXFileCodeGenerator" />
</Extension>
ISingleFileCustomTool似乎更適用於代碼生成工具。我的工具對單個文件起作用,但不會生成另一個文件 - 是否仍可以使用ISingleFileCustomTool? – Teevus
這應該是好的。 MonoDevelop有一個MSBuildCustom工具,用於構建項目但不生成其他文件。 –
我成功地使用GetToolOutputProgressMonitor登錄到工具輸出窗口 – Teevus