2011-12-10 26 views
3

最近我面臨一個非常愚蠢的問題。我正在研究一個項目,並且有一個我正在編輯的特定文件。一開始我的eclipse格式化工作正常。但現在它不起作用。如果我從同一個項目中打開其他文件,它在那裏工作,但對於這個特定的文件它不起作用。是否有任何按鍵使得eclipse關閉?我怎樣才能讓我的文件恢復格式化?請幫忙。這個問題讓我發瘋。Eclipse格式化程序對我來說很瘋狂

我正在研究Java文件。所有其他的東西都在工作,如警告,錯誤。只是我在編輯文件中的代碼,最初我的格式化程序正在工作。然後我做了更多的更改和按Ctrl + Shift + F,它的工作。它從那時起對我來說不起作用。它在同一個項目的其他文件上工作得很好。另外,如果我複製我的代碼,並在同一項目的其他文件粘貼並做按Ctrl + + ˚F它不工作,有作爲,所以我猜測可能是我不小心按了一些捷徑在該代碼上關閉eclipse。我該如何恢復?

+0

該文件的類型是什麼? .java,.xml等... –

+0

文件是否隨時間變化,是否有警告和錯誤?你保存了文件嗎,所以存儲狀態與編輯器中可見的狀態相同?請將該信息添加到問題中(除了@HarryJoy – mliebelt

+0

之外的問題)我正面臨與Eclipse Formatter相同的問題,並通過刪除代碼中的錯誤來解決問題。 – Salman

回答

3

正如你說下面的一些事情並非如此:

  • 格式化是對整個文件或部分完成的,並沒有什麼捷徑停止。
  • 快捷方式就位並正在運行。如果您不確定,請按兩次CTRL-SHIFT-L以獲取鍵盤快捷鍵的偏好設置,並在那裏搜索格式。

所以原因應該是代碼本身。格式化程序需要做的事情如下:

  • 部分解析代碼,以便可以推導AST(抽象語法樹)。
  • 使用AST重新格式化代碼。

如果格式化程序沒有機會得到AST,它只會中止。做一個簡短的實驗,看看是否這是原因:

  1. 取其中的文件頂部沒有任何錯誤或警告。將文件的其餘部分移到另一個編輯器(也許在eclipse外面)。
  2. 查看格式化程序是否正在運行。
  3. 如果是,請從tmp編輯器中採取一種方法並將其移動到打開的文件中,然後重複步驟2.
  4. 格式化程序不再工作時停止。原因應該在你剛添加的代碼中。查看錯誤和警告,並嘗試修復它們。

我想不出任何其他原因,所以我想試試這個答案。希望它有幫助:-)

0

它不能是一個快捷方式,因爲你已經在另一個文件中的相同內容複製相同的問題。找一個錯位的花括號{或/ **

另外,靜態分析器findbugs可能能夠查明這個問題。您可以先使用Java applet來查看它是否會捕獲它,但是我建議您安裝它的Eclipse插件,以便findbugs始終可供您使用。

它位於:http://findbugs.sourceforge.net/demo.html

只需點擊位於第一款鏈接:運行FindBugs的 這將下載一個findbugs.jnlp文件,那麼你只需要在該文件上雙擊運行小程序(因爲你的計算機上顯然已經有了Java)。