缩进Xcode中的连续行

时间:2010-11-14 12:05:46

标签: xcode indentation

我可以让Xcode的自动缩进缩进延续行吗?

我想:

BOOL someLongVariableName = someLongValue
    | someOtherLongValue
    | moreLongValues

BOOL someOtherLongVariableName =
    someEvenLongerValue;

[someLongVariableName
    performSomeAction:someLongArgument]

我目前得到:

BOOL someLongVariableName = someLongValue
| someOtherLongValue
| moreLongValues

BOOL someOtherLongVariableName =
someEvenLongerValue;

[someLongVariableName
 performSomeAction:someLongArgument]

要明确:

  • 我使用明确的换行符而非自动换行。
  • 我希望在编辑时和按下返回后立即进行正确的缩进,而不是在运行外部程序后(如uncrustify)。

2 个答案:

答案 0 :(得分:1)

我最终整合uncrustify以部分获得我想要的东西。 (但案例3仍未关闭。)

Xcode集成

为了让Xcode自动缩进代码,我创建了一个带有“Run Script”阶段的“Aggregate”目标:

find . -name '*.[mh]' -print0 \
    | xargs -0 git diff-index HEAD -- | grep -v "D\t" | cut -c100- \
    | xargs uncrustify -l OC --replace --no-backup -c uncrustify.cfg

对于在git中标记为已更改的所有文件,这会运行unrusificful。我已将我的应用目标作为依赖添加到格式目标,因此只有在编译成功时才会格式化。 (重要的是,因为unrustify会因语法错误而混淆。)最后,我已经将格式目标添加到我的方案中,因此每个构建都会启动一种格式。 Xcode通常会自行重新加载格式化文件。

相关设置我的uncrustify.cfg是indent_continue = 4

问题

当Xcode重新加载格式化文件时,撤消信息会丢失。我可以从git pre-commit钩子运行脚本,但我更喜欢更快的结果。

另一个缺点是,在非解决方案中的Objective-C支持并不完美,但似乎没有其他选择。 (有一天可能clang-format?)

答案 1 :(得分:-1)

或尝试xcode-preferences-text editing-indentation: 检查语法识别缩进,检查“返回”的自动缩进。