Emacs缩进为C++中的每个语句

Ale*_*x B 1 c++ emacs foreach indentation

我试图让emacs正确格式化c ++中的"for each"结构.

我希望在以下两个示例中将括号与fin 排成一行for:

for each(Type a in b)
        { //^c^s shows substatement-open
            //... do stuff
        }

for( ; ; )
{ //^c^s shows substatement-open
    //... do stuff
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,使用[Ctrl-c Ctrl-s](或[Ctrl-c Ctrl-o])显示打开{字符都是类型,substatement-open并且在查看时c-offsets-alist我看到它substatement-open等于0.

如何使emacs缩进for each()命令,类似于缩进for(;;)命令的方式?

dmc*_*kee 6

据推测,emacs并没有将" for each" 识别为c ++语法(我也没有.这是一个微软扩展吗?预处理器黑客?即将推出的标准的新内容?).所以毫无疑问,它不是"正确"格式化它.

你可以破解模式,或者向维护人员询问相同的模式(我不会期望得到可能的反应,除非这将是正确的c ++很快就会出现).


从评论我的括号问题的答案是:

  • OP提出的确切形式是Microsoft managed-c ++扩展.
  • BOOST_FOREACH现在有空位
  • C++ 0x stand将包含一个带有语法的容器范围循环 for( <type> <loopcounter> : <container> )

slink的回答看来,模式维护者在最新版本中支持Microsoft语法......