Geração e refatoração de código

Criar a partir do uso

No CLion, você pode usar uma função, uma variável, um membro de dados ou até mesmo uma classe antes de ela ser declarada. O IDE realçará sua opção em vermelho e sugerirá uma correção rápida. Pressione Alt+Enter para adicionar a declaração apropriada. Para funções, o CLion também detecta o tipo de retorno e os tipos dos seus parâmetros.

Ações de intenção

Intenções ajudam a aplicar alterações automatizadas ao código que está correto, para melhorá-lo ou para facilitar a sua própria rotina de codificação. Adicione membros de dados e inicializadores a um construtor, aplique as leis de De Morgan a uma expressão lógica, introduza typedef, mova uma definição para fora de uma classe e muito mais. A lâmpada na medianiz esquerda do editor indica que uma ou mais ações de intenção estão disponíveis. Basta pressionar Alt+Enter para aplicar uma.

Modelos "Surround with" e dinâmicos

Use modelos dinâmicos (escolha Code | Insert Live Template ou pressione Ctrl+J ) para produzir construções de código inteiras. Todos os modelos dinâmicos prontos para uso estão listados nas configurações (Editor | Live Templates). Você pode estender e personalizar esse conjunto de modelos conforme necessário. Para aplicar um modelo dinâmico ao código, basta digitar sua abreviação e pressionar Tab. Em seguida, use Enter ou Tab para navegar pelas variáveis do modelo.

Considere também os modelos "Surround with", para envolver rapidamente seu código com construções completas. Escolha Code | Surround With ou pressione Ctrl+Alt+T para gerar facilmente if, while, for, #ifdef, ou outros wrappers, dependendo do contexto.

Menu Generate

É muito fácil poupar tempo com o menu Generate do CLion Alt+Insert.

Obtenha setters/getters, construtores/destruidores e operadores de igualdade, relacionais e de saída de fluxo com um clique. Selecione campos a serem usados durante a geração, além de várias outras opções, como gerar como membros de classe, gerar no local, usar std::tie para a implementação de operadores e outras opções conforme necessário.

Caso alguns dos operadores já estejam lá, o CLion sugere que você adicione os ausentes ou substitua completamente todos os existentes.

Implementar, substituir ou gerar definições

Sinta o poder da geração de código com funções de implementação (Ctrl+I), funções de substituição (Ctrl+O) e geração de definições (Shift+Ctrl+D).

O valor padrão da configuração Generate in-place depende do seu código, à medida que o CLion se adapta aos padrões que você está usando no seu projeto, procedimentos de heurística são implementados para oferecer suporte aos casos mais comuns (como classes somente de cabeçalho ou somente cpp, entre outras).

Refatorações

O CLion ajuda a manter um código de alta qualidade, fornecendo um conjunto de refatorações confiáveis. Quando você executa refatorações, ele aplica suas alterações de código por todo o escopo, com segurança.

Para ver todas as refatorações disponíveis no local atual, use o menu Refactor This... (pressione Ctrl+Alt+Shift+T).

A lista de refatorações inclui:

Rename Shift+F6, que renomeia símbolos, corrigindo automaticamente todas as referências no código para você.

Change Signature Ctrl+F6 ajuda você a adicionar/remover/reordenar parâmetros de função, alterar o tipo de resultado ou atualizar o nome da função. Todos os usos serão corrigidos também.

Inline Ctrl+Alt+N substitui chamadas de uso/função de variáveis redundantes com seu inicializador ou sua declaração.

Extract (Function Ctrl+Alt+M, Typedef Ctrl+Alt+K, Variable Ctrl+Alt+V, Parameter Ctrl+Alt+P, Define Ctrl+Alt+D, Constant Ctrl+Alt+C, Lambda Parameter) — aqui, o CLion analisa o bloco de código no qual você invoca a refatoração, detecta as variáveis de entrada e saída e os usos da expressão selecionada, para substituí-los por uma entidade recém-criada de sua escolha.

Pull Members Up/Down move com segurança os membros da classe para uma classe base/subclasse.

E mais.