agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
38 lines (33 loc) • 989 B
JavaScript
/**
* @file Code duplication detection
* @description Detects code duplication within files
*/
/**
* Find code duplication within a single file
*/
function findIntraFileDuplication(content) {
const lines = content.split('\n').map(line => line.trim()).filter(line => line.length > 5);
const duplicates = [];
const lineMap = new Map();
// Optimized line-based duplication detection with for loop
for (let index = 0; index < lines.length; index++) {
const line = lines[index];
if (line.startsWith('//') || line.startsWith('/*')) continue;
if (lineMap.has(line)) {
duplicates.push({
line: index + 1,
content: line,
originalLine: lineMap.get(line) + 1
});
} else {
lineMap.set(line, index);
}
}
return {
score: lines.length > 0 ? duplicates.length / lines.length : 0,
duplicates: duplicates.slice(0, 10) // Limit to first 10 for brevity
};
}
module.exports = {
findIntraFileDuplication
};