mirror of
https://github.com/rose-pine/neovim.git
synced 2025-10-15 12:38:53 +02:00
chore: clean up types and setup logic
This commit is contained in:
parent
0fb313c3c5
commit
ab6ab41da0
4 changed files with 20 additions and 42 deletions
|
|
@ -15,6 +15,8 @@ function M.colorscheme(variant)
|
||||||
require('rose-pine.theme')._load(config.options)
|
require('rose-pine.theme')._load(config.options)
|
||||||
end
|
end
|
||||||
|
|
||||||
M.setup = config.setup
|
function M.setup(options)
|
||||||
|
config.extend(options)
|
||||||
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,18 @@
|
||||||
|
---@alias Variant "main" | "moon" | "dawn"
|
||||||
|
---@alias Color { fg: string, bg: string, sp: string, bold: boolean, italic: boolean, undercurl: boolean, underline: boolean, underdouble: boolean, underdotted: boolean, underdashed: boolean, strikethrough: boolean }
|
||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
---@class Highlight
|
---@class Options
|
||||||
---@field fg string
|
M.options = {
|
||||||
---@field bg string
|
---Set the desired variant: "auto" will follow the vim background,
|
||||||
---@field sp string
|
---defaulting to "main" for dark and "dawn" for light. To change the dark
|
||||||
---@field bold boolean
|
---variant, use `options.dark_variant = "moon"`.
|
||||||
---@field italic boolean
|
---@type "auto" | Variant
|
||||||
---@field undercurl boolean
|
|
||||||
---@field underline boolean
|
|
||||||
---@field underdouble boolean
|
|
||||||
---@field underdotted boolean
|
|
||||||
---@field underdashed boolean
|
|
||||||
---@field strikethrough boolean
|
|
||||||
|
|
||||||
---@alias Variant 'main' | 'moon' | 'dawn'
|
|
||||||
|
|
||||||
---@class Config
|
|
||||||
local defaults = {
|
|
||||||
---@type 'auto' | Variant
|
|
||||||
variant = 'auto',
|
variant = 'auto',
|
||||||
|
|
||||||
|
---Set the desired dark variant: applies when `options.variant` is set to
|
||||||
|
---"auto" to match `vim.o.background`.
|
||||||
---@type Variant
|
---@type Variant
|
||||||
dark_variant = 'main',
|
dark_variant = 'main',
|
||||||
|
|
||||||
|
|
@ -63,24 +56,13 @@ local defaults = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
---@type table<string, Highlight>
|
---@type table<string, Color>
|
||||||
highlight_groups = {},
|
highlight_groups = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
---@type Config
|
---@param options Options|nil
|
||||||
M.options = {}
|
|
||||||
|
|
||||||
---@param options Config|nil
|
|
||||||
function M.setup(options)
|
|
||||||
M.options = vim.tbl_deep_extend('force', {}, defaults, options or {})
|
|
||||||
end
|
|
||||||
|
|
||||||
---@param options Config|nil
|
|
||||||
function M.extend(options)
|
function M.extend(options)
|
||||||
M.options =
|
M.options = vim.tbl_deep_extend('force', M.options, options or {})
|
||||||
vim.tbl_deep_extend('force', {}, M.options or defaults, options or {})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
M.setup()
|
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -66,14 +66,8 @@ local variants = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if options.variant == 'main' then
|
if variants[options.variant] ~= nil then
|
||||||
return variants.main
|
return variants[options.variant]
|
||||||
end
|
|
||||||
if options.variant == 'moon' then
|
|
||||||
return variants.moon
|
|
||||||
end
|
|
||||||
if options.variant == 'dawn' then
|
|
||||||
return variants.dawn
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return vim.o.background == 'light' and variants.dawn
|
return vim.o.background == 'light' and variants.dawn
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
---@param options Config
|
---@param options Options
|
||||||
function M._load(options)
|
function M._load(options)
|
||||||
local h = require('rose-pine.util').highlight
|
local h = require('rose-pine.util').highlight
|
||||||
local p = require('rose-pine.palette')
|
local p = require('rose-pine.palette')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue