From aa0cd250d7e035d37c392a726e3d2bed5ce0410c Mon Sep 17 00:00:00 2001 From: Ava Gaiety W Date: Wed, 24 Sep 2025 18:53:46 -0600 Subject: [PATCH] wip neovim port --- bun.lockb | Bin 7371 -> 20095 bytes index.ts | 8 ++-- ports/kitty/src/data.ts | 1 - ports/neovim/dist/verdigris/colors.lua | 18 ++++++++ ports/neovim/dist/verdigris/groups.lua | 14 ++++++ ports/neovim/info.toml | 3 ++ ports/neovim/src/build.ts | 43 ++++++------------ ports/neovim/src/data.ts | 23 ++++++++++ ports/neovim/src/templates/groups.lua | 14 ++++++ ports/neovim/src/templates/palette.lua.hbs | 18 ++++++++ .../templates/{toml.hbs => palette.toml.hbs} | 0 .../templates/{yaml.hbs => palette.yaml.hbs} | 0 src/build/toml.ts | 2 +- src/build/yaml.ts | 2 +- src/helpers/file.ts | 25 +++++++++- 15 files changed, 132 insertions(+), 39 deletions(-) create mode 100644 ports/neovim/dist/verdigris/colors.lua create mode 100644 ports/neovim/dist/verdigris/groups.lua create mode 100644 ports/neovim/info.toml create mode 100644 ports/neovim/src/data.ts create mode 100644 ports/neovim/src/templates/groups.lua create mode 100644 ports/neovim/src/templates/palette.lua.hbs rename src/build/templates/{toml.hbs => palette.toml.hbs} (100%) rename src/build/templates/{yaml.hbs => palette.yaml.hbs} (100%) diff --git a/bun.lockb b/bun.lockb index 0afce470f2241c791862826b8243c29134323abb..ce782014535c5010708bc51e82696ce669382cd0 100755 GIT binary patch literal 20095 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 R#9h2}Zf`gg|L^@D%_6 delta 892 zcmb_bOK1~O6rFi9sh!lxrwPr+Vq($+vuGfxHdB)fv0`lvNby5ZL>i?i*o9Dqh>MB~ z3F@NpqDYJjBktTtKt)8*RY8h^Qbe#M6s1@N6-3-v&zp?kQo#dv4(D>udw1^KS*?lB zhGyfj`_0F*nW@P~)n>=T!Os^1zFXVIF6?=ky}Nh*>(eLCOX*(0fU8mnupO>SX>@l# z5{e+44T4p0oe6>!eB@Yh>Ns*PGmjc0e_3kRx4>(8-SqUy(Zn=(R znr_(B?2|-(ht4+2bO3ZnrYfi|(;LT@u{CIu2M1>h0&N=j7Z$1C8JH2_vmwx(;6QNg zL~wBCx|<6V|Lu01hmS!6PG97&dT8u-zh(43v{O_l5iZbck4jgX+D*{LD^|*q(IA1w await appendToFile(file, content) +const nonTemplateFiles = appRoot + '/ports/neovim/src/templates/**/*.lua' +const templateFile = appRoot + '/ports/neovim/src/templates/palette.lua.hbs' +const outputDir = appRoot + '/ports/neovim/dist/verdigris/' +const outputFile = outputDir + 'colors.lua' export default async function(isVerbose = false) { - if (isVerbose) console.info('Neovim: Removing previous build', file) try { - await rmFile(file) + let results: Array = await copyFiles(nonTemplateFiles, outputDir, isVerbose) + + await renderToFile(templateFile, outputFile, getData(), isVerbose) + results.push(outputFile) + + return results.join('\n') } catch (error) { - console.info('Neovim: Previous build already removed') + throw error } - if (isVerbose) console.info('Neovim: Ensuring path and file exist', file) - await mkFilePath(file) - if (isVerbose) console.info('Neovim: Writing color palette into file', file) - await appendToEstilosPalette(colors()) - if (isVerbose) console.info('Neovim: Running estilo to compile `.vim`', file) - await runEstilo(isVerbose) - - return appRoot + '/ports/neovim/colors/verdigris.vim' -} - -function colors(): string { - return Object - .keys(common) - .reduce((acc, key) => acc += `${key}: "${common[key]}"\n`, '') -} - -async function runEstilo(isVerbose: boolean) { - const proc = spawn(['bun', 'estilo', 'render', appRoot + '/ports/neovim/'], { - cwd: appRoot.toString(), - }); - const output = await proc.stdout.text(); - if (isVerbose) console.info(output) } diff --git a/ports/neovim/src/data.ts b/ports/neovim/src/data.ts new file mode 100644 index 0000000..cfefc77 --- /dev/null +++ b/ports/neovim/src/data.ts @@ -0,0 +1,23 @@ +import { name, version } from '../info.toml' +import { license, url } from '../../../package.json' +import colors from '../../../src/palette' +import type { Colors } from '../../../src/palette' + +export default function(): any { + return { + name, + version, + license, + url, + ...flattenColorsToHex(), + } +} + +function flattenColorsToHex(): Colors { + return colors.reduce((acc, color) => { + return { + [color.nameSnakeCase]: color.toHex(), + ...acc, + } + }, {}) +} diff --git a/ports/neovim/src/templates/groups.lua b/ports/neovim/src/templates/groups.lua new file mode 100644 index 0000000..90a5a9d --- /dev/null +++ b/ports/neovim/src/templates/groups.lua @@ -0,0 +1,14 @@ +local M = {} + +function M.apply() + local p = require("verdigris.colors").apply() + + vim.cmd("highlight clear") + if vim.fn.exists("syntax_on") then + vim.cmd("syntax reset") + end + vim.o.background = "dark" + vim.g.colors_name = "verdigris" +end + +return M diff --git a/ports/neovim/src/templates/palette.lua.hbs b/ports/neovim/src/templates/palette.lua.hbs new file mode 100644 index 0000000..48d4f17 --- /dev/null +++ b/ports/neovim/src/templates/palette.lua.hbs @@ -0,0 +1,18 @@ +local M = {} + +M.palette = { + pit = "{{pit}}" + depths = "{{depths}}" + stope = "{{stope}}" + text = "{{text}}" + + orange = "{{orange}}" + teal = "{{teal}}" + red = "{{red}}" + yellow = "{{yellow}}" + green = "{{green}}" + blue = "{{blue}}" + purple = "{{purple}}" +} + +return M diff --git a/src/build/templates/toml.hbs b/src/build/templates/palette.toml.hbs similarity index 100% rename from src/build/templates/toml.hbs rename to src/build/templates/palette.toml.hbs diff --git a/src/build/templates/yaml.hbs b/src/build/templates/palette.yaml.hbs similarity index 100% rename from src/build/templates/yaml.hbs rename to src/build/templates/palette.yaml.hbs diff --git a/src/build/toml.ts b/src/build/toml.ts index 0103727..79e29ac 100644 --- a/src/build/toml.ts +++ b/src/build/toml.ts @@ -4,7 +4,7 @@ import { renderToFile } from "../helpers/file" import colors from '../palette' import Color from '../helpers/color' -const templateFile = appRoot + '/src/build/templates/toml.hbs' +const templateFile = appRoot + '/src/build/templates/palette.toml.hbs' const outputFile = appRoot + '/dist/palette.toml' export default async function(isVerbose = false): Promise { diff --git a/src/build/yaml.ts b/src/build/yaml.ts index 6a24b2f..ab3e243 100644 --- a/src/build/yaml.ts +++ b/src/build/yaml.ts @@ -4,7 +4,7 @@ import colors from '../palette' import Color from '../helpers/color' import { renderToFile } from '../helpers/file' -const templateFile = appRoot + '/src/build/templates/yaml.hbs' +const templateFile = appRoot + '/src/build/templates/palette.yaml.hbs' const outputFile = appRoot + '/dist/palette.yml' export default async function(isVerbose = false): Promise { diff --git a/src/helpers/file.ts b/src/helpers/file.ts index 392f1ec..1f09bc2 100644 --- a/src/helpers/file.ts +++ b/src/helpers/file.ts @@ -1,6 +1,6 @@ import { compile } from 'handlebars'; -import { appendFile, mkdir, rm, readFile, writeFile } from 'node:fs/promises'; -import { dirname } from 'node:path' +import { mkdir, readFile, writeFile, glob, copyFile } from 'node:fs/promises'; +import { dirname, basename, join } from 'node:path' const log = (isVerbose = true, ...rest: any[]) => { if (isVerbose) console.info(...rest) @@ -36,3 +36,24 @@ export async function renderToFile( } } +export async function copyFiles( + filesGlob: string, destDir: string, isVerbose = false +): Promise { + let results: Array = [] + + try { + log(isVerbose, 'Finding files by glob', filesGlob) + for await (const file of glob(filesGlob)) { + const outputFile = join(destDir, basename(file)) + + results.push(outputFile) + + log(isVerbose, 'Copying', file, 'to', outputFile) + await copyFile(file, outputFile) + } + } catch (error) { + throw error + } + + return results +}