我有一些Java代碼,其中的SQL語句編寫爲Java字符串(請不要使用OR / M烈火,嵌入式SQL就是它-不是個人決定)。 html
爲了簡化維護,我將SQL語句在幾行代碼上從語義上分爲了多個串聯的字符串。 所以,而不是像這樣: java
String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";
我有相似的東西: 編程
String query = "SELECT FOO, BAR, BAZ" + " FROM ABC " + " WHERE BAR > 4 ";
這種樣式使SQL更易於閱讀和維護(IMHO),尤爲是對於較大的查詢。 例如,我能夠將編輯器置於「覆蓋」模式並至關容易地就地修改文本。 oracle
請注意,此問題超出了SQL的特定示例的範圍。 用任何垂直格式編寫的任何代碼,特別是表格結構,都容易被漂亮的打印機破壞。 eclipse
如今,一些項目成員使用Eclipse編輯器,而且在格式化整個源文件時經常會破壞語義格式。 編輯器
有沒有一種方法能夠指示Eclipse在格式化方面忽略某些源代碼行? spa
我正在尋找相似特殊註釋的東西,以切換Eclipse格式化程序。 理想狀況下,這樣的註釋能夠配置爲咱們選擇的任何格式,而且其餘格式化程序也能夠編程爲尊重它: code
// STOP-ECLIPSE-FORMATTING String query = "SELECT FOO, BAR, BAZ" + " FROM ABC " + " WHERE BAR > 4 "; // START-ECLIPSE-FORMATTING
顯然,一個「解決方案」是讓咱們的團隊成員標準化一些外部格式化程序,例如Jalopy或JIndent ,但這不是這個問題的重點(也是我對這個項目的決定):我正在尋找一種方法避免臨時使用Eclipse格式化程序。 orm
理想狀況下,一種解決方案將容許我插入Eclipse格式化程序的說明, 而無需使用Eclipse的團隊成員進行任何IDE從新配置 (除了可能選擇與格式化程序無關的命令註釋: STOP-ECLIPSE-FORMATTING
→ STOP-FORMATTING
)。 htm
@xpmatteo能夠禁用部分代碼,可是除此以外,默認的eclipse設置應該設置爲僅格式化已編輯的代碼行,而不是整個文件。
Preferences->Java->Editor->Save Actions->Format Source Code->Format Edited Lines
由於您的同事正在從新格式化他們實際上沒有更改的代碼,因此這首先能夠防止它發生。 這是一個很好的作法,能夠防止使源代碼控件上的差別變得無用的麻煩(當因爲格式設置的微小差別而從新格式化整個文件時)。
若是關閉了開/關標籤選項,這也將阻止從新格式化。
這個hack的做品:
String x = "s" + //Formatter Hack "a" + // "c" + // "d";
我建議不要使用格式化程序。 錯誤的代碼應該看起來很差而不是人爲地好。 好的代碼須要時間。 您不能欺騙質量。 格式化是源代碼質量的一部分。
格式化程序上的Eclipse 3.5 M4的AFAIK具備一個選項「從不鏈接線」,它保留用戶換行符。 也許這就是您想要的。
不然會有這個醜陋的駭客
String query = // "SELECT FOO, BAR, BAZ" + // " FROM ABC" + // " WHERE BAR > 4";
若是將加號放在行首,則格式會有所不一樣:
String query = "SELECT FOO, BAR, BAZ" + " FROM ABC" + " WHERE BAR > 4";
您可使用另外一種解決方案來禁止特定塊註釋的格式。 在塊註釋的開頭使用/*-
(注意連字符),若是格式化文件的其他部分,則格式不會受到影響。
/*- * Here is a block comment with some very special * formatting that I want indent(1) to ignore. * * one * two * three */
資料來源: Oracle文檔 。