dotfiles-mirror/config/nvim/lua/plugins/pinkfly/init.lua
2025-11-15 01:26:16 +03:30

124 lines
3.8 KiB
Lua

vim.cmd("colorscheme moonfly")
local palette = {
black = "#0f0f0f",
surface = "#1a1a1a",
overlay = "#2a2a2a",
text = "#e0def4",
dim = "#6e6a86",
pink = "#ebbcba",
magenta = "#f2a7b0",
peach = "#f6c177",
white = "#ffffff",
comment = "#55505c",
}
vim.cmd("hi clear")
if vim.fn.exists("syntax_on") then
vim.cmd("syntax reset")
end
vim.o.background = "dark"
vim.g.colors_name = "pinkfly"
local ui = {
Normal = { fg = palette.text, bg = palette.black },
NormalNC = { fg = palette.text, bg = palette.black },
NormalFloat = { fg = palette.text, bg = palette.surface },
FloatBorder = { fg = palette.pink, bg = palette.surface },
VertSplit = { fg = palette.overlay, bg = palette.black },
StatusLine = { fg = palette.pink, bg = palette.black },
StatusLineNC = { fg = palette.dim, bg = palette.black },
TabLine = { fg = palette.text, bg = palette.overlay },
TabLineSel = { fg = palette.black, bg = palette.pink, bold = true },
Pmenu = { fg = palette.text, bg = palette.surface },
PmenuSel = { fg = palette.black, bg = palette.pink },
CursorLine = { bg = palette.surface },
CursorLineNr = { fg = palette.pink, bold = true },
LineNr = { fg = palette.comment },
Visual = { bg = "#2a1f2a" },
Search = { bg = palette.pink, fg = palette.black },
IncSearch = { bg = palette.magenta, fg = palette.black },
MatchParen = { fg = palette.pink, bold = true },
}
local syntax = {
Comment = { fg = palette.comment, italic = true },
Constant = { fg = palette.pink },
String = { fg = palette.peach },
Character = { fg = palette.peach },
Number = { fg = palette.magenta },
Boolean = { fg = palette.magenta, bold = true },
Identifier = { fg = palette.pink },
Function = { fg = palette.pink, bold = true },
Statement = { fg = palette.magenta },
Conditional = { fg = palette.pink, bold = true },
Repeat = { fg = palette.pink },
Label = { fg = palette.magenta },
Operator = { fg = palette.pink },
Keyword = { fg = palette.magenta, bold = true },
Exception = { fg = palette.pink },
PreProc = { fg = palette.pink },
Type = { fg = palette.pink },
StorageClass = { fg = palette.magenta },
Structure = { fg = palette.pink },
Typedef = { fg = palette.pink },
Delimiter = { fg = palette.text },
Special = { fg = palette.magenta },
}
local diagnostics = {
DiagnosticError = { fg = "#ff7b7b" },
DiagnosticWarn = { fg = palette.peach },
DiagnosticInfo = { fg = palette.pink },
DiagnosticHint = { fg = palette.magenta },
}
for group, opts in pairs(ui) do
vim.api.nvim_set_hl(0, group, opts)
end
for group, opts in pairs(syntax) do
vim.api.nvim_set_hl(0, group, opts)
end
for group, opts in pairs(diagnostics) do
vim.api.nvim_set_hl(0, group, opts)
end
local ok, lualine = pcall(require, "lualine")
if ok then
local lualine_pink = {
normal = {
a = { bg = palette.pink, fg = palette.black, gui = "bold" },
b = { bg = palette.surface, fg = palette.pink },
c = { bg = palette.black, fg = palette.text },
},
insert = {
a = { bg = palette.magenta, fg = palette.black, gui = "bold" },
},
visual = {
a = { bg = palette.peach, fg = palette.black, gui = "bold" },
},
replace = {
a = { bg = palette.pink, fg = palette.black, gui = "bold" },
},
inactive = {
a = { bg = palette.surface, fg = palette.dim },
b = { bg = palette.surface, fg = palette.dim },
c = { bg = palette.black, fg = palette.dim },
},
}
lualine.setup({
options = {
theme = lualine_pink,
section_separators = { left = "", right = "" },
component_separators = { left = "", right = "" },
},
})
end
vim.g.barbar_highlight = {
background = { fg = palette.dim, bg = palette.black },
buffer_visible = { fg = palette.text, bg = palette.black },
buffer_selected = { fg = palette.pink, bg = palette.black, bold = true },
modified_selected = { fg = palette.peach, bg = palette.black, bold = true },
}