是否有任何命令可以輕鬆控制T4模板輸出空格?我得到了一些過度的tab。。我以爲我想起了一個辦法來控制模板空白...T4模板空白控件
Q
T4模板空白控件
3
A
回答
4
PushIndent,PopIndent,ClearIndent http://msdn.microsoft.com/en-us/library/bb126474.aspx
不要格式化你的可讀性模板。你必須控制塊之外的任何空格將在輸出
for(int i=0; i < 10; i++)
{
#>
Hello
<#
}
最終將結束作爲
Hello
Hello
Hello
Hello
Hello
Hello
2
有可能沒有很大的修復到這一點,這是與T4發動機本身的問題, IMO。但是,如果您要在保留指令嵌套的同時減少輸出中的前導製表符/空格,則可以執行以下操作。
以前
<# for (...) { #>
<# if (...) { #>
SomeText
<# } #>
<# } #>
後
<# for (...) { #>
<# if (...) { #>
SomeText
<# } #>
<# } #>
例如在第0列開始指令,在指令本身內縮進!除此之外,你可能要修剪多餘的線條:
private void TrimExtraneousLineBreaksAfterCommentsFromGeneratedFile(ref string fileText)
{
Regex regex = new Regex(@"(//.+?)(?:\r?\n){2,}");
// Replace multiple coniguous line breaks, after a comment, with a single line break.
fileText = regex.Replace(fileText, "\r\n");
}
private void TrimExtraneousLineBreaksFromGeneratedFile(ref string fileText)
{
Regex regex = new Regex(@"\r?\n(?:\s*?\r?\n)+");
// Replace multiple coniguous line breaks with 2 line breaks.
fileText = regex.Replace(fileText, "\r\n\r\n");
// Remove spaces/line breaks from the file.
fileText = fileText.Trim();
}
因人而異
2
只是櫃面有人正在使用WriteLine方法添加標籤。轉義字符起作用。
<#
for(int i=0; i < 10; i++)
{
this.WriteLine("\tHello");
}
#>
相關問題
- 1. IEnumerable T4模板
- 2. Django模板空白
- 3. T4模板和Assembly.Load
- 4. T4模板錯誤
- 5. T4模板攔截
- 6. 空白的Asp.net MVC模板
- 7. 空白在AngularJS玉模板
- 8. PowerBI空白數據模板
- 9. T4模板:如何創建子模板?
- 10. T4模板和Visual Studio項目模板
- 11. T4模板 - 避免包含文件中的空行
- 12. t4模板優於Class文件
- 13. 創建T4模板文件參考SubSonic
- 14. T4模板VS2010獲得主機組件
- 15. T4有條件地包含模板
- 16. 用T4模板反射
- 17. T4模板新手問題
- 18. T4中的RenderPartial()模板
- 19. T4模板組裝指令
- 20. 訪問T4模板編程
- 21. T4文本模板與IList
- 22. 使用T4模板ENum的
- 23. VS 2015中的T4模板
- 24. 遞歸塊T4模板
- 25. T4模板和使用Server.Mappath
- 26. 移動由T4模板
- 27. T4模板保存爲Unicode
- 28. T4運行模板部署
- 29. T4模板獲取屬性
- 30. 評論中T4模板
「不要格式化您的模板以提高可讀性」讓我非常難過。 :( – 2015-11-04 19:25:19
請參閱下面的Josh.M的回答,你放置指令的地方決定了代的起點,將它們保留在位置0以獲得更多的控制,並且如果在指令後沒有文本,它會影響你的換行符格式化模板輸出是非常有可能的,但需要花費很大的努力,但我更喜歡這樣做,因爲它在調試時節省了時間,當我創建一個新模板時。 – Volkirith 2017-08-29 10:19:52