24

我遇到了 Eclipse 格式化程序的问题。在类声明中声明方法时,它不会正确格式化我的代码。它在方法的返回类型之后放置一个新行。

我已经导出了样式 xml 文件并检查了其中的设置,但是没有任何设置与这个问题有任何明显的联系,并且 Eclipse 中的设置编辑器在其方法声明的示例代码中没有显示同样的问题。

这是我想要发生的代码示例:

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

但是,这就是我得到的:

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

同样,在样式编辑器中,代码没有这个问题,看起来就像我想要的那样,但在实际代码中,情况有所不同。

我使用的是 3.8.0 版。任何帮助表示赞赏。

编辑:我删除了那些格式不正确的源文件(在多次格式化代码后无济于事)并将它们替换为具有相同方法、相同结构等的“相同”文件。这次我格式化了代码并且它有效。这可能是一个错误,但我将其保留以防万一其他人遇到类似问题或有解决方案来避免这个问题。

4

3 回答 3

19

我在主 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

注意我在 indigo 和 juno 上看到了这个问题,上面描述的修复是在 juno 中。

于 2013-01-10T15:03:59.267 回答
7

如果您有自定义格式化程序配置,请先将其导出(设置>C/C++ 常规>格式化程序>编辑>导出)。然后将以下行更改为“不插入”。保存 XML。

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

删除当前配置并导入您更改的配置。

于 2014-11-12T18:36:50.797 回答
0

从 Eclipse 2019-06 中包含的 cdt 9.8 开始,格式化程序选项中有一个特定的首选项。

于 2019-06-22T09:07:27.000 回答