TGViewer
🇺🇦 Math.random(): community of engineers 🇺🇦 Math.random(): community of engineers @mathrandomcommunity · 1.25K subscribers
Post #985 549
97% вашого коду - «унікальні». Так каже інструмент, який не бачить дубль, якщо змінну просто назвали інакше.

👀jscpd 5.2.0 бачить.

Три класи копій, які раніше не потрапляли у звіт: перейменовані, зі вставленим рядком і переписані по всій функції.

Половину цього коду написав агент, а він не робить Ctrl+C: генерує заново і рідко тими самими іменами. Тому дірка у звіті - не крайній випадок, а норма.

1. Перейменовані копії
--ignore-identifiers, --ignore-literals, --ignore-annotations

Нормалізують класи токенів перед хешуванням: усі ідентифікатори стають одним класом, ключові слова зберігають своє значення, рядки і числа лишаються різними класами, анотації @Name(...) відкидаються. Java, Kotlin, Scala, Groovy, Python, Dart, Swift, JS, TS. Копія з іншими іменами тепер має kind: renamed.

2. Копії з розривом
--max-gap-lines N

Копія, куди вставили рядок посередині, раніше показувалась як два коротких клони. Тепер фрагменти однієї пари файлів, між якими не більше N незіставлених рядків, зливаються в один клон kind: similar зі значенням similarity. Схожість нижче 0.5 - злиття не відбувається.

3. Схожість функцій, JS/TS
--similarity RATIO

Правки, розмазані по всій функції, не ловить жодне вікно токенів. jscpd порівнює кожну функцію, метод і стрілкову функцію за набором 4-грам по типах вузлів AST та індексує через MinHash. Імена і літерали участі не беруть: перейменована копія дає 1.0, один вставлений рядок - близько 0.9, дві вставлені інструкції плюс перейменування - близько 0.75.

Кожен клон тепер несе kind: exact, renamed або similar - у консолі, JSON, XML і HTML. У SARIF і Code Climate додались правила jscpd/renamed-code та jscpd/similar-code.

На npm зараз 5 156 441 М завантаження за тиждень. Саме тому все нове - opt-in: жоден з цих пайплайнів не змінить поведінку після оновлення. Без прапорців результат той самий, плюс поле "kind": "exact".

Реліз v5.2.0

Яка у вас цифра дублювання у CI і скільки їй років?

👀 - зараз перевірю
🔥 - вже перевірив

#jscpd #CopyPasteDetector
  • 👍 10
  • 🔥 5
  • 👀 3
  • 👏 2
More from @mathrandomcommunity
  1. Sep 30, 2026Подивись, як AI-судді розбирають код агента👆 Це тестова гра нашої команди в ololo. Навіщо…
  2. Sep 30, 2026video post
  3. Sep 29, 2026Найнебезпечніша фраза від AI-агента: «Готово, тести проходять». Мій агент пише її щодня. З…
  4. Sep 29, 2026video post
  5. Sep 24, 2026Нова модель Jev від TypeSafe AI стала однією з найпомітніших новинок останнього тижня 🆕 Я…
  6. Sep 21, 2026Ваш агент платить за генерацію тексту там, де йому потрібна відповідь «так» або «ні». Таке…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →