From 5927a6616667d9c00226002811042d670041d439 Mon Sep 17 00:00:00 2001 From: aminya Date: Mon, 13 Apr 2020 10:42:04 -0500 Subject: [PATCH] npm run build --- lib/misc/colors.d.ts | 5 +++++ lib/misc/colors.js | 46 ++++++++++++++++++++++++-------------------- 2 files changed, 30 insertions(+), 21 deletions(-) create mode 100644 lib/misc/colors.d.ts diff --git a/lib/misc/colors.d.ts b/lib/misc/colors.d.ts new file mode 100644 index 00000000..b2734319 --- /dev/null +++ b/lib/misc/colors.d.ts @@ -0,0 +1,5 @@ +export declare function getColors(selectors: { + [P: string]: string; +}): { + [P: string]: string; +}; diff --git a/lib/misc/colors.js b/lib/misc/colors.js index 9a01c912..6ce47cb9 100644 --- a/lib/misc/colors.js +++ b/lib/misc/colors.js @@ -1,44 +1,48 @@ -'use babel' +"use babel" export function getColors(selectors) { - let grammar = atom.grammars.grammarForScopeName("source.julia") - - let styled = {} - let color = {} - let div = document.createElement('div') - div.classList.add('editor', 'editor-colors', 'julia-syntax-color-selector') - - for (let style in selectors) { - let child = document.createElement('span') - child.innerText = 'foo' + // const grammar = atom.grammars.grammarForScopeName("source.julia") // TODO ? + const div = document.createElement("div") + div.classList.add("editor", "editor-colors", "julia-syntax-color-selector") + const styled = {} + const color = {} + for (const style in selectors) { + const child = document.createElement("span") + child.innerText = "foo" child.classList.add(...selectors[style]) div.appendChild(child) styled[style] = child } - document.body.appendChild(div) // wait till rendered? - for (let style in selectors) { + for (const style in selectors) { + // TODO do we need try catch try { - color[style] = rgb2hex(window.getComputedStyle(styled[style])['color']) + color[style] = rgb2hex(window.getComputedStyle(styled[style]).color) } catch (e) { console.error(e) } } - color['background'] = rgb2hex(window.getComputedStyle(div)['backgroundColor']) + color.background = rgb2hex(window.getComputedStyle(div).backgroundColor) document.body.removeChild(div) - return color } function rgb2hex(rgb) { - if (rgb.search("rgb") == -1) { + if (rgb.search("rgb") === -1) { return rgb } else { - rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/) - function hex(x) { - return ("0" + parseInt(x).toString(16)).slice(-2); + const rgb_match = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/) + if (rgb_match) { + return hex(rgb_match[1]) + hex(rgb_match[2]) + hex(rgb_match[3]) + } else { + // TODO should we check for this error? + console.error(rgb.concat(" isn't a rgb string!")) + return "#000000" // black } - return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]); } } + +function hex(x) { + return ("0" + parseInt(x, 10).toString(16)).slice(-2) +}