MonoDevelop插件如何在文本编辑器中突出显示一行?

时间:2015-07-09 18:44:25

标签: c# mono monodevelop add-in

我正在开发MonoDevelop Addin,它主要在源代码编辑器上运行。现在我想基于线条的内容突出显示具有背景颜色的特定线条。

到目前为止,我看到两种方法,它们似乎都不起作用:第一种方法是使用标准方式MonoDevelop绘制线条背景,这是基于错误或警告创建Task并将其添加到TaskService.Errors - 但在这里我没有能力定义自定义颜色,我只想给出一个视觉指示,而不是表明问题。

第二个是基于Mono.TextEditor highlight line的答案,它提供了一些有价值的提示,但要求我有一个Mono.TextEditor的实例。我已经使用MonoDevelop.Ide.IdeApp.Workbench.ActiveDocument,但这是MonoDevelop.Ide.Gui.Document的一个实例,我不知道如何从中获取Mono.TextEditor.TextDocument

有没有人在没有定义自定义编辑器的情况下看到实现此目的的方法?

1 个答案:

答案 0 :(得分:3)

你没有说你如何获得MonoDevelop.Ide.Gui.Document所以我猜你正在做类似的事情:

MonoDevelop.Ide.Gui.Document doc = MonoDevelop.Ide.IdeApp.Workbench.ActiveDocument;

您可以使用类似的代码访问TextEditor和TextEditorDocument:

var view = MonoDevelop.Ide.IdeApp.Workbench.ActiveDocument.Window.ActiveViewContent as MonoDevelop.SourceEditor.SourceEditorView;
var textEditor = view.TextEditor;
var textEditorDoc = view.Document;

您需要引用MonoDevelop.SourceEditor插件才能使用SourceEditorView。