67 lines
1.6 KiB
Lua
67 lines
1.6 KiB
Lua
local template = [[function! zenbones#generated#$name#load() abort
|
||
$termcolors
|
||
$vimcolors
|
||
|
||
let s:italics = (&t_ZH != '' && &t_ZH != '[7m') || has('gui_running') || has('nvim')
|
||
if !s:italics
|
||
" start_no_italics
|
||
" end_no_italics
|
||
endif
|
||
endfunction]]
|
||
|
||
local helpers = require "shipwright.transform.helpers"
|
||
|
||
local function to_vim_autoload(colorscheme)
|
||
local vimcolors, term, name = unpack(colorscheme)
|
||
local termcolors = ""
|
||
for i, v in ipairs(term) do
|
||
termcolors = termcolors .. string.format("let g:terminal_color_%s = '%s'\n", (i - 1), v.hex)
|
||
end
|
||
|
||
local text = helpers.apply_template(template, {
|
||
name = name,
|
||
termcolors = termcolors,
|
||
vimcolors = table.concat(vimcolors, "\n"),
|
||
})
|
||
return { text }
|
||
end
|
||
|
||
local lushwright = require "shipwright.transform.lush"
|
||
|
||
-- selene: allow(undefined_variable)
|
||
run(
|
||
specs,
|
||
lushwright.to_vimscript,
|
||
lushwright.vim_compatible_vimscript,
|
||
function(vimcolors)
|
||
return { vimcolors, term, name }
|
||
end,
|
||
to_vim_autoload,
|
||
{ prepend, [[" This file is auto-generated by shipwright.nvim]] },
|
||
{ overwrite, string.format("autoload/zenbones/generated/%s.vim", name) }
|
||
)
|
||
-- selene: deny(undefined_variable)
|
||
|
||
local function remove_italics(specs)
|
||
local italic_specs = {}
|
||
for key, hl in pairs(specs) do
|
||
if hl.gui == "italic" and key ~= "Italic" then
|
||
table.insert(italic_specs, string.format("highlight %s gui=NONE cterm=NONE", key))
|
||
end
|
||
end
|
||
return italic_specs
|
||
end
|
||
|
||
-- selene: allow(undefined_variable)
|
||
run(
|
||
specs,
|
||
remove_italics,
|
||
{
|
||
patchwrite,
|
||
string.format("autoload/zenbones/generated/%s.vim", name),
|
||
[[" start_no_italics]],
|
||
[[" end_no_italics]],
|
||
}
|
||
)
|
||
-- selene: deny(undefined_variable)
|