2012-05-17 27 views
8

Giả sử tôi có đoạn mã sau trong C#:Ngăn chặn Visual Studio biên tập từ format # nếu ... #endif

void Func() { 
    int i=3; 

    #if DEBUG 
    ... 
    #endif 

    for (int j=0;j<i;j++) { 
     ... 
    } 
} 

Nếu tôi sử dụng Edit->Advanced->Format document, nó được định dạng lại để này (sử dụng mã hiện tại của tôi cài đặt định dạng) :

void Func() 
{ 
    int i = 3; 

#if DEBUG 
    ... 
#endif 

    for (int j = 0; j < i; j++) 
    { 
     ... 
    } 
} 

có cách nào để ngăn chặn sự #if#endif dòng từ được chuyển đến phía bên trái? Tôi không thể tìm thấy bất kỳ cài đặt cho những điều này nhưng tôi hy vọng có một thiết lập đăng ký kiểm soát cách hoạt động này.

Bất kỳ lời khuyên nào sẽ được đánh giá cao - hành vi này làm tôi phát điên vì mã của tôi có hàng trăm khối như vậy, chúng tiếp tục bị phá vỡ bởi VS.

+11

Định dạng hoàn toàn tốt :) các câu lệnh # không phải là một phần của mã để chúng không bị thụt vào. –

+3

Đó là sở thích của bạn. Khi bạn có hàng trăm trong số này (5-9 cho mỗi chức năng trên trung bình) nó làm cho nó rất khó để đọc mã. Nó gần như không thể tìm thấy đầu/cuối của hàm. – xxbbcc

+5

đây là đề xuất - http://msmvps.com/blogs/peterritchie/archive/2011/11/24/if-you-re-using-if-debug-you-re-doing-it-wrong.aspx – hatchet

Trả lời

0

Trong Công cụ/Tuỳ chọn, đi sâu vào Trình chỉnh sửa văn bản/C#/Tab. Trên trang cài đặt đó, thay đổi thụt lề từ Smart thành Chặn. Điều này sẽ ngăn chặn sự thụt lề của các dòng tiền xử lý, với sự cân bằng của việc mất các tính năng khác. Tôi không đủ chuyên gia về cài đặt đó để cho bạn biết những thứ định dạng khác mà bạn sẽ mất, nhưng điều này mang lại ý tưởng chung: http://www.blackwasp.co.uk/VSTabs.aspx

+0

Cảm ơn, tôi đã sử dụng định dạng Chặn cho các tab. Nó vẫn đang xảy ra. – xxbbcc

+0

@xxbbcc Tôi thấy những gì bạn đang nói. Block sẽ để nó ở nơi bạn gõ nó, nhưng nếu bạn đặc biệt thực hiện một định dạng lại, chúng sẽ mất bất kỳ thụt lề nào. – hatchet

+0

Có, thật không may, tôi chưa bao giờ có thể ngăn điều này xảy ra. – xxbbcc

2

một kiểu mà tôi đang sử dụng đang thêm không gian vào thẻ # như thế này

void Func() 
{ 
    int i = 3; 

# if DEBUG 
    ... 
# endif 

    for (int j = 0; j < i; j++) 
    { 
     ... 
    } 
} 

..nếu khối trông giống như mã được xếp hàng chính xác và mã định dạng lại không di chuyển thẻ tiền xử lý.

+0

@ com3lius: Tôi chỉ thấy đề xuất của bạn ngay bây giờ, cảm ơn - Tôi sẽ thử. Tôi không chắc chắn nếu tôi thích nó nhưng nó vẫn có vẻ tốt hơn so với VS butchering bố trí. – xxbbcc

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