2010-02-23 9 views
13

Esto puede ser un duplicado, pero no he encontrado nada que lo resuelva hasta el momento. Mi empresa aprobó una resolución en la que todos los archivos deben tener un encabezado de comentario repetitivo, con nombre de archivo y fecha de copyright entre otras cosas. Esperaba que hubiera una manera fácil de crear una plantilla de encabezado que se agrega a la parte superior de cada nueva clase (archivos .cpp y .h) añadidos al proyecto con un par de variables que se reemplazan en función de la fecha, nombre de archivo, etc.¿Cómo se crea una plantilla de encabezado de comentario simple para todas las clases nuevas en Visual C++ 2010?

Desafortunadamente, parece que esta es una tarea mucho más grande que parece que debería ser. He investigado Manipulating Code using the Visual C++ Code Model y Manually Creating an Item Template y parece que ninguno de ellos puede hacer lo que quiero.

Disculpa si esto suena como una publicación de "hazme el trabajo por mí", pero a mí no me parece que valga la pena pasar tanto tiempo. Si va a tomar un día descubrir las sutilezas de la extensión de Visual Studio, puedo agregar y editar manualmente el encabezado para cada archivo nuevo, ya que no se realiza con tanta frecuencia. ¿Existe un método más fácil que aquellos a los que estaba mirando, o un simple ejemplo sobre cómo utilizar esos métodos para mi propósito?

+1

Simplemente hágalo manualmente. O, preferiblemente con una macro en un editor de texto. O usando un shell de comandos Unix. O un lenguaje de scripting. Pero no se preocupe por la automatización en VS. – jmucchiello

+0

@jmucchiello, p. Xcode lo hace de manera automática y es bastante conveniente si ya no tienes que pensar demasiado en eso. –

+0

Vengo desde el punto de vista de que todo lo que no tiene que pensar mucho es probablemente algo que no necesita en primer lugar. Los comentarios del código repetitivo son así. – jmucchiello

Respuesta

0

Actualización: Desafortunadamente, las plantillas C++ no funcionan de la misma manera.

He dejado el texto a continuación como referencia para cualquier persona que lo encuentre, pero solo funciona para C#/VB.


Definitivamente, usted puede editar la plantilla de clase para C# (lo hemos hecho por exactamente la misma razón que usted - para incluir una cabecera estándar), que supongo que se puede hacer para C++ también.

Salida estos dos directorios:

"C: \ Archivos de programa (x86) \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \"
"C: \ Archivos de programa (x86) \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplatesCache \ "

En algún lugar de cada uno de esos directorios habrá una carpeta de plantilla de clase. Para C# que está en un archivo zip aquí:

... \ ItemTemplates \ CSharp \ Código \ 1033 \ Class.zip

Extraer el zip, editar la plantilla de incluir su cabecera y volver ciérralo. También deberá colocar una copia descomprimida debajo de la carpeta ItemTemplatesCache, (siguiendo la misma ruta - ... \ ItemTemplatesCache \ CSharp \ Code \ 1033 \ Class)

Hay más detalles here.

(Lo siento, ahora estoy en mi PC con Linux, así que no puedo verificar si estas rutas existen para C++. Si logras que funcione, publica las rutas C++ correctas aquí, y actualizaré esta respuesta para hacer referencia a ellos)

+0

Desafortunadamente, las plantillas de C++ no parecen estar organizadas de la misma manera. Solo las plantillas de prueba unitarias aparecen en cualquiera de esos directorios. – bsruth

+0

@bsruth. Extraño eso. Me he revisado ahora, de hecho tienes razón, las rutas no existen para C++. Lo siento, no sé cómo hacerlo en ese caso. –

0

lo que usted está buscando se llama: fragmentos de código

I personnaly utiliza los fragmentos previstos en VAssistX pero es una version de prueba por lo que es podría no ser una buena solución para su empresa. Por cierto, si está desarrollando una aplicación en Visual C++ sin VAssistX, está perdiendo mucho tiempo;)

También hay un administrador de fragmentos de código en Visual Studio, nunca lo usé pero encontré documentación en google:

http://msdn.microsoft.com/en-us/library/d60kx75h(VS.80).aspx

y

http://blogs.microsoft.co.il/blogs/gilf/archive/2009/01/17/how-to-write-your-own-code-snippets.aspx

espero que sea será servicial.

+0

Los fragmentos de código no son compatibles en C++ (http://msdn.microsoft.com/en-us/library/ms171421%28VS.100%29.aspx) – bsruth

4

Esto puede no obtener más de lo que ya tiene, pero Simon está cerca de que puede crear plantillas de archivos C++ de la manera que sugiere, pero la ruta a las plantillas C++ es C: \ Archivos de programa (x86) \ Microsoft Visual Studio 9.0 \ VC \ vcprojectitems (tenga en cuenta que en la máquina de 32 bits solo serán Archivos de programa).

Si edita el archivo NewC++ File.cpp, la próxima vez que agregue un nuevo archivo C++ a un proyecto, se usará su plantilla. Alternativamente, puede crear sus propios archivos en esta carpeta y aparecerán en el cuadro de diálogo Agregar elemento nuevo.

Esto no resolverá su problema al insertar la fecha actual en el encabezado (suponiendo que desea que esto se determine automáticamente), pero podría actualizar la plantilla que está utilizando una vez al año, y eso sería un poco menos de una tarea.

HTH

Cuestiones relacionadas