如何配置Xcode以将'{'放在生成的文件中我想要的位置

时间:2010-04-10 13:50:09

标签: objective-c xcode coding-style

我知道这在程序员中是一个相当有争议的问题,但在开发时我喜欢我的IDE来定位方法/接口/控制声明下面的开头大括号,为了说明目的: -

这就是Xcode如何使用{最后: -

自动生成骨架方法
-(void) isTrue:(BOOL)input {
    if(input) {
        return YES;
    }
    else {
        return NO;
    }
}

这就是我喜欢布置代码的方式(我相信它被称为Allman style): -

-(void) isTrue:(BOOL)input 
{
    if(input) 
    {
        return YES;
    }
    else 
    {
        return NO;
    }
}

我只是想知道Xcode中是否有任何配置开关来启用这种开发方式?键入if / else语句时非常烦人,因为它倾向于自动完成else子句,行尾的{看起来很愚蠢你喜欢和他们一起开发。

或者我是不合理的? Objective-C是否应该遵守Apple定义的标准?

4 个答案:

答案 0 :(得分:9)

看看:

XCode: Adjusting indentation of auto-generated braces?

Apple Xcode User Defaults

XCCodeSenseFormattingOptions =     {
BlockSeparator = "\\n";
PreMethodDeclSpacing = "";
};

这至少应该在if,for或while语句之后解决你的问题。

答案 1 :(得分:2)

从上面的WhirlWind中消化了有用的信息后(谢谢),得到的片段(只是剪切并粘贴到终端)是:

  

默认写com.apple.Xcode   XCCodeSenseFormattingOptions -dict   BlockSeparator“\\ n”   PreMethodDeclSpacing“”

愚蠢的反斜杠引用。在终端输入时,块分隔符中应该有两个正好两个反斜杠。

答案 2 :(得分:0)

即使使用这些设置,它似乎也不适用于模板。如果你设置了这个,然后在.m文件中输入“init”,你会得到:

- (id)init
{
  self = [super init];
  if (self) {
    <#initializations#>
  }
  return self;
}

请注意“if(self){”行。

答案 3 :(得分:0)

我相信“默认编写com.apple.Xcode”不适用于最新版本的Xcode(7.x)

以下是我所知道的解决方案:

  1. Snippet Edit - 这个小程序将允许编辑默认的Xcode代码片段。因此,您可以在ifforwhile等新行中打开大括号。但是,这不允许更改块缩进。

  2. Uncrustify - 这也可以解决您的问题,但看起来并不容易设置。它只会在> 之后编写代码格式,而不是格式化'在运行中