É possível desativar a detecção de código duplicado no Intellij?

144

É possível desativar a detecção de código duplicado no Intellij?

Não achei esse recurso útil e continua a me distrair.

zudduz
fonte

Respostas:

201

Disponível apenas no IntelliJ Ultimate:

Para desativar a detecção de código duplicado, vá para

Arquivo → Configurações → Editor → Inspeções → Geral → Fragmento de código duplicado

e desmarque a caixa "Duplicar código fragmento". duplicação de código intellij

Vojtech Ruzicka
fonte
4
Esta opção não está disponível na edição da comunidade IDEA.
Saikat
4
A detecção de código duplicado @takias não é um recurso da edição comunitária. Está presente apenas na edição Ultimate.
AER
2
Na verdade, ele funciona depois que você fecha o arquivo em que trabalha e o reabre ou reinicia o IDE após aplicar essas configurações
ACV
1
As ações sugeridas devem nos levar a essa tela para que possamos desativar essas verificações de código com mais facilidade.
Shadoninja 15/10/19
157

Adicione uma dica ao seu código para que outras pessoas saibam sua intenção:

@SuppressWarnings("Duplicates")
Max Barrass
fonte
3
Esta é a resposta técnica, Obrigado
Yougesh
14
A melhor solução permite a supressão de guerra onde a duplicação é intencional.
user2120275
2
^ faça isso, não o desative completamente. Código duplicado é cheiro de código, exceto em alguns lugares
Carson Graham
Você está brincando? Adicionar código para compensar a deficiência de IDE?
ACV
15

Sim, é possível , mas eu recomendaria fortemente contra isso!

Código duplicado é uma forma de dívida técnica. Qualquer código duplicado que contenha um bug significa que agora você tem um bug duplicado - você corre o risco de que, ao corrigi-lo, o conserte apenas em um local e a duplicata permanecerá ...

Se os avisos de código duplicado o distraírem, a melhor estratégia para se livrar deles é remover a duplicação de código ... Sua base de código e futuros mantenedores agradecerão por isso.

Kevin Wright
fonte
40
OK, mas às vezes tenho a versão antiga e a nova versão da mesma classe. A duplicação é normal, não preciso do aviso. É apenas muito invasivo e oculta muitos outros avisos úteis. A questão é legítima.
Florian F
3
Acho que é acionado erroneamente para testes de unidade com configurações semelhantes. Às vezes, não consigo fazer isso desaparecer, mesmo que eu mude os testes de maneira bastante significativa.
Julian Jocque
8
Nem sempre é tão simples quanto se livrar de todas as duplicatas! Por exemplo, nos controladores da web, há muita semelhança que sinaliza como duplicatas que não são duplicatas exatas. Os benefícios de manter seus controladores separados logicamente são úteis de várias maneiras e esse é apenas um exemplo. Pragmático, não purista, recebe projetos entregues em minha experiência.
Shawn Vader
5
Você afirma que é possível e ainda não descreve como. Existem muitas situações em que não faz sentido tentar abstrair. Por favor, diga pelo menos "Sim, aqui está como, MAS ...."
Dilapidus
3
esta resposta não está relacionada com a pergunta.
ACV
5

Essa resposta pode ser um pouco irrelevante, mas achei útil: desta resposta, se você deseja desativá-la para um bloco de código específico, não para todo o método, classe ou ide, basta adicionar a seguinte linha antes desse bloco de código

//noinspection Duplicates

Nota: Você não pode colocar nenhum outro comentário após esta linha.

Emdadul Sawon
fonte