【问题标题】:Eclipse code style formatter: How to keep closing braces of initializer list in seperate line?Eclipse 代码样式格式化程序:如何将初始值设定项列表的右括号保持在单独的行中?
【发布时间】:2024-06-18 13:40:02
【问题描述】:

我已经在 Eclipse 的代码样式格式化程序中设置了我自己的配置文件。我已将所有大括号位置设置为“下一行”,加上换行 - 表达式 - 初始化器列表“包装所有元素,每个元素在新行上”并选中“强制拆分...”。然而,代码看起来像这样:

/*
 * Initializer list
 */
int array[] =
{
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17 };

我希望它看起来像这样:

/*
 * Initializer list
 */
int array[] =
{
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17 
};

仅当我在将代码样式应用于我的代码后手动更改它时,选中“从不加入已经换行的行”有助于将大括号保持在单独的行中。这真的很烦人并且花费大量时间(巨大的代码)。

有没有办法在默认设置中将右大括号保持在单独的行上?

【问题讨论】:

    标签: eclipse initializer-list curly-braces


    【解决方案1】:

    我知道这是一个老问题,但我想无论如何我都会回答它,以防它帮助仍在试图解决这个问题的人。

    由于某种原因,您可以更改的许多选项在 C/C++ 的格式化程序对话框中不可见,或者我很难找到它们,例如在上面的结束括号之前插入新行。

    但是如果你将你的格式导出为一个xml文件,你会发现上面的选项其实是存在的,并且可以手动修改。

    要导出,请单击您要添加到的任何配置文件的“编辑”按钮,然后您可以从该对话框将其导出为您喜欢的任何名称。

    导出后,您可以使用任何您喜欢的编辑器编辑 xml。

    您要查找和更改的行是:

    "org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"

    "org.eclipse.cdt.core.formatter.insert_new_line_before_closure_brace_in_array_initializer" value="insert"

    后者是我在格式化程序对话框中找不到的那个,可以为 C/C++ 挽救我的生命。

    然后保存更改并从相同的格式配置文件选择对话框(Windows->Preferences->C/C++->Code Style->Formatter)导入回 Eclipse。

    另外需要注意的是,在某些基于 Eclipse 的 IDE(例如 TI 的 Code Composer Studio)上,您必须单击“首选项”对话框左下方的“显示高级设置”链接才能看到 C /C++ 首选项。

    希望这对某人有所帮助。

    【讨论】:

      【解决方案2】:

      转到Window > Preferences > Java > Code Style > Formatter

      点击激活格式化程序的编辑按钮。将出现一个对话框。

      转到换行标签。转到 Array Initializers 组。

      选择Insert new line after opening Bracket of array initializerInsert new line before closing Bracket of array initializer选项保存配置文件。

      【讨论】:

      • 我有 C 代码,所以它是 C/C++ 代码样式格式化程序。在 New Lines 下只有一个选项:在构造函数初始化列表中的冒号前插入新行