nvim/lua/user/themes/nord/groups/plugins.lua
Hoang Nguyen 0c9e4d20e0
Use aerial.nvim for the breadcrumbs on winbar
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
2024-02-13 00:00:00 +07:00

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 },
}