gruber-darker.nvim/lua/gruber-darker/color.lua

42 lines
742 B
Lua

---@class Color
---@field private value integer|nil
local Color = {}
Color.__index = Color
---Create a new color
---@param value integer
---@return table
function Color.new(value)
local color = setmetatable({
value = value,
}, Color)
return color
end
---Create the "NONE" color
---@return table
function Color.none()
local color = setmetatable({
value = nil,
}, Color)
return color
end
---Get hexadecimal color value as a string
---@return string
function Color:to_string()
if self.value == nil then
return "NONE"
end
-- special edge case for BLACK where
-- "#0" is returned, which is invalid to Neovim
if self.value == 0 then
return "#000000"
end
return string.format("#%x", self.value)
end
return Color