2008-10-27 13 views
35

¿Hay alguna forma en Xcode para ordenar mi lista de archivos en la carpeta Clases por orden alfabético?¿Ordenar lista de archivos en Xcode?

Sé que puedo arrastrarlos, pero con toneladas de archivos eso es un problema.

Me sorprende que no puedo hacer clic derecho en la carpeta y decir para ordenar.

Respuesta

39

Haga clic en la carpeta y, a continuación, haga clic en Editar> Ordenar> Por Nombre

+4

Parece que la opción se ha ido en Xcode 4. ¿Alguna idea de cómo hacerlo en la nueva versión? – curthipster

+1

He agregado una pregunta de seguimiento para XCode4 ya que esto no ha sido recibido. http://stackoverflow.com/questions/6024179/sort-file-list-in-xcode4 –

+1

No estoy seguro acerca de las versiones anteriores de Xcode, pero en 4.5 está en Editar> Ordenar> Por nombre. O bien, haga clic en Control y luego seleccione "Ordenar por nombre" – Snowcrash

0

Zar hay ventajas en tener la forma que desea, en lugar de tener que tipo de forma automática en todo momento.

Algunas clases pueden estar relacionadas de alguna manera, pero los nombres no están uno al lado del otro, lo he usado con certeza. :)

+1

-1 porque "No siempre tienes que ordenar tus archivos" no es una respuesta a "¿Cómo puedo ordenar mis archivos?" –

+0

No pude comentar porque no tenía ningún representante. Entonces vino como una respuesta. – Nicki

+4

Personalmente, no creo que las personas deban modificarse si intentan ayudar. –

3

Aquí hay una secuencia de comandos de Ruby que ordenará todos los archivos dentro de sus respectivos grupos en un archivo de proyecto de Xcode 4 (probablemente Xcode 3 también pero no lo he intentado).

Uso:

ruby sort.rb <infile> <outfile> 

donde <archivoentrada> es un archivo .pbxproj sin clasificar y <salida> será la versión ordenada. No los conviertas en el mismo archivo.

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

El guión ruby ​​de jedediah funciona muy bien. Para ordenar los recursos también se copian, puede agregar:

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

Tenga en cuenta que una especie es sensible a mayúsculas (mayúsculas primero). Para hacerlo insensible, use:

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

No existe una solución fácil en XCode5.

  • Abrí el archivo pbxproj en un editor de texto.
  • Navegue hacia abajo hasta/* Comience la sección PBXResourcesBuildPhase */
  • seleccione todo en los archivos.
  • copiar a un nuevo documento de texto.
  • Reemplazar/* con \ t (carácter de tabulación)
  • seleccionar todo, copiar y pegar en el documento de Excel en blanco. usted debe tener 2 columnas de datos
  • insertar una columna en poisition 2
  • hacer todas las filas de esa columna/*
  • tipo de la hoja en la columna 3
  • copia todos los datos y pegar hacia atrás sobre su sección en pbxproj el archivo
  • guardar el archivo

Eso debería ordenar la sección "copia de Recursos Bundle" de su proyecto.

me siento sucia haciendo esto, pero bueno - que funciona