2008-10-27 3 views
35

Есть ли способ в Xcode для сортировки списка моих файлов под словом «Классы» по алфавиту?Сортировка списка файлов в Xcode?

Я знаю, что могу перетащить их, но с тоннами файлов, которые являются болью.

Я удивлен, что не могу щелкнуть правой кнопкой мыши по папке и сказать сортировать.

ответ

39

Нажмите на папку, а затем нажмите кнопку Изменить> Сортировка> По имени

+4

Кажется, что опция ушла в XCode 4. Любая идея, как это сделать в новой версии? – curthipster 2011-03-23 22:08:15

+1

Я добавил следующий вопрос для XCode4, поскольку этого не получил. http://stackoverflow.com/questions/6024179/sort-file-list-in-xcode4 – 2011-05-16 22:33:09

0

Царю есть преимущества, имеющие это так, как вы хотите, вместо того, чтобы автоматически иметь его рода во все времена.

Некоторые классы могут быть связаны каким-то образом, но имена не находятся рядом друг с другом, я использовал это для определенных целей. :)

3

Вот скрипт Ruby, который будет сортировать все файлы в своих группах в файле проекта Xcode 4 (возможно, Xcode 3, но я этого не пробовал).

Использование:

ruby sort.rb <infile> <outfile> 

< где входной_файл > является несортированный файл .pbxproj и < выход > будет отсортированная версия. Не делайте их одним и тем же файлом.

#!/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" 
0

Рубиновый скрипт от jedediah отлично работает. Чтобы отсортировать ресурсы, которые можно скопировать, вы можете добавить:

state = :group if line =~ /^\s*files\s*=\s*\x28\s*$/ 

Обратите внимание, что сортировка чувствительна к регистру (заглавные буквы сначала). Чтобы сделать его нечувствительным, используйте:

group << [$1.downcase,line] 
0

В XCode5 на самом деле нет простого решения.

  • Я открыл файл pbxproj в текстовом редакторе.
  • Перейдите к/* Начало раздела PBXResourcesBuildPhase */
  • выберите все в файлах.
  • копию нового текстового документа.
  • Заменить/* с помощью \ t (символ табуляции)
  • выбрать все, скопировать и вставить в чистый документ Excel. Вы должны иметь 2 колонки данных
  • вставить столбец в poisition 2
  • сделайте все строки для этого столбца/*
  • вида листа на колонке 3
  • скопировать все данные и вставить назад через раздел в pbxproj файл
  • сохранить файл

Это должно сортировать раздел «Копировать Bundle ресурсы» вашего проекта.

Я чувствую себя грязным просто делать это, но эй - это работает

Смежные вопросы