2013-12-12 19 views
16

Tôi hiện đang làm việc với các mẫu T4 và tôi đã nhận thấy rằng đôi khi mã không được thụt lề đúng cách, làm cách nào để tránh điều đó?Sai thụt lề với các mẫu t4

Ví dụ tôi có mã này trong các mẫu

} 
    <# } #> 
    this.cmbDecisionList.Dat = dataSource; 
    this.btnDec.Enabled = dataSource.Count > 0; 
} 

và trong lớp tạo ra nó giống như

} 
       this.cmbDecisionList.Dat = dataSource; 
     this.btnDec.Enabled = dataSource.Count > 0; 
} 
+0

Tôi thường tránh nó bằng cách làm mẫu T4 của tôi xấu xí hơn và loại bỏ khoảng trắng ở chỗ, do đó, mã tạo của tôi trông khá hơn. :) –

+0

Có nhưng nó phức tạp để hiểu ... –

+1

Mã được tạo thường không có ý định đọc, nhưng tôi biết mong muốn của bạn để có mã tìm kiếm đẹp, ngay cả khi nó được tạo tự động. Bên cạnh việc thay đổi mẫu T4 của bạn, bạn cũng có thể sử dụng tùy chọn "Định dạng tài liệu" trong trình đơn "Chỉnh sửa"> "Nâng cao" trên tệp xuất của bạn. Và theo như tôi biết T4 Editor hữu hình có một tùy chọn "Định dạng đầu ra" khi tạo mã. – Nico

Trả lời

31

Cho phép tôi minh họa sự cố của bạn bằng cách thay thế dấu cách bằng dấu chấm.

} 
....<# } #> 
....this.cmbDecisionList.Dat = dataSource; 
    this.btnDec.Enabled = dataSource.Count > 0; 
} 

và trong lớp tạo ra nó giống như

} 
........this.cmbDecisionList.Dat = dataSource; 
    this.btnDec.Enabled = dataSource.Count > 0; 
} 

Bây giờ, chúng ta hãy loại bỏ các dấu chấm trước.

} 
<# } #> 
....this.cmbDecisionList.Dat = dataSource; 
    this.btnDec.Enabled = dataSource.Count > 0; 
} 

và trong lớp tạo ra nó giống như

} 
....this.cmbDecisionList.Dat = dataSource; 
    this.btnDec.Enabled = dataSource.Count > 0; 
} 
+4

Tôi gần như có thể khóc khi nhìn thấy một mô tả đơn giản nhưng chính xác về giải pháp cho vấn đề này đã khiến tôi bận tâm trong một thời gian dài. Cảm ơn bạn. – stvn

8

Tôi nghĩ đó là tốt mà bạn phấn đấu cho mã được tạo có thể đọc được. Chúng tôi sẽ ngồi và cố gắng để gỡ lỗi mã được tạo ra đôi khi vì vậy nó tốt nếu nó dễ dàng trên mắt (ofc chúng tôi không bao giờ chỉnh sửa mã được tạo ra).

Tôi đã sử dụng một mẫu mà tôi có thể hy sinh một số khả năng đọc của mẫu để đạt được khả năng đọc mã được tạo.

Generated code 
<# 
    T4 statements 
#> 
Generated code 

IE #> luôn xuất hiện sau dòng mới và dòng mới được thêm vào sau đó.

Mã của bạn sau đó sẽ được thay đổi thành:

} 
<# 
    } 
#> 
    this.cmbDecisionList.Dat = dataSource; 
    this.btnDec.Enabled = dataSource.Count > 0; 
} 

Bằng cách đó các mã được tạo có xu hướng được định dạng như dự định.

Đây có lẽ không phải là cách duy nhất để giữ lại định dạng như dự định mà là cách tôi sử dụng.

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan