Loading tools/warn/html_writer.py +33 −16 Original line number Diff line number Diff line Loading @@ -662,15 +662,26 @@ function computeTopDirsFiles() { var warningsOfFiles = {}; var warningsOfDirs = {}; var subDirs = {}; function addOneWarning(map, key) { map[key] = 1 + ((key in map) ? map[key] : 0); function addOneWarning(map, key, type, unique) { function increaseCounter(idx) { map[idx] = 1 + ((idx in map) ? map[idx] : 0); } increaseCounter(key) if (type != "") { increaseCounter(type + " " + key) if (unique) { increaseCounter(type + " *") } } } for (var i = 0; i < numWarnings; i++) { var file = WarningMessages[i].replace(/:.*/, ""); addOneWarning(warningsOfFiles, file); var message = WarningMessages[i] var file = message.replace(/:.*/, ""); var warningType = message.endsWith("]") ? message.replace(/.*\[/, "[") : ""; addOneWarning(warningsOfFiles, file, warningType, true); var dirs = file.split("/"); var dir = dirs[0]; addOneWarning(warningsOfDirs, dir); addOneWarning(warningsOfDirs, dir, warningType, true); for (var d = 1; d < dirs.length - 1; d++) { var subDir = dir + "/" + dirs[d]; if (!(dir in subDirs)) { Loading @@ -678,7 +689,7 @@ function computeTopDirsFiles() { } subDirs[dir][subDir] = 1; dir = subDir; addOneWarning(warningsOfDirs, dir); addOneWarning(warningsOfDirs, dir, warningType, false); } } var minDirWarnings = numWarnings*(LimitPercentWarnings/100); Loading Loading @@ -725,27 +736,33 @@ function genTopDirsFilesTables() { document.getElementById(divName)); table.draw(view, {allowHtml: true, alternatingRowStyle: true}); } addTable("Directory", "top_dirs_table", TopDirs, "selectDir"); addTable("File", "top_files_table", TopFiles, "selectFile"); addTable("[Warning Type] Directory", "top_dirs_table", TopDirs, "selectDir"); addTable("[Warning Type] File", "top_files_table", TopFiles, "selectFile"); } function selectDirFile(idx, rows, dirFile) { if (rows.length <= idx) { return; } var name = rows[idx][2]; var type = ""; if (name.startsWith("[")) { type = " " + name.replace(/ .*/, ""); name = name.replace(/.* /, ""); } var spanName = "selected_" + dirFile + "_name"; document.getElementById(spanName).innerHTML = name; document.getElementById(spanName).innerHTML = name + type; var divName = "selected_" + dirFile + "_warnings"; var numWarnings = rows[idx][1].v; var prefix = name.replace(/\\.\\.\\.$/, ""); var data = new google.visualization.DataTable(); data.addColumn('string', numWarnings + ' warnings in ' + name); data.addColumn('string', numWarnings + type + ' warnings in ' + name); var getWarningMessage = (FlagPlatform == "chrome") ? ((x) => addURLToLine(WarningMessages[Warnings[x][2]], WarningLinks[Warnings[x][3]])) : ((x) => addURL(WarningMessages[Warnings[x][2]])); for (var i = 0; i < Warnings.length; i++) { if (WarningMessages[Warnings[i][2]].startsWith(prefix)) { if ((prefix.startsWith("*") || WarningMessages[Warnings[i][2]].startsWith(prefix)) && (type == "" || WarningMessages[Warnings[i][2]].endsWith(type))) { data.addRow([getWarningMessage(i)]); } } Loading Loading @@ -827,14 +844,14 @@ def dump_html(flags, output_stream, warning_messages, warning_links, def section2(): dump_dir_file_section( writer, 'directory', 'top_dirs_table', 'Directories with at least ' + str(LIMIT_PERCENT_WARNINGS) + '% warnings') 'Directories/Warnings with at least ' + str(LIMIT_PERCENT_WARNINGS) + '% of all cases') def section3(): dump_dir_file_section( writer, 'file', 'top_files_table', 'Files with at least ' + str(LIMIT_PERCENT_WARNINGS) + '% or ' + str(LIMIT_WARNINGS_PER_FILE) + ' warnings') 'Files/Warnings with at least ' + str(LIMIT_PERCENT_WARNINGS) + '% of all or ' + str(LIMIT_WARNINGS_PER_FILE) + ' cases') def section4(): writer('<script>') emit_js_data(writer, flags, warning_messages, warning_links, Loading Loading
tools/warn/html_writer.py +33 −16 Original line number Diff line number Diff line Loading @@ -662,15 +662,26 @@ function computeTopDirsFiles() { var warningsOfFiles = {}; var warningsOfDirs = {}; var subDirs = {}; function addOneWarning(map, key) { map[key] = 1 + ((key in map) ? map[key] : 0); function addOneWarning(map, key, type, unique) { function increaseCounter(idx) { map[idx] = 1 + ((idx in map) ? map[idx] : 0); } increaseCounter(key) if (type != "") { increaseCounter(type + " " + key) if (unique) { increaseCounter(type + " *") } } } for (var i = 0; i < numWarnings; i++) { var file = WarningMessages[i].replace(/:.*/, ""); addOneWarning(warningsOfFiles, file); var message = WarningMessages[i] var file = message.replace(/:.*/, ""); var warningType = message.endsWith("]") ? message.replace(/.*\[/, "[") : ""; addOneWarning(warningsOfFiles, file, warningType, true); var dirs = file.split("/"); var dir = dirs[0]; addOneWarning(warningsOfDirs, dir); addOneWarning(warningsOfDirs, dir, warningType, true); for (var d = 1; d < dirs.length - 1; d++) { var subDir = dir + "/" + dirs[d]; if (!(dir in subDirs)) { Loading @@ -678,7 +689,7 @@ function computeTopDirsFiles() { } subDirs[dir][subDir] = 1; dir = subDir; addOneWarning(warningsOfDirs, dir); addOneWarning(warningsOfDirs, dir, warningType, false); } } var minDirWarnings = numWarnings*(LimitPercentWarnings/100); Loading Loading @@ -725,27 +736,33 @@ function genTopDirsFilesTables() { document.getElementById(divName)); table.draw(view, {allowHtml: true, alternatingRowStyle: true}); } addTable("Directory", "top_dirs_table", TopDirs, "selectDir"); addTable("File", "top_files_table", TopFiles, "selectFile"); addTable("[Warning Type] Directory", "top_dirs_table", TopDirs, "selectDir"); addTable("[Warning Type] File", "top_files_table", TopFiles, "selectFile"); } function selectDirFile(idx, rows, dirFile) { if (rows.length <= idx) { return; } var name = rows[idx][2]; var type = ""; if (name.startsWith("[")) { type = " " + name.replace(/ .*/, ""); name = name.replace(/.* /, ""); } var spanName = "selected_" + dirFile + "_name"; document.getElementById(spanName).innerHTML = name; document.getElementById(spanName).innerHTML = name + type; var divName = "selected_" + dirFile + "_warnings"; var numWarnings = rows[idx][1].v; var prefix = name.replace(/\\.\\.\\.$/, ""); var data = new google.visualization.DataTable(); data.addColumn('string', numWarnings + ' warnings in ' + name); data.addColumn('string', numWarnings + type + ' warnings in ' + name); var getWarningMessage = (FlagPlatform == "chrome") ? ((x) => addURLToLine(WarningMessages[Warnings[x][2]], WarningLinks[Warnings[x][3]])) : ((x) => addURL(WarningMessages[Warnings[x][2]])); for (var i = 0; i < Warnings.length; i++) { if (WarningMessages[Warnings[i][2]].startsWith(prefix)) { if ((prefix.startsWith("*") || WarningMessages[Warnings[i][2]].startsWith(prefix)) && (type == "" || WarningMessages[Warnings[i][2]].endsWith(type))) { data.addRow([getWarningMessage(i)]); } } Loading Loading @@ -827,14 +844,14 @@ def dump_html(flags, output_stream, warning_messages, warning_links, def section2(): dump_dir_file_section( writer, 'directory', 'top_dirs_table', 'Directories with at least ' + str(LIMIT_PERCENT_WARNINGS) + '% warnings') 'Directories/Warnings with at least ' + str(LIMIT_PERCENT_WARNINGS) + '% of all cases') def section3(): dump_dir_file_section( writer, 'file', 'top_files_table', 'Files with at least ' + str(LIMIT_PERCENT_WARNINGS) + '% or ' + str(LIMIT_WARNINGS_PER_FILE) + ' warnings') 'Files/Warnings with at least ' + str(LIMIT_PERCENT_WARNINGS) + '% of all or ' + str(LIMIT_WARNINGS_PER_FILE) + ' cases') def section4(): writer('<script>') emit_js_data(writer, flags, warning_messages, warning_links, Loading