2012-12-15 53 views
20

我遇到了Eclipse格式化程序的問題。在聲明類聲明中的方法時,它不會正確地格式化我的代碼。它在方法的返回類型之後放置一個新行。Eclipse C++格式化程序在方法標識符之前放入新行

我已經導出了樣式xml文件並檢查了其中的設置,但沒有任何設置與此問題有任何明顯聯繫,並且Eclipse中的設置編輯器沒有顯示與其相關的示例代碼方法聲明。

下面是代碼爲我想有一個例子位發生:

class MyClass 
{ 
    public: 
     MyClass(); 
     void myMethod(); 
}; 

然而,這是我所得到的:

class MyClass 
{ 
    public: 
     MyClass(); 
     void 
     myMethod(); 
}; 

再次,在樣式編輯器,代碼沒有這個問題,看起來只是我想要的,但在實際的代碼中,故事是不同的。

我正在使用版本3.8.0。任何幫助表示讚賞。

編輯:我刪除了格式不正確(格式化代碼幾次無效之後)的源文件,並用相同的方法,相同的結構等替換爲「相同」的文件。我這次格式化了代碼它的工作。這可能是一個錯誤,但我只是爲了防止其他人遇到類似問題或者有解決方案來避免這個問題。

回答

18

我手動編輯兩個文件的主要Eclipse項目目錄下

.metadata\.plugins\org.eclipse.core.runtime\.settings 

兩個文件:

file 1: org.eclipse.cdt.core.prefs, change this line from "insert" to "do not insert" 
org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert 


file 2: org.eclipse.cdt.ui.prefs, 
scan this file for "insert_new_line_before_identifier_in_function_declaration" and make a similar change from insert to do not insert next to it, should be obvious 

注意我看到靛藍和朱諾這個問題,上述修復是JUNO 。

+2

開普勒的同樣的問題,用這種技術解決。爲什麼這不在Preferences菜單中? – belial

+2

爲什麼不在偏好設置菜單中,默認(沒有很好理由的中斷)非常糟糕。 – dashesy

+0

這仍然存在於月神。上述修改解決了這個問題。這應該是Eclipse中的一個設置。 – eluong

6

如果您有自定義格式器配置,請先導出它(設置> C/C++常規>格式化>編輯>導出)。然後將以下行更改爲「不要插入」。保存XML。

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration" value="do not insert"/> 

刪除當前配置並導入您更改的配置。

+0

你能解釋一下如何通過Eclipse UI改變它嗎? – einpoklum

相關問題