使用StringTemplate时出现此错误消息:
line 94:26: unexpected char: ')'
在我的模板中随机添加和删除空白行约15分钟,并观察该消息中的数字如何变化后,我终于隔离了导致麻烦的行。这是#152行,#35位。
“line”之后的值通常是完全错误的,还是有办法从该输出中推断出实际行号?
答案 0 :(得分:1)
在StringTemplate(ST)4中,看起来第一个数字是有问题的特定模板中的行号,而不是.stg文件中的行号,如果这是您正在使用的(我们大多数人都这样做) )。
当我使用vim时,这意味着我需要从模板第一行的行号(将它们加在一起)进行心理偏移,以获得.stg文件中的实际行号。
ST错误中的第二个数字是模板该行内的字符位置。但等等,还有更多 - 你知道你喜欢它......
当多行模板的第一行出现错误时:由于ST在多行模板中省略了起始换行符,因此ST有效地将第一行/声明行(以“<<”结尾)与第二个(模板的实际开始)行,在多行模板中;
所以至少在ST-4.0.8中我需要从字符位置减去模板声明行的长度,以获得实际的字符位置。
第一个“\ n”删除(仅适用于多行模板)也表示对于“第一行”上的错误,行号可能看起来偏移1,可能还有字符位置。
错误应包括文件名和模板名称,因此它足以提供自动脚本或工具的信息,但对我们这些人来说有点麻烦。
祝你好运。