如何实现org.eclipse.wst.sse.ui.semanticHighlighting

时间:2014-03-13 13:34:16

标签: eclipse-plugin

我尝试实现内容辅助和一些自定义突出显示作为Eclipse的插件,经过大量研究后我发现了这次日食document

我获得了内容辅助工作的XML文档,问题是关于SemanticHighlighting的部分,我没有找到任何关于如何实现这个扩展点的信息而且我有点丢失。我找到的唯一信息是扩展点的XSD。

我试图在XML上制作一些关联表达式获得不同的颜色Ex:

<span>%%colored_text%%</span>

我在哪里可以获得有关此org.eclipse.wst.sse.ui.semanticHighlighting的更多信息以及如何实现它?

1 个答案:

答案 0 :(得分:1)

我不认为有很多关于SSE语义突出显示的文档。您找到的文件对细节有点了解。例如,XSL项目使用扩展点实现了semantic highlighting

语义突出显示扩展点背后的基本思想是,当发生更改时,将询问实现者是否能够消费&#39;文件的一个区域。如果可以的话,它将返回一个可由该特定荧光笔突出显示的位置数组。它只能应用一种风格,因此最终会非常具体。例如,您无法说明将该区域的这部分颜色设为蓝色,而该区域的其他部分为红色&#39;。你需要两个独立的荧光笔来完成它。

荧光笔通过使用从getPreferenceStore()返回的首选项存储来获取突出显示的样式信息。然后,您需要设置荧光笔将用于从该首选项存储中查找样式的键。如果在扩展点上使用styleStringKey,则语义突出显示实现中唯一重要的关键是从getEnabledPreferenceKey()返回的关键字。这是一种声明样式的简洁方式,因为它只需要2个首选项即可开始。语义突出显示框架知道如何将首选项存储为styleStringKey返回的字符串值解析为适当的样式组件。只需按照您链接到的旧朋友新帮助文档中定义的格式。

现在,如果要将所有样式组件分开,则另一个get * PreferenceKey()方法变得很重要。您必须为每个键定义键,然后在首选项初始值设定项中为每个键添加默认值。

org.eclipse.wst.xsl.ui.internal.preferences.XSLUIPreferenceInitializer提供了定义这些样式默认值的两种方法的示例。