如何使用Xtext以编程方式添加注释

时间:2018-04-10 12:12:07

标签: xtext

我们正在使用Xtext 2.13,并且语法如下:

Document:
    'document' name=ID '{'
    moreDocuments+=Document*
    '}';

DSL可能非常大(大约5000行)并且嵌套了几次。 为了改进概述,我们希望在每个'}处自动添加评论。支架

例如:

document FirstLevel {
  document SecondLevel {
  } //document SecondLevel
} //document FirstLevel

我们如何实现这一目标?有没有办法在保存或格式化DSL时以编程方式添加注释?

1 个答案:

答案 0 :(得分:0)

我的回答晚了,但也许它可能会帮助其他想要实现相同目标的人。在 Xtext 2.24 中,我使用 XtextDocument 的 replace() 方法:

   public void handleComments() {
            Display.getDefault().syncExec(new Runnable() {
                @Override
                public void run() {
                    XtextEditor editor = EditorUtils.getActiveXtextEditor();
                    IXtextDocument document = editor.getDocument();
                    document.replace(offset, 0, commentAdded);
                }
    }

参数:

  • 要放置评论的偏移量
  • 要替换的文档中的字符数
  • 您的文本内容(您必须以您的评论风格撰写)