Неправильный отступ с шаблонами t4
В настоящее время я работаю с шаблонами T4, и я заметил, что иногда код не имеет отступов должным образом, как я могу избежать этого?
Например, у меня есть этот код в шаблоне
}
<# } #>
this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
а в сгенерированном классе он похож на
}
this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
Ответы
Ответ 1
Позвольте мне проиллюстрировать вашу проблему, заменив пробелы точками.
}
....<# } #>
....this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
а в сгенерированном классе он похож на
}
........this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
Теперь удалим предыдущие точки.
}
<# } #>
....this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
а в сгенерированном классе он похож на
}
....this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
Ответ 2
Я думаю, что хорошо, что вы стремитесь к считываемому сгенерированному коду. Мы будем сидеть и пытаться отлаживать сгенерированный код время от времени, так что хорошо, если это легко на глаза (из мы никогда не редактируем сгенерированный код).
Я принял шаблон, в котором я мог бы пожертвовать некоторой читабельностью шаблона, чтобы получить сгенерированную читаемость кода.
Generated code
<#
T4 statements
#>
Generated code
IE # > всегда появляется после новой строки, и новая строка добавляется сразу после.
Затем ваш код будет изменен на:
}
<#
}
#>
this.cmbDecisionList.Dat = dataSource;
this.btnDec.Enabled = dataSource.Count > 0;
}
Таким образом, сгенерированный код имеет тенденцию форматироваться по назначению.
Вероятно, это не единственный способ сохранить форматирование по назначению, а тот, который я использую.
Надеюсь, что это поможет.