В StringTemplate (ST) 4, кажется, что первым номером является номер строки в пределах конкретного шаблона, а не номер строки в файле .stg, если это то, что вы используете (большинство из нас делать).
Когда я использую vim, это означает, что мне нужно мысленно компенсировать это из номера строки первой строки шаблона (добавить их вместе), чтобы получить фактический номер строки в файле .stg.
Второе число в ошибке ST - это позиция символа в этой строке шаблона. Но подождите, еще есть - вы знаете, что вам это нравится ...
Когда ошибка в первой строке многострочного шаблона: поскольку ST возвращает стартовую строку в многострочных шаблонах, ST эффективно объединяет первый/строка декларации (заканчивается на «< <») со вторым (фактическим началом шаблона) в многострочных шаблонах;
так, по крайней мере, с ST-4.0.8 Мне нужно вычесть длину строки объявления шаблона из положения символа, чтобы получить фактическую позицию символа.
Первый «\ n» eliding (только для многострочных шаблонов) также означает, что номер строки может быть смещен на 1 и, возможно, на позицию символа, для ошибки в «первой строке».
Ошибка должна включать имя файла и имя шаблона, поэтому достаточно информации для автоматизированного сценария или инструмента, но немного громоздки для нас, простых людей.
Удачи.
Я больше не использую ST, поэтому я просто должен предположить, что вы поняли это правильно. –