Единственный нормальный детектор копипасты требовал JVM. Поэтому я написал свой

Wait 5 sec.

Копипаста редко выглядит как копипаста. После переименования переменных, строк и чисел два одинаковых блока спокойно проходят ревью как разный код. Я написал clone-alert, чтобы находить такие совпадения в TypeScript, JavaScript и шаблонах Vue, Svelte и Angular. Читать далее