Xcodeで、Classesフォルダーの下にあるファイルのリストをアルファベット順に並べ替える方法はありますか?
ドラッグできることはわかっていますが、ファイルが大量にあると面倒です。
フォルダを右クリックして並べ替えることができないことに驚いています。
Xcodeで、Classesフォルダーの下にあるファイルのリストをアルファベット順に並べ替える方法はありますか?
ドラッグできることはわかっていますが、ファイルが大量にあると面倒です。
フォルダを右クリックして並べ替えることができないことに驚いています。
フォルダーをクリックし、[編集] > [並べ替え] > [名前順] をクリックします。
Xcode 4プロジェクトファイルのそれぞれのグループ内のすべてのファイルをソートするRubyスクリプトを次に示します(おそらく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 には、常に自動的に並べ替えを行うのではなく、希望どおりに並べ替えるという利点があります。
一部のクラスは何らかの形で関連している可能性がありますが、名前が隣り合っていないため、私はそれを確実に使用しました。:)