gpt4 book ai didi

coding-style - 如何在 Xcode 6.1 中更改花括号样式?

转载 作者:行者123 更新时间:2023-12-01 06:27:05 31 4
gpt4 key购买 nike

对于以前版本的 Xcode,这个问题有答案,但没有一个能满足我的需求。

默认情况下,Xcode 6.1 默认为 K&R style缩进,但我更喜欢 Allman style .现在,我所有的代码片段都是 Allman 风格的,但是 Xcode 的可实现函数的自动完成功能仍然将大括号与函数声明放在同一行。例如,如果我创建一个类并写入 init并让 Xcode 自动完成,它会将左大括号放在同一行上。手动修复它并不是什么大问题,但这有点拖累。

我怎样才能实现这个功能,即使它很笨拙?

最佳答案

我也有同样的挫败感,并开发了一个在某种程度上有所帮助的 AppleScript。 Xcode 中的文本编辑通过可脚本性得到的支持很差,所以我的脚本有一些怪癖。当您在 Xcode 工作区中打开一个 .swift 文件时,它似乎效果最好,当您打开要编辑花括号的文件时,它似乎也更快乐。

它只会正确缩进类和函数级别的左花括号,尽管所有其他的左花括号都在自己的行上。我通常在添加了所有 IBActions 后运行它来为我清理它。

我将脚本存储在 ~/Library/Scripts/Applications/Xcode 文件夹中,以便我可以轻松访问它。

在这里,祝你好运:

set oneIndent to space & space & space & space -- Four spaces for indent (see Text Editing Preferences -> Indentation)
set isFirstBrace to true
global oneIndent, isFirstBrace

tell application "Xcode"
set allDocs to every text document
set theirNames to the name of every text document
choose from list theirNames with prompt "Choose your active file:"
if the result is not false then
set aName to item 1 of the result
set c to my FindItemNumber(theirNames, aName)
set workingDocument to item c of allDocs
set delegateText to text of workingDocument
set textParagraphs to every paragraph of delegateText
set newTextString to {}
repeat with eachPara in textParagraphs
if (eachPara as text) contains "{" then
set end of newTextString to my solveIndent(eachPara as text)
if isFirstBrace is true then set isFirstBrace to false
else
set end of newTextString to (eachPara as text) & return
end if
end repeat
set text of item 1 of workingDocument to (newTextString as text)
end if
end tell

----------------------
to solveIndent(p)
set astid to AppleScript's text item delimiters
set AppleScript's text item delimiters to "{"
if isFirstBrace is true then
set newParagraph to (text item 1 of p) & return & "{" & (text item 2 of p) & return
else
set newParagraph to (text item 1 of p) & return & oneIndent & "{" & (text item 2 of p) & return
end if
set AppleScript's text item delimiters to astid
return newParagraph
end solveIndent

--------------------------
to FindItemNumber(lst, choice)
set counter to 1
repeat with eachOption in lst
if choice = (eachOption as text) then
set cc to counter
exit repeat
end if
set counter to counter + 1
end repeat
return cc
end FindItemNumber

关于coding-style - 如何在 Xcode 6.1 中更改花括号样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27181346/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com