estilo
Version:
Create color schemes for Vim, NeoVim, Airline and Lightline
36 lines (35 loc) • 1.53 kB
JavaScript
import * as dntShim from "../_dnt.shims.js";
import { ensureDir } from "./util.js";
import { resolve } from "../deps/jsr.io/@std/path/1.0.8/mod.js";
import { renderColorscheme } from "./render-colorscheme.js";
import { renderStatus } from "./render-status.js";
const paths = {
airline: "autoload/airline/themes",
lightline: "autoload/lightline/colorscheme",
};
export async function renderProject(project) {
const { config: projectConfig } = project;
for (const config of projectConfig.colorschemes) {
const rendered = renderColorscheme(config, project);
await writeThing("colors", rendered, config.name, project.projectUrl);
}
if (projectConfig.airline) {
for (const config of projectConfig.airline) {
const rendered = renderStatus(config, project, "airline");
await writeThing(paths.airline, rendered, config.name, project.projectUrl);
}
}
if (projectConfig.lightline) {
for (const config of projectConfig.lightline) {
const rendered = renderStatus(config, project, "lightline");
await writeThing(paths.lightline, rendered, config.name, project.projectUrl);
}
}
console.log("%c✓ Done, your theme is ready\n", "color: green");
}
export async function writeThing(folder, txt, name, projectPath) {
const folderPath = resolve(projectPath, folder);
const filepath = resolve(folderPath, name + ".vim");
await ensureDir(folderPath);
await dntShim.Deno.writeTextFile(filepath, txt);
}