Xcode中有没有办法按字母顺序对Classes文件夹下的文件列表进行排序?
我知道我可以把它们拖来拖去,但是有大量文件很痛苦。
我很惊讶我不能右键单击文件夹并说要排序。
单击文件夹,然后单击编辑 > 排序 > 按名称
这是一个 Ruby 脚本,它将在 Xcode 4 项目文件中对各自组中的所有文件进行排序(可能也是 Xcode 3,但我还没有尝试过)。
用法:
ruby sort.rb <infile> <outfile>
其中 <infile> 是未排序的 .pbxproj 文件,而 <output> 将是排序后的版本。不要让它们成为同一个文件。
#!/usr/bin/env ruby
state = :primary
group = []
file_count = group_count = 0
File.open ARGV[0] do |infile|
File.open ARGV[1], 'w' do |outfile|
infile.each_line do |line|
case state
when :primary
# copy lines until and including "children = ("
outfile.write line
state = :group if line =~ /^\s*children\s*=\s*\x28\s*$/
when :group
if line =~ /^\s*[0-9A-F]+\s*\/\* (.*) \*\/,\s*$/
# add file to current group if "<guid> /* <filename> */,"
group << [$1,line]
file_count += 1
else
# otherwise, output sorted files,
# empty the group, and go back to primary state
group.sort.each do |fn,ln|
outfile.write ln
end
state = :primary
group = []
outfile.write line
group_count += 1
end
end
end
end
end
puts "Sorted #{file_count} files in #{group_count} groups"
jedediah 的 ruby 脚本效果很好。要对正在复制的资源进行排序,您可以添加:
state = :group if line =~ /^\s*files\s*=\s*\x28\s*$/
请注意,排序区分大小写(大写字母在前)。要使其不敏感,请使用:
group << [$1.downcase,line]
XCode5 中确实没有一个简单的解决方案。
这应该对项目的“复制捆绑资源”部分进行排序。
这样做我觉得很脏,但是嘿 - 它有效
Czar 以您想要的方式拥有它有很多好处,而不是始终自动对其进行排序。
有些类可能以某种方式相关,但名称并不相邻,我肯定会使用它。:)