Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions lua/onedarkpro/helpers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,36 @@ function M.brighten(color, amount, theme)
return C(color):brighter(amount):to_css()
end

---Blend two colors together
---@param color1 string The first color (name or hex)
---@param color2 string The second color (name or hex)
---@param factor number Blend factor. Float [0,1]. 0 = color1, 1 = color2
---@param theme? string The name of theme to load from if the color is a name (e.g. "onedark", "onelight" etc)
---@return string
function M.blend(color1, color2, factor, theme)
if theme then
local ok, colors
pcall(function()
M.get_preloaded_colors(theme)
end)
if not ok then
error("Theme '" .. theme .. "' not found. You might be calling this too early.")
end
return C(colors[color1]):blend(C(colors[color2]), factor):to_css()
end

-- Resolve colors from the theme's palette
local resolved_color1 = M.get_preloaded_colors()[color1]
if resolved_color1 then
color1 = resolved_color1
end

local resolved_color2 = M.get_preloaded_colors()[color2]
if resolved_color2 then
color2 = resolved_color2
end

return C(color1):blend(C(color2), factor):to_css()
end

return M
11 changes: 7 additions & 4 deletions lua/onedarkpro/highlights/editor.lua
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ function M.groups(theme)
CursorLineNrNC = { bg = theme.generated.color_column, fg = theme.palette.gray }, -- CursorLineNr for inactive windows
CursorLineNrNCQuickFix = { bg = theme.palette.bg, fg = theme.palette.purple }, -- CursorLineNr for inactive quickfix windows
Directory = { fg = theme.palette.blue }, -- directory names (and other special names in listings)
DiffAdd = { bg = theme.generated.diff_add, fg = "NONE" }, -- diff mode: Added line |diff.txt|
DiffChange = { bg = theme.generated.diff_change, fg = "NONE" }, -- diff mode: Changed line |diff.txt|
DiffDelete = { bg = theme.generated.diff_delete, fg = "NONE" },
DiffText = { bg = theme.generated.diff_text, fg = "NONE" }, -- diff mode: Changed text within a changed line |diff.txt|

DiffAdd = { bg = theme.generated.diff_add }, -- Added (inserted) lines |diff.txt|
DiffChange = { bg = theme.generated.diff_change }, -- Changed lines |diff.txt|
DiffDelete = { bg = theme.generated.diff_delete }, -- Deleted lines |diff.txt|
DiffText = { bg = theme.generated.diff_text }, -- Changed text inside a Changed line |diff.txt|
DiffTextDelete = { bg = theme.generated.diff_text_delete }, -- Deleted text inside a Deleted line (custom extension)

EndOfBuffer = { fg = theme.palette.bg }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|.
ErrorMsg = { fg = theme.palette.red }, -- error messages on the command line
VertSplit = { bg = config.options.transparency and "NONE" or theme.palette.bg, fg = theme.palette.gray }, -- the column separating vertically split windows
Expand Down
10 changes: 5 additions & 5 deletions lua/onedarkpro/highlights/plugins/gitsigns.lua
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ function M.groups(theme)
GitSignsUntracked = { fg = theme.palette.blue },
GitSignsUntrackedCursorLine = { fg = theme.palette.blue, bg = theme.palette.cursorline },

GitSignsAddPreview = { bg = theme.generated.git_hunk_add },
GitSignsDeletePreview = { bg = theme.generated.git_hunk_delete },
GitSignsAddInline = { bg = theme.generated.git_hunk_add_inline },
GitSignsChangeInline = { bg = theme.generated.git_hunk_change_inline },
GitSignsDeleteInline = { bg = theme.generated.git_hunk_delete_inline },
GitSignsAddPreview = { bg = theme.generated.diff_add },
GitSignsDeletePreview = { bg = theme.generated.diff_delete },
GitSignsAddInline = { bg = theme.generated.diff_text },
GitSignsChangeInline = { bg = theme.generated.diff_change },
GitSignsDeleteInline = { bg = theme.generated.diff_delete },
}
end

Expand Down
2 changes: 1 addition & 1 deletion lua/onedarkpro/highlights/plugins/treesitter.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ function M.groups(theme)
local config = require("onedarkpro.config")

-- Source:
-- https://github.com/nvim-treesitter/nvim-treesitter/blob/master/CONTRIBUTING.md#highlights
-- https://github.com/nvim-treesitter/nvim-treesitter/blob/main/CONTRIBUTING.md#highlights
return {
-- Identifiers
["@variable"] = { fg = theme.palette.red, style = config.styles.variables }, -- various variable names
Expand Down
25 changes: 10 additions & 15 deletions lua/onedarkpro/themes/onedark.lua
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,17 @@ local function generate(colors)
float_bg = colors.float_bg or color.darken(colors.bg, 3),
inlay_hint = colors.inlay_hint or color.darken(colors.gray, 7),

-- Git colors
git_add = colors.git_add or "#109868",
git_change = colors.git_change or "#948B60",
git_delete = colors.git_delete or "#9a353d",
-- Git colors (for sign column)
git_add = colors.git_add or color.darken(colors.green, 35),
git_change = colors.git_change or color.darken(colors.yellow, 30),
git_delete = colors.git_delete or color.darken(colors.red, 35),

git_hunk_add = colors.git_hunk_add or "#43554d",
git_hunk_delete = colors.git_hunk_delete or "#502d30",
git_hunk_add_inline = colors.git_hunk_add_inline or "#3f534f",
git_hunk_change_inline = colors.git_hunk_change_inline or "#41483d",
git_hunk_delete_inline = colors.git_hunk_delete_inline or "#6f2e2d",

-- Git diff
diff_add = colors.diff_add or "#003e4a",
diff_change = colors.diff_change or "#1f4662",
diff_delete = colors.diff_delete or "#501b20",
diff_text = colors.diff_text or "#005869",
-- Diff colors (for diff mode backgrounds)
diff_add = colors.diff_add or color.blend(colors.bg, colors.green, 0.12),
diff_change = colors.diff_change or color.blend(colors.bg, colors.yellow, 0.10),
diff_delete = colors.diff_delete or color.blend(colors.bg, colors.red, 0.12),
diff_text = colors.diff_text or color.blend(colors.bg, colors.cyan, 0.25),
diff_text_delete = colors.diff_text_delete or color.blend(colors.bg, colors.red, 0.25),

-- Lualine colors
bg_statusline = colors.bg_statusline or color.darken(colors.bg, 2.5),
Expand Down
25 changes: 10 additions & 15 deletions lua/onedarkpro/themes/onedark_dark.lua
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,17 @@ local function generate(colors)
float_bg = colors.float_bg or color.darken(colors.bg, 3),
inlay_hint = colors.inlay_hint or color.darken(colors.gray, 7),

-- Git colors
git_add = colors.git_add or "#109868",
git_change = colors.git_change or "#948B60",
git_delete = colors.git_delete or "#9a353d",
-- Git colors (for sign column)
git_add = colors.git_add or color.darken(colors.green, 35),
git_change = colors.git_change or color.darken(colors.yellow, 30),
git_delete = colors.git_delete or color.darken(colors.red, 35),

git_hunk_add = colors.git_hunk_add or "#43554d",
git_hunk_delete = colors.git_hunk_delete or "#502d30",
git_hunk_add_inline = colors.git_hunk_add_inline or "#3f534f",
git_hunk_change_inline = colors.git_hunk_change_inline or "#41483d",
git_hunk_delete_inline = colors.git_hunk_delete_inline or "#6f2e2d",

-- Git diff
diff_add = colors.diff_add or "#003e4a",
diff_change = colors.diff_change or "#1f4662",
diff_delete = colors.diff_delete or "#501b20",
diff_text = colors.diff_text or "#005869",
-- Diff colors (for diff mode backgrounds)
diff_add = colors.diff_add or color.blend(colors.bg, colors.green, 0.12),
diff_change = colors.diff_change or color.blend(colors.bg, colors.yellow, 0.10),
diff_delete = colors.diff_delete or color.blend(colors.bg, colors.red, 0.12),
diff_text = colors.diff_text or color.blend(colors.bg, colors.cyan, 0.25),
diff_text_delete = colors.diff_text_delete or color.blend(colors.bg, colors.red, 0.25),

-- Lualine colors
bg_statusline = colors.bg_statusline or color.lighten(colors.bg, 5.3),
Expand Down
25 changes: 10 additions & 15 deletions lua/onedarkpro/themes/onedark_vivid.lua
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,17 @@ local function generate(colors)
float_bg = colors.float_bg or color.darken(colors.bg, 2.8),
inlay_hint = colors.inlay_hint or color.darken(colors.gray, 7),

-- Git colors
git_add = colors.git_add or "#109868",
git_change = colors.git_change or "#948B60",
git_delete = colors.git_delete or "#9a353d",
-- Git colors (for sign column)
git_add = colors.git_add or color.darken(colors.green, 35),
git_change = colors.git_change or color.darken(colors.yellow, 30),
git_delete = colors.git_delete or color.darken(colors.red, 35),

git_hunk_add = colors.git_hunk_add or "#43554d",
git_hunk_delete = colors.git_hunk_delete or "#502d30",
git_hunk_add_inline = colors.git_hunk_add_inline or "#3f534f",
git_hunk_change_inline = colors.git_hunk_change_inline or "#41483d",
git_hunk_delete_inline = colors.git_hunk_delete_inline or "#6f2e2d",

-- Git diff
diff_add = colors.diff_add or "#003e4a",
diff_change = colors.diff_change or "#1f4662",
diff_delete = colors.diff_delete or "#501b20",
diff_text = colors.diff_text or "#005869",
-- Diff colors (for diff mode backgrounds)
diff_add = colors.diff_add or color.blend(colors.bg, colors.green, 0.12),
diff_change = colors.diff_change or color.blend(colors.bg, colors.yellow, 0.10),
diff_delete = colors.diff_delete or color.blend(colors.bg, colors.red, 0.12),
diff_text = colors.diff_text or color.blend(colors.bg, colors.cyan, 0.25),
diff_text_delete = colors.diff_text_delete or color.blend(colors.bg, colors.red, 0.25),

-- Lualine colors
bg_statusline = colors.bg_statusline or color.darken(colors.bg, 2.8),
Expand Down
25 changes: 10 additions & 15 deletions lua/onedarkpro/themes/onelight.lua
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,17 @@ local function generate(colors)
float_bg = colors.float_bg or color.darken(colors.bg, 4.5),
inlay_hint = colors.inlay_hint or color.lighten(colors.gray, 10),

-- Git colors
git_add = colors.git_add or "#c5e6c7",
git_change = colors.git_change or "#eadcb5",
git_delete = colors.git_delete or "#f9cfce",
-- Git colors (for sign column)
git_add = colors.git_add or color.lighten(colors.green, 35),
git_change = colors.git_change or color.lighten(colors.yellow, 30),
git_delete = colors.git_delete or color.lighten(colors.red, 35),

git_hunk_add = colors.git_hunk_add or "#eaf9ec",
git_hunk_delete = colors.git_hunk_delete or "#fdf1f0",
git_hunk_add_inline = colors.git_hunk_add_inline or "#bbeac0",
git_hunk_change_inline = colors.git_hunk_change_inline or "#41483d",
git_hunk_delete_inline = colors.git_hunk_delete_inline or "#f8c7c5",

-- Git diff
diff_add = colors.diff_add or "#cae3e8",
diff_change = colors.diff_change or "#d4e5f0",
diff_delete = colors.diff_delete or "#f5c6c6",
diff_text = colors.diff_text or "#a6d0d8",
-- Diff colors (for diff mode backgrounds)
diff_add = colors.diff_add or color.blend(colors.bg, colors.green, 0.12),
diff_change = colors.diff_change or color.blend(colors.bg, colors.yellow, 0.10),
diff_delete = colors.diff_delete or color.blend(colors.bg, colors.red, 0.12),
diff_text = colors.diff_text or color.blend(colors.bg, colors.cyan, 0.25),
diff_text_delete = colors.diff_text_delete or color.blend(colors.bg, colors.red, 0.25),

-- Lualine colors
bg_statusline = colors.bg_statusline or color.darken(colors.bg, 2.6),
Expand Down
25 changes: 10 additions & 15 deletions lua/onedarkpro/themes/vaporwave.lua
Original file line number Diff line number Diff line change
Expand Up @@ -40,22 +40,17 @@ local function generate(colors)
float_bg = colors.float_bg or color.darken(colors.bg, 3),
inlay_hint = colors.inlay_hint or color.darken(colors.gray, 7),

-- Git colors
git_add = colors.git_add or "#109868",
git_change = colors.git_change or "#948B60",
git_delete = colors.git_delete or "#9a353d",
-- Git colors (for sign column)
git_add = colors.git_add or color.darken(colors.green, 35),
git_change = colors.git_change or color.darken(colors.yellow, 30),
git_delete = colors.git_delete or color.darken(colors.red, 35),

git_hunk_add = colors.git_hunk_add or "#43554d",
git_hunk_delete = colors.git_hunk_delete or "#502d30",
git_hunk_add_inline = colors.git_hunk_add_inline or "#3f534f",
git_hunk_change_inline = colors.git_hunk_change_inline or "#41483d",
git_hunk_delete_inline = colors.git_hunk_delete_inline or "#6f2e2d",

-- Git diff
diff_add = colors.diff_add or "#003e4a",
diff_change = colors.diff_change or "#1f4662",
diff_delete = colors.diff_delete or "#501b20",
diff_text = colors.diff_text or "#005869",
-- Diff colors (for diff mode backgrounds)
diff_add = colors.diff_add or color.blend(colors.bg, colors.green, 0.12),
diff_change = colors.diff_change or color.blend(colors.bg, colors.yellow, 0.10),
diff_delete = colors.diff_delete or color.blend(colors.bg, colors.red, 0.12),
diff_text = colors.diff_text or color.blend(colors.bg, colors.cyan, 0.25),
diff_text_delete = colors.diff_text_delete or color.blend(colors.bg, colors.red, 0.25),

-- Lualine colors
bg_statusline = colors.bg_statusline or color.darken(colors.bg, 2.5),
Expand Down