2013-01-18 174 views
1

我使用的格式不正確的現有代碼。 Eclipse格式化程序在格式化時失敗,我是配置格式化程序的新手。因此,經過一段時間的努力,我失敗了。內置模板不起作用。無論如何,我想使用Eclipse的格式化程序,而不是在一個插件。日食代碼格式化程序

我想獲得以下代碼...

/** Class A 
    */ 
public class A 
{ 
    /** An int */ 
    int i; 

    /** An A */ 
    A(int i) 
    { this.i = i; 
    } 

    /** Gets i */ 
    int getI() 
    { int b = i *2; 
     if(check()) 
     { try { doIt(); } catch (Exception e) {doIt();} 
      if (check()) 
      { if (check()) doIt(); 
       else return i; 
      } 
     } 
     return b; 
    } 

    private void doIt() {} 

    private boolean check() {return false;} 
} 

...格式化成...

/** 
* Class A 
*/ 
public class A { 

    /** 
    * An int 
    */ 
    int i; 

    /** 
    * An A 
    */ 
    A(int i){ 
     this.i = i; 
    } 

    /** 
    * Gets i 
    */ 
    int getI(){ 
     int b = i *2; 
     if(check()){  
      try { 
       doIt(); 
      } catch (Exception e) { 
       doIt(); 
      } 
      if (check()){ 
       if (check()){ 
        doIt(); 
       }else{ 
        return i; 
       } 
      } 
     } 
     return b; 
    } 

    private void doIt() {} 

    private boolean check() {return false;} 

} 

有沒有辦法配置Formatter來處理我的問題?

任何幫助表示高度讚賞,因爲這是一個很大的代碼:-)

+2

格式化程序在格式化時如何「失敗」?如果你有錯誤,你應該把它添加到你的問題。 – sharakan

+0

-1實際上沒有指定出錯 –

+0

嗯,我沒有指定錯誤,因爲沒有。代碼沒有按照需要格式化,就是這樣。無論如何,一個正確的答案已經發布。 – aboger

回答

2

使用Clean UpSource -> Clean Up...)而不是格式化程序。 Clean Up可以選擇使用ifwhile,dofor語句塊以及格式化選項,因此您可以將格式設置得非常接近您想要的格式。

+0

使情況變得更糟。但很高興知道。謝謝! – aboger

+0

@my_greets:它究竟會變得更糟?你可以在那裏配置幾乎所有的東西。看看我給出的鏈接。 – vitaut

+0

非常感謝。格式化爲Harsha後,我再次嘗試。現在按需要工作。 – aboger

2

窗口/首選項:檢查的Java /代碼樣式/格式化。 然後「編輯」活動配置文件。

然後查找「大括號」選項卡。 例如,您可以在那裏配置方法,構造函數等...聲明爲「在同一行上」。

+0

試過了,沒有工作 – aboger

+0

只有代碼可以被Eclipse編譯時它才能工作。 – tibkov

1

我認爲,按Ctrl + Shift + F在Eclipse能夠做到這一點

+0

是的,它的確如此,謝謝。但是有沒有辦法添加大括號? – aboger

+0

Arrgh ...我使用Ctrl + Shift + I直到現在: -/ – aboger

+0

@my_greets:使用「清理」來添加大括號。看到我的答案。 – vitaut

3

首先,你的代碼是不是編譯。您首先需要修復編譯錯誤,之後Eclipse將不再按照您期望的方式格式化代碼。

+0

對不起。現在應該是可編譯的。 – aboger

2

Java(Sun)codestyle在右邊有大括號,而不在新行。我建議你習慣這種代碼風格。除了許多程序員,比如新系列的大括號外,大部分Java代碼都使用java standard conventions

許多程序員並不完全尊重這些指導原則(我是少數不喜歡遵循colum 80的人之一),所以這些約定必須適應您的感覺。但總體方向是Java代碼用於在同一行上打開花括號(例如,與C不同)。

保持一般風格是一個不錯的主意,也可以幫助您閱讀其他人的代碼。

BTW,Eclipse的格式是完全可定製,你可以對新線的支撐,如果你覺得這樣:

enter image description here

這看起來C代碼給我:)。

+0

嗯,我試過但失敗了。這就是爲什麼我問:-) – aboger