Eclipse插件可从现有编辑器中删除验证

时间:2019-01-16 20:09:58

标签: java eclipse-plugin eclipse-rcp

我正在创建一个处理与HTML非常相似的自定义文件格式的Eclipse RCP应用程序,因此在大多数情况下,我可以使用Eclipse随附的常规HTML编辑器来利用其功能,例如语法突出显示和内容可以提供帮助,但是这种自定义格式包含一些在HTML中无效的字符/标记,例如<#= my text #>,因此,在将其添加到文件时,例如以下行:

<body><#= my text #></body>

编辑者的验证器将显示此错误:

Invalid character used in text string (<#= my text #>).

因此,我想知道是否可以修改现有编辑器/验证器的行为,以删除某些特定的验证并添加其他验证。

1 个答案:

答案 0 :(得分:1)

是的,虽然听起来像是从JSP编辑器的分支开始,但从解析器一直到整个过程……

如果您使用org.eclipse.core.contenttype.contentTypes扩展点(使用新文件扩展名)定义了新的内容类型,然后为源验证扩展点org.eclipse.wst.sse.ui.sourcevalidation明确为您的内容类型提供了一个验证器,则应跳过HTML验证程序,以遵循针对您的内容类型定义的更具体的验证程序。 https://github.com/eclipse/webtools.sourceediting/blob/0c532000ad09e53c9fb8ddfb1c3f1def983f57c0/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DocumentRegionProcessor.java#L266显示了它在哪里寻找特定于该内容类型的验证器,并且优先于那些在基本(不太具体)内容类型中定义的验证器。