XCode-防止自动摩式错误

Xcode - preventing autoformat errors

本文关键字:错误 XCode-      更新时间:2023-10-16

我在跨平台项目中使用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并不容易。

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

非常感谢。

自动形式中的混淆似乎与口译员将x << y视为没有左手的表达式,当然是x除了ostream之外其他任何东西。

如果您替换了格式错误,则会消失:

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)来想知道我的意图到底是什么。

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

首先做CMD A

然后做CMD [像5-10次

然后我做ctrl i,每次都适当地缩进。