2010-03-22 12 views
11

Tenemos varios proyectos Flex, uno de los cuales acaba de ser refactorizado. Me pregunto si hay una manera fácil de decir qué clases y funciones (si las hay) ya no se usan.¿Hay alguna forma de encontrar código sin referencia en Flex Builder?

Descubrí que definitivamente tenemos algún código no utilizado, porque al ejecutar ASDoc en todo el proyecto, se informan algunos errores de compilación que Flex Builder no informa (lo que implica que esas clases ya no se usan) Espero encontrar un método más robusto y completo, y preferiblemente uno que también funcione a nivel de función.

Respuesta

12

Mi fea Hack:

Con la herramienta swfdump de SWFtools, volcar el desmontaje de (todos) su swf (s):

swfdump -a my.swf > dump 

obtener una lista de todas las clases:

find . -name "*.as" -exec basename {} .as \; > classes 
find . -name "*.mxml" -exec basename {} .mxml \; >> classes 

Aplicar una lista a la otra:

for class in $(<classes) ; do grep -q \\\<$class\\\> dump || echo $class ; done 

Estoy haciendo esto en Windows, usando Cygwin.

+0

Nunca antes había visto SWFTools. Ojalá tuviera ... +1 –

+0

¿hay alguna manera de escribir en el archivo en lugar de echo? –

+0

@MauritsdeBoer: redirige la salida a un archivo, como lo haría con cualquier comando. –

0

Esto realmente no responde su pregunta pero puede encontrar las referencias a una sola clase, variable o función seleccionándola (en el editor de código) y presionando: Ctrl + Shift + G. Creo que eso es lo que puedes obtener de Flex/Flash Builder en este momento.

+0

Sé de eso. No ayuda que algunos de los archivos no utilizados se refieran entre sí, simplemente no se mencionan desde la aplicación en sí. –

3

Mira la herramienta Flex PMD. Recientemente se lanzó en versión beta, pero lo hemos estado utilizando durante algunas semanas, y parece funcionar muy bien.

+0

Se ve bien, gracias por el enlace :). –

+0

@rhtx: Desafortunadamente, Flex PMD no parece encontrar código sin referencia, solo parece tener reglas para encontrar funciones privadas no utilizadas. A menos que me esté perdiendo algo? –

1

Nota, la herramienta swfdump incluida con el SDK de Flex funcionará en lugar de la versión de SWFTools en el script bash enumerado anteriormente.

Cuestiones relacionadas