多行的 clang 格式数组初始化程序?
clang-format array initialiser over multiple lines?
我希望能够编写以下代码:
float positions[] =
{
-0.5f, -0.5f,
0.5f, -0.5f,
0.5f, 0.5f,
-0.5f, 0.5f
};
但是 clang-format 一直将初始化程序格式化为一行。
我找不到像上面那样允许它们跨越一行或多行的设置。 This 问题类似,但没有解决我的问题,因为它假设引擎允许多行初始化。
我缺少什么设置?我查看了所有选项,但似乎找不到它。
这可以通过在 clang-format off/on
注释中包装代码来解决。 clang-format 在一行中格式化,但如果你想暂时禁用 clang-format,你可以这样做:
// clang-format off
float positions[] =
{
-0.5f, -0.5f,
0.5f, -0.5f,
0.5f, 0.5f,
-0.5f, 0.5f
};
// clang-format on
从格式化程序的角度来看,您的安排没有任何意义。您有一个初始化列表,并要求格式化程序将其安排在每行两个元素中。但是初始值设定项列表没有语义,甚至根本无法暗示其元素成对相关。
如果您的元素应该成对分组,那么很可能您需要实际将它们“分组”在一个有意义的结构中。这不仅是为了格式化,而且首先是为了代码的完整性。例如:
struct Point { float x; float y; };
Point positions[] =
{
{-0.5f, -0.5f},
{0.5f, -0.5f},
{0.5f, 0.5f},
{-0.5f, 0.5f}
};
我还强烈建议停止使用 C 数组。使用 std::vector
或 std::array
:
struct Point { float x; float y; };
std::array<Point, 4> positions =
{{
{-0.5f, -0.5f},
{0.5f, -0.5f},
{0.5f, 0.5f},
{-0.5f, 0.5f}
}};
我希望能够编写以下代码:
float positions[] =
{
-0.5f, -0.5f,
0.5f, -0.5f,
0.5f, 0.5f,
-0.5f, 0.5f
};
但是 clang-format 一直将初始化程序格式化为一行。
我找不到像上面那样允许它们跨越一行或多行的设置。 This 问题类似,但没有解决我的问题,因为它假设引擎允许多行初始化。
我缺少什么设置?我查看了所有选项,但似乎找不到它。
这可以通过在 clang-format off/on
注释中包装代码来解决。 clang-format 在一行中格式化,但如果你想暂时禁用 clang-format,你可以这样做:
// clang-format off
float positions[] =
{
-0.5f, -0.5f,
0.5f, -0.5f,
0.5f, 0.5f,
-0.5f, 0.5f
};
// clang-format on
从格式化程序的角度来看,您的安排没有任何意义。您有一个初始化列表,并要求格式化程序将其安排在每行两个元素中。但是初始值设定项列表没有语义,甚至根本无法暗示其元素成对相关。
如果您的元素应该成对分组,那么很可能您需要实际将它们“分组”在一个有意义的结构中。这不仅是为了格式化,而且首先是为了代码的完整性。例如:
struct Point { float x; float y; };
Point positions[] =
{
{-0.5f, -0.5f},
{0.5f, -0.5f},
{0.5f, 0.5f},
{-0.5f, 0.5f}
};
我还强烈建议停止使用 C 数组。使用 std::vector
或 std::array
:
struct Point { float x; float y; };
std::array<Point, 4> positions =
{{
{-0.5f, -0.5f},
{0.5f, -0.5f},
{0.5f, 0.5f},
{-0.5f, 0.5f}
}};