2017-07-20 47 views
4

短版如何防止IntelliJ停止在下一行繼續雙斜線註釋?

當在//評論的結尾處按<enter>,有時的IntelliJ決定繼續下一行的//評論。我怎樣才能防止呢?有沒有設置某個地方來禁用這種自動化?

龍版

還有就是我做的一個regularily的事情,它是將一個長表達式以雙斜線。

比方說,我有一個像

boolean isHex = c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f'; 

一條線,我想這樣說,這

boolean isHex = c >= '0' && c <= '9' // 
     || c >= 'A' && c <= 'F' // 
     || c >= 'a' && c <= 'f'; 

注意,我想最終//,以防止任何格式加入行拆分再次。

所以我在'9'後面按//<enter>插入雙斜槓返回。但是Intellij會自動繼續下一行的註釋。

boolean isHex = c >= '0' && c <= '9' // 
// || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f'; 

它迫使我去手動取消註釋並重新放置該行。

我想的IntelliJ到繼續在下一行註釋和可選縮進我的代碼:

boolean isHex = c >= '0' && c <= '9' // 
     || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f'; 

所以我想禁用此「繼續後<enter> //註釋」功能。可能嗎?我還沒有找到與此相關的任何設置。

+1

聽起來像您正在使用一種解決方法來防止代碼格式化程序搞亂您的代碼格式。在這個過程中,你現在必須做另一個解決方案來讓IDE不做一些對大多數人都有利的事情(除了你的情況,事實並非如此)。當我必須爲解決問題做一個解決方法時,我的直覺是我(或許)正朝着錯誤的方向前進。首先,許多代碼質量分析工具不鼓勵評論。然後,應該在IDE的外部定義格式(使用文件),以便可以與其他人共享。 – ochi

+1

您可以在本地格式化程序的前後添加註釋,默認情況下爲禁用 - // @formatter:off' /'// @formatter:on'註釋(搜索「啓用格式化程序標記的設置」評論') –

+0

@ochi我相信能夠在有意義的地方強制換行是一件好事。格式化工有時在選擇一個好地方方面做得不好。 //不是很漂亮,但卻是我找到的最好的。 //也是必要的,以防止外部格式化程序弄亂代碼。我的感覺是,我對付IDE中的缺陷。當我插入// 時,Intellij應該記住該行的結尾是實際的代碼,應該保留爲代碼,而不是註釋。 –

回答

1

最接近你將得到的是定義一個宏來插入一個新行並刪除註釋,然後將該宏綁定到一個合適的鍵。

0

轉到設置→代碼樣式→Java→包裝和大括號並檢查「重新格式化時保留」下的「換行符」。這將使IntelliJ的格式化程序尊重任何手動換行符,即使它們與其他格式化規則相沖突。

+0

謝謝你的提示。它不回答這個問題,但給出了使用//的替代方案。它可以幫助一些人,但在我的情況下,這是行不通的,因爲代碼風格是由我的公司施加的。 –

+0

我認爲這個選項仍然應該阻止IntelliJ將'//'移動到下一行,對吧? – andrej88

+0

我剛試過。它沒有。不在OS X的IntelliJ Ultimate 2017.2上。 –