【问题标题】:Convert all the existing code files in the project from 2 space indentation to 4 space indentation with a Shell Script in XCode使用 XCode 中的 Shell 脚本将项目中的所有现有代码文件从 2 个空格缩进转换为 4 个空格缩进
【发布时间】:2020-11-24 13:30:48
【问题描述】:
了不起的人!!
我有一个需要执行 TechDebt 的项目,所有现有代码文件都有 2 个空格缩进。现在我想将所有 2 个空格缩进转换为 4 个空格缩进,有什么方法可以使这个过程自动化,而不是使用手动方法。
可能在 XCode 编辑器配置设置中使用任何类型的 Shel 脚本,我可以在其中注入该脚本并完成工作。
我们将不胜感激。
非常感谢各位。
【问题讨论】:
标签:
ios
xcode
shell
xcode11
swiftlint
【解决方案1】:
我认为在 Xcode Find and Replace 中使用 Regex 后,您应该能够做您想做的事情。使用⌥⇧⌘F 调出Find Navigator,显示检查替换。从Text 切换到Regular Expression(如果尚未显示)并确保选择In Workspace(或更改为所需范围)
将^\s\s 用于Find,将^\s\s\s\s 用于Replace。这会将每行开头的所有 2 个空格缩进替换为 4 个空格缩进。
【解决方案2】:
Leon 的答案很接近......但这会将现有的 4-leading-spaces 更改为 6,将 3-leading-spaces 更改为 5,将 6-leading-spaces 更改为 8,等等...
尝试搜索模式:
^ [\S]
这里很难说,但那是 ^ 后跟 两个空格 后跟 [\S] (行首 + 两个空格后跟非空格),
替换模式:
$0
这里很难说,但那是 两个空格 + $0(匹配的字符串)
【解决方案3】:
大家好,@DonMag 和 @Leon Storey
我做了一些研究,发现了一个重要的解决方案,如下所示:
-
安装 SwiftLint brew install swiftlint
-
在终端中转到您的项目
-
执行下面的命令
swiftlint autocorrect --format
你来了!
这将自动编辑您的所有文件并将它们转换为 4 间距,并且它还将修复您项目中的其他格式错误(如果有)。对我来说,790 个文件在几秒钟内就被执行了。
谢谢大家的回答。