diff --git a/lua/rose-pine/theme.lua b/lua/rose-pine/theme.lua index 18d42f8..c6dca83 100644 --- a/lua/rose-pine/theme.lua +++ b/lua/rose-pine/theme.lua @@ -1,131 +1,145 @@ local p = require('rose-pine.palette') local theme = {} +local maybe_base = p.base -theme.loadSyntax = function() - local syntax = { - 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 +if vim.g.rose_pine_disable_background then + maybe_base = p.none end -theme.loadEditor = function() - local editor = { - ColorColumn = { bg = p.highlight_overlay }, - -- Conceal = {}, - -- Cursor = {}, - CursorColumn = { bg = p.highlight }, - -- CursorIM = {}, - CursorLine = { bg = p.highlight_inactive }, - CursorLineNr = { fg = p.text }, - DarkenedPanel = { bg = p.surface }, - DarkenedStatusline = { bg = p.surface }, - DiffAdd = { fg = p.foam }, - DiffChange = { fg = p.rose }, - DiffDelete = { fg = p.love }, - DiffText = { fg = p.text }, - Directory = { fg = p.foam, bg = p.none }, - -- EndOfBuffer = {}, - ErrorMsg = { fg = p.love, style = 'bold' }, - FloatBorder = { fg = p.highlight, bg = p.surface }, - FoldColumn = {}, - Folded = { fg = p.text, bg = p.surface }, - IncSearch = { bg = p.highlight }, - LineNr = { fg = p.inactive }, - MatchParen = { fg = p.text, bg = p.overlay }, - -- ModeMsg = {}, - MoreMsg = { fg = p.iris }, - NonText = { fg = p.inactive }, - Normal = { fg = p.text }, - -- NormalFloat = {}, - Pmenu = { fg = p.subtle, bg = p.surface }, - PmenuSbar = { bg = p.overlay }, - PmenuSel = { fg = p.text, bg = p.overlay }, - PmenuThumb = { bg = p.inactive }, - Question = { fg = p.gold }, - -- QuickFixLine = {}, - Search = { fg = p.iris, bg = p.highlight_overlay }, - SpecialKey = { fg = p.foam }, - SpellBad = { style = 'undercurl', sp = p.love }, - SpellCap = { style = 'undercurl', sp = p.subtle }, - SpellLocal = { style = 'undercurl', sp = p.subtle }, - SpellRare = { style = 'undercurl', sp = p.subtle }, - SignColumn = {}, - StatusLine = { fg = p.text, bg = p.surface }, - StatusLineNC = { fg = p.subtle, bg = p.surface }, - -- StatusLineTerm = {}, - -- StatusLineTermNC = {}, - -- TabLine = {}, - -- TabLineFill = {}, - -- TabLineSel = {}, - Title = { fg = p.rose }, - VertSplit = { fg = p.overlay }, - Visual = { bg = p.highlight }, - -- VisualNOS = {}, - WarningMsg = { fg = p.gold }, - -- Whitespace = {}, - -- WildMenu = {}, - } +theme.base = { + ColorColumn = { bg = p.highlight_overlay }, + -- Conceal = {}, + -- Cursor = {}, + CursorColumn = { bg = p.highlight }, + -- CursorIM = {}, + CursorLine = { bg = p.highlight_inactive }, + CursorLineNr = { fg = p.text }, + DarkenedPanel = { bg = p.surface }, + DarkenedStatusline = { bg = p.surface }, + DiffAdd = { fg = p.foam }, + DiffChange = { fg = p.rose }, + DiffDelete = { fg = p.love }, + DiffText = { fg = p.text }, + Directory = { fg = p.foam, bg = p.none }, + -- EndOfBuffer = {}, + ErrorMsg = { fg = p.love, style = 'bold' }, + FloatBorder = { fg = p.highlight, bg = p.surface }, + FoldColumn = {}, + Folded = { fg = p.text, bg = p.surface }, + IncSearch = { bg = p.highlight }, + LineNr = { fg = p.inactive }, + MatchParen = { fg = p.text, bg = p.overlay }, + -- ModeMsg = {}, + MoreMsg = { fg = p.iris }, + NonText = { fg = p.inactive }, + Normal = { fg = p.text, bg = maybe_base }, + -- NormalFloat = {}, + Pmenu = { fg = p.subtle, bg = p.surface }, + PmenuSbar = { bg = p.overlay }, + PmenuSel = { fg = p.text, bg = p.overlay }, + PmenuThumb = { bg = p.inactive }, + Question = { fg = p.gold }, + -- QuickFixLine = {}, + Search = { fg = p.iris, bg = p.highlight_overlay }, + SpecialKey = { fg = p.foam }, + SpellBad = { style = 'undercurl', sp = p.love }, + SpellCap = { style = 'undercurl', sp = p.subtle }, + SpellLocal = { style = 'undercurl', sp = p.subtle }, + SpellRare = { style = 'undercurl', sp = p.subtle }, + SignColumn = { fg = p.text, bg = maybe_base }, + StatusLine = { fg = p.text, bg = p.surface }, + StatusLineNC = { fg = p.subtle, bg = p.surface }, + -- StatusLineTerm = {}, + -- StatusLineTermNC = {}, + -- TabLine = {}, + -- TabLineFill = {}, + -- TabLineSel = {}, + Title = { fg = p.rose }, + VertSplit = { fg = p.overlay }, + Visual = { bg = p.highlight }, + -- VisualNOS = {}, + WarningMsg = { fg = p.gold }, + -- Whitespace = {}, + -- WildMenu = {}, - if vim.g.rose_pine_disable_background == true then - editor.Normal = { fg = p.text, bg = p.none } - editor.SignColumn = { fg = p.text, bg = p.none } - else - editor.Normal = { fg = p.text, bg = p.base } - editor.SignColumn = { fg = p.text, bg = p.base } - end + 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 }, + Todo = { fg = p.iris }, + Type = { fg = p.foam }, + Typedef = { fg = p.foam }, + Underlined = { fg = p.foam, style = 'underline' }, - return editor -end + htmlArg = { fg = p.iris }, + 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 vim.g.terminal_color_0 = p.overlay vim.g.terminal_color_8 = p.subtle @@ -152,204 +166,167 @@ theme.loadTerminal = function() vim.g.terminal_color_15 = p.text end -theme.loadTreesitter = function() - local treesitter = { - -- TSAnnotation = {}, - -- TSAttribute = {}, - TSBoolean = { fg = p.rose }, - -- TSCharacter = {}, - TSComment = { - fg = p.subtle, - style = vim.g.rose_pine_enable_italics and 'italic', - }, - -- TSConditional = {}, - TSConstBuiltin = { fg = p.love }, - -- TSConstMacro = {}, - TSConstant = { fg = p.foam }, - TSConstructor = { fg = p.foam }, - -- TSEmphasis = {}, - -- TSError = {}, - -- TSException = {}, - TSField = { fg = p.foam }, - -- TSFloat = {}, - TSFuncBuiltin = { fg = p.love }, - -- TSFuncMacro = {}, - TSFunction = { fg = p.rose }, - TSInclude = { fg = p.pine }, - TSKeyword = { fg = p.pine }, - -- TSKeywordFunction = {}, - TSKeywordOperator = { fg = p.pine }, - TSLabel = { fg = p.foam }, - -- TSLiteral = {}, - -- TSMethod = {}, - -- TSNamespace = {}, - -- TSNone = {}, - -- TSNumber = {}, - TSOperator = { fg = p.pine }, - TSParameter = { - fg = p.iris, - style = vim.g.rose_pine_enable_italics and 'italic', - }, - -- TSParameterReference = {}, - TSProperty = { - fg = p.iris, - style = vim.g.rose_pine_enable_italics and 'italic', - }, - TSPunctBracket = { fg = p.subtle }, - TSPunctDelimiter = { fg = p.subtle }, - TSPunctSpecial = { fg = p.subtle }, - -- TSRepeat = {}, - -- TSStrike = {}, - TSString = { fg = p.gold }, - TSStringEscape = { fg = p.pine }, - -- TSStringRegex = {}, - -- TSSymbol = {}, - TSTag = { fg = p.foam }, - TSTagDelimiter = { fg = p.subtle }, - TSText = { fg = p.text }, - -- TSTitle = {}, - -- TSType = {}, - -- TSTypeBuiltin = {}, - TSURI = { fg = p.gold }, - -- TSUnderline = {}, - TSVariable = { - fg = p.text, - style = vim.g.rose_pine_enable_italics and 'italic', - }, - TSVariableBuiltin = { fg = p.love }, - } +theme.treesitter = { + -- TSAnnotation = {}, + -- TSAttribute = {}, + TSBoolean = { fg = p.rose }, + -- TSCharacter = {}, + TSComment = { + fg = p.subtle, + style = vim.g.rose_pine_enable_italics and 'italic', + }, + -- TSConditional = {}, + TSConstBuiltin = { fg = p.love }, + -- TSConstMacro = {}, + TSConstant = { fg = p.foam }, + TSConstructor = { fg = p.foam }, + -- TSEmphasis = {}, + -- TSError = {}, + -- TSException = {}, + TSField = { fg = p.foam }, + -- TSFloat = {}, + TSFuncBuiltin = { fg = p.love }, + -- TSFuncMacro = {}, + TSFunction = { fg = p.rose }, + TSInclude = { fg = p.pine }, + TSKeyword = { fg = p.pine }, + -- TSKeywordFunction = {}, + TSKeywordOperator = { fg = p.pine }, + TSLabel = { fg = p.foam }, + -- TSLiteral = {}, + -- TSMethod = {}, + -- TSNamespace = {}, + -- TSNone = {}, + -- TSNumber = {}, + TSOperator = { fg = p.pine }, + TSParameter = { + fg = p.iris, + style = vim.g.rose_pine_enable_italics and 'italic', + }, + -- TSParameterReference = {}, + TSProperty = { + fg = p.iris, + style = vim.g.rose_pine_enable_italics and 'italic', + }, + TSPunctBracket = { fg = p.subtle }, + TSPunctDelimiter = { fg = p.subtle }, + TSPunctSpecial = { fg = p.subtle }, + -- TSRepeat = {}, + -- TSStrike = {}, + TSString = { fg = p.gold }, + TSStringEscape = { fg = p.pine }, + -- TSStringRegex = {}, + -- TSSymbol = {}, + TSTag = { fg = p.foam }, + TSTagDelimiter = { fg = p.subtle }, + TSText = { fg = p.text }, + -- TSTitle = {}, + -- TSType = {}, + -- TSTypeBuiltin = {}, + TSURI = { fg = p.gold }, + -- TSUnderline = {}, + TSVariable = { + fg = p.text, + style = vim.g.rose_pine_enable_italics and 'italic', + }, + TSVariableBuiltin = { fg = p.love }, +} - return treesitter -end +theme.plugins = { + -- 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() - local lsp = { - LspDiagnosticsDefaultError = { fg = p.love }, - LspDiagnosticsDefaultHint = { fg = p.iris }, - LspDiagnosticsDefaultInformation = { fg = p.foam }, - LspDiagnosticsDefaultWarning = { fg = p.gold }, - LspDiagnosticsFloatingError = { fg = p.love }, - LspDiagnosticsFloatingHint = { fg = p.iris }, - 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 }, - } + -- gitsigns.nvim + -- https://github.com/lewis6991/gitsigns.nvim + SignAdd = { fg = p.foam }, + SignChange = { fg = p.rose }, + SignDelete = { fg = p.love }, + GitSignsAdd = { fg = p.foam }, + GitSignsChange = { fg = p.rose }, + GitSignsDelete = { fg = p.love }, - return lsp -end + -- modes.nvim + -- 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() - local plugins = { - -- 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 }, + -- nvim-tree.lua + -- https://github.com/kyazdani42/nvim-tree.lua + NvimTreeNormal = { fg = p.text }, - -- gitsigns.nvim - -- https://github.com/lewis6991/gitsigns.nvim - SignAdd = { fg = p.foam }, - SignChange = { fg = p.rose }, - SignDelete = { fg = p.love }, - GitSignsAdd = { fg = p.foam }, - GitSignsChange = { fg = p.rose }, - GitSignsDelete = { fg = p.love }, + NvimTreeFileDeleted = { fg = p.love }, + NvimTreeFileDirty = { fg = p.rose }, + NvimTreeFileMerge = { fg = p.iris }, + NvimTreeFileNew = { fg = p.foam }, + NvimTreeFileRenamed = { fg = p.pine }, + NvimTreeFileStaged = { fg = p.iris }, - -- modes.nvim - -- https://github.com/mvllow/modes.nvim - ModesCopy = { bg = p.gold }, - ModesDelete = { bg = p.love }, - ModesInsert = { bg = p.foam }, - ModesVisual = { bg = p.iris }, + NvimTreeEmptyFolderName = { fg = p.inactive }, + NvimTreeFolderIcon = { fg = p.subtle }, + NvimTreeFolderName = { fg = p.foam }, + NvimTreeOpenedFile = { fg = p.text, bg = p.highlight }, + NvimTreeOpenedFolderName = { fg = p.foam }, + NvimTreeRootFolder = { fg = p.iris }, + NvimTreeSpecialFile = { link = 'NvimTreeNormal' }, - -- nvim-tree.lua - -- https://github.com/kyazdani42/nvim-tree.lua - NvimTreeNormal = { fg = p.text }, + NvimTreeGitDeleted = { fg = p.love }, + NvimTreeGitDirty = { fg = p.rose }, + 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 }, - NvimTreeFolderIcon = { fg = p.subtle }, - NvimTreeFolderName = { fg = p.foam }, - NvimTreeOpenedFile = { fg = p.text, bg = p.highlight }, - NvimTreeOpenedFolderName = { fg = p.foam }, - NvimTreeRootFolder = { fg = p.iris }, - NvimTreeSpecialFile = { link = 'NvimTreeNormal' }, + -- todo-comments.nvim + -- https://github.com/folke/todo-comments.nvim + TodoBgFIX = { fg = '#000000', bg = p.love }, + TodoFgFIX = { fg = p.love, bg = p.base }, + TodoSignFIX = { fg = p.love, bg = p.base }, - NvimTreeGitDeleted = { fg = p.love }, - NvimTreeGitDirty = { fg = p.rose }, - NvimTreeGitIgnored = { fg = p.subtle }, - NvimTreeGitMerge = { fg = p.iris }, - NvimTreeGitNew = { fg = p.foam }, - NvimTreeGitRenamed = { fg = p.pine }, - NvimTreeGitStaged = { fg = p.iris }, + TodoBgTODO = { fg = '#000000', bg = p.rose }, + TodoFgTODO = { fg = p.rose, bg = p.base }, + TodoSignTODO = { fg = p.rose, bg = p.base }, - -- which-key.nvim - -- https://github.com/folke/which-key.nvim - WhichKey = { fg = p.iris }, - WhichKeyGroup = { fg = p.foam }, - WhichKeySeparator = { fg = p.subtle }, - WhichKeyDesc = { fg = p.gold }, - WhichKeyFloat = { bg = p.surface }, - WhichKeyValue = { fg = p.rose }, + TodoBgHACK = { fg = '#ffffff', bg = p.pine }, + TodoFgHACK = { fg = p.pine, bg = p.base }, + TodoSignHACK = { fg = p.pine, bg = p.base }, - -- todo-comments.nvim - -- https://github.com/folke/todo-comments.nvim - TodoBgFIX = { fg = '#000000', bg = p.love }, - TodoFgFIX = { fg = p.love, bg = p.base }, - TodoSignFIX = { fg = p.love, bg = p.base }, + TodoBgWARN = { fg = '#000000', bg = p.gold }, + TodoFgWARN = { fg = p.gold, bg = p.base }, + TodoSignWARN = { fg = p.gold, bg = p.base }, - TodoBgTODO = { fg = '#000000', bg = p.rose }, - TodoFgTODO = { fg = p.rose, bg = p.base }, - TodoSignTODO = { fg = p.rose, bg = p.base }, + TodoBgPERF = { fg = '#000000', bg = p.foam }, + TodoFgPERF = { fg = p.foam, bg = p.base }, + TodoSignPERF = { fg = p.foam, bg = p.base }, - TodoBgHACK = { fg = '#ffffff', bg = p.pine }, - TodoFgHACK = { fg = p.pine, bg = p.base }, - TodoSignHACK = { fg = p.pine, bg = p.base }, + TodoBgNOTE = { fg = '#000000', bg = p.iris }, + TodoFgNOTE = { fg = p.iris, bg = p.base }, + TodoSignNOTE = { fg = p.iris, bg = p.base }, - TodoBgWARN = { fg = '#000000', bg = p.gold }, - TodoFgWARN = { fg = p.gold, bg = p.base }, - TodoSignWARN = { fg = p.gold, bg = p.base }, - - TodoBgPERF = { fg = '#000000', bg = p.foam }, - TodoFgPERF = { fg = p.foam, bg = p.base }, - TodoSignPERF = { fg = p.foam, bg = p.base }, - - TodoBgNOTE = { fg = '#000000', bg = p.iris }, - TodoFgNOTE = { fg = p.iris, bg = p.base }, - TodoSignNOTE = { fg = p.iris, bg = p.base }, - } - - return plugins -end + -- which-key.nvim + -- https://github.com/folke/which-key.nvim + WhichKey = { fg = p.iris }, + WhichKeyGroup = { fg = p.foam }, + WhichKeySeparator = { fg = p.subtle }, + WhichKeyDesc = { fg = p.gold }, + WhichKeyFloat = { bg = p.surface }, + WhichKeyValue = { fg = p.rose }, +} return theme diff --git a/lua/rose-pine/util.lua b/lua/rose-pine/util.lua index 408fbc8..a23dca2 100644 --- a/lua/rose-pine/util.lua +++ b/lua/rose-pine/util.lua @@ -1,5 +1,4 @@ local util = {} -local theme = require('rose-pine.theme') util.highlight = function(group, color) local style = color.style and 'gui=' .. color.style or 'gui=NONE' @@ -25,11 +24,13 @@ util.highlight = function(group, color) end function util.load() - vim.cmd('hi clear') - if vim.fn.exists('syntax_on') then - vim.cmd('syntax reset') + if vim.g.colors_name then + vim.cmd('hi clear') end - if + + vim.o.termguicolors = true + vim.g.colors_name = 'rose-pine' + vim.g.rose_pine_variant == 'dawn' or vim.g.rose_pine_variant == 'rose-pine-dawn' then @@ -37,25 +38,18 @@ function util.load() else vim.opt.background = 'dark' end - vim.o.termguicolors = true - vim.g.colors_name = 'rose-pine' + + local theme = require('rose-pine.theme') local async async = vim.loop.new_async(vim.schedule_wrap(function() - theme.loadTerminal() - local plugins = theme.loadPlugins() - local treesitter = theme.loadTreesitter() - local lsp = theme.loadLsp() + theme.load_terminal() - for group, colors in pairs(plugins) do + for group, colors in pairs(theme.treesitter) do util.highlight(group, colors) end - for group, colors in pairs(treesitter) do - util.highlight(group, colors) - end - - for group, colors in pairs(lsp) do + for group, colors in pairs(theme.plugins) do util.highlight(group, colors) end @@ -63,18 +57,11 @@ function util.load() end)) -- load priority groups first - local editor = theme.loadEditor() - local syntax = theme.loadSyntax() - - for group, colors in pairs(editor) do + for group, colors in pairs(theme.base) do util.highlight(group, colors) end - for group, colors in pairs(syntax) do - util.highlight(group, colors) - end - - -- load enhancements (eg. lsp, treesitter, plugins) + -- load enhancements (eg. treesitter, plugins) async:send() end