2012-03-12 10 views
5

Me gusta mucho la nueva función integrada de VS11 para encontrar 'Clones de código', pero parece que no hay forma de configurarlo.Configuración de clones de código en Visual Studio 11

Un ejemplo sería mostrarme clones exactos de 5 líneas o más.

Ahora ofrece coincidencias Exactas, Fuertes, Medianas y Débiles y parece que son para 10 líneas o más. Si pudiera configurar esto, me ayudaría a trabajar con los clones y me encontraría con esos pequeños métodos que estoy seguro se han cortado y pegado a lo largo de los años.

ACTUALIZACIÓN Aquí es las notas de la documentación de la versión Release Preview acerca de cómo configurar la capacidad de excluir archivos generados

Para excluir archivos generados por las plantillas T4 del análisis clon de código

  1. Coloque las plantillas en un subdirectorio del proyecto de Visual Studio. Nómbrelo, por ejemplo, GeneratedFiles.

  2. Añadir un nuevo archivo de texto para el proyecto, y cambiar su nombre y extensión a t4Exclusions.codeclonesettings

  3. cambiar el contenido del archivo de la siguiente manera:

<CodeCloneSettings><Exclusions><File> GeneratedFiles * .cs </File></Exclusions></CodeCloneSettings>

ACTUALIZACIÓN - 08/27/2012 Encontré esto en la documentación de Code Clone, no estaba allí en las versiones anteriores. Es una forma de encontrar clones de menos de 10 líneas de longitud.

Para encontrar clones de un fragmento de código en particular

1. Resalte un fragmento de código dentro de un método o una definición get/set.

Nota: Puede encontrar clones de declaraciones, pero no declaraciones como campo, método o firmas de propiedad.

2. En el menú de acceso directo para el fragmento, elija Buscar clones coincidentes en la solución.

Utilice este método cuando desee saber si existe un método o fragmento similar que ya existe en su solución.

Respuesta

5

Desde el documentation:

Clones that are less than 10 statements long are not discovered by this command. 
+1

Esto es una consecuencia del detector de clones MS que realiza la detección de clones "basada en token". Si el umbral establecido es demasiado bajo, el número de falsos positivos se dispara y la salida de la herramienta se vuelve poco interesante. 10 líneas es suficiente, por lo que la tasa de falsos positivos es aceptablemente pequeña. Existen otras tecnologías de detección de clones que dan buenos resultados con pocos falsos positivos en tamaños más pequeños, pero que no se escalan tan bien. –

+0

Gracias por la aclaración y la ubicación de la documentación de la función. Me alegro de que tengan una función para excluir tipos de archivos adicionales, con suerte habrá una IU (algo así como R # y cómo excluye los archivos de su análisis). Sin embargo, todavía me encantaría poder desactivar la precisión de la partida para poder ver exactamente las coincidencias. Supongo que es una beta. –

0

VS2015 maneja clones en exacta/fuerte/medio/débil para 2 o más líneas.

Cuestiones relacionadas