This commit is contained in:
Christoffer Martinsson 2023-07-06 13:10:54 +02:00
commit d2dc79522c
3 changed files with 392 additions and 390 deletions

View File

@ -1,3 +1,6 @@
gui: gui:
showIcons: false showIcons: false
theme:
selectedLineBgColor:
- '#585858' # set to `default` to have no background colour

View File

@ -594,7 +594,6 @@ local handlers = {
require('lspconfig').rust_analyzer.setup { require('lspconfig').rust_analyzer.setup {
on_attach = on_attach, on_attach = on_attach,
handlers = handlers, handlers = handlers,
-- require("rust-tools").setup()
} }
local opts = { local opts = {

View File

@ -1,398 +1,398 @@
local theme = {} local theme = {}
function theme.setup() function theme.setup()
local options = require("nightly_cm.config").options local options = require("nightly_cm.config").options
local p = require("nightly_cm.palette").dark_colors local p = require("nightly_cm.palette").dark_colors
if options.transparent then if options.transparent then
p.background = "NONE" p.background = "NONE"
vim.o.pumblend = 0 vim.o.pumblend = 0
end end
theme.highlights = { theme.highlights = {
-- Base highlights -- Base highlights
Boolean = { fg = p.color5 }, Boolean = { fg = p.color5 },
Character = { fg = p.color12 }, Character = { fg = p.color12 },
ColorColumn = { bg = p.none }, ColorColumn = { bg = p.none },
Comment = { fg = p.comment, style = options.styles.comments }, Comment = { fg = p.comment, style = options.styles.comments },
Conceal = { fg = p.color4, bg = p.background }, Conceal = { fg = p.color4, bg = p.background },
Conditional = { fg = p.color6 }, Conditional = { fg = p.color6 },
Constant = { fg = p.color7 }, Constant = { fg = p.color7 },
Cursor = { fg = p.foreground, bg = p.foreground }, Cursor = { fg = p.foreground, bg = p.foreground },
CursorNC = { fg = "NONE", bg = "NONE" }, CursorNC = { fg = "NONE", bg = "NONE" },
CurSearch = { link = "IncSearch" }, CurSearch = { link = "IncSearch" },
CursorColumn = { bg = p.background }, CursorColumn = { bg = p.background },
CursorIM = { fg = p.foreground, bg = p.foreground }, CursorIM = { fg = p.foreground, bg = p.foreground },
CursorLine = { bg = p.cursorline }, CursorLine = { bg = p.cursorline },
CursorLineNr = { fg = p.foreground }, CursorLineNr = { fg = p.foreground },
Debug = { fg = p.color1 }, Debug = { fg = p.color1 },
Define = { fg = p.color6 }, Define = { fg = p.color6 },
Delimiter = { fg = p.foreground }, Delimiter = { fg = p.foreground },
DiffAdd = { fg = p.color4, bg = p.background }, DiffAdd = { fg = p.color4, bg = p.background },
DiffChange = { fg = p.color5, bg = p.background }, DiffChange = { fg = p.color5, bg = p.background },
DiffDelete = { fg = p.color1, bg = p.background }, DiffDelete = { fg = p.color1, bg = p.background },
DiffText = { fg = p.color5, bg = p.background }, DiffText = { fg = p.color5, bg = p.background },
Directory = { fg = p.color4 }, Directory = { fg = p.color4 },
EndOfBuffer = { fg = p.background }, EndOfBuffer = { fg = p.background },
EndOfBufferNC = { fg = p.background }, EndOfBufferNC = { fg = p.background },
Error = { fg = p.color1, bg = p.background }, Error = { fg = p.color1, bg = p.background },
ErrorMsg = { fg = p.color1, bg = p.background }, ErrorMsg = { fg = p.color1, bg = p.background },
Exception = { fg = p.color6 }, Exception = { fg = p.color6 },
Float = { fg = p.color5 }, Float = { fg = p.color5 },
FloatBorder = { fg = p.comment , bg = p.black}, FloatBorder = { fg = p.comment, bg = p.black },
FoldColumn = { fg = p.color4, bg = p.background }, FoldColumn = { fg = p.color4, bg = p.background },
Folded = { fg = p.color4, bg = p.background }, Folded = { fg = p.color4, bg = p.background },
Function = { fg = p.color6, style = options.styles.functions }, Function = { fg = p.color6, style = options.styles.functions },
Identifier = { fg = p.color5 }, Identifier = { fg = p.color5 },
Ignore = { fg = p.color7, bg = p.background }, Ignore = { fg = p.color7, bg = p.background },
IncSearch = { fg = p.black, bg = p.color10 }, IncSearch = { fg = p.black, bg = p.color10 },
Include = { fg = p.color6 }, Include = { fg = p.color6 },
Keyword = { fg = p.color6, style = options.styles.keywords }, Keyword = { fg = p.color6, style = options.styles.keywords },
Label = { fg = p.color4 }, Label = { fg = p.color4 },
LineNr = { fg = p.color17 }, LineNr = { fg = p.color17 },
Macro = { fg = p.color6 }, Macro = { fg = p.color6 },
MatchParen = { fg = p.color4, bg = p.background }, MatchParen = { fg = p.color4, bg = p.background },
ModeMsg = { fg = p.foreground, bg = p.background }, ModeMsg = { fg = p.foreground, bg = p.background },
MoreMsg = { fg = p.color5 }, MoreMsg = { fg = p.color5 },
MsgArea = { fg = p.foreground, bg = p.background }, MsgArea = { fg = p.foreground, bg = p.background },
MsgSeparator = { fg = p.foreground, bg = p.background }, MsgSeparator = { fg = p.foreground, bg = p.background },
NonText = { fg = p.color5 }, NonText = { fg = p.color5 },
Normal = { fg = p.foreground, bg = p.background }, Normal = { fg = p.foreground, bg = p.background },
NormalFloat = { bg = p.black }, NormalFloat = { bg = p.black },
NormalNC = { fg = p.foreground, bg = p.background }, NormalNC = { fg = p.foreground, bg = p.background },
Number = { fg = p.color3 }, Number = { fg = p.color3 },
Operator = { fg = p.color6 }, Operator = { fg = p.color6 },
Pmenu = { fg = p.foreground, bg = p.black }, Pmenu = { fg = p.foreground, bg = p.black },
PmenuSbar = { bg = p.black }, PmenuSbar = { bg = p.black },
PmenuSel = { fg = p.black, bg = p.color4 }, PmenuSel = { fg = p.black, bg = p.color4 },
PmenuThumb = { bg = p.color2 }, PmenuThumb = { bg = p.color2 },
PreCondit = { fg = p.color6 }, PreCondit = { fg = p.color6 },
PreProc = { fg = p.color6 }, PreProc = { fg = p.color6 },
Question = { fg = p.color5 }, Question = { fg = p.color5 },
QuickFixLine = { bg = p.color2 }, QuickFixLine = { bg = p.color2 },
Repeat = { fg = p.color6 }, Repeat = { fg = p.color6 },
Search = { fg = p.black, bg = p.color4 }, Search = { fg = p.black, bg = p.color4 },
SignColumn = { fg = p.background, bg = p.background }, SignColumn = { fg = p.background, bg = p.background },
Special = { fg = p.color6 }, Special = { fg = p.color6 },
SpecialChar = { fg = p.foreground }, SpecialChar = { fg = p.foreground },
SpecialComment = { fg = p.color2 }, SpecialComment = { fg = p.color2 },
SpecialKey = { fg = p.color4 }, SpecialKey = { fg = p.color4 },
SpellBad = { fg = p.color2 }, SpellBad = { fg = p.color2 },
SpellCap = { fg = p.color6 }, SpellCap = { fg = p.color6 },
SpellLocal = { fg = p.color4 }, SpellLocal = { fg = p.color4 },
SpellRare = { fg = p.color6 }, SpellRare = { fg = p.color6 },
Statement = { fg = p.color6 }, Statement = { fg = p.color6 },
StatusLine = { fg = p.foreground, bg = p.background }, StatusLine = { fg = p.foreground, bg = p.background },
StStatusLine = { fg = p.foreground, bg = p.background }, StStatusLine = { fg = p.foreground, bg = p.background },
Storage = { fg = p.color5 }, Storage = { fg = p.color5 },
StorageClass = { fg = p.color7 }, StorageClass = { fg = p.color7 },
String = { fg = p.color2 }, String = { fg = p.color2 },
Structure = { fg = p.color6 }, Structure = { fg = p.color6 },
Substitute = { fg = p.black, bg = p.color5 }, Substitute = { fg = p.black, bg = p.color5 },
TabLine = { fg = p.color2, bg = p.color16 }, TabLine = { fg = p.color2, bg = p.color16 },
TabLineFill = { fg = p.foreground, bg = p.color16 }, TabLineFill = { fg = p.foreground, bg = p.color16 },
TabLineSel = { fg = p.foreground, bg = p.background }, TabLineSel = { fg = p.foreground, bg = p.background },
Tag = { fg = p.color4 }, Tag = { fg = p.color4 },
TermCursor = { fg = p.foreground, bg = p.foreground }, TermCursor = { fg = p.foreground, bg = p.foreground },
TermCursorNC = { fg = p.foreground, bg = p.foreground }, TermCursorNC = { fg = p.foreground, bg = p.foreground },
Title = { fg = p.color4, bold = true }, Title = { fg = p.color4, bold = true },
Todo = { fg = p.color1, bg = p.background }, Todo = { fg = p.color1, bg = p.background },
type = { fg = p.color5 }, type = { fg = p.color5 },
typedef = { fg = p.color6 }, typedef = { fg = p.color6 },
underlined = { fg = p.color2, underline = true }, underlined = { fg = p.color2, underline = true },
Variable = { fg = p.color15 }, Variable = { fg = p.color15 },
VertSplit = { fg = p.color0 }, VertSplit = { fg = p.color0 },
Visual = { bg = p.color18 }, Visual = { bg = p.color18 },
VisualNOS = { bg = p.background }, VisualNOS = { bg = p.background },
WarningMsg = { fg = p.color3, bg = p.background }, WarningMsg = { fg = p.color3, bg = p.background },
Whitespace = { fg = p.color1 }, Whitespace = { fg = p.color1 },
WildMenu = { fg = p.color7, bg = p.color4 }, WildMenu = { fg = p.color7, bg = p.color4 },
lCursor = { fg = p.foreground, bg = p.foreground }, lCursor = { fg = p.foreground, bg = p.foreground },
-- bufferline.nvim: https://github.com/akinsho/bufferline.nvim -- bufferline.nvim: https://github.com/akinsho/bufferline.nvim
BufferLineFill = { fg = p.background, bg = p.background }, BufferLineFill = { fg = p.background, bg = p.background },
BufferLineIndicatorSelected = { fg = p.color2 }, BufferLineIndicatorSelected = { fg = p.color2 },
-- Diagnostic -- Diagnostic
DiagnosticError = { fg = p.color1 }, DiagnosticError = { fg = p.color1 },
DiagnosticHint = { fg = p.color2 }, DiagnosticHint = { fg = p.color2 },
DiagnosticInfo = { fg = p.color4 }, DiagnosticInfo = { fg = p.color4 },
DiagnosticWarn = { fg = p.color3 }, DiagnosticWarn = { fg = p.color3 },
DiagnosticUnnecessary = { fg = p.none }, DiagnosticUnnecessary = { fg = p.none },
-- diff -- diff
diffAdded = { fg = p.color4 }, diffAdded = { fg = p.color4 },
diffChanged = { fg = p.color5 }, diffChanged = { fg = p.color5 },
diffFile = { fg = p.color7 }, diffFile = { fg = p.color7 },
diffIndexLine = { fg = p.color6 }, diffIndexLine = { fg = p.color6 },
diffLine = { fg = p.color5 }, diffLine = { fg = p.color5 },
diffNewFile = { fg = p.color5 }, diffNewFile = { fg = p.color5 },
diffOldFile = { fg = p.color5 }, diffOldFile = { fg = p.color5 },
diffRemoved = { fg = p.color1 }, diffRemoved = { fg = p.color1 },
-- gitsigns: https://github.com/lewis6991/gitsigns.nvim -- gitsigns: https://github.com/lewis6991/gitsigns.nvim
GitSignsAdd = { fg = p.color2 }, GitSignsAdd = { fg = p.color2 },
GitSignsChange = { fg = p.color3 }, GitSignsChange = { fg = p.color3 },
GitSignsDelete = { fg = p.color1 }, GitSignsDelete = { fg = p.color1 },
-- indent-blankline.nvim: https://github.com/lukas-reineke/indent-blankline.nvim -- indent-blankline.nvim: https://github.com/lukas-reineke/indent-blankline.nvim
IndentBlanklineChar = { fg = p.color17 }, IndentBlanklineChar = { fg = p.color17 },
-- LSP -- LSP
LspInfoFiletype = { fg = p.color15 }, LspInfoFiletype = { fg = p.color15 },
LspReferenceText = { bg = p.color4 }, LspReferenceText = { bg = p.color4 },
LspReferenceRead = { bg = p.color4 }, LspReferenceRead = { bg = p.color4 },
LspReferenceWrite = { bg = p.color4 }, LspReferenceWrite = { bg = p.color4 },
LspInfoBorder = { link = "FloatBorder" }, LspInfoBorder = { link = "FloatBorder" },
-- lspsaga.nvim: https://github.com/glepnir/lspsaga.nvim -- lspsaga.nvim: https://github.com/glepnir/lspsaga.nvim
DefinitionCount = { fg = p.color6 }, DefinitionCount = { fg = p.color6 },
DefinitionIcon = { fg = p.color7 }, DefinitionIcon = { fg = p.color7 },
LspFloatWinBorder = { link = "FloatBorder" }, LspFloatWinBorder = { link = "FloatBorder" },
LspFloatWinNormal = { bg = p.black }, LspFloatWinNormal = { bg = p.black },
LspSagaBorderTitle = { fg = p.color7 }, LspSagaBorderTitle = { fg = p.color7 },
LspSagaCodeActionBorder = { link = "FloatBorder" }, LspSagaCodeActionBorder = { link = "FloatBorder" },
LspSagaCodeActionContent = { fg = p.color6 }, LspSagaCodeActionContent = { fg = p.color6 },
LspSagaCodeActionTitle = { fg = p.color7 }, LspSagaCodeActionTitle = { fg = p.color7 },
LspSagaDefPreviewBorder = {}, LspSagaDefPreviewBorder = {},
LspSagaFinderSelection = { fg = p.color5 }, LspSagaFinderSelection = { fg = p.color5 },
LspSagaHoverBorder = { link = "FloatBorder" }, LspSagaHoverBorder = { link = "FloatBorder" },
LspSagaRenameBorder = { link = "FloatBorder" }, LspSagaRenameBorder = { link = "FloatBorder" },
LspSagaSignatureHelpBorder = { link = "FloatBorder" }, LspSagaSignatureHelpBorder = { link = "FloatBorder" },
ReferencesCount = { fg = p.color6 }, ReferencesCount = { fg = p.color6 },
ReferencesIcon = { fg = p.color7 }, ReferencesIcon = { fg = p.color7 },
TargetWord = { fg = p.color7 }, TargetWord = { fg = p.color7 },
-- Neogit: https://github.com/TimUntersberger/neogit -- Neogit: https://github.com/TimUntersberger/neogit
NeogitBranch = { fg = p.color6 }, NeogitBranch = { fg = p.color6 },
NeogitDiffAddHighlight = { fg = p.color4, bg = p.background }, NeogitDiffAddHighlight = { fg = p.color4, bg = p.background },
NeogitDiffContextHighlight = { bg = p.background, fg = p.foreground }, NeogitDiffContextHighlight = { bg = p.background, fg = p.foreground },
NeogitDiffDeleteHighlight = { fg = p.color1, bg = p.background }, NeogitDiffDeleteHighlight = { fg = p.color1, bg = p.background },
NeogitHunkHeader = { bg = p.black, fg = p.foreground }, NeogitHunkHeader = { bg = p.black, fg = p.foreground },
NeogitHunkHeaderHighlight = { bg = p.comment, fg = p.color7 }, NeogitHunkHeaderHighlight = { bg = p.comment, fg = p.color7 },
NeogitRemote = { fg = p.color6 }, NeogitRemote = { fg = p.color6 },
-- Neovim -- Neovim
healthError = { fg = p.color1 }, healthError = { fg = p.color1 },
healthSuccess = { fg = p.color4 }, healthSuccess = { fg = p.color4 },
healthWarning = { fg = p.color3 }, healthWarning = { fg = p.color3 },
-- nvim-cmp: https://github.com/hrsh7th/nvim-cmp -- nvim-cmp: https://github.com/hrsh7th/nvim-cmp
CmpDocumentationBorder = { fg = p.color17, bg = p.black }, CmpDocumentationBorder = { fg = p.color17, bg = p.black },
CmpItemAbbr = { fg = p.foreground, bg = "NONE" }, CmpItemAbbr = { fg = p.foreground, bg = "NONE" },
CmpItemAbbrDeprecated = { fg = p.color2, bg = "NONE" }, CmpItemAbbrDeprecated = { fg = p.color2, bg = "NONE" },
CmpItemAbbrMatch = { fg = p.color2, bg = "NONE" }, CmpItemAbbrMatch = { fg = p.color2, bg = "NONE" },
CmpItemAbbrMatchFuzzy = { fg = p.color2, bg = "NONE" }, CmpItemAbbrMatchFuzzy = { fg = p.color2, bg = "NONE" },
CmpItemKind = { fg = p.color4, bg = p.black }, CmpItemKind = { fg = p.color4, bg = p.black },
CmpItemMenu = { fg = p.color2, bg = "NONE" }, CmpItemMenu = { fg = p.color2, bg = "NONE" },
CmpItemKindFolder = { fg = p.color4 }, CmpItemKindFolder = { fg = p.color4 },
CmpItemKindFile = { fg = p.color2 }, CmpItemKindFile = { fg = p.color2 },
CmpItemKindConstructor = { fg = p.color5 }, CmpItemKindConstructor = { fg = p.color5 },
CmpItemKindInterface = { fg = p.color5 }, CmpItemKindInterface = { fg = p.color5 },
CmpItemKindReference = { fg = p.color5 }, CmpItemKindReference = { fg = p.color5 },
CmpItemKindConstant = { fg = p.color5 }, CmpItemKindConstant = { fg = p.color5 },
CmpItemKindProperty = { fg = p.color5 }, CmpItemKindProperty = { fg = p.color5 },
CmpItemKindModule = { fg = p.color5 }, CmpItemKindModule = { fg = p.color5 },
CmpItemKindClass = { fg = p.color5 }, CmpItemKindClass = { fg = p.color5 },
CmpItemKindField = { fg = p.color5 }, CmpItemKindField = { fg = p.color5 },
CmpItemKindEvent = { fg = p.color5 }, CmpItemKindEvent = { fg = p.color5 },
CmpItemKindSnippet = { fg = p.color4 }, CmpItemKindSnippet = { fg = p.color4 },
CmpItemKindKeyword = { fg = p.color4 }, CmpItemKindKeyword = { fg = p.color4 },
CmpItemKindValue = { fg = p.color4 }, CmpItemKindValue = { fg = p.color4 },
CmpItemKindOperator = { fg = p.color4 }, CmpItemKindOperator = { fg = p.color4 },
CmpItemKindTypeParameter = { fg = p.foreground }, CmpItemKindTypeParameter = { fg = p.foreground },
CmpItemKindVariable = { fg = p.foreground }, CmpItemKindVariable = { fg = p.foreground },
CmpItemKindText = { fg = p.foreground }, CmpItemKindText = { fg = p.foreground },
CmpItemKindUnit = { fg = p.foreground }, CmpItemKindUnit = { fg = p.foreground },
-- Yank -- Yank
YankyPut = { link = "Visual" }, YankyPut = { link = "Visual" },
YankyYanked = { link = "Visual" }, YankyYanked = { link = "Visual" },
YankHighlight = { bg = p.cursorline }, YankHighlight = { bg = p.cursorline },
-- Markdown -- Markdown
markdownCodeBlock = { fg = p.color7 }, markdownCodeBlock = { fg = p.color7 },
markdownCodeDelimeter = { fg = p.color7 }, markdownCodeDelimeter = { fg = p.color7 },
markdownUrl = { fg = p.color15 }, markdownUrl = { fg = p.color15 },
markdownLink = { fg = p.foreground, underline = true }, markdownLink = { fg = p.foreground, underline = true },
-- nvim-tree.lua: https://github.com/nvim-tree/nvim-tree.lua -- nvim-tree.lua: https://github.com/nvim-tree/nvim-tree.lua
NvimTreeEmptyFolderName = { fg = p.foreground }, NvimTreeEmptyFolderName = { fg = p.foreground },
NvimTreeEndOfBuffer = { fg = p.background, bg = p.background }, NvimTreeEndOfBuffer = { fg = p.background, bg = p.background },
NvimTreeEndOfBufferNC = { fg = p.background, bg = p.background }, NvimTreeEndOfBufferNC = { fg = p.background, bg = p.background },
NvimTreeFolderIcon = { fg = p.color4, bg = p.background }, NvimTreeFolderIcon = { fg = p.color4, bg = p.background },
NvimTreeFolderName = { fg = p.foreground }, NvimTreeFolderName = { fg = p.foreground },
NvimTreeGitDeleted = { fg = p.color1 }, NvimTreeGitDeleted = { fg = p.color1 },
NvimTreeGitDirty = { fg = p.color5 }, NvimTreeGitDirty = { fg = p.color5 },
NvimTreeGitNew = { fg = p.color4 }, NvimTreeGitNew = { fg = p.color4 },
NvimTreeImageFile = { fg = p.foreground }, NvimTreeImageFile = { fg = p.foreground },
NvimTreeIndentMarker = { fg = p.color0 }, NvimTreeIndentMarker = { fg = p.color0 },
NvimTreeNormal = { fg = p.foreground, bg = p.background }, NvimTreeNormal = { fg = p.foreground, bg = p.background },
NvimTreeNormalNC = { fg = p.foreground, bg = p.background }, NvimTreeNormalNC = { fg = p.foreground, bg = p.background },
NvimTreeOpenedFolderName = { fg = p.foreground }, NvimTreeOpenedFolderName = { fg = p.foreground },
NvimTreeRootFolder = { fg = p.color12 }, NvimTreeRootFolder = { fg = p.color12 },
NvimTreeSpecialFile = { fg = p.color5 }, NvimTreeSpecialFile = { fg = p.color5 },
NvimTreeStatusLineNC = { bg = p.background, fg = p.color16 }, NvimTreeStatusLineNC = { bg = p.background, fg = p.color16 },
NvimTreeSymlink = { fg = p.color3 }, NvimTreeSymlink = { fg = p.color3 },
NvimTreeWinSeparator = { fg = p.black }, NvimTreeWinSeparator = { fg = p.black },
-- nvim-treesitter: https://github.com/nvim-treesitter/nvim-treesitter -- nvim-treesitter: https://github.com/nvim-treesitter/nvim-treesitter
["@attribute"] = { fg = p.color4 }, ["@attribute"] = { fg = p.color4 },
["@boolean"] = { fg = p.color6 }, ["@boolean"] = { fg = p.color6 },
["@character"] = { fg = p.color4 }, ["@character"] = { fg = p.color4 },
["@comment"] = { fg = p.comment, style = options.styles.comments }, ["@comment"] = { fg = p.comment, style = options.styles.comments },
["@conditional"] = { fg = p.color4 }, ["@conditional"] = { fg = p.color4 },
["@constant"] = { fg = p.color6 }, ["@constant"] = { fg = p.color6 },
["@constant.builtin"] = { fg = p.color4 }, ["@constant.builtin"] = { fg = p.color4 },
["@constant.macro"] = { fg = p.color3 }, ["@constant.macro"] = { fg = p.color3 },
["@constructor"] = { fg = p.color4 }, ["@constructor"] = { fg = p.color4 },
["@exception"] = { fg = p.color8 }, ["@exception"] = { fg = p.color8 },
["@field"] = { fg = p.color7 }, ["@field"] = { fg = p.color7 },
["@float"] = { link = "@number" }, ["@float"] = { link = "@number" },
["@function"] = { fg = p.color4, style = options.styles.functions }, ["@function"] = { fg = p.color4, style = options.styles.functions },
["@function.builtin"] = { fg = p.color14 }, ["@function.builtin"] = { fg = p.color14 },
["@function.macro"] = { fg = p.color2 }, ["@function.macro"] = { fg = p.color2 },
["@include"] = { fg = p.color3 }, ["@include"] = { fg = p.color3 },
["@keyword"] = { fg = p.color15, style = options.styles.keywords }, ["@keyword"] = { fg = p.color15, style = options.styles.keywords },
["@keyword.function"] = { fg = p.color4, style = options.styles.functions }, ["@keyword.function"] = { fg = p.color4, style = options.styles.functions },
["@keyword.operator"] = { fg = p.color12 }, ["@keyword.operator"] = { fg = p.color12 },
["@keyword.return"] = { fg = p.color4 }, ["@keyword.return"] = { fg = p.color4 },
["@label"] = { fg = p.color3 }, ["@label"] = { fg = p.color3 },
["@method"] = { fg = p.color12 }, ["@method"] = { fg = p.color12 },
["@namespace"] = { fg = p.color5 }, ["@namespace"] = { fg = p.color5 },
["@number"] = { fg = p.color15 }, ["@number"] = { fg = p.color15 },
["@operator"] = { fg = p.color7 }, ["@operator"] = { fg = p.color7 },
["@parameter"] = { fg = p.color15 }, ["@parameter"] = { fg = p.color15 },
["@parameter.reference"] = { fg = p.color15 }, ["@parameter.reference"] = { fg = p.color15 },
["@property"] = { fg = p.color5 }, ["@property"] = { fg = p.color5 },
["@punctuation.bracket"] = { fg = p.color7 }, ["@punctuation.bracket"] = { fg = p.color7 },
["@punctuation.delimiter"] = { fg = p.color7 }, ["@punctuation.delimiter"] = { fg = p.color7 },
["@punctuation.special"] = { fg = p.color7 }, ["@punctuation.special"] = { fg = p.color7 },
["@repeat"] = { fg = p.color13 }, ["@repeat"] = { fg = p.color13 },
["@string"] = { fg = p.color2 }, ["@string"] = { fg = p.color2 },
["@string.escape"] = { fg = p.color4 }, ["@string.escape"] = { fg = p.color4 },
["@string.regex"] = { fg = p.color2 }, ["@string.regex"] = { fg = p.color2 },
["@string.special"] = { fg = p.color4 }, ["@string.special"] = { fg = p.color4 },
["@symbol"] = { fg = p.color3 }, ["@symbol"] = { fg = p.color3 },
["@tag"] = { fg = p.color4 }, ["@tag"] = { fg = p.color4 },
["@tag.attribute"] = { fg = p.color3 }, ["@tag.attribute"] = { fg = p.color3 },
["@tag.delimiter"] = { fg = p.color7 }, ["@tag.delimiter"] = { fg = p.color7 },
["@text"] = { fg = p.color7 }, ["@text"] = { fg = p.color7 },
["@text.danger"] = { fg = p.color9 }, ["@text.danger"] = { fg = p.color9 },
["@text.emphasis"] = { fg = p.color7, italic = true }, ["@text.emphasis"] = { fg = p.color7, italic = true },
["@text.environment.name"] = { fg = p.color3 }, ["@text.environment.name"] = { fg = p.color3 },
["@text.environtment"] = { fg = p.color5 }, ["@text.environtment"] = { fg = p.color5 },
["@text.literal"] = { fg = p.color2, italic = true }, ["@text.literal"] = { fg = p.color2, italic = true },
["@text.math"] = { fg = p.color6 }, ["@text.math"] = { fg = p.color6 },
["@text.note"] = { fg = p.black, bg = p.color2 }, ["@text.note"] = { fg = p.black, bg = p.color2 },
["@text.reference"] = { fg = p.color6 }, ["@text.reference"] = { fg = p.color6 },
["@text.strike"] = { fg = p.color7, strikethrough = true }, ["@text.strike"] = { fg = p.color7, strikethrough = true },
["@text.strong"] = { fg = p.color7, bold = true }, ["@text.strong"] = { fg = p.color7, bold = true },
["@text.title"] = { fg = p.color3, bold = true }, ["@text.title"] = { fg = p.color3, bold = true },
["@text.underline"] = { fg = p.color15, underline = true }, ["@text.underline"] = { fg = p.color15, underline = true },
["@text.uri"] = { fg = p.color3, underline = true }, ["@text.uri"] = { fg = p.color3, underline = true },
["@text.warning"] = { fg = p.color0, bg = p.color1 }, ["@text.warning"] = { fg = p.color0, bg = p.color1 },
["@type"] = { fg = p.color4 }, ["@type"] = { fg = p.color4 },
["@type.builtin"] = { fg = p.color3 }, ["@type.builtin"] = { fg = p.color3 },
["@variable"] = { fg = p.color7, style = options.styles.variables }, ["@variable"] = { fg = p.color7, style = options.styles.variables },
["@variable.builtin"] = { fg = p.color4 }, ["@variable.builtin"] = { fg = p.color4 },
-- LSP semantic tokens -- LSP semantic tokens
-- ["@lsp.type.comment"] = { link = "@comment" }, -- ["@lsp.type.comment"] = { link = "@comment" },
-- ["@lsp.type.enum"] = { link = "@type" }, -- ["@lsp.type.enum"] = { link = "@type" },
-- ["@lsp.type.interface"] = { link = "Identifier" }, -- ["@lsp.type.interface"] = { link = "Identifier" },
-- ["@lsp.type.keyword"] = { link = "@keyword" }, -- ["@lsp.type.keyword"] = { link = "@keyword" },
-- ["@lsp.type.namespace"] = { link = "@namespace" }, -- ["@lsp.type.namespace"] = { link = "@namespace" },
-- ["@lsp.type.parameter"] = { link = "@parameter" }, -- ["@lsp.type.parameter"] = { link = "@parameter" },
-- ["@lsp.type.property"] = { link = "@property" }, -- ["@lsp.type.property"] = { link = "@property" },
-- ["@lsp.type.variable"] = {}, -- use treesitter styles for regular variables -- ["@lsp.type.variable"] = {}, -- use treesitter styles for regular variables
-- ["@lsp.typemod.method.defaultLibrary"] = { link = "@function.builtin" }, -- ["@lsp.typemod.method.defaultLibrary"] = { link = "@function.builtin" },
-- ["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" }, -- ["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" },
-- ["@lsp.typemod.operator.injected"] = { link = "@operator" }, -- ["@lsp.typemod.operator.injected"] = { link = "@operator" },
-- ["@lsp.typemod.string.injected"] = { link = "@string" }, -- ["@lsp.typemod.string.injected"] = { link = "@string" },
-- ["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" }, -- ["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" },
-- ["@lsp.typemod.variable.injected"] = { link = "@variable" }, -- ["@lsp.typemod.variable.injected"] = { link = "@variable" },
-- alpha.nvim: https://github.com/goolord/alpha-nvim -- alpha.nvim: https://github.com/goolord/alpha-nvim
AlphaHeader = { fg = p.color2 }, AlphaHeader = { fg = p.color2 },
AlphaButton = { fg = p.color4 }, AlphaButton = { fg = p.color4 },
AlphaFooter = { fg = p.color3 }, AlphaFooter = { fg = p.color3 },
AlphaShortcut = { fg = p.color5 }, AlphaShortcut = { fg = p.color5 },
-- dashboard.nvim: https://github.com/nvimdev/dashboard-nvim -- dashboard.nvim: https://github.com/nvimdev/dashboard-nvim
DashboardHeader = { fg = p.color2 }, DashboardHeader = { fg = p.color2 },
DashboardCenter = { fg = p.color4 }, DashboardCenter = { fg = p.color4 },
DashboardFooter = { fg = p.color3 }, DashboardFooter = { fg = p.color3 },
DashboardShortcut = { fg = p.color5 }, DashboardShortcut = { fg = p.color5 },
-- telescope.nvim: https://github.com/nvim-telescope/telescope.nvim -- telescope.nvim: https://github.com/nvim-telescope/telescope.nvim
TelescopeMatching = { fg = p.color2 }, TelescopeMatching = { fg = p.color2 },
TelescopeSelection = { fg = p.color2, bg = p.bg }, TelescopeSelection = { fg = p.color2, bg = p.bg },
TelescopeMultiSelection = { bg = p.color16 }, TelescopeMultiSelection = { bg = p.color16 },
TelescopePromptTitle = { fg = p.background, bg = p.color2 }, TelescopePromptTitle = { fg = p.background, bg = p.color2 },
TelescopePreviewLine = { bg = p.background }, TelescopePreviewLine = { bg = p.background },
TelescopePromptPrefix = { fg = p.color2, bg = p.cursorline }, TelescopePromptPrefix = { fg = p.color2, bg = p.cursorline },
TelescopePromptBorder = { fg = p.cursorline, bg = p.cursorline }, TelescopePromptBorder = { fg = p.cursorline, bg = p.cursorline },
TelescopePromptNormal = { fg = p.fg, bg = p.cursorline }, TelescopePromptNormal = { fg = p.fg, bg = p.cursorline },
TelescopeResultsTitle = { fg = p.color16, bg = p.color16 }, TelescopeResultsTitle = { fg = p.color16, bg = p.color16 },
TelescopeResultsBorder = { fg = p.color16, bg = p.color16 }, TelescopeResultsBorder = { fg = p.color16, bg = p.color16 },
TelescopeResultsNormal = { fg = p.foreground, bg = p.color16 }, TelescopeResultsNormal = { fg = p.foreground, bg = p.color16 },
TelescopePreviewTitle = { fg = p.cursorline, bg = p.color3 }, TelescopePreviewTitle = { fg = p.cursorline, bg = p.color3 },
TelescopePreviewBorder = { fg = p.cursorline, bg = p.cursorline }, TelescopePreviewBorder = { fg = p.cursorline, bg = p.cursorline },
TelescopePreviewNormal = { fg = p.foreground, bg = p.cursorline }, TelescopePreviewNormal = { fg = p.foreground, bg = p.cursorline },
-- trouble.nvim: https://github.com/folke/trouble.nvim -- trouble.nvim: https://github.com/folke/trouble.nvim
LspTroubleCount = { fg = p.color6, bg = p.foreground }, LspTroubleCount = { fg = p.color6, bg = p.foreground },
LspTroubleNormal = { fg = p.foreground, bg = p.background }, LspTroubleNormal = { fg = p.foreground, bg = p.background },
LspTroubleText = { fg = p.foreground }, LspTroubleText = { fg = p.foreground },
-- vim-gitgutter: https://github.com/airblade/vim-gitgutter -- vim-gitgutter: https://github.com/airblade/vim-gitgutter
GitGutterAdd = { fg = p.color2 }, GitGutterAdd = { fg = p.color2 },
GitGutterChange = { fg = p.color3 }, GitGutterChange = { fg = p.color3 },
GitGutterDelete = { fg = p.color1 }, GitGutterDelete = { fg = p.color1 },
} }
theme.terminal_colors = { theme.terminal_colors = {
terminal_color_0 = p.color0, terminal_color_0 = p.color0,
terminal_color_1 = p.color1, terminal_color_1 = p.color1,
terminal_color_2 = p.color2, terminal_color_2 = p.color2,
terminal_color_3 = p.color3, terminal_color_3 = p.color3,
terminal_color_4 = p.color4, terminal_color_4 = p.color4,
terminal_color_5 = p.color5, terminal_color_5 = p.color5,
terminal_color_6 = p.color6, terminal_color_6 = p.color6,
terminal_color_7 = p.color7, terminal_color_7 = p.color7,
terminal_color_8 = p.color8, terminal_color_8 = p.color8,
terminal_color_9 = p.color9, terminal_color_9 = p.color9,
terminal_color_10 = p.color10, terminal_color_10 = p.color10,
terminal_color_11 = p.color11, terminal_color_11 = p.color11,
terminal_color_12 = p.color12, terminal_color_12 = p.color12,
terminal_color_13 = p.color13, terminal_color_13 = p.color13,
terminal_color_14 = p.color14, terminal_color_14 = p.color14,
terminal_color_15 = p.color15, terminal_color_15 = p.color15,
} }
for option, value in pairs(theme.terminal_colors) do for option, value in pairs(theme.terminal_colors) do
vim.g[option] = value vim.g[option] = value
end end
theme.highlights = vim.tbl_extend("force", {}, theme.highlights, options.highlights) theme.highlights = vim.tbl_extend("force", {}, theme.highlights, options.highlights)
-- Hide all semantic highlights -- Hide all semantic highlights
for _, group in ipairs(vim.fn.getcompletion("@lsp", "highlight")) do for _, group in ipairs(vim.fn.getcompletion("@lsp", "highlight")) do
vim.api.nvim_set_hl(0, group, {}) vim.api.nvim_set_hl(0, group, {})
end end
-- Set the highlights -- Set the highlights
for group, colors in pairs(theme.highlights) do for group, colors in pairs(theme.highlights) do
if colors.style then if colors.style then
if type(colors.style) == "table" then if type(colors.style) == "table" then
colors = vim.tbl_extend("force", colors, colors.style) colors = vim.tbl_extend("force", colors, colors.style)
end end
colors.style = nil colors.style = nil
end
vim.api.nvim_set_hl(0, group, colors)
end end
vim.api.nvim_set_hl(0, group, colors)
end
end end
return theme return theme