1

在 Xtext 中,xtext 会自动处理几种不同类型的验证。有没有可能禁用它们?

  • 词法分析器/解析器:语法验证
  • 链接器:交叉链接验证

我正在尝试禁用解析器/词法分析器,以便能够将非常大的文件编辑到 dsl 编辑器中。据我所知,从 mwe2 工作流程中无法做到这一点,因为以下片段是能够打开编辑器的入口点。

片段 = parser.antlr.XtextAntlrUiGeneratorFragment 自动注入 {}

我已经提到InternalMysDslLexer类在我输入内容时被实例化了很多次。我应该重写这个类吗?什么是正确的方法?

谢谢你。

4

1 回答 1

2

要在运行时模块中禁用链接覆盖 ILinker:

public Class<? extends ILinker> bindILinker() {
    return MyLinker.class;
}

然后覆盖 doLinkModel() 做笔记(我猜只适用于大文件):

public class MyLinker extends LazyLinker {
    protected void doLinkModel(final EObject model, IDiagnosticConsumer consumer) {}
}

不确定您说要禁用语法验证是什么意思。这将禁用所有 Xtext 功能。使用普通文本编辑器而不是 Xtext 编辑大文件不是更好吗?

在 SO、 Eclipse Xtext 社区论坛和各种博客上也有很多关于 Xtext 性能的资源。

于 2014-08-21T11:01:42.157 回答