English 中文(简体)
Xcode:调整自动生成括号的缩进?
原标题:
  • 时间:2008-12-25 11:21:29
  •  标签:

由Xcode自动生成的代码默认情况下似乎在同一行上有“{”括号。

@interface Controller : NSObject {

}

我想把左括号放在一行的开头,像这样:

@interface Controller : NSObject 
{

}

This applies in general to any method / class auto-generated by Xcode. In Xcode preferences I have "Indent solo { by" set to 0: alt text

我该如何修复这个问题?

最佳回答

For Xcode 3.x, you can use the following: If you open up a terminal session and enter
defaults write com.apple.Xcode XCCodeSenseFormattingOptions { "BlockSeparator" = " " ; }
it will start new blocks of code on a new line. Note that you will have to restart XCode if you have it opened in order for the new defaults to be read and used.

针对 Xcode 4.x 到 6.x(当前)版本,建议您使用Snippet Edit工具来编辑 Xcode 自动补全所定义的片段,这是一个非常方便的工具。目前它是免费的,并且功能非常强大。

问题回答

“新项目”和“新文件”命令并不真正生成任何代码;它们填充“模板”。

你需要制作自己的模板(可能是基于苹果的),并加入你想要的更改。

在Xcode 3.1中,存货模板在/ Developer / Library / Xcode中。您将把修改后的副本放入〜/ Library / Application Support / Developer / Shared / Xcode中。注意这些文件夹的子文件夹。

这也是我想看到的,我不喜欢在同一行上使用花括号或循环控制的“新式”编程风格。

当编辑和重排代码行时,将所有相关内容保留在一行中更容易。花括号应仅定义作用域,它们不是函数定义或程序执行的一部分(例如,if,for等)。

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

阅读此内容:XCCodeSenseFormattingOptions

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

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

如果你想在任何情况下都拥有自己偏爱的风格,你需要结合Laughing_Jack的回答和Peter Hosey的回答。除了Peter Hosey说的内容外,你还可能想知道Cocoa Touch文件模板的位置。你也可以将该目录复制到你的自定义模板中:

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

Xcode用户默认设置在手写代码时为您提供样式,文件模板在自动生成新类等时提供样式。

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

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

然而,Xcode不允许修改默认代码片段。

为了修改它们,您可以从这里下载“片段编辑”程序。





相关问题
热门标签