2010-02-04 15 views
6

¿Hay algún complemento para Eclipse que le permita realizar búsquedas basadas en Java AST (Árbol de sintaxis abstracta) de sus archivos de proyecto? La función "Buscar Java" no parece cubrir casos como:Búsqueda basada en AST para Eclipse

"Sácame todos los campos declarados como de tipo 'X' en todas las clases"

puedo imaginar muchas más posibilidades que se abrirían con una búsqueda basada en AST, pero ni siquiera sé si un complemento así tendría un rendimiento práctico.

Actualización: Como señala Kevin a continuación, la función de búsqueda de Java cubre el caso de uso que mencioné. Todavía tengo curiosidad acerca de si alguien ha escrito o no un complemento que permita cualquier tipo arbitrario de búsqueda AST, ej. "Obtener todas las concatenaciones de cadenas" (InfixExpression con + operador y operando StringLiteral)

Respuesta

1

Tómame todos los campos declarados como tipo 'X' en todas las clases

no sé qué otra cosa tenía en mente, pero creo que puede lograr esta búsqueda específica de la siguiente manera:

  • la apertura de tipo X (Ctrl-Shift-T)
  • Resalte el nombre de la clase
  • Ctrl-H para buscar
  • Buscar Ubicaciones/Match -> Tipos de campos
+0

que parece simplemente devolver la declaración de la clase en sí. – dcstraw

+0

Lo siento. Edité la entrada para usar el filtro Match Locations en lugar de Declarations. – Kevin

+0

Ah, excelente, gracias. Nunca antes había probado la opción Match Locations. Eso al menos cubre el caso de uso que mencioné. – dcstraw

1

No es exactamente lo que está buscando, pero nWire para Java le puede dar una gran cantidad de información que es derivado del AST. También tiene una búsqueda de texto completo para buscar cualquier tipo, método, campo, etc. Una vez que encuentre lo que está buscando, un clic le mostrará todas las asociaciones de ese componente.

Mira la demostración here.

2

Hay varios plugins de Eclipse que proporcionan lenguajes de consulta orientados a objetos y tienen como objetivo responder a tales consultas. Algunos de ellos:

Fuera Eclipse no es JArchitect Código Query Language