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