2010-11-10 10 views
8

¿Existe alguna manera rápida de encontrar todo el código comentado en los archivos Java en Eclipse? Cualquier opción en la Búsqueda, tal vez, o cualquier complemento que pueda hacer esto?Buscar código descompuesto en archivos en Eclipse

Debería poder encontrar solo el código que está comentado, pero no los comentarios normales.

+0

Dudo que encuentres algo así. Como se dijo, puede haber un complemento que lo haga, pero ninguno que haya encontrado. –

+2

Su pregunta no está clara. Encontrar comentarios es fácil: busque "/ *" o "//". Y dado que los comentarios no tienen una relación formal con el código, ¿cuándo hay un comentario "sobre" el código cerca, y cuándo es solo un comentario ("un soneto para ...")? ¿Qué es lo que realmente quieres hacer? –

+1

Creo que quiere encontrar el código que está comentado, no el código que tiene un comentario. – Jorn

Respuesta

-1

Puede hacer una búsqueda en Eclipse.

Todo lo que debe buscar es /* y //

Sin embargo, sólo se encuentran los archivos que contienen esa expresión, y no el contenido real que creo que está después.

Sin embargo, si usa Linux puede obtener fácilmente todos los comentarios con un solo liner.

+0

¿Desea compartir el trazador de líneas único? –

0

@Jorn dijo:

creo [el OP] quiere encontrar el código que se comenta a cabo, no código que tiene un comentario.

Si la intención es encontrar comentada código, entonces no creo que es posible en general. El problema es que es imposible distinguir entre los comentarios que se escribieron como código o pseudocódigo, y el código que está comentado. Hacer esa distinción requiere inteligencia humana.

Ahora los IDE generalmente tienen una función de "alternar comentarios" que comenta el código de una manera particular. Sería factible escribir una herramienta/complemento que coincida con el estilo producido por un IDE particular . Pero eso probablemente no sea lo suficientemente bueno, especialmente porque reformatear el código generalmente elimina las características que hacen que el código comentado sea reconocible.

+0

¿Por qué votar abajo? –

1

Puede marcar su propio código comentado con una etiqueta de tarea. Puede crear sus propias etiquetas de tareas en Eclipse.

En el menú, vaya a Ventana -> Preferencias. En el cuadro de diálogo Preferencias, vaya a General -> Editores -> Editores de texto estructurado -> Etiquetas de tareas.

Agregue una etiqueta de tarea adecuada, como COMENTAR. Establezca la prioridad en Bajo.

Luego, cualquier código que comente, puede marcar con la etiqueta COMMENTED task. Una lista de estas etiquetas de tareas, junto con sus ubicaciones, aparece en la vista Tareas.

0

Si el problema es encontrar un código comentado, lo que se necesita es una forma de encontrar comentarios y una forma de decidir si un comentario puede contener código.

Una manera simple de hacer esto es buscar comentarios que contengan cosas parecidas a códigos. Estaría tentado de buscar comentarios que contengan un ";" carácter (o algún otro indicador raro como "="); será bastante difícil tener un código interesante que no contenga esto y, en mi experiencia con los comentarios, no veo muchas personas que escriban que contengan esto. Una búsqueda regexp para esto debería ser bastante sencilla, incluso si recogió algunos falsos positivos adicionales (por ejemplo, // en un literal de cadena).

Una forma más sofisticada de lograr esto es usar un analizador o analizador de Java.Si tiene un lexer que devuelve comentarios en tokens (no todos lo hacen, los compiladores de Java no están interesados ​​en los comentarios), entonces simplemente puede escanear los lexemas para un comentario y hacer la comprobación de punto y coma que describí anteriormente. No obtendrá hits positivos falsos para comentarios como cosas en literales de cadenas con este enfoque.

Si usted tiene un programa de análisis reingeniería que captura los comentarios como parte de la AST (como nuestro SD Java Front End), puede escanear mecánicamente el árbol de análisis sintáctico para comentarios, alimentar el contexto comentario vuelta al analizador a ver si el contenido es de código, e informar a cualquiera que pase ese módulo de prueba alguna tasa de error de depensión del tamaño (10 errores en 15 caracteres implican "realmente es un comentario"). Ahora la prueba "tipo código" requiere el analizador de reingeniería estar dispuesto a reconocer cualquier subcadena del lenguaje (Java). Nuestro DMS Software Reengineering Toolkit subyacente al Front End de Java puede hacer eso, usando acceso a la gramática enterrada en el front end, ya que está dispuesto a comenzar un análisis sintáctico para cualquier terminal (no) de idioma, y esta pregunta es "¿puedes encontrar un ¿Sequuencia de (no) terminales que consumen la cadena? ".

Los enfoques lexer y analizador son mazos pequeños y grandes, respectivamente. Si OP va a hacer esto solo una vez, puede atenerse a la búsqueda manual de expresiones regulares. Si el problema es vetar la base del código repetidamente (es necesario en las grandes organizaciones), querría una herramienta que se pueda ejecutar de forma regular.

16

En Eclipse, acabo de hacer una búsqueda de archivos con la casilla de verificación expresión regular encendido:

(/\*.*;.*\*/)|(//.*;) 

Se encontrará un punto y coma en

// Estos ;

y/* éstos; */

Funciona para mí.

+1

. Es un buen comienzo, incluso si tt pudiera dar algunos resultados falsos positivos como String s = "http : // some.site "; –

+1

Para ayudar a evitar los falsos positivos de las URL, utilizo '/\*.*;.*\*/ | [^:] //.*; |^//. *;', Que requiere // no venir después de a: – KevinL

+2

@KevinL, no creo que funcione con las URL de la forma 'file: /// somefile' –