diff --git a/lib/icons/.icondb.js b/lib/icons/.icondb.js index f368f7f..f01d9b4 100644 --- a/lib/icons/.icondb.js +++ b/lib/icons/.icondb.js @@ -455,7 +455,7 @@ module.exports = [ ["arc-icon",["medium-blue","medium-blue"],/\.arc$/i], ["arduino-icon",["dark-cyan","dark-cyan"],/\.ino$/i,,,/\.arduino$/i,/^Arduin[0o]$/i], ["asciidoctor-icon",["medium-blue","medium-blue"],/\.(?:ad|adoc|asc|asciidoc)$/i,,,/\.asciidoc$/i,/^Ascii[\W_ \t]?D[0o]c$/i], -["asp-icon",["dark-blue","dark-blue"],/\.asp$/i,,,/\.asp$/i,/^[Aa][Ss][Pp][\W_ \t]?[Nn][Ee][Tt]$|^aspx(?:-vb)?$/], +["asp-icon",["dark-blue","dark-blue"],/\.asp$/i,,,/\.asp$/i,/^[Aa][Ss][Pp].[nN][eE][tT]$|^aspx(?:-vb)?$/], ["asp-icon",["medium-maroon","medium-maroon"],/\.asax$/i], ["asp-icon",["dark-green","dark-green"],/\.ascx$/i], ["asp-icon",["medium-green","medium-green"],/\.ashx$/i], @@ -1433,7 +1433,7 @@ module.exports = [ ["python-icon",["dark-green","dark-green"],/^(?:SConstruct|SConscript)$/], ["python-icon",["medium-green","medium-green"],/^(?:Snakefile|WATCHLISTS)$/], ["python-icon",["dark-maroon","dark-maroon"],/^wscript$/], -["kx-icon",["medium-blue","medium-blue"],/\.q$/i,,,/^source\.q$/,/^[Qq][\W_ \t]?[Kk][Dd][Bb][\W_ \t]?$|^Kdb\s*\+$/], +["kx-icon",["medium-blue","medium-blue"],/\.q$/i,,,/^source\.q$/,/^[Qq]\/[Kk][dD][bB]+$|^Kdb\s*\+$/], ["kx-icon",["dark-purple","dark-purple"],/\.k$/i,,,/^source\.k4$/,/^Q\/?Kdb\+?$/i], ["qiskit-icon",["dark-blue","dark-blue"],/\.qasm$/i,,,/\.qasm$/i,/^Qasm$|^[0o]pen[\W_ \t]?Qasm$/i], ["qlik-icon",["medium-green","medium-green"],/\.qvw$/i], diff --git a/lib/utils.js b/lib/utils.js index d354d1f..b2df603 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -18,32 +18,24 @@ module.exports = { * so this function attempts to approximate the closest thing. * * @param {String} input - Case-insensitive text - * @param {Boolean} fuzz - Apply {@link fuzzyRegExp} to input * @return {String} */ -function caseKludge(input, fuzz = false) { - let output = input +function caseKludge(input) { + return input .split('') - .map((s, index, array) => { - if (/[A-Z]/.test(s)) { - const output = '[' + s + s.toLowerCase() + ']' - const prev = array[index - 1] - if (fuzz && prev && /[a-z]/.test(prev)) return '[\\W_\\S]*' + output - return output - } - if (/[a-z]/.test(s)) return '[' + s.toUpperCase() + s + ']' - if (!fuzz) return escapeRegExp(s) - if (s === '0') return '[0Oo]' - if (/[\W_ \t]?/.test(s)) return '[\\W_ \\t]?' - return s - }) + .map(match => + /[A-Z]/.test(match) + ? '[' + match + match.toLowerCase() + ']' + : /[a-z]/.test(match) + ? '[' + match + match.toUpperCase() + ']' + : match + ) .join('') - - if (fuzz) output = output.replace(/\[Oo\]/g, '[0Oo]') - return output.replace( - /(\[\w{2,3}\])(\1+)/g, - (match, first, rest) => first + '{' + (rest.length / first.length + 1) + '}' - ) + .replace( + /(\[\w{2,3}\])(\1+)/g, + (match, first, rest) => + first + '{' + (rest.length / first.length + 1) + '}' + ) } /**