2013-10-16 143 views
10

正如您所知,Eclips允許您禁用某些源代碼段的代碼格式化程序(請參閱this question)。eclipse中格式化// @ formatter:off`標記

現在,我的問題是,格式化程序顯然停止格式化代碼在//@formatter:off標籤被發現的行的最開始。這樣做的結果是,格式化程序標記本身(本質上僅僅是註釋行)被放置在奇怪的位置,即,在行的最開始處沒有縮進

看到這個例子。

我輸入什麼:

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

擊中後[按Ctrl + F]它看起來像這樣:

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

好吧,我知道這純粹是一個表面問題,但我的強迫症當我在代碼中隨處看到這一點時,讓我瘋狂。特別是在特別是使用格式標記使代碼看起來更好。

回答

1

您使用的是什麼版本的Eclipse?

我剛剛在Eclipse 4.3.1中試過這個,它看起來可以像你想要的那樣工作。更好的是,如果你的代碼最終會像第二個代碼塊那樣結束,格式化程序實際上會將第一個//@formatter:off塊縮進到正確的縮進。

也許你需要升級你的Eclipse版本?

+3

只是重新檢查了這個問題 - 似乎我偶然發現了一些奇怪的邊緣情況。我第一次嘗試的是在_object reference_和_method calls_之間引入'// @ formatter:off'標籤。在這種特定情況下,它不起作用,或者確實如上所述地工作。你說得對,在其他情況下(大多數?)可以正常工作。 – fgysin

+0

好奇!可能值得在https://bugs.eclipse.org/bugs/中拋出一個錯誤。 –

+1

@fgysin謝謝,你的評論解決了它。如果我把off/on標籤放在一個表達式中(我用它在一個數組初始化'new Object [] {// @ formatter:off ... // @ formatter:on};')它將刪除縮進,如果你將它放在保持縮進的表達式之外。 –