【问题标题】:Xcode: Adjusting indentation of auto-generated braces?Xcode:调整自动生成的大括号的缩进?
【发布时间】:2010-09-28 09:50:28
【问题描述】:

Xcode 自动生成的代码默认情况下似乎在同一行有左大括号:

@interface Controller : NSObject {

}

我想要单独一行的左大括号,像这样:

@interface Controller : NSObject 
{

}

这通常适用于 Xcode 自动生成的任何方法/类。在 Xcode 首选项中,我将“Indent solo { by”设置为 0:

我该如何解决这个问题?

【问题讨论】:

  • @PEZ - 这可能不是我们的风格,但他的标准是正确的。

标签: xcode indentation


【解决方案1】:

对于 Xcode 3.x,您可以使用以下内容: 如果你打开一个终端会话并输入
defaults write com.apple.Xcode XCCodeSenseFormattingOptions '{ "BlockSeparator" = "\n" ; }'
它将在新的一行开始新的代码块。请注意,如果您打开了 XCode,则必须重新启动它才能读取和使用新的默认值。

对于 Xcode 4.x 到 6.x(当前),我建议您使用 Snippet Edit 作为一个方便的工具来编辑定义 Xcode 自动补全的 sn-ps。目前它是免费的,而且效果很好。

【讨论】:

  • 工作得很好。我特别感兴趣的是让自动生成的代码(如 for 循环等)具有“正确的”大括号样式。您如何了解这些默认设置?
  • j.mp/xcode_formatting_defaults(我是通过搜索“xcode user defaults”得到的。第一个链接将引导您到那里。
  • 这似乎不适用于 Xcode 4.2,太糟糕了。谢谢你的信息。
  • 确实没有。我已经为 XCCodeSenseFormattingOptions 尝试了各种不同的设置,但它们都没有任何影响。根据最新的手册页,我很确定它应该,所以我个人觉得这是一个错误。
  • 有关如何更改 Xcode 4.2 代码 sn-p 库并执行此操作的详细说明,请参阅 Scott Forbes 在stackoverflow.com/questions/5120343/…的答案
【解决方案2】:

New ProjectNew File 命令不会真正生成任何代码;他们填写模板

您需要根据需要创建自己的模板(可能基于 Apple 的)。

Xcode 3.1 中,库存模板位于 /Developer/Library/Xcode。您将修改后的副本放在~/Library/ApplicationSupport/Developer/Shared/Xcode。注意这些文件夹的子文件夹。

【讨论】:

    【解决方案3】:

    这也是我想看到的,我不喜欢花括号与函数或循环控制在同一行的“新派”方式。

    在编辑和改组代码行时,将所有相关内容集中在一行中会更容易。花括号应该只定义范围,它们不是函数定义或程序执行的一部分(如 if、for 等)。

    修改所有模板并不是一个好的解决方案,但无论如何感谢您提供的信息。

    【讨论】:

      【解决方案4】:

      阅读:XCCodeSenseFormattingOptions

      本文档描述了自动完成将用于大括号和参数样式的所有格式选项。这是我的:

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

      【讨论】:

      • 我认为他在谈论 New Project 和 New File 命令,而不是自动完成。 (至少,我无法想象使用自动完成将我的所有类放在一个文件中来创建每个类。)
      • @Peter,我指的是自动完成和新建文件/项目。
      • @WarrenP 链接也失效了
      【解决方案5】:

      如果您想在所有情况下都有自己喜欢的风格,您需要结合 Laughing_Jack 的答案和 Peter Hosey 的答案。除了 Peter Hosey 所说的,您可能还想知道 Cocoa Touch 文件模板位于以下位置。您也可以将该目录复制到您的自定义模板中:

      /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/File Templates/Cocoa Touch Classes/
      

      Xcode 用户默认设置在手动输入代码时为您提供您的风格,文件模板在自动生成新类时提供它等等。

      【讨论】:

        【解决方案6】:

        我相信“defaults write com.apple.Xcode”不适用于最新版本的 Xcode (7.x)

        解决方法是编辑默认代码片段。

        但是,Xcode 不允许修改默认的代码片段。

        为了修改它们,你可以从here下载一个“片段编辑”程序

        【讨论】:

          猜你喜欢
          • 2021-07-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-21
          • 2014-05-05
          • 2012-01-05
          相关资源
          最近更新 更多