Следующий код обновляет строку состояния и записывает текст в окно вывода инструмента.
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>
ISingleFileCustomTool, похоже, больше подходит для инструментов генерации кода. Мой инструмент работает с одним файлом, но не генерирует другой файл - возможно ли использовать ISingleFileCustomTool? – Teevus
Это должно быть хорошо. MonoDevelop имеет средство MSBuildCustom, которое создает проект, но не создает другой файл. –
Я успешно смог использовать GetToolOutputProgressMonitor для входа в окно вывода инструмента – Teevus