我正在开发MonoDevelop Addin,它主要在源代码编辑器上运行。现在我想基于线条的内容突出显示具有背景颜色的特定线条。
到目前为止,我看到两种方法,它们似乎都不起作用:第一种方法是使用标准方式MonoDevelop绘制线条背景,这是基于错误或警告创建Task
并将其添加到TaskService.Errors
- 但在这里我没有能力定义自定义颜色,我只想给出一个视觉指示,而不是表明问题。
第二个是基于Mono.TextEditor highlight line的答案,它提供了一些有价值的提示,但要求我有一个Mono.TextEditor
的实例。我已经使用MonoDevelop.Ide.IdeApp.Workbench.ActiveDocument
,但这是MonoDevelop.Ide.Gui.Document
的一个实例,我不知道如何从中获取Mono.TextEditor.TextDocument
。
有没有人在没有定义自定义编辑器的情况下看到实现此目的的方法?
答案 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。