2010-07-19 16 views
6

He estado usando Eclipse CDT desde hace un tiempo, y me encanta, pero hay algunas cosas tediosas que me gustaría solucionar al respecto.Eclipse CDT Plantilla "Nueva clase"

Cuando crea un archivo nuevo, una de las opciones es "Nuevo" -> "Clase". Me preguntaba si alguien sabe de una forma de editar la sección "$ {declaraciones}" de esta plantilla de "Clase".

Para ser más específicos, he revisado el menú "Ventana" -> "Preferencias" y no he podido encontrar nada. He cambiado tanto "C/C++" -> "Estilo de código" -> "Plantillas de código" y "C/C++" -> "Editor" -> "Plantillas". Solo el primero de los dos parece cambiar lo que aparece en la creación de clase, y no me permite cambiar lo que está en la sección "$ {declarations}". ¿Alguien sabe como cambiar esto?

Gracias, Chris

Respuesta

6

La preferencia C/C++ -> Editor -> Templates es utilizado por las plantillas que se insertan manualmente a través de Contexto Assist. Intente crear un nuevo archivo, escriba clas y presione ctrl+space para obtener ayuda con el contexto. Debería obtener dos propuestas de asistencia: una propuesta de palabra clave y una propuesta de plantilla (este último también se activará automáticamente como predeterminado si escribe class y presiona ctrl+space).

Al seleccionar la propuesta de la plantilla, se generará un cuerpo de clase de acuerdo con la plantilla que puede definir en esta preferencia.


cuanto a C/C++ -> Code Style -> Code Templates, este se utiliza en la generación automática. Cuando utiliza el asistente New Class, se usan Default C++ Source template y Default C++ Header template y la variable $(declarations) se reemplaza por el código que genere el asistente New Class.


Esto significaría que se puede utilizar una plantilla personalizada mediante la activación de una de las plantillas Editor manualmente, posiblemente a través de la creación de una clase llamada con Nueva Clase asistente y volviendo a poner el cuerpo de la clase por defecto en la cabecera por su aduana modelo.

¿O sugerir que el asistente New Class carece de campos importantes y debe ampliarse?

+0

Todas estas son buenas opciones. Sería genial si hubiera una manera fácil de cambiar literalmente a qué $ (declaraciones) se expandieron, pero esto funcionará muy bien. ¡Gracias! –

2

¿O sugiere que el asistente de Nueva clase carece de campos importantes y debe ampliarse?

Sí copia privada y asignar operador.

+0

* WORD * Estoy completamente de acuerdo. Me encantaría tener casillas de verificación para seleccionar qué métodos de clase de uso común deberían generarse automáticamente o no. – jvriesem

1

¡Oooh! Finalmente encontré una respuesta.

  1. En Eclipse CDT (Juno), vaya a File -> Preferences.
  2. Navegue hasta el siguiente panel en el panel izquierdo de la ventana de Preferencias: C/C++ -> Code Style -> Code Templates.
  3. En la ventana Code Templates, navegue hasta Files -> C++ Header File.
  4. Edite el archivo de encabezado:
  5. Elimine la línea ${declarations} e inserte sus propias cosas.

Esto tiene la desafortunada desventaja de perder todo lo que produciría el New Class Wizard. Esto podría invalidar cualquier clase heredada u otras cosas que pueda seleccionar del Asistente para Nueva Clase, pero no lo he marcado.

Aquí es mi plantillas C++ Header File:

${filecomment} 

#ifndef ${include_guard_symbol} 
#define ${include_guard_symbol} 

${includes} 

${namespace_begin} 

class ${type_name} 
{ 

public: 

    /* Default Constructor */ 
    ${type_name}(); 

    /* Deconstructor */ 
    virtual ~${type_name}(); 


private: 

    /* Disable the following by default */ 
    ${type_name}(const ${type_name}& other); 
    ${type_name}& operator=(const ${type_name}&); 

}; 

${namespace_end} 
#endif /* ifndef ${include_guard_symbol} */ 

Espero que esto ayude!