使用大量括号((())自动格式化C ++代码到多行(更易于阅读)

时间:2017-01-25 09:06:38

标签: c++ visual-studio-2015 visual-studio-2017

有时,为了便于阅读,我想将一行代码重新格式化为多行。

例如: -

pushBuffer( MouseEvent(globalVar()->timestamp,getButtonCode(in1,in2),PRESS));

可能格式化为: -

pushBuffer(
    MouseEvent(
        globalVar()->timestamp,
        getButtonCode(
            in1,
            in2
        ),
        PRESS
    )
);

问题:如何在Visual Studio 2015中自动执行此操作?热键?

最接近的功能是ctrl+K ctrl+F(格式选择),它只能缩进缩进,但绝不会将代码分成多行。

修改
在我看来,bolov的回答将引导我找到正确的解决方案。谢谢!
然而,正如博洛夫所说,这不是一个完整的解决方案;可能需要自定义脚本 我正在调查有关Visual Studio's Site的脚本的更多信息。

编辑(2019年4月):
原来的问题没有解决 此外,template<>问题更加严重。

我也希望像这样(或类似)分割线: -

template<
    class T,
    class B=T::F<
        W
    > 
>

1 个答案:

答案 0 :(得分:3)

Clang format是一款出色的工具,它有一个Visual Studio extension。默认快捷方式是 CTRL R CTRL F

它是高度自定义的,但通常它不会拆分一行,除非它超出列限制。

以下是它可以做什么的一些示例(我使名称更长,以便超过列限制):

pushBuffer_long_name(
    MouseEvent_long_name(globalVar_long_name()->timestamp_long_name,
                         getButtonCode_long_name(in1, in2), PRESS_long_name));

我认为有一个选项可以将每个参数保持在一个单独的行上,如果它不能将它们全部保留在一条线上。你必须玩它。