Génération de code et refactorisations

Créer à partir d'une utilisation

Dans CLion, vous pouvez utiliser une fonction, une variable, une donnée membre ou même une classe avant qu'elle ne soit déclarée. L'IDE le surligne en rouge et propose un correctif rapide. Appuyez sur Alt+Entrée pour ajouter la déclaration appropriée. Pour les fonctions, CLion détecte également le type de retour et les types de ses paramètres.

Actions d'intention

Les intentions vous aident à appliquer les modifications automatisées pour coder ce qui est correct, l'améliorer ou faciliter votre routine de programmation. Ajoutez des membres et initialiseurs de données à un constructeur, appliquez les lois de De Morgan à une expression logique, introduisez typedef, sortez une définition d'une classe, et bien plus. L'ampoule dans la gouttière gauche de l'éditeur indique si une ou plusieurs actions d'intention sont disponibles. Appuyez simplement sur Alt+Entrée pour en appliquer une.

"Surround with" et les modèles dynamiques

Utilisez les modèles dynamiques (sélectionnez Code | Insert Live Template ou appuyez sur Ctrl+J) pour produire l'ensemble des constructions de code. Tous les modèles dynamiques prêts à l'emploi sont listés dans les paramètres (Editor | Live Templates). Vous pouvez étendre et personnaliser cet ensemble de modèles selon vos besoins. Pour appliquer un modèle dynamique à votre code, saisissez simplement son abréviation et appuyez sur Tab. Utilisez ensuite Entrée ou Tab pour parcourir les variables du modèle.

Pensez également à utiliser les modèles "Surround with", pour entourer rapidement votre code de constructions complètes. Sélectionnez Code | Surround With ou appuyez sur Ctrl+Alt+T pour générer facilement if, while, for, #ifdef, ou autre wrappers, selon le contexte.

Menu Generate

Gagner du temps lors de la saisie est très facile grâce au menu Generate Alt+Insérer de CLion.

Obtenez en un seul clic setters/getters, constructeurs/destructeurs, opérateurs d'égalité, de relation et de sortie de flux. Sélectionnez les champs à utiliser pendant la génération, ainsi que diverses options comme générer en tant que membre de classe, générer sur place, utiliser std::tie pour l'implémentation des opérateurs et autres si nécessaire.

Dans le cas où certains opérateurs sont déjà présents, CLion vous propose d'ajouter les opérateurs manquants ou de remplacer complètement tous les opérateurs existants.

Implémentez, remplacez ou générez des définitions

Testez la puissance de la génération de code avec les fonctions Implement (Ctrl+I), les fonctions Override (Ctrl+O) et Generate Definitions (Maj+Ctrl+D).

La valeur par défaut du paramètre Generate in-place dépend de votre code car pendant que CLion s'adapte aux schémas que vous utilisez dans votre projet, les heuristiques sont implémentées pour prendre en charge les cas les plus courants (comme les classes header-only ou cpp-only et autres).

Refactorisations

CLion vous aide à maintenir la qualité de votre code en vous fournissant un ensemble de refactorisations fiables. Lorsque vous refactorisez, il applique vos modifications de code à l'ensemble du champ d'application, en toute sécurité.

Pour voir toutes les refactorisations disponibles à l'emplacement actuel, utilisez le menu Refactor This... (appuyez sur Ctrl+Alt+Shift+T ).

La liste des refactorisation comprend :

Rename Maj+F6, qui renomme les symboles en corrigeant automatiquement toutes les références du code pour vous.

Change Signature Ctrl+F6 vous aide à ajouter/supprimer/réorganiser les paramètres d'une fonction, à modifier son type de résultat ou à mettre à jour son nom. Toutes les utilisations seront également corrigées.

Inline Ctrl+Alt+N remplace les utilisations de variables/appels de fonctions redondants par son initialiseur ou sa déclaration.

Extract (Fonction Ctrl+Alt+M, Typedef Ctrl+Alt+K, Variable Ctrl+Alt+V, Paramètre Ctrl+Alt+P, Define Ctrl+Alt+D, Constante Ctrl+Alt+C, paramètre Lambda) — ici, CLion analyse le bloc de code dans lequel vous appelez la refactorisation et détecte les variables en entrée et sortie ainsi que les usages des expressions sélectionnées pour les remplacer avec une entité nouvellement créée de votre choix.

Pull Members Up/Down déplace en toute sécurité les membres d'une classe vers une classe ou sous-classe de base.

Et plus encore.