Xcode - 防止autoformat错误

时间:2016-06-18 10:53:50

标签: c++ xcode format

我经常使用Xcode - 用于跨平台项目。有时候,当我按下Cmd-A Ctrl-I(自动缩进所有内容)时,在遇到如下行之后会出现错误缩进:

std::cout << something;

而不是:

if(some_condition()) {
    std::cout << something;
}
other_things();

它会这样做:

if(some_condition()) {
    std::cout << something;
    }
    other_things();

我无法找到任何关于何时会犯错的一致性,因此提供MCSE并非易事。

我找到了一个解决方法(作为答案提供)但是如果有更好的方式我很想知道!

非常感谢。

2 个答案:

答案 0 :(得分:0)

自动格式化程序中的混淆似乎与解释程序有关,将x << y视为没有左侧的表达式,当然如果x除了ostream之外的其他内容{1}}。

如果替换它,格式化错误就会消失:

if(some_condition()) {
    std::cout << something;
    }

用这个:

if(some_condition()) {
    auto& os = std::cout << something;
    // but note we now get a warning about an unused variable
}

或者这个:

if(some_condition()) {
    void(std::cout << something);
    // deliberately discard the returned ostream&
}

两者都不漂亮,两者都可能促使未来的维护者(特别是如果他们使用netbeans,codeblocks,vi,emacs或eclipse)想知道我的意图究竟是什么。

答案 1 :(得分:0)

我总是这样做,这让我很开心。

首先做Cmd + A

然后做Cmd + [比如5-10次

然后我按Ctrl + I,每次都缩进。