refactor theme

This commit is contained in:
mvllow 2021-08-20 11:06:35 -05:00
commit 5d560dfb11
2 changed files with 292 additions and 328 deletions

View file

@ -1,131 +1,145 @@
local p = require('rose-pine.palette') local p = require('rose-pine.palette')
local theme = {} local theme = {}
local maybe_base = p.base
theme.loadSyntax = function() if vim.g.rose_pine_disable_background then
local syntax = { maybe_base = p.none
Boolean = { fg = p.gold },
Character = { fg = p.gold },
Comment = {
fg = p.subtle,
style = vim.g.rose_pine_enable_italics and 'italic',
},
Conditional = { fg = p.pine },
Constant = { fg = p.gold },
Debug = { fg = p.rose },
Define = { fg = p.iris },
Delimiter = { fg = p.rose },
Error = { fg = p.love },
Exception = { fg = p.pine },
Float = { fg = p.gold },
Function = { fg = p.rose },
Identifier = { fg = p.rose },
-- Ignore = { fg = '' },
Include = { fg = p.iris },
Keyword = { fg = p.pine },
Label = { fg = p.foam },
Macro = { fg = p.iris },
Number = { fg = p.gold },
Operator = { fg = p.subtle },
PreCondit = { fg = p.iris },
PreProc = { fg = p.iris },
Repeat = { fg = p.pine },
Special = { fg = p.rose },
SpecialChar = { fg = p.rose },
SpecialComment = { fg = p.iris },
Statement = { fg = p.pine },
StorageClass = { fg = p.foam },
String = { fg = p.gold },
Structure = { fg = p.foam },
Tag = { fg = p.rose },
Title = { fg = p.text },
Todo = { fg = p.iris },
Type = { fg = p.foam },
Typedef = { fg = p.foam },
Underlined = { fg = p.foam, style = 'underline' },
-- html
htmlArg = { fg = p.iris },
htmlEndTag = { fg = p.subtle },
htmlLink = { fg = p.text },
htmlTag = { fg = p.subtle },
htmlTagN = { fg = p.love },
htmlTagName = { fg = p.foam },
}
return syntax
end end
theme.loadEditor = function() theme.base = {
local editor = { ColorColumn = { bg = p.highlight_overlay },
ColorColumn = { bg = p.highlight_overlay }, -- Conceal = {},
-- Conceal = {}, -- Cursor = {},
-- Cursor = {}, CursorColumn = { bg = p.highlight },
CursorColumn = { bg = p.highlight }, -- CursorIM = {},
-- CursorIM = {}, CursorLine = { bg = p.highlight_inactive },
CursorLine = { bg = p.highlight_inactive }, CursorLineNr = { fg = p.text },
CursorLineNr = { fg = p.text }, DarkenedPanel = { bg = p.surface },
DarkenedPanel = { bg = p.surface }, DarkenedStatusline = { bg = p.surface },
DarkenedStatusline = { bg = p.surface }, DiffAdd = { fg = p.foam },
DiffAdd = { fg = p.foam }, DiffChange = { fg = p.rose },
DiffChange = { fg = p.rose }, DiffDelete = { fg = p.love },
DiffDelete = { fg = p.love }, DiffText = { fg = p.text },
DiffText = { fg = p.text }, Directory = { fg = p.foam, bg = p.none },
Directory = { fg = p.foam, bg = p.none }, -- EndOfBuffer = {},
-- EndOfBuffer = {}, ErrorMsg = { fg = p.love, style = 'bold' },
ErrorMsg = { fg = p.love, style = 'bold' }, FloatBorder = { fg = p.highlight, bg = p.surface },
FloatBorder = { fg = p.highlight, bg = p.surface }, FoldColumn = {},
FoldColumn = {}, Folded = { fg = p.text, bg = p.surface },
Folded = { fg = p.text, bg = p.surface }, IncSearch = { bg = p.highlight },
IncSearch = { bg = p.highlight }, LineNr = { fg = p.inactive },
LineNr = { fg = p.inactive }, MatchParen = { fg = p.text, bg = p.overlay },
MatchParen = { fg = p.text, bg = p.overlay }, -- ModeMsg = {},
-- ModeMsg = {}, MoreMsg = { fg = p.iris },
MoreMsg = { fg = p.iris }, NonText = { fg = p.inactive },
NonText = { fg = p.inactive }, Normal = { fg = p.text, bg = maybe_base },
Normal = { fg = p.text }, -- NormalFloat = {},
-- NormalFloat = {}, Pmenu = { fg = p.subtle, bg = p.surface },
Pmenu = { fg = p.subtle, bg = p.surface }, PmenuSbar = { bg = p.overlay },
PmenuSbar = { bg = p.overlay }, PmenuSel = { fg = p.text, bg = p.overlay },
PmenuSel = { fg = p.text, bg = p.overlay }, PmenuThumb = { bg = p.inactive },
PmenuThumb = { bg = p.inactive }, Question = { fg = p.gold },
Question = { fg = p.gold }, -- QuickFixLine = {},
-- QuickFixLine = {}, Search = { fg = p.iris, bg = p.highlight_overlay },
Search = { fg = p.iris, bg = p.highlight_overlay }, SpecialKey = { fg = p.foam },
SpecialKey = { fg = p.foam }, SpellBad = { style = 'undercurl', sp = p.love },
SpellBad = { style = 'undercurl', sp = p.love }, SpellCap = { style = 'undercurl', sp = p.subtle },
SpellCap = { style = 'undercurl', sp = p.subtle }, SpellLocal = { style = 'undercurl', sp = p.subtle },
SpellLocal = { style = 'undercurl', sp = p.subtle }, SpellRare = { style = 'undercurl', sp = p.subtle },
SpellRare = { style = 'undercurl', sp = p.subtle }, SignColumn = { fg = p.text, bg = maybe_base },
SignColumn = {}, StatusLine = { fg = p.text, bg = p.surface },
StatusLine = { fg = p.text, bg = p.surface }, StatusLineNC = { fg = p.subtle, bg = p.surface },
StatusLineNC = { fg = p.subtle, bg = p.surface }, -- StatusLineTerm = {},
-- StatusLineTerm = {}, -- StatusLineTermNC = {},
-- StatusLineTermNC = {}, -- TabLine = {},
-- TabLine = {}, -- TabLineFill = {},
-- TabLineFill = {}, -- TabLineSel = {},
-- TabLineSel = {}, Title = { fg = p.rose },
Title = { fg = p.rose }, VertSplit = { fg = p.overlay },
VertSplit = { fg = p.overlay }, Visual = { bg = p.highlight },
Visual = { bg = p.highlight }, -- VisualNOS = {},
-- VisualNOS = {}, WarningMsg = { fg = p.gold },
WarningMsg = { fg = p.gold }, -- Whitespace = {},
-- Whitespace = {}, -- WildMenu = {},
-- WildMenu = {},
}
if vim.g.rose_pine_disable_background == true then Boolean = { fg = p.gold },
editor.Normal = { fg = p.text, bg = p.none } Character = { fg = p.gold },
editor.SignColumn = { fg = p.text, bg = p.none } Comment = {
else fg = p.subtle,
editor.Normal = { fg = p.text, bg = p.base } style = vim.g.rose_pine_enable_italics and 'italic',
editor.SignColumn = { fg = p.text, bg = p.base } },
end Conditional = { fg = p.pine },
Constant = { fg = p.gold },
Debug = { fg = p.rose },
Define = { fg = p.iris },
Delimiter = { fg = p.rose },
Error = { fg = p.love },
Exception = { fg = p.pine },
Float = { fg = p.gold },
Function = { fg = p.rose },
Identifier = { fg = p.rose },
-- Ignore = { fg = '' },
Include = { fg = p.iris },
Keyword = { fg = p.pine },
Label = { fg = p.foam },
Macro = { fg = p.iris },
Number = { fg = p.gold },
Operator = { fg = p.subtle },
PreCondit = { fg = p.iris },
PreProc = { fg = p.iris },
Repeat = { fg = p.pine },
Special = { fg = p.rose },
SpecialChar = { fg = p.rose },
SpecialComment = { fg = p.iris },
Statement = { fg = p.pine },
StorageClass = { fg = p.foam },
String = { fg = p.gold },
Structure = { fg = p.foam },
Tag = { fg = p.rose },
Todo = { fg = p.iris },
Type = { fg = p.foam },
Typedef = { fg = p.foam },
Underlined = { fg = p.foam, style = 'underline' },
return editor htmlArg = { fg = p.iris },
end htmlEndTag = { fg = p.subtle },
htmlLink = { fg = p.text },
htmlTag = { fg = p.subtle },
htmlTagN = { fg = p.love },
htmlTagName = { fg = p.foam },
theme.loadTerminal = function() LspDiagnosticsDefaultHint = { fg = p.iris },
LspDiagnosticsDefaultInformation = { fg = p.foam },
LspDiagnosticsDefaultWarning = { fg = p.gold },
LspDiagnosticsDefaultError = { fg = p.love },
LspDiagnosticsFloatingHint = { fg = p.iris },
LspDiagnosticsFloatingInformation = { fg = p.foam },
LspDiagnosticsFloatingWarning = { fg = p.gold },
LspDiagnosticsFloatingError = { fg = p.love },
LspDiagnosticsSignHint = { fg = p.iris },
LspDiagnosticsSignInformation = { fg = p.foam },
LspDiagnosticsSignWarning = { fg = p.gold },
LspDiagnosticsSignError = { fg = p.love },
LspDiagnosticsUnderlineHint = { style = 'undercurl', sp = p.iris },
LspDiagnosticsUnderlineInformation = { style = 'undercurl', sp = p.foam },
LspDiagnosticsUnderlineWarning = { style = 'undercurl', sp = p.gold },
LspDiagnosticsUnderlineError = { style = 'undercurl', sp = p.love },
LspDiagnosticsVirtualTextHint = { fg = p.iris },
LspDiagnosticsVirtualTextInformation = { fg = p.foam },
LspDiagnosticsVirtualTextWarning = { fg = p.gold },
LspDiagnosticsVirtualTextError = { fg = p.love },
LspReferenceText = { fg = p.rose, bg = p.highlight },
LspReferenceRead = { fg = p.rose, bg = p.highlight },
LspReferenceWrite = { fg = p.rose, bg = p.highlight },
}
function theme.load_terminal()
-- black -- black
vim.g.terminal_color_0 = p.overlay vim.g.terminal_color_0 = p.overlay
vim.g.terminal_color_8 = p.subtle vim.g.terminal_color_8 = p.subtle
@ -152,204 +166,167 @@ theme.loadTerminal = function()
vim.g.terminal_color_15 = p.text vim.g.terminal_color_15 = p.text
end end
theme.loadTreesitter = function() theme.treesitter = {
local treesitter = { -- TSAnnotation = {},
-- TSAnnotation = {}, -- TSAttribute = {},
-- TSAttribute = {}, TSBoolean = { fg = p.rose },
TSBoolean = { fg = p.rose }, -- TSCharacter = {},
-- TSCharacter = {}, TSComment = {
TSComment = { fg = p.subtle,
fg = p.subtle, style = vim.g.rose_pine_enable_italics and 'italic',
style = vim.g.rose_pine_enable_italics and 'italic', },
}, -- TSConditional = {},
-- TSConditional = {}, TSConstBuiltin = { fg = p.love },
TSConstBuiltin = { fg = p.love }, -- TSConstMacro = {},
-- TSConstMacro = {}, TSConstant = { fg = p.foam },
TSConstant = { fg = p.foam }, TSConstructor = { fg = p.foam },
TSConstructor = { fg = p.foam }, -- TSEmphasis = {},
-- TSEmphasis = {}, -- TSError = {},
-- TSError = {}, -- TSException = {},
-- TSException = {}, TSField = { fg = p.foam },
TSField = { fg = p.foam }, -- TSFloat = {},
-- TSFloat = {}, TSFuncBuiltin = { fg = p.love },
TSFuncBuiltin = { fg = p.love }, -- TSFuncMacro = {},
-- TSFuncMacro = {}, TSFunction = { fg = p.rose },
TSFunction = { fg = p.rose }, TSInclude = { fg = p.pine },
TSInclude = { fg = p.pine }, TSKeyword = { fg = p.pine },
TSKeyword = { fg = p.pine }, -- TSKeywordFunction = {},
-- TSKeywordFunction = {}, TSKeywordOperator = { fg = p.pine },
TSKeywordOperator = { fg = p.pine }, TSLabel = { fg = p.foam },
TSLabel = { fg = p.foam }, -- TSLiteral = {},
-- TSLiteral = {}, -- TSMethod = {},
-- TSMethod = {}, -- TSNamespace = {},
-- TSNamespace = {}, -- TSNone = {},
-- TSNone = {}, -- TSNumber = {},
-- TSNumber = {}, TSOperator = { fg = p.pine },
TSOperator = { fg = p.pine }, TSParameter = {
TSParameter = { fg = p.iris,
fg = p.iris, style = vim.g.rose_pine_enable_italics and 'italic',
style = vim.g.rose_pine_enable_italics and 'italic', },
}, -- TSParameterReference = {},
-- TSParameterReference = {}, TSProperty = {
TSProperty = { fg = p.iris,
fg = p.iris, style = vim.g.rose_pine_enable_italics and 'italic',
style = vim.g.rose_pine_enable_italics and 'italic', },
}, TSPunctBracket = { fg = p.subtle },
TSPunctBracket = { fg = p.subtle }, TSPunctDelimiter = { fg = p.subtle },
TSPunctDelimiter = { fg = p.subtle }, TSPunctSpecial = { fg = p.subtle },
TSPunctSpecial = { fg = p.subtle }, -- TSRepeat = {},
-- TSRepeat = {}, -- TSStrike = {},
-- TSStrike = {}, TSString = { fg = p.gold },
TSString = { fg = p.gold }, TSStringEscape = { fg = p.pine },
TSStringEscape = { fg = p.pine }, -- TSStringRegex = {},
-- TSStringRegex = {}, -- TSSymbol = {},
-- TSSymbol = {}, TSTag = { fg = p.foam },
TSTag = { fg = p.foam }, TSTagDelimiter = { fg = p.subtle },
TSTagDelimiter = { fg = p.subtle }, TSText = { fg = p.text },
TSText = { fg = p.text }, -- TSTitle = {},
-- TSTitle = {}, -- TSType = {},
-- TSType = {}, -- TSTypeBuiltin = {},
-- TSTypeBuiltin = {}, TSURI = { fg = p.gold },
TSURI = { fg = p.gold }, -- TSUnderline = {},
-- TSUnderline = {}, TSVariable = {
TSVariable = { fg = p.text,
fg = p.text, style = vim.g.rose_pine_enable_italics and 'italic',
style = vim.g.rose_pine_enable_italics and 'italic', },
}, TSVariableBuiltin = { fg = p.love },
TSVariableBuiltin = { fg = p.love }, }
}
return treesitter theme.plugins = {
end -- barbar.nvim
-- https://github.com/romgrk/barbar.nvim
BufferTabpageFill = { bg = p.none },
BufferCurrent = { fg = p.text, bg = p.overlay },
BufferCurrentIndex = { fg = p.text, bg = p.overlay },
BufferCurrentMod = { fg = p.foam, bg = p.overlay },
BufferCurrentSign = { fg = p.subtle, bg = p.overlay },
BufferInactive = { fg = p.subtle },
BufferInactiveIndex = { fg = p.subtle },
BufferInactiveMod = { fg = p.foam },
BufferInactiveSign = { fg = p.subtle },
BufferVisible = { fg = p.subtle },
BufferVisibleIndex = { fg = p.subtle },
BufferVisibleMod = { fg = p.foam },
BufferVisibleSign = { fg = p.subtle },
theme.loadLsp = function() -- gitsigns.nvim
local lsp = { -- https://github.com/lewis6991/gitsigns.nvim
LspDiagnosticsDefaultError = { fg = p.love }, SignAdd = { fg = p.foam },
LspDiagnosticsDefaultHint = { fg = p.iris }, SignChange = { fg = p.rose },
LspDiagnosticsDefaultInformation = { fg = p.foam }, SignDelete = { fg = p.love },
LspDiagnosticsDefaultWarning = { fg = p.gold }, GitSignsAdd = { fg = p.foam },
LspDiagnosticsFloatingError = { fg = p.love }, GitSignsChange = { fg = p.rose },
LspDiagnosticsFloatingHint = { fg = p.iris }, GitSignsDelete = { fg = p.love },
LspDiagnosticsFloatingInformation = { fg = p.foam },
LspDiagnosticsFloatingWarning = { fg = p.gold },
LspDiagnosticsSignError = { fg = p.love },
LspDiagnosticsSignHint = { fg = p.iris },
LspDiagnosticsSignInformation = { fg = p.foam },
LspDiagnosticsSignWarning = { fg = p.gold },
LspDiagnosticsUnderlineError = { style = 'undercurl', sp = p.love },
LspDiagnosticsUnderlineHint = { style = 'undercurl', sp = p.iris },
LspDiagnosticsUnderlineInformation = { style = 'undercurl', sp = p.foam },
LspDiagnosticsUnderlineWarning = { style = 'undercurl', sp = p.gold },
LspDiagnosticsVirtualTextError = { fg = p.love },
LspDiagnosticsVirtualTextHint = { fg = p.iris },
LspDiagnosticsVirtualTextInformation = { fg = p.foam },
LspDiagnosticsVirtualTextWarning = { fg = p.gold },
LspReferenceRead = { fg = p.rose, bg = p.highlight },
LspReferenceText = { fg = p.rose, bg = p.highlight },
LspReferenceWrite = { fg = p.rose, bg = p.highlight },
}
return lsp -- modes.nvim
end -- https://github.com/mvllow/modes.nvim
ModesCopy = { bg = p.gold },
ModesDelete = { bg = p.love },
ModesInsert = { bg = p.foam },
ModesVisual = { bg = p.iris },
theme.loadPlugins = function() -- nvim-tree.lua
local plugins = { -- https://github.com/kyazdani42/nvim-tree.lua
-- barbar.nvim NvimTreeNormal = { fg = p.text },
-- https://github.com/romgrk/barbar.nvim
BufferTabpageFill = { bg = p.none },
BufferCurrent = { fg = p.text, bg = p.overlay },
BufferCurrentIndex = { fg = p.text, bg = p.overlay },
BufferCurrentMod = { fg = p.foam, bg = p.overlay },
BufferCurrentSign = { fg = p.subtle, bg = p.overlay },
BufferInactive = { fg = p.subtle },
BufferInactiveIndex = { fg = p.subtle },
BufferInactiveMod = { fg = p.foam },
BufferInactiveSign = { fg = p.subtle },
BufferVisible = { fg = p.subtle },
BufferVisibleIndex = { fg = p.subtle },
BufferVisibleMod = { fg = p.foam },
BufferVisibleSign = { fg = p.subtle },
-- gitsigns.nvim NvimTreeFileDeleted = { fg = p.love },
-- https://github.com/lewis6991/gitsigns.nvim NvimTreeFileDirty = { fg = p.rose },
SignAdd = { fg = p.foam }, NvimTreeFileMerge = { fg = p.iris },
SignChange = { fg = p.rose }, NvimTreeFileNew = { fg = p.foam },
SignDelete = { fg = p.love }, NvimTreeFileRenamed = { fg = p.pine },
GitSignsAdd = { fg = p.foam }, NvimTreeFileStaged = { fg = p.iris },
GitSignsChange = { fg = p.rose },
GitSignsDelete = { fg = p.love },
-- modes.nvim NvimTreeEmptyFolderName = { fg = p.inactive },
-- https://github.com/mvllow/modes.nvim NvimTreeFolderIcon = { fg = p.subtle },
ModesCopy = { bg = p.gold }, NvimTreeFolderName = { fg = p.foam },
ModesDelete = { bg = p.love }, NvimTreeOpenedFile = { fg = p.text, bg = p.highlight },
ModesInsert = { bg = p.foam }, NvimTreeOpenedFolderName = { fg = p.foam },
ModesVisual = { bg = p.iris }, NvimTreeRootFolder = { fg = p.iris },
NvimTreeSpecialFile = { link = 'NvimTreeNormal' },
-- nvim-tree.lua NvimTreeGitDeleted = { fg = p.love },
-- https://github.com/kyazdani42/nvim-tree.lua NvimTreeGitDirty = { fg = p.rose },
NvimTreeNormal = { fg = p.text }, NvimTreeGitIgnored = { fg = p.subtle },
NvimTreeGitMerge = { fg = p.iris },
NvimTreeGitNew = { fg = p.foam },
NvimTreeGitRenamed = { fg = p.pine },
NvimTreeGitStaged = { fg = p.iris },
NvimTreeFileDeleted = { fg = p.love },
NvimTreeFileDirty = { fg = p.rose },
NvimTreeFileMerge = { fg = p.iris },
NvimTreeFileNew = { fg = p.foam },
NvimTreeFileRenamed = { fg = p.pine },
NvimTreeFileStaged = { fg = p.iris },
NvimTreeEmptyFolderName = { fg = p.inactive }, -- todo-comments.nvim
NvimTreeFolderIcon = { fg = p.subtle }, -- https://github.com/folke/todo-comments.nvim
NvimTreeFolderName = { fg = p.foam }, TodoBgFIX = { fg = '#000000', bg = p.love },
NvimTreeOpenedFile = { fg = p.text, bg = p.highlight }, TodoFgFIX = { fg = p.love, bg = p.base },
NvimTreeOpenedFolderName = { fg = p.foam }, TodoSignFIX = { fg = p.love, bg = p.base },
NvimTreeRootFolder = { fg = p.iris },
NvimTreeSpecialFile = { link = 'NvimTreeNormal' },
NvimTreeGitDeleted = { fg = p.love }, TodoBgTODO = { fg = '#000000', bg = p.rose },
NvimTreeGitDirty = { fg = p.rose }, TodoFgTODO = { fg = p.rose, bg = p.base },
NvimTreeGitIgnored = { fg = p.subtle }, TodoSignTODO = { fg = p.rose, bg = p.base },
NvimTreeGitMerge = { fg = p.iris },
NvimTreeGitNew = { fg = p.foam },
NvimTreeGitRenamed = { fg = p.pine },
NvimTreeGitStaged = { fg = p.iris },
-- which-key.nvim TodoBgHACK = { fg = '#ffffff', bg = p.pine },
-- https://github.com/folke/which-key.nvim TodoFgHACK = { fg = p.pine, bg = p.base },
WhichKey = { fg = p.iris }, TodoSignHACK = { fg = p.pine, bg = p.base },
WhichKeyGroup = { fg = p.foam },
WhichKeySeparator = { fg = p.subtle },
WhichKeyDesc = { fg = p.gold },
WhichKeyFloat = { bg = p.surface },
WhichKeyValue = { fg = p.rose },
-- todo-comments.nvim TodoBgWARN = { fg = '#000000', bg = p.gold },
-- https://github.com/folke/todo-comments.nvim TodoFgWARN = { fg = p.gold, bg = p.base },
TodoBgFIX = { fg = '#000000', bg = p.love }, TodoSignWARN = { fg = p.gold, bg = p.base },
TodoFgFIX = { fg = p.love, bg = p.base },
TodoSignFIX = { fg = p.love, bg = p.base },
TodoBgTODO = { fg = '#000000', bg = p.rose }, TodoBgPERF = { fg = '#000000', bg = p.foam },
TodoFgTODO = { fg = p.rose, bg = p.base }, TodoFgPERF = { fg = p.foam, bg = p.base },
TodoSignTODO = { fg = p.rose, bg = p.base }, TodoSignPERF = { fg = p.foam, bg = p.base },
TodoBgHACK = { fg = '#ffffff', bg = p.pine }, TodoBgNOTE = { fg = '#000000', bg = p.iris },
TodoFgHACK = { fg = p.pine, bg = p.base }, TodoFgNOTE = { fg = p.iris, bg = p.base },
TodoSignHACK = { fg = p.pine, bg = p.base }, TodoSignNOTE = { fg = p.iris, bg = p.base },
TodoBgWARN = { fg = '#000000', bg = p.gold }, -- which-key.nvim
TodoFgWARN = { fg = p.gold, bg = p.base }, -- https://github.com/folke/which-key.nvim
TodoSignWARN = { fg = p.gold, bg = p.base }, WhichKey = { fg = p.iris },
WhichKeyGroup = { fg = p.foam },
TodoBgPERF = { fg = '#000000', bg = p.foam }, WhichKeySeparator = { fg = p.subtle },
TodoFgPERF = { fg = p.foam, bg = p.base }, WhichKeyDesc = { fg = p.gold },
TodoSignPERF = { fg = p.foam, bg = p.base }, WhichKeyFloat = { bg = p.surface },
WhichKeyValue = { fg = p.rose },
TodoBgNOTE = { fg = '#000000', bg = p.iris }, }
TodoFgNOTE = { fg = p.iris, bg = p.base },
TodoSignNOTE = { fg = p.iris, bg = p.base },
}
return plugins
end
return theme return theme

View file

@ -1,5 +1,4 @@
local util = {} local util = {}
local theme = require('rose-pine.theme')
util.highlight = function(group, color) util.highlight = function(group, color)
local style = color.style and 'gui=' .. color.style or 'gui=NONE' local style = color.style and 'gui=' .. color.style or 'gui=NONE'
@ -25,11 +24,13 @@ util.highlight = function(group, color)
end end
function util.load() function util.load()
vim.cmd('hi clear') if vim.g.colors_name then
if vim.fn.exists('syntax_on') then vim.cmd('hi clear')
vim.cmd('syntax reset')
end end
if
vim.o.termguicolors = true
vim.g.colors_name = 'rose-pine'
vim.g.rose_pine_variant == 'dawn' vim.g.rose_pine_variant == 'dawn'
or vim.g.rose_pine_variant == 'rose-pine-dawn' or vim.g.rose_pine_variant == 'rose-pine-dawn'
then then
@ -37,25 +38,18 @@ function util.load()
else else
vim.opt.background = 'dark' vim.opt.background = 'dark'
end end
vim.o.termguicolors = true
vim.g.colors_name = 'rose-pine' local theme = require('rose-pine.theme')
local async local async
async = vim.loop.new_async(vim.schedule_wrap(function() async = vim.loop.new_async(vim.schedule_wrap(function()
theme.loadTerminal() theme.load_terminal()
local plugins = theme.loadPlugins()
local treesitter = theme.loadTreesitter()
local lsp = theme.loadLsp()
for group, colors in pairs(plugins) do for group, colors in pairs(theme.treesitter) do
util.highlight(group, colors) util.highlight(group, colors)
end end
for group, colors in pairs(treesitter) do for group, colors in pairs(theme.plugins) do
util.highlight(group, colors)
end
for group, colors in pairs(lsp) do
util.highlight(group, colors) util.highlight(group, colors)
end end
@ -63,18 +57,11 @@ function util.load()
end)) end))
-- load priority groups first -- load priority groups first
local editor = theme.loadEditor() for group, colors in pairs(theme.base) do
local syntax = theme.loadSyntax()
for group, colors in pairs(editor) do
util.highlight(group, colors) util.highlight(group, colors)
end end
for group, colors in pairs(syntax) do -- load enhancements (eg. treesitter, plugins)
util.highlight(group, colors)
end
-- load enhancements (eg. lsp, treesitter, plugins)
async:send() async:send()
end end