C++ 当clion不';你不理解你的代码并且重新格式化错误吗?

C++ 当clion不';你不理解你的代码并且重新格式化错误吗?,c++,formatting,clion,C++,Formatting,Clion,我有一些代码可以很好地编译,但我为else键入了右大括号},它将所有代码从else{一直移到左侧,并丢弃所有缩进 if (some_condition) { some_real_code(); } else { obj.some(stuff); obj(some,other(stuff)); 当我键入最后的}时,我得到: if (some_condition) { some_real_code

我有一些代码可以很好地编译,但我为else键入了右大括号
}
,它将所有代码从
else{
一直移到左侧,并丢弃所有缩进

    if (some_condition) { 
        some_real_code();
    } else { 
        obj.some(stuff);
        obj(some,other(stuff));    
当我键入最后的
}
时,我得到:

    if (some_condition) { 
        some_real_code();
    } else { 
obj.
some(stuff);
obj(
some, 
other(stuff));
}
我发现处理这种情况的唯一方法是在代码中选择一个大括号,将其复制到剪贴板,然后在clion中右键单击“粘贴简单”,而不进行任何重新格式化

还有更好的办法吗?例如,一部手机,如果它自动更正了您,您删除了自动更正的单词,然后再次键入相同的单词,它不会自动更正您,因为它认为您在第二次这样做时确实知道您的意思

多谢各位

编辑:我并不是说clion不理解我的代码是不好的或错误的,因为在我的真实代码中,我使用了它声称不支持的语言特性。我只是想知道如何解决它严重缺乏支持的问题。

请关闭“键入'}'时重新格式化块”:

似乎您会对保护块感兴趣(每个ide变量:在CLion中它是CLion\u ide,在AppCode–AppCode\u ide,在Android Studio–Studio\u ide

我不会关闭自动格式化,因为在大多数情况下,它很有用。但当这种不希望的自动格式化发生时,我只需执行以下解决方法:

  • 取消自动格式化(Ctrl+Z)。花括号也被取消了
  • 我没有键入bare
    }
    ,而是键入了注释:
    /}
  • 然后只需取消对此行的注释(Ctrl+/或删除斜杠)

  • 利润!:)

    你的代码里真的有
    …废话…
    ?输入无效语法会混淆许多压头。请将其放在注释中,如
    /*…诸如此类*/@Barmar不,我会更新的。很抱歉。我还没有真正弄清楚是什么导致了这个问题——如果身体完全是空的,它仍然会发生。虽然我不太喜欢在我的代码中围绕编辑器限制工作,因为我认为编辑器最终会赶上C++ 17的特性——尽管可能只是时间为“20。-”)12.5 K代表,C++分数308,C分数235(尊敬!)…你甚至没有考虑改变你的IDE,因为它相当缺乏支持?怎么会这样?还有一些其他的IDE也得到了很好的支持和免费。如果你是clion的粉丝,也许是吧,你应该自己修复格式化程序,并做出贡献…@Scheff这是非常罕见的,所以我处理它。我经常告诉别人CLion是一个糟糕的IDE,但它远远领先于其他任何东西:)除了像这样的东西(同样也不常见),它非常符合我的工作流程。太好了,谢谢。我不知道我是否会这样做,因为我经常使用这个功能。也许如果我能找到一种方法,通过键绑定或其他方式快速切换它。