如何通过多个缩进来缩进一个区域?
How to indent a region by more than one indent?
我有以下语法:
Department:
'Department:' name = ID
'Company:' companyName = STRING
'Persons:' persons += Person+
;
Person:
firstName = STRING
':'
surname = STRING
':'
address = STRING
;
我想要这样的格式:
Department: Department1
Company: "Company1"
Persons:
"Person1FirstName" : "Person1LastName" : "Person1Address"
"Person2FirstName" : "Person2LastName" : "Person2Address"
但是当我实现格式化程序代码时,我似乎无法使用缩进两次,因为白色 space 格式被合并而不是被连接。
class TestsFormatter extends AbstractFormatter2
{
def dispatch void format(Department department, extension IFormattableDocument document)
{
department.interior[indent]
department.regionFor.keyword("Department:").prepend[setNewLines(2)]
department.regionFor.keyword("Department:").append[oneSpace]
department.regionFor.keyword("Company:").prepend[newLine]
department.regionFor.keyword("Company:").append[oneSpace]
department.regionFor.keyword("Persons:").prepend[newLine]
for (Person person : department.persons)
{
person.format
}
}
def dispatch void format(Person person, extension IFormattableDocument document)
{
person.prepend[indent]
person.prepend[indent]
}
}
我发现AbstractFormatter2的文档中有一个"increaseIndentation/decreaseIndentation"的例子。但是当我尝试使用它们时,它无法解析它们。
您可以使用类似于
中所述的自定义替换器来实现此目的
我有以下语法:
Department:
'Department:' name = ID
'Company:' companyName = STRING
'Persons:' persons += Person+
;
Person:
firstName = STRING
':'
surname = STRING
':'
address = STRING
;
我想要这样的格式:
Department: Department1
Company: "Company1"
Persons:
"Person1FirstName" : "Person1LastName" : "Person1Address"
"Person2FirstName" : "Person2LastName" : "Person2Address"
但是当我实现格式化程序代码时,我似乎无法使用缩进两次,因为白色 space 格式被合并而不是被连接。
class TestsFormatter extends AbstractFormatter2
{
def dispatch void format(Department department, extension IFormattableDocument document)
{
department.interior[indent]
department.regionFor.keyword("Department:").prepend[setNewLines(2)]
department.regionFor.keyword("Department:").append[oneSpace]
department.regionFor.keyword("Company:").prepend[newLine]
department.regionFor.keyword("Company:").append[oneSpace]
department.regionFor.keyword("Persons:").prepend[newLine]
for (Person person : department.persons)
{
person.format
}
}
def dispatch void format(Person person, extension IFormattableDocument document)
{
person.prepend[indent]
person.prepend[indent]
}
}
我发现AbstractFormatter2的文档中有一个"increaseIndentation/decreaseIndentation"的例子。但是当我尝试使用它们时,它无法解析它们。
您可以使用类似于