Refactorizaciones y generación de código

Crear a partir del uso

En CLion puede utilizar una función, una variable, un miembro de datos o incluso una clase antes de que sea declarada. El IDE lo resaltará en rojo y le sugerirá un arreglo rápido. Pulse Alt+Enter para añadir la declaración apropiada. Para las funciones, CLion también detecta el tipo de retorno y los tipos de sus parámetros.

Acciones de intención

Las intenciones le ayudan a aplicar cambios automáticos en el código que está correcto, para mejorarlo o para facilitar su rutina de codificación. Añada miembros de datos e inicializadores a un constructor, aplique las leyes de De Morgan a una expresión lógica, introduzca typedef, elimine una definición de una clase y mucho más. La bombilla en el medianil de la izquierda del editor indica que hay una o más acciones de intención disponibles; simplemente pulse Alt+Enter para aplicar una.

'Surround with' y plantillas personalizables

Utilice plantillas personalizables (elija Code | Insert Live Template o pulse Ctrl+J ) para producir construcciones de código completo. Todas las plantillas personalizables están enumeradas en las configuraciones (Editor | Live Templates). Puede ampliar y personalizar este conjunto de plantillas según sea necesario. Para aplicar una plantilla personalizable en el código, simplemente escriba su abreviatura y pulse Tab. Luego, utilice Intro o Tab para navegar a través de las variables de la plantilla.

Considere también utilizar 'Surround with' en las plantillas, para rodear rápidamente su código con construcciones completas. Elija Code | Surround With o pulse Ctrl+Alt+T para generar fácilmente if, while, for, #ifdef, u otros wrappers, dependiendo del contexto.

Generar menú

Ahorrar tiempo al escribir es muy fácil con el generador de menú de CLion Alt+Insert.

Obtenga operadores setters / getters, constructores / destructores, igualdades, relacionales y secuencias de salida en un solo clic. Seleccione campos a utilizar durante la generación, así como varias opciones, como generar como miembros de clase, generar in situ, utilizar std::tie para la implementación de los operadores y otras opciones según sea necesario.

En caso de que algunos de los operadores ya estén allí, CLion le sugiere añadir los que faltan o reemplazarlos en su totalidad.

Implementar, anular o generar definiciones

Sienta el poder de la generación de código con las funciones Implementar (Ctrl+I), Anular (Ctrl+O) y Generar Definiciones (Shift+Ctrl+D).

La configuración del valor predeterminado de Generate in-place depende de su código, ya que CLion se adapta a los patrones que usted está utilizando en su proyecto, las heurísticas se implementan para admitir los casos más comunes (como las clases header-only o cpp-only y otras).

Refactorización

CLion le ayuda a mantener una alta calidad de código al proporcionar un conjunto de refactorizaciones fiables. Cuando usted refactoriza, Clion aplica los cambios de su código en todo el ámbito de forma segura.

Para ver todas las refactorizaciones disponibles en la ubicación actual, use el menú Refactor This... (pulse Ctrl+Alt+Mayús+T ).

La lista de refactorizaciones incluye:

Rename (Cambiar nombre) Mayús+F6, cambia el nombre a los símbolos, corrigiendo automáticamente todas las referencias en el código.

Change Signature (Cambiar firma) Ctrl+F6 le ayuda a añadir / eliminar / reordenar los parámetros de la función, cambiar el tipo de resultado o actualizar la nomenclatura de la función, todos los usos también serán solucionados.

Inline Ctrl+Alt+N reemplaza el uso redundante de variables y llamados a funciones con su inicializador / declaración.

Extract (Extraer) (Función Ctrl+Alt+M, Typedef Ctrl+Alt+K, Variable Ctrl+Alt+V, Parameter Ctrl+Alt+P, Define Ctrl+Alt+D, Constant Ctrl+Alt+C, Lambda Paramet) — Aquí, CLion analiza el bloque de código donde invoca la refactorización, detecta las variables de entrada y salida y los usos de la expresión seleccionada, para reemplazarlos con una entidad recién creada de su elección.

Pull Members Up/Down (Desplazar Miembros hacia arriba/abajo) Mueve con seguridad los miembros de una clase a una clase base / subclase.

Y más.