2015-04-22 1 views
1

Я разрабатываю надстройку MonoDevelop для Xamarin Studio, и я пытаюсь записать в окно вывода инструмента (aka 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.

Если вы создаете собственный инструмент, вам не нужно будет выполнять всю эту дополнительную работу. Вы можете реализовать интерфейс ISingleFileCustomTool, который передает вам монитор прогресса. Затем зарегистрируйте пользовательский инструмент в файле xml вашего addin:

<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