有没有办法让XCode Brackets出现在下一行?

Jos*_*osh 1 macos xcode

在XCode中,自动完成的第一个括号出现在同一行:

    if (<#condition#>) {
        <#statements#>
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法让它看起来像这样,所以我不必每次都改变它?

    if (<#condition#>)
    {
        <#statements#>
    }
Run Code Online (Sandbox Code Playgroud)

jky*_*yle 5

您可以通过编辑Xcode宏文件来修改它.

  • 将Xcode C宏文件复制到用户的Xcode宏目录:

    mkdir -p~/Library/Application Support/Developer/Shared/Xcode/Specifications &&\cp /Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources/C.xctxtmacro~/Library/Application \支持/开发/共享/ Xcode中/规格

  • 我发现xml更容易阅读,并且通常将宏文件转换为xml1

    plutil -convert xml1 C.xctcmacro

  • 编辑新样式的宏文件

    cd $ SpecificationsDir/&& vim C.xctxtmacro

  • 您将在第46行附近找到相关部分作为c.block标识符的一部分.如果你在$(BlockSeparator)之后添加一个breakline,那么它将扩展到那个.

此时,您可能会注意到一个名为"BlockSeparator"的有趣外观键.如果您希望此样式适用于所有语言的所有块(while,for,switch等),则可以使用更简单的路径:

defaults write com.apple.Xcode XCCodeSenseFormattingOptions '{ "BlockSeparator" = "\n" ; }'
Run Code Online (Sandbox Code Playgroud)

您可以通过阅读已有的xcode宏来了解有关xcode宏的更多信息.在文档的Xcode Editor部分中有一个(痛苦的简短)回顾.