【问题标题】:How can I configure Xcode to put '{' where I want it in generated files如何配置 Xcode 以在生成的文件中将“{”放在我想要的位置
【发布时间】:2010-04-10 13:50:08
【问题描述】:

我知道这在程序员中是一个相当有争议的问题,但在开发时,我喜欢我的 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 定义的标准?

【问题讨论】:

    标签: objective-c xcode coding-style


    【解决方案1】:

    看看:

    Xcode: Adjusting indentation of auto-generated braces?

    Apple Xcode User Defaults

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

    这至少应该可以解决ifforwhile 语句之后的问题。

    【讨论】:

      【解决方案2】:

      在消化了上面 WhirlWind 的有用信息(谢谢)后,生成的 sn-p(只需剪切并粘贴到终端)是:

      默认写入 com.apple.Xcode XCCodeSenseFormattingOptions -dict 块分隔符“\\n” PreMethodDeclSpacing ""

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

      【讨论】:

      • 是的,我对此有点困惑,我做了与上述类似的事情,但对每个键/值对都使用了 -dict-add 标志
      【解决方案3】:

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

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

      注意“if (self) {”这一行。

      【讨论】:

        【解决方案4】:

        我相信“默认写入 com.apple.Xcode”在最新版本的 Xcode (7.x) 上不起作用

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

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

        2. Uncrustify -- 这也可以解决您的问题,但它看起来并不容易设置。而且它只会在它已经编写好的代码之后格式化,而不是格式化'on the go'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-04-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-06
          相关资源
          最近更新 更多