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
95b458f7b8
commit
6b7b38bbb3
4 changed files with 20 additions and 42 deletions
|
|
@ -15,6 +15,8 @@ function M.colorscheme(variant)
|
|||
require('rose-pine.theme')._load(config.options)
|
||||
end
|
||||
|
||||
M.setup = config.setup
|
||||
function M.setup(options)
|
||||
config.extend(options)
|
||||
end
|
||||
|
||||
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 = {}
|
||||
|
||||
---@class Highlight
|
||||
---@field fg string
|
||||
---@field bg string
|
||||
---@field sp string
|
||||
---@field bold boolean
|
||||
---@field italic boolean
|
||||
---@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
|
||||
---@class Options
|
||||
M.options = {
|
||||
---Set the desired variant: "auto" will follow the vim background,
|
||||
---defaulting to "main" for dark and "dawn" for light. To change the dark
|
||||
---variant, use `options.dark_variant = "moon"`.
|
||||
---@type "auto" | Variant
|
||||
variant = 'auto',
|
||||
|
||||
---Set the desired dark variant: applies when `options.variant` is set to
|
||||
---"auto" to match `vim.o.background`.
|
||||
---@type Variant
|
||||
dark_variant = 'main',
|
||||
|
||||
|
|
@ -63,24 +56,13 @@ local defaults = {
|
|||
},
|
||||
},
|
||||
|
||||
---@type table<string, Highlight>
|
||||
---@type table<string, Color>
|
||||
highlight_groups = {},
|
||||
}
|
||||
|
||||
---@type Config
|
||||
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
|
||||
---@param options Options|nil
|
||||
function M.extend(options)
|
||||
M.options =
|
||||
vim.tbl_deep_extend('force', {}, M.options or defaults, options or {})
|
||||
M.options = vim.tbl_deep_extend('force', M.options, options or {})
|
||||
end
|
||||
|
||||
M.setup()
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -66,14 +66,8 @@ local variants = {
|
|||
},
|
||||
}
|
||||
|
||||
if options.variant == 'main' then
|
||||
return variants.main
|
||||
end
|
||||
if options.variant == 'moon' then
|
||||
return variants.moon
|
||||
end
|
||||
if options.variant == 'dawn' then
|
||||
return variants.dawn
|
||||
if variants[options.variant] ~= nil then
|
||||
return variants[options.variant]
|
||||
end
|
||||
|
||||
return vim.o.background == 'light' and variants.dawn
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local M = {}
|
||||
|
||||
---@param options Config
|
||||
---@param options Options
|
||||
function M._load(options)
|
||||
local h = require('rose-pine.util').highlight
|
||||
local p = require('rose-pine.palette')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue