import Color from 'color';
import { source } from 'common-tags';
import { colorSetToVariants } from '../color-set/index.js';
import type { Template } from './index.js';
function formatColor(hex: string) {
const [r, g, b] = Color(hex)
.rgb()
.array()
.map((n) => n.toString(16));
return [g, b, r, '00'].join('');
}
const template: Template = {
name: 'ConEmu',
render: async function* (colorSet) {
const variants = colorSetToVariants(colorSet);
for (const variant of variants) {
const shade0 = formatColor(variant.colors.shade0);
const shade1 = formatColor(variant.colors.shade1);
const shade6 = formatColor(variant.colors.shade6);
const shade7 = formatColor(variant.colors.shade7);
const accent0 = formatColor(variant.colors.accent0);
const accent1 = formatColor(variant.colors.accent1);
const accent2 = formatColor(variant.colors.accent2);
const accent3 = formatColor(variant.colors.accent3);
const accent4 = formatColor(variant.colors.accent4);
const accent5 = formatColor(variant.colors.accent5);
const accent6 = formatColor(variant.colors.accent6);
const accent7 = formatColor(variant.colors.accent7);
yield {
path: `${variant.title.kebab}.xml`,
content: source`
`,
};
}
},
renderInstructions: (paths) => source`
1. Open the ConEmu settings and navigate to Features > Colors. Take note of the location of \`ConEmu.xml\` for later.
2. Create a new color scheme by typing a name in the "Schemes" field and clicking Save.
3. Close ConEmu.
4. Open \`ConEmu.xml\` and locate the color scheme name you typed in step 2.
5. Replace the \`\` elements \`ColorTable00\` through \`ColorTable31\` with the contents of your themer-generated XML (${paths
.map((p) => `\`${p}\``)
.join(
' or ',
)}). Be sure to leave the others, like \`ExtendColors\`, etc. intact.
6. Open ConEmu and select your theme again in settings.
`,
};
export default template;