Чи можна відключити виявлення дублікатів коду в Intellij?


144

Чи можна відключити виявлення дублікатів коду в Intellij?

Я не вважаю цю функцію корисною, і вона продовжує мене відволікати.

Відповіді:


201

Доступно лише в IntelliJ Ultimate:

Щоб вимкнути виявлення повторюваного коду, перейдіть на сторінку

Файл → Налаштування → Редактор → Інспекції → Загальне → Фрагмент дублювання коду

і зніміть прапорець "Копіювати фрагмент коду". дублювання коду intellij


4
Цей варіант недоступний у виданні спільноти IDEA.
Сайкат

4
Виявлення дублікату коду @takias взагалі не є особливістю у виданні спільноти. Він присутній лише у виданні Ultimate.
AER

2
Насправді він працює після закриття файлу, над яким ви працюєте, та його відкриття або перезавантаження IDE після застосування цих параметрів
ACV

1
Запропоновані дії повинні запропонувати перевести нас на цей екран, щоб ми могли простіше відключити ці перевірки коду.
Шадонінья

157

Додайте підказку до свого коду, щоб інші дізналися про ваш намір:

@SuppressWarnings("Duplicates")

3
Це технічна відповідь, спасибі
Югеш

14
Найкраще рішення, оскільки дозволяє придушити ворогуючі дії, коли дублювання є навмисним.
користувач2120275

2
^ зробіть це, не відключайте його повністю. Дублікат коду - запах коду, за винятком місцях
Карсон Грем

Ти жартуєш? Додати код, щоб компенсувати недолік IDE?
ACV

15

Так, це можливо , але я б настійно радив це!

Дублікат коду - форма технічної заборгованості. Будь-який дубльований код, що містить помилку, означає, що тепер у вас є дубльована помилка - ви ризикуєте, що коли ви виправите її, ви виправите її лише в одному місці, а дублікат залишиться ...

Якщо попередження про дублювання коду вас відволікає, то найкраща стратегія для їх позбавлення - це видалення дублювання коду ... Ваша база коду та майбутні технічні працівники дякуватимуть вам за це


40
Гаразд, але іноді у мене є стара версія та нова версія того ж класу. Там дублювання нормально, я не потребую попередження. Це просто дуже нав'язливо і приховує багато інших корисних попереджень. Питання є законним.
Флоріан Ф

3
Я вважаю це помилковим для блокових тестів із подібними налаштуваннями. Іноді я не можу змусити його піти, навіть якщо я досить поміняю тести.
Julian Jocque

8
Це не завжди так просто, як позбутися всіх дублікатів! Наприклад, у веб-контролерах існує багато подібності, яка позначає як копії, вони не є точними дублікатами. Переваги збереження логічно розділених контролерів корисні багатьма способами, і це лише один приклад. Прагматичний, а не пурист, отримує реалізовані моїми проектами проекти.
Шон Вейдер

5
Ви стверджуєте, що це можливо, але ви не описуєте, як. Існує безліч ситуацій, коли не має сенсу намагатися і абстрагуватися. Принаймні скажіть "Так, ось як, АЛЕ ...."
Ділапід,

3
ця відповідь взагалі не пов'язана з питанням.
ACV

5

Ця відповідь може бути незначною, але я вважаю це корисною. З цієї відповіді, якщо ви хочете відключити її для конкретного кодового блоку, а не для всього методу чи класу чи ідеї, просто додайте наступний рядок перед цим блоком коду

//noinspection Duplicates

Примітка: після цього рядка ви не можете розміщувати жодного іншого коментаря.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.