2013-10-16 17 views
10

Như bạn có thể biết, Eclips cho phép bạn tắt trình định dạng mã cho một số phần mã nguồn nhất định (xem ví dụ this question).Định dạng thẻ `// @ formatter: off` trong eclipse

Bây giờ, vấn đề của tôi là, trình định dạng dường như dừng mã định dạng ở đầu dòng nơi thẻ //@formatter:off được tìm thấy. Điều này có kết quả, rằng thẻ định dạng chính nó (mà chỉ là một dòng bình luận cơ bản) được đặt trong một vị trí queer, cụ thể là mà không thụt đầu dòng ở đầu dòng.

Xem ví dụ này.

Những gì tôi nhập:

//@formatter:off 
    Some code { 
    with indentation 
     that I dont want to be formatted. 
    } 
    //@formatter:on 

Sau khi nhấn [Ctrl + F] nó trông như thế này:

//@formatter:off 
    Some code { 
    with indentation... 
     that I dont want to be formatted. 
    } 
    //@formatter:on 

Ok, tôi nhận ra rằng đây hoàn toàn là một vấn đề thẩm mỹ, nhưng OCD của tôi là lái xe cho tôi khi tôi thấy điều này ở khắp mọi nơi trong mã. Đặc biệt là sau , cụ thể là bằng cách sử dụng thẻ định dạng để làm cho mã trông đẹp hơn.

Trả lời

1

Bạn đang sử dụng phiên bản Eclipse nào?

Tôi vừa thử điều này trong Eclipse 4.3.1 và có vẻ như nó hoạt động chính xác như bạn muốn. Thậm chí tốt hơn, nếu mã của bạn kết thúc giống như trong khối mã thứ hai của bạn, trình định dạng thực sự thụt lề rằng khối //@formatter:off đầu tiên đến thụt đầu dòng chính xác.

Có lẽ bạn cần nâng cấp phiên bản Eclipse của mình?

+3

Chỉ cần kiểm tra lại vấn đề - có vẻ như tôi đã tình cờ gặp một số trường hợp kỳ lạ. Những gì tôi đã thử lần đầu tiên là giới thiệu thẻ '// @ formatter: off' giữa một tham chiếu _object và _method calls_ của nó. Trong trường hợp cụ thể, nó không hoạt động, hoặc đúng hơn là làm việc như đã trình bày ở trên. Bạn đúng rằng nó hoạt động tốt trong (nhất?) Các trường hợp khác. – fgysin

+0

Tò mò !! Có thể đáng để ném một lỗi trong https://bugs.eclipse.org/bugs/. –

+1

@fgysin cảm ơn, nhận xét của bạn đã giải quyết được. Nếu tôi đặt các thẻ off/on trong một biểu thức (tôi đã sử dụng nó trên một mảng khởi tạo 'new Object [] {// @ formatter: off ... // @ formatter: on};') nó loại bỏ thụt lề, nếu bạn đặt nó bên ngoài của biểu thức nó giữ indentation. –

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