2015-04-22 23 views
1

我正在開發一個Xamarin Studio的MonoDevelop插件,我正在嘗試寫入Tool Output窗口(又名Pad)。 「工具輸出」窗口是代碼生成器將其輸出寫入其中的位置,因此它必須是可能的。如何從MonoDevelop插件中寫入到工具輸出面板?

我試過編寫控制檯,跟蹤和調試,以及使用Workbench.StatusBar.ShowMessage(),但沒有寫入到工具輸出窗口。

回答

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對象上的方法直接將文本寫入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> 
+0

ISingleFileCustomTool似乎更適用於代碼生成工具。我的工具對單個文件起作用,但不會生成另一個文件 - 是否仍可以使用ISingleFileCustomTool? – Teevus

+0

這應該是好的。 MonoDevelop有一個MSBuildCustom工具,用於構建項目但不生成其他文件。 –

+0

我成功地使用GetToolOutputProgressMonitor登錄到工具輸出窗口 – Teevus

相關問題