Hoang Nguyen
0c9e4d20e0
Also: - remove `nvim-navic` from the plugin tree (covered by aerial.nvim now) - add more filetypes to filetype.lua - rework heirline's configuration structure to be cleaner - add some more LSP servers + remove glint
334 lines
15 KiB
Lua
334 lines
15 KiB
Lua
local c = require('user.themes.nord.colors')
|
|
local util = require('user.util.color')
|
|
|
|
local headline_colors = {
|
|
c.purple,
|
|
c.blue,
|
|
c.green,
|
|
c.yellow,
|
|
c.orange,
|
|
c.fg,
|
|
}
|
|
|
|
return {
|
|
-- nvim-treesitter-context
|
|
TreesitterContext = { bg = c.grey1 },
|
|
TreesitterContextLineNumber = { fg = c.fg, bg = c.grey1 },
|
|
|
|
-- nvim-cmp
|
|
CmpItemAbbr = { fg = c.fg },
|
|
CmpItemAbbrMatch = { fg = c.yellow, bold = true },
|
|
CmpItemAbbrMatchFuzzy = { fg = c.yellow, bold = true },
|
|
CmpItemAbbrDeprecated = { fg = c.highlight, strikethrough = true },
|
|
CmpItemKind = { fg = c.green, bold = true },
|
|
CmpItemMenu = { fg = c.blue, bold = true },
|
|
|
|
-- LuaSnip
|
|
LuasnipChoiceNodeActive = { fg = c.orange },
|
|
LuasnipInsertNodeActive = { fg = c.blue },
|
|
|
|
-- gitsigns.nvim
|
|
GitSignsAdd = { fg = c.green, bold = true },
|
|
GitSignsAddNr = { fg = c.green },
|
|
GitSignsAddInline = { fg = c.black, bg = c.green },
|
|
GitSignsChange = { fg = c.yellow, bold = true },
|
|
GitSignsChangeNr = { fg = c.yellow },
|
|
GitSignsChangeInline = { fg = c.black, bg = c.yellow },
|
|
GitSignsDelete = { fg = c.red, bold = true },
|
|
GitSignsDeleteNr = { fg = c.red },
|
|
GitSignsDeleteInline = { fg = c.black, bg = c.red },
|
|
GitSignsCurrentLineBlame = { fg = c.grey_bright, bold = true, italic = true },
|
|
|
|
-- git-conflict.nvim
|
|
GitConflictCurrent = { bg = util.blend(c.green, c.black, 0.2) },
|
|
GitConflictIncoming = { bg = util.blend(c.blue, c.black, 0.2) },
|
|
GitConflictAncestor = { bg = util.blend(c.yellow, c.black, 0.2) },
|
|
|
|
-- rainbow-delimiters.nvim
|
|
RainbowDelimiterRed = { fg = c.red, bold = true },
|
|
RainbowDelimiterOrange = { fg = c.orange, bold = true },
|
|
RainbowDelimiterYellow = { fg = c.yellow, bold = true },
|
|
RainbowDelimiterGreen = { fg = c.green, bold = true },
|
|
RainbowDelimiterCyan = { fg = c.cyan, bold = true },
|
|
RainbowDelimiterBlue = { fg = c.blue, bold = true },
|
|
RainbowDelimiterViolet = { fg = c.purple, bold = true },
|
|
|
|
-- dashboard.nvim / alpha-nvim
|
|
DashboardHeader = { fg = c.cyan, bold = true },
|
|
DashboardCenter = { fg = c.blue, bold = true },
|
|
DashboardShortcut = { fg = c.green, bold = true },
|
|
DashboardFooter = { fg = c.yellow, bold = true },
|
|
|
|
-- neo-tree.nvim
|
|
NeoTreeBufferNumber = { fg = c.purple },
|
|
NeoTreeDimText = { fg = c.grey3 },
|
|
NeoTreeDirectoryIcon = { fg = c.blue },
|
|
NeoTreeDirectoryName = { link = 'Normal' },
|
|
NeoTreeDotfile = { link = 'NeoTreeDimText' },
|
|
NeoTreeFileIcon = { link = 'Normal' },
|
|
NeoTreeFileName = { link = 'Normal' },
|
|
NeoTreeFloatBorder = { link = 'FloatBorder' },
|
|
NeoTreeGitAdded = { fg = c.green },
|
|
NeoTreeGitConflict = { fg = c.purple },
|
|
NeoTreeGitDeleted = { fg = c.red },
|
|
NeoTreeGitIgnored = { fg = c.grey_bright },
|
|
NeoTreeGitModified = { fg = c.yellow },
|
|
NeoTreeGitUntracked = { fg = c.teal },
|
|
NeoTreeGitUnstaged = { fg = c.yellow },
|
|
NeoTreeGitStaged = { fg = c.green },
|
|
NeoTreeHiddenByName = { link = 'NeoTreeDimText' },
|
|
NeoTreeExpander = { link = 'Normal' },
|
|
NeoTreeStats = { fg = c.highlight },
|
|
NeoTreeStatsHeader = { fg = c.white2, bold = true },
|
|
NeoTreeRootName = { fg = c.cyan, bold = true },
|
|
NeoTreeSymbolicLinkTarget = { link = 'Comment' },
|
|
NeoTreeMessage = { link = 'Comment' },
|
|
NeoTreeTabActive = { fg = c.cyan, bg = c.grey1, bold = true },
|
|
NeoTreeTabInactive = { fg = c.grey_bright, bg = c.bg },
|
|
NeoTreeTabSeparatorActive = { fg = c.cyan, bg = c.grey1 },
|
|
NeoTreeTabSeparatorInactive = { fg = c.cyan, bg = c.bg },
|
|
|
|
-- nvim-tree.nvim
|
|
NvimTreeIndentMarker = { fg = c.grey3 },
|
|
NvimTreeFolderIcon = { fg = c.blue },
|
|
NvimTreeRootFolder = { fg = c.cyan, bold = true },
|
|
NvimTreeEmptyFolderName = { fg = c.grey_bright },
|
|
NvimTreeImageFile = { fg = c.yellow },
|
|
NvimTreeExecFile = { fg = c.green },
|
|
NvimTreeSpecialFile = { fg = c.teal, underline = true },
|
|
NvimTreeGitDirtyIcon = { fg = c.yellow },
|
|
NvimTreeGitDeletedIcon = { fg = c.red },
|
|
NvimTreeWindowPicker = { fg = c.white2, bg = c.blue, bold = true },
|
|
|
|
-- nvim-window-picker
|
|
WindowPickerStatusLine = { fg = c.white2, bg = c.purple, bold = true },
|
|
WindowPickerStatusLineNC = { link = 'NvimTreeWindowPicker' },
|
|
|
|
-- which-key.nvim
|
|
WhichKey = { fg = c.green, bold = true },
|
|
WhichKeyGroup = { fg = c.cyan },
|
|
WhichKeyDesc = { fg = c.blue },
|
|
WhichKeySeparator = { fg = c.grey_bright },
|
|
WhichKeyFloat = { link = 'NormalFloat' },
|
|
WhichKeyValue = { link = 'Comment' },
|
|
|
|
-- nvim-notify
|
|
NotifyERRORBorder = { fg = c.red },
|
|
NotifyWARNBorder = { fg = c.yellow },
|
|
NotifyINFOBorder = { fg = c.blue },
|
|
NotifyDEBUGBorder = { fg = c.green },
|
|
NotifyTRACEBorder = { fg = c.white2 },
|
|
NotifyERRORIcon = { link = 'NotifyERRORBorder' },
|
|
NotifyWARNIcon = { link = 'NotifyWARNBorder' },
|
|
NotifyINFOIcon = { link = 'NotifyINFOBorder' },
|
|
NotifyDEBUGIcon = { link = 'NotifyDEBUGBorder' },
|
|
NotifyTRACEIcon = { link = 'NotifyTRACEBorder' },
|
|
NotifyERRORTitle = { link = 'NotifyERRORBorder' },
|
|
NotifyWARNTitle = { link = 'NotifyWARNBorder' },
|
|
NotifyINFOTitle = { link = 'NotifyINFOBorder' },
|
|
NotifyDEBUGTitle = { link = 'NotifyDEBUGBorder' },
|
|
NotifyTRACETitle = { link = 'NotifyTRACEBorder' },
|
|
NotifyERRORBody = { link = 'Normal' },
|
|
NotifyWARNBody = { link = 'Normal' },
|
|
NotifyINFOBody = { link = 'Normal' },
|
|
NotifyDEBUGBody = { link = 'Normal' },
|
|
NotifyTRACEBody = { link = 'Normal' },
|
|
|
|
-- nvim-scrollbar
|
|
ScrollbarHandle = { bg = c.grey1 },
|
|
ScrollbarError = { fg = c.red, bold = true },
|
|
ScrollbarErrorHandle = { fg = c.red, bg = c.grey1, bold = true },
|
|
ScrollbarWarn = { fg = c.yellow, bold = true },
|
|
ScrollbarWarnHandle = { fg = c.yellow, bg = c.grey1, bold = true },
|
|
ScrollbarInfo = { fg = c.blue, bold = true },
|
|
ScrollbarInfoHandle = { fg = c.blue, bg = c.grey1, bold = true },
|
|
ScrollbarHint = { fg = c.cyan, bold = true },
|
|
ScrollbarHintHandle = { fg = c.cyan, bg = c.grey1, bold = true },
|
|
ScrollbarMisc = { fg = c.white2, bold = true },
|
|
ScrollbarMiscHandle = { fg = c.white2, bg = c.grey1, bold = true },
|
|
|
|
-- indent-blankline.nvim
|
|
IblIndent = { fg = c.grey1 },
|
|
IblScope = { fg = c.grey_bright },
|
|
|
|
-- headlines.nvim
|
|
Headline1 = { bg = util.blend(headline_colors[1], c.black, 0.09), bold = true },
|
|
Headline2 = { bg = util.blend(headline_colors[2], c.black, 0.09), bold = true },
|
|
Headline3 = { bg = util.blend(headline_colors[3], c.black, 0.09), bold = true },
|
|
Headline4 = { bg = util.blend(headline_colors[4], c.black, 0.09), bold = true },
|
|
Headline5 = { bg = util.blend(headline_colors[5], c.black, 0.09), bold = true },
|
|
Headline6 = { bg = util.blend(headline_colors[6], c.black, 0.09), bold = true },
|
|
Quote = { fg = c.grey_bright },
|
|
CodeBlock = { bg = c.grey1 },
|
|
Dash = { fg = c.blue, bold = true },
|
|
|
|
-- nvim-orgmode
|
|
OrgHeadlineLevel1 = { fg = headline_colors[1], bold = true },
|
|
OrgHeadlineLevel2 = { fg = headline_colors[2], bold = true },
|
|
OrgHeadlineLevel3 = { fg = headline_colors[3], bold = true },
|
|
OrgHeadlineLevel4 = { fg = headline_colors[4], bold = true },
|
|
OrgHeadlineLevel5 = { fg = headline_colors[5], bold = true },
|
|
OrgHeadlineLevel6 = { fg = headline_colors[6], bold = true },
|
|
OrgTODO = { fg = c.green, bold = true },
|
|
OrgDONE = { fg = c.purple, bold = true },
|
|
OrgTSCheckbox = { link = '@markup.list.unchecked' },
|
|
OrgTSCheckboxChecked = { link = '@markup.list.checked' },
|
|
OrgTSCheckboxHalfChecked = { fg = c.blue, bold = true },
|
|
OrgAgendaDealine = { fg = c.red, bold = true },
|
|
OrgAgendaScheduled = { fg = c.green, bold = true },
|
|
OrgAgendaScheduledPast = { fg = c.blue, bold = true },
|
|
|
|
-- sniprun.nvim
|
|
SniprunVirtualTextOk = { bg = c.cyan, fg = c.black },
|
|
SniprunFloatingWinOk = { fg = c.cyan },
|
|
SniprunVirtualTextErr = { bg = c.orange, fg = c.black },
|
|
SniprunFloatingWinErr = { fg = c.orange },
|
|
|
|
-- trouble.nvim
|
|
LspTroubleText = { fg = c.blue, bold = true },
|
|
|
|
-- telescope.nvim
|
|
TelescopeBorder = { fg = c.cyan },
|
|
TelescopeTitle = { fg = c.black, bg = c.cyan, bold = true },
|
|
TelescopeSelection = { fg = c.fg, bg = c.grey1 },
|
|
TelescopeMultiSelection = { fg = c.fg, bg = c.grey1, bold = true },
|
|
TelescopeSelectionCaret = { fg = c.red, bg = c.grey1, bold = true },
|
|
TelescopeMatching = { fg = c.yellow, bold = true },
|
|
|
|
-- overseer.nvim
|
|
OverseerPENDING = { fg = c.purple, bold = true },
|
|
OverseerRUNNING = { fg = c.blue, bold = true },
|
|
OverseerSUCCESS = { fg = c.green, bold = true },
|
|
OverseerCANCELED = { fg = c.yellow, bold = true },
|
|
OverseerFAILURE = { fg = c.red, bold = true },
|
|
OverseerTask = { fg = c.cyan },
|
|
OverseerComponent = { fg = c.yellow },
|
|
OverseerField = { fg = c.green },
|
|
|
|
-- neogit
|
|
NeogitBranch = { fg = c.purple, bold = true },
|
|
NeogitRemote = { fg = c.green, bold = true },
|
|
NeogitObjectId = { fg = c.teal },
|
|
NeogitStash = { link = 'Comment' },
|
|
NeogitFold = { fg = c.highlight, bold = true },
|
|
NeogitRebaseDone = { link = 'Comment' },
|
|
NeogitTagName = { link = 'NeogitBranch' },
|
|
NeogitTagDistance = { fg = c.red, bold = true },
|
|
NeogitSectionHeader = { fg = c.blue, bold = true },
|
|
NeogitChangeModified = { fg = c.cyan, bold = true },
|
|
NeogitChangeAdded = { fg = c.green, bold = true },
|
|
NeogitChangeDeleted = { fg = c.red, bold = true },
|
|
NeogitChangeRenamed = { fg = c.purple, bold = true },
|
|
NeogitChangeUpdated = { fg = c.cyan, bold = true },
|
|
NeogitChangeCopied = { fg = c.blue, bold = true },
|
|
NeogitChangeBothModified = { fg = c.yellow, bold = true },
|
|
NeogitChangeNewFile = { fg = c.green, bold = true },
|
|
NeogitHunkHeader = { fg = c.yellow, bold = true },
|
|
NeogitHunkHeaderHighlight = { fg = c.yellow, bg = util.blend(c.yellow, c.black, 0.09), bold = true },
|
|
NeogitDiffContext = { fg = c.blue },
|
|
NeogitDiffContextHighlight = { fg = c.blue, bg = util.blend(c.blue, c.black, 0.09) },
|
|
NeogitDiffAdd = { fg = c.green },
|
|
NeogitDiffAddHighlight = { fg = c.green, bg = util.blend(c.green, c.black, 0.09) },
|
|
NeogitDiffDelete = { fg = c.red },
|
|
NeogitDiffDeleteHighlight = { fg = c.red, bg = util.blend(c.red, c.black, 0.09) },
|
|
NeogitDiffHeader = { fg = c.purple, bold = true },
|
|
NeogitDiffHeaderHighlight = { fg = c.purple, bg = util.blend(c.purple, c.black, 0.09), bold = true },
|
|
NeogitCursorLine = { link = 'CursorLine' },
|
|
NeogitFilePath = { fg = c.teal, bold = true },
|
|
NeogitCommitViewHeader = { fg = c.white2, bg = c.dark_blue, bold = true },
|
|
NeogitGraphBlack = { fg = c.grey2 },
|
|
NeogitGraphBlackBold = { fg = c.grey2, bold = true },
|
|
NeogitGraphRed = { fg = c.red },
|
|
NeogitGraphRedBold = { fg = c.red, bold = true },
|
|
NeogitGraphGreen = { fg = c.green },
|
|
NeogitGraphGreenBold = { fg = c.green, bold = true },
|
|
NeogitGraphYellow = { fg = c.yellow },
|
|
NeogitGraphYellowBold = { fg = c.yellow, bold = true },
|
|
NeogitGraphBlue = { fg = c.blue },
|
|
NeogitGraphBlueBold = { fg = c.blue, bold = true },
|
|
NeogitGraphPurple = { fg = c.purple },
|
|
NeogitGraphPurpleBold = { fg = c.purple, bold = true },
|
|
NeogitGraphCyan = { fg = c.cyan },
|
|
NeogitGraphCyanBold = { fg = c.cyan, bold = true },
|
|
NeogitGraphWhite = { fg = c.white2 },
|
|
NeogitGraphWhiteBold = { fg = c.white2, bold = true },
|
|
NeogitGraphGray = { fg = c.highlight },
|
|
NeogitGraphGrayBold = { fg = c.highlight, bold = true },
|
|
NeogitGraphOrange = { fg = c.orange },
|
|
NeogitSignatureGood = { fg = c.green, bold = true },
|
|
NeogitSignatureBad = { fg = c.red, bold = true },
|
|
NeogitSignatureMissing = { fg = c.yellow, bold = true },
|
|
NeogitSignatureNone = { link = 'NeogitObjectId' },
|
|
NeogitSignatureGoodUnknown = { fg = c.green, italic = true },
|
|
NeogitSignatureGoodExpired = { link = 'NeogitSignatureGoodUnknown' },
|
|
NeogitSignatureGoodExpiredKey = { link = 'NeogitSignatureGoodUnknown' },
|
|
NeogitSignatureGoodRevokedKey = { fg = c.cyan, bold = true },
|
|
NeogitNotificationInfo = { link = 'NotifyINFOTitle' },
|
|
NeogitNotificationWarning = { link = 'NotifyWARNTitle' },
|
|
NeogitNotificationError = { link = 'NotifyERRORTitle' },
|
|
NeogitPopupSectionTitle = { fg = c.blue, bold = true },
|
|
NeogitPopupBranchName = { link = 'NeogitBranch' },
|
|
NeogitPopupBold = { link = '@text.strong' },
|
|
NeogitPopupSwitchKey = { fg = c.green },
|
|
NeogitPopupSwitchEnabled = { link = 'Comment' },
|
|
NeogitPopupSwitchDisabled = { fg = c.yellow, italic = true },
|
|
NeogitPopupOptionKey = { link = 'NeogitPopupSwitchKey' },
|
|
NeogitPopupOptionEnabled = { link = 'NeogitPopupSwitchEnabled' },
|
|
NeogitPopupOptionDisabled = { link = 'NeogitPopupSwitchDisabled' },
|
|
NeogitPopupConfigKey = { link = 'NeogitPopupSwitchKey' },
|
|
NeogitPopupConfigEnabled = { link = 'NeogitPopupSwitchEnabled' },
|
|
NeogitPopupConfigDisabled = { link = 'NeogitPopupSwitchDisabled' },
|
|
NeogitPopupActionKey = { link = 'NeogitPopupSwitchKey' },
|
|
NeogitPopupActionEnabled = { link = 'NeogitPopupSwitchEnabled' },
|
|
NeogitPopupActionDisabled = { link = 'NeogitPopupSwitchDisabled' },
|
|
|
|
-- flash.nvim
|
|
FlashBackdrop = { fg = c.grey_bright },
|
|
FlashMatch = { fg = c.white2, bold = true },
|
|
FlashLabel = { fg = c.white2, bg = c.red, bold = true },
|
|
|
|
-- nvim-coverage
|
|
CoverageCovered = { fg = c.green },
|
|
CoverageUncovered = { fg = c.red },
|
|
CoveragePartial = { fg = c.yellow },
|
|
CoverageSummaryHeader = { fg = c.purple, bold = true },
|
|
CoverageSummaryPass = { fg = c.green, bold = true },
|
|
CoverageSummaryFail = { fg = c.red, bold = true },
|
|
|
|
-- neotest
|
|
NeotestPassed = { fg = c.green },
|
|
NeotestFailed = { fg = c.red },
|
|
NeotestRunning = { fg = c.yellow },
|
|
NeotestSkipped = { fg = c.cyan },
|
|
NeotestNamespace = { fg = c.red, bold = true },
|
|
NeotestFile = { fg = c.cyan },
|
|
NeotestDir = { link = 'NeotestFile' },
|
|
NeotestIndent = { fg = c.grey3 },
|
|
NeotestExpandMarker = { link = 'NeotestIndent' },
|
|
NeotestAdapterName = { fg = c.purple },
|
|
NeotestWinSelect = { fg = c.cyan, bold = true },
|
|
NeotestMarked = { fg = c.blue, bold = true },
|
|
NeotestTarget = { fg = c.red },
|
|
NeotestWatching = { fg = c.yellow },
|
|
|
|
-- lazy.nvim
|
|
LazyDimmed = { link = 'Normal' },
|
|
LazyProp = { fg = c.highlight, bold = true },
|
|
LazyH1 = { fg = c.white2, bg = c.dark_blue, bold = true },
|
|
LazyH2 = { fg = c.purple, bold = true },
|
|
LazyButton = { fg = c.white2, bg = c.grey1 },
|
|
LazyButtonActive = { link = 'LazyH1' },
|
|
LazySpecial = { fg = c.white2 },
|
|
LazyCommit = { fg = c.teal },
|
|
LazyReasonImport = { fg = c.teal },
|
|
LazyReasonRuntime = { fg = c.green },
|
|
LazyReasonCmd = { fg = c.cyan, bold = true },
|
|
LazyReasonEvent = { fg = c.yellow, bold = true },
|
|
LazyReasonFt = { fg = c.purple, bold = true },
|
|
LazyReasonKeys = { fg = c.green, bold = true },
|
|
LazyReasonPlugin = { fg = c.blue, bold = true },
|
|
LazyReasonRequire = { fg = c.teal, bold = true },
|
|
LazyReasonSource = { fg = c.red, bold = true },
|
|
LazyReasonStart = { fg = c.orange, bold = true },
|
|
}
|