Merge branch 'dev'

dev
Pocco81 2 years ago
commit 8a9ce37ea1

@ -86,10 +86,17 @@ transparent_background = false,
term_colors = false,
styles = {
comments = "italic",
functions = "italic",
keywords = "italic",
conditionals = "italic",
loops = "NONE",
functions = "NONE",
keywords = "NONE",
strings = "NONE",
variables = "italic",
variables = "NONE",
numbers = "NONE",
booleans = "NONE",
properties = "NONE",
types = "NONE",
operators = "NONE",
},
integrations = {
treesitter = true,
@ -145,7 +152,7 @@ integrations = {
}
```
The way you setup the settings on your configuration varies on whether you are using vimL for this or Lua.
The way you setup the settings on your configuration varies based on whether you are using vimL for this or Lua.
<details>
<summary>For init.lua</summary>
@ -181,14 +188,20 @@ After setting things up, you can load catppuccin like so:
```vim
" Vim Script
let g:catppuccin_flavour = "dusk" " latte, frappe, macchiato, mocha
colorscheme catppuccin
```
```lua
-- Lua
vim.g.catppuccin_flavour = "frappe" -- latte, frappe, macchiato, mocha
vim.cmd[[colorscheme catppuccin]]
```
Remember that if you want to switch your Catppuccin flavour "on the fly" you may use the `:Catppuccin <flavour>` command.
> Note: the command has autocompletion enabled, so you can just press tab to cycle through the flavours
### Configuration
Although settings already have self-explanatory names, here is where you can find info about each one of them and their classifications!
@ -218,7 +231,7 @@ If you'd like to know which highlight groups are being affected by catppuccin, c
##### Special Integrations
- **Feline.nvim**: Catppuccin provides this integration as a component that you can select on your Feline config:
- **Feline.nvim**: First make sure that the [kyazdani42/nvim-web-devicons](https://github.com/kyazdani42/nvim-web-devicons/) plugin is installed. Then update your Feline config to use the Catppuccin components:
```lua
require("feline").setup({

@ -1,7 +1,7 @@
local M = {}
function M.get_colors()
return require("catppuccin.core.color_palette")
return require("catppuccin.core.palettes.init").get_palette()
end
return M

@ -6,10 +6,17 @@ config.options = {
term_colors = false,
styles = {
comments = "italic",
functions = "italic",
keywords = "italic",
conditionals = "italic",
loops = "NONE",
functions = "NONE",
keywords = "NONE",
strings = "NONE",
variables = "italic",
variables = "NONE",
numbers = "NONE",
booleans = "NONE",
properties = "NONE",
types = "NONE",
operators = "NONE",
},
integrations = {
treesitter = true,

@ -1,26 +0,0 @@
local color_palette = {
rosewater = "#F5E0DC", -- Rosewater
flamingo = "#F2CDCD", -- Flamingo
mauve = "#DDB6F2", -- Mauve
pink = "#F5C2E7", -- Pink
red = "#F28FAD", -- Red
maroon = "#E8A2AF", -- Maroon
peach = "#F8BD96", -- Peach
yellow = "#FAE3B0", -- Yellow
green = "#ABE9B3", -- Green
blue = "#96CDFB", -- Blue
sky = "#89DCEB", -- Sky
teal = "#B5E8E0", -- Teal
lavender = "#C9CBFF", -- Lavender
white = "#D9E0EE", -- White
gray2 = "#C3BAC6", -- Gray2
gray1 = "#988BA2", -- Gray1
gray0 = "#6E6C7E", -- Gray0
black4 = "#575268", -- Black4
black3 = "#302D41", -- Black3
black2 = "#1E1E2E", -- Black2
black1 = "#1A1826", -- Black1
black0 = "#161320", -- Black0
}
return color_palette

@ -2,23 +2,23 @@ local M = {}
function M.get(cp)
return {
BufferCurrent = { bg = cp.black4, fg = cp.white },
BufferCurrentIndex = { bg = cp.black4, fg = cp.blue },
BufferCurrentMod = { bg = cp.black4, fg = cp.yellow },
BufferCurrentSign = { bg = cp.black4, fg = cp.blue },
BufferCurrentTarget = { bg = cp.black4, fg = cp.red },
BufferVisible = { bg = cp.black1, fg = cp.white },
BufferVisibleIndex = { bg = cp.black1, fg = cp.blue },
BufferVisibleMod = { bg = cp.black1, fg = cp.yellow },
BufferVisibleSign = { bg = cp.black1, fg = cp.blue },
BufferVisibleTarget = { bg = cp.black1, fg = cp.red },
BufferInactive = { bg = cp.black1, fg = cp.gray0 },
BufferInactiveIndex = { bg = cp.black1, fg = cp.gray0 },
BufferInactiveMod = { bg = cp.black1, fg = cp.yellow },
BufferInactiveSign = { bg = cp.black1, fg = cp.blue },
BufferInactiveTarget = { bg = cp.black1, fg = cp.red },
BufferTabpages = { bg = cp.black1, fg = cp.none },
BufferTabpage = { bg = cp.black1, fg = cp.blue },
BufferCurrent = { bg = cp.surface1, fg = cp.text },
BufferCurrentIndex = { bg = cp.surface1, fg = cp.blue },
BufferCurrentMod = { bg = cp.surface1, fg = cp.yellow },
BufferCurrentSign = { bg = cp.surface1, fg = cp.blue },
BufferCurrentTarget = { bg = cp.surface1, fg = cp.red },
BufferVisible = { bg = cp.mantle, fg = cp.text },
BufferVisibleIndex = { bg = cp.mantle, fg = cp.blue },
BufferVisibleMod = { bg = cp.mantle, fg = cp.yellow },
BufferVisibleSign = { bg = cp.mantle, fg = cp.blue },
BufferVisibleTarget = { bg = cp.mantle, fg = cp.red },
BufferInactive = { bg = cp.mantle, fg = cp.overlay0 },
BufferInactiveIndex = { bg = cp.mantle, fg = cp.overlay0 },
BufferInactiveMod = { bg = cp.mantle, fg = cp.yellow },
BufferInactiveSign = { bg = cp.mantle, fg = cp.blue },
BufferInactiveTarget = { bg = cp.mantle, fg = cp.red },
BufferTabpages = { bg = cp.mantle, fg = cp.none },
BufferTabpage = { bg = cp.mantle, fg = cp.blue },
}
end

@ -2,25 +2,25 @@ local M = {}
function M.get(cp)
local inactive_bg = cp.black1
local inactive_bg = cp.mantle
return {
BufferLineFill = { bg = cp.black0 },
BufferLineBackground = { fg = cp.white, bg = inactive_bg }, -- others
BufferLineBufferVisible = { fg = cp.black4, bg = inactive_bg },
BufferLineBufferSelected = { fg = cp.white, bg = cp.black2, style = "bold,italic" }, -- current
BufferLineTab = { fg = cp.black4, bg = cp.black2 },
BufferLineFill = { bg = cp.crust },
BufferLineBackcrust = { fg = cp.text, bg = inactive_bg }, -- others
BufferLineBufferVisible = { fg = cp.surface1, bg = inactive_bg },
BufferLineBufferSelected = { fg = cp.text, bg = cp.base, style = "bold,italic" }, -- current
BufferLineTab = { fg = cp.surface1, bg = cp.base },
BufferLineTabSelected = { fg = cp.red, bg = cp.blue },
BufferLineTabClose = { fg = cp.red, bg = inactive_bg },
BufferLineIndicatorSelected = { fg = cp.peach, bg = cp.black2 },
BufferLineIndicatorSelected = { fg = cp.peach, bg = cp.base },
-- separators
BufferLineSeparator = { fg = inactive_bg, bg = inactive_bg },
BufferLineSeparatorVisible = { fg = inactive_bg, bg = inactive_bg },
BufferLineSeparatorSelected = { fg = inactive_bg, bg = inactive_bg },
-- close buttons
BufferLineCloseButton = { fg = cp.black4, bg = inactive_bg },
BufferLineCloseButtonVisible = { fg = cp.black4, bg = inactive_bg },
BufferLineCloseButtonSelected = { fg = cp.red, bg = cp.black2 },
BufferLineCloseButton = { fg = cp.surface1, bg = inactive_bg },
BufferLineCloseButtonVisible = { fg = cp.surface1, bg = inactive_bg },
BufferLineCloseButtonSelected = { fg = cp.red, bg = cp.base },
}
end

@ -2,12 +2,12 @@ local M = {}
function M.get(cp)
return {
CmpItemAbbr = { fg = cp.gray2 },
CmpItemAbbrDeprecated = { fg = cp.gray0, style = "strikethrough" },
CmpItemAbbr = { fg = cp.overlay2 },
CmpItemAbbrDeprecated = { fg = cp.overlay0, style = "strikethrough" },
CmpItemKind = { fg = cp.blue },
CmpItemMenu = { fg = cp.white },
CmpItemAbbrMatch = { fg = cp.white, style = "bold" },
CmpItemAbbrMatchFuzzy = { fg = cp.white, style = "bold" },
CmpItemMenu = { fg = cp.text },
CmpItemAbbrMatch = { fg = cp.text, style = "bold" },
CmpItemAbbrMatchFuzzy = { fg = cp.text, style = "bold" },
-- kind support
CmpItemKindSnippet = { fg = cp.mauve },

@ -30,9 +30,9 @@ local clrs = require("catppuccin.core.color_palette")
-- settings
local sett = {
bkg = clrs.black3,
bkg = clrs.surface0,
diffs = clrs.mauve,
extras = clrs.gray1,
extras = clrs.overlay1,
curr_file = clrs.maroon,
curr_dir = clrs.flamingo,
}

@ -2,9 +2,9 @@ local M = {}
function M.get(cp)
return {
GitSignsAdd = { fg = cp.green, bg = cnf.transparent_background and cp.none or cp.black2 }, -- diff mode: Added line |diff.txt|
GitSignsChange = { fg = cp.yellow, bg = cnf.transparent_background and cp.none or cp.black2 }, -- diff mode: Changed line |diff.txt|
GitSignsDelete = { fg = cp.red, bg = cnf.transparent_background and cp.none or cp.black2 }, -- diff mode: Deleted line |diff.txt|
GitSignsAdd = { fg = cp.green, bg = cnf.transparent_background and cp.none or cp.base }, -- diff mode: Added line |diff.txt|
GitSignsChange = { fg = cp.yellow, bg = cnf.transparent_background and cp.none or cp.base }, -- diff mode: Changed line |diff.txt|
GitSignsDelete = { fg = cp.red, bg = cnf.transparent_background and cp.none or cp.base }, -- diff mode: Deleted line |diff.txt|
}
end

@ -2,10 +2,10 @@ local M = {}
function M.get(cp)
return {
HopNextKey = { bg = cp.black2, fg = cp.peach, style = "bold,underline" },
HopNextKey1 = { bg = cp.black2, fg = cp.blue, style = "bold" },
HopNextKey2 = { bg = cp.black2, fg = cp.teal, style = "bold,italic" },
HopUnmatched = { bg = cp.black2, fg = cp.gray0 },
HopNextKey = { bg = cp.base, fg = cp.peach, style = "bold,underline" },
HopNextKey1 = { bg = cp.base, fg = cp.blue, style = "bold" },
HopNextKey2 = { bg = cp.base, fg = cp.teal, style = "bold,italic" },
HopUnmatched = { bg = cp.base, fg = cp.overlay0 },
}
end

@ -3,8 +3,8 @@ local M = {}
function M.get(cp)
local hi = {
IndentBlanklineChar = { fg = cp.black3 },
IndentBlanklineContextChar = { fg = cp.white },
IndentBlanklineChar = { fg = cp.surface0 },
IndentBlanklineContextChar = { fg = cp.text },
}
if cnf.integrations.indent_blankline.colored_indent_levels then

@ -28,20 +28,20 @@ function M.get(cp)
end
return {
LightspeedLabel = {bg = cp.black4, fg = cp.white},
LightspeedOverlapped = {bg = cp.black4, fg = cp.white},
LightspeedLabelDistant = {bg = cp.mauve, fg = cp.white},
LightspeedLabelDistantOverlapped = {bg = cp.mauve, fg = cp.white},
LightspeedShortcut = {bg = cp.black2, fg = cp.peach, style = "italic"},
LightspeedShortcutOverlapped = {bg = cp.black2, fg = cp.peach, style = "bold"},
LightspeedMaskedChar = {bg = cp.black2, fg = cp.red, style = "undercurl"},
LightspeedGreyWash = {bg = cp.black2, fg = cp.gray0},
LightspeedUnlabeledMatch = {bg = cp.black2, fg = cp.red, style = "underline"},
LightspeedOneCharMatch = {bg = cp.black2, fg = cp.red, style = "underline"},
LightspeedUniqueChar = {bg = cp.black2, fg = cp.green, style = "strikethrough"},
LightspeedPendingOpArea = {bg = cp.black2, fg = cp.green, style = "strikethrough"},
LightspeedPendingChangeOpArea = {bg = cp.black2, fg = cp.green, style = "strikethrough"},
LightspeedCursor = {fg = cp.black2, bg = cp.white},
LightspeedLabel = {bg = cp.surface1, fg = cp.text},
LightspeedOverlapped = {bg = cp.surface1, fg = cp.text},
LightspeedLabelDistant = {bg = cp.mauve, fg = cp.text},
LightspeedLabelDistantOverlapped = {bg = cp.mauve, fg = cp.text},
LightspeedShortcut = {bg = cp.base, fg = cp.peach, style = "italic"},
LightspeedShortcutOverlapped = {bg = cp.base, fg = cp.peach, style = "bold"},
LightspeedMaskedChar = {bg = cp.base, fg = cp.red, style = "undercurl"},
LightspeedGreyWash = {bg = cp.base, fg = cp.overlay0},
LightspeedUnlabeledMatch = {bg = cp.base, fg = cp.red, style = "underline"},
LightspeedOneCharMatch = {bg = cp.base, fg = cp.red, style = "underline"},
LightspeedUniqueChar = {bg = cp.base, fg = cp.green, style = "strikethrough"},
LightspeedPendingOpArea = {bg = cp.base, fg = cp.green, style = "strikethrough"},
LightspeedPendingChangeOpArea = {bg = cp.base, fg = cp.green, style = "strikethrough"},
LightspeedCursor = {fg = cp.base, bg = cp.text},
}
end

@ -6,14 +6,14 @@ function M.get(cp)
DiagnosticWarning = { fg = cp.yellow },
DiagnosticInformation = { fg = cp.blue },
DiagnosticHint = { fg = cp.hint },
LspFloatWinNormal = { bg = cp.black0 },
LspFloatWinNormal = { bg = cp.crust },
LspFloatWinBorder = { fg = cp.blue },
LspSagaBorderTitle = { fg = cp.flamingo },
LspSagaHoverBorder = { fg = cp.blue },
LspSagaRenameBorder = { fg = cp.teal },
LspSagaDefPreviewBorder = { fg = cp.teal },
LspSagaCodeActionBorder = { fg = cp.blue },
LspSagaFinderSelection = { fg = cp.black4 },
LspSagaFinderSelection = { fg = cp.surface1 },
LspSagaCodeActionTitle = { fg = cp.blue1 },
LspSagaCodeActionContent = { fg = cp.purple },
LspSagaSignatureHelpBorder = { fg = cp.red },

@ -3,8 +3,8 @@ local M = {}
function M.get(cp)
return {
LspTroubleText = { fg = cp.green },
LspTroubleCount = { fg = cp.pink, bg = cp.black4 },
LspTroubleNormal = { fg = cp.white, bg = cp.black0 },
LspTroubleCount = { fg = cp.pink, bg = cp.surface1 },
LspTroubleNormal = { fg = cp.text, bg = cp.crust },
}
end

@ -1,4 +1,5 @@
local M = {}
local util = require("catppuccin.utils.util")
function M.get(cp)
@ -8,20 +9,22 @@ function M.get(cp)
local error = cp.red
local warning = cp.yellow
local info = cp.sky
local hint = cp.rosewater
local hint = cp.teal
local darkening_percentage = 0.095
return {
-- These groups are for the native LSP cliencp. Some other LSP clients may
-- use these groups, or use their own. Consult your LSP client's
-- documentation.
LspReferenceText = { bg = cp.black4 }, -- used for highlighting "text" references
LspReferenceRead = { bg = cp.black4 }, -- used for highlighting "read" references
LspReferenceWrite = { bg = cp.black4 }, -- used for highlighting "write" references
LspReferenceText = { bg = cp.surface1 }, -- used for highlighting "text" references
LspReferenceRead = { bg = cp.surface1 }, -- used for highlighting "read" references
LspReferenceWrite = { bg = cp.surface1 }, -- used for highlighting "write" references
-- hightlight diagnostics in numberline
DiagnosticError = { fg = error, style = virtual_text.errors }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default
DiagnosticWarn = { fg = warning, style = virtual_text.warnings }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default
DiagnosticInfo = { fg = info, style = virtual_text.information }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default
DiagnosticHint = { fg = hint, style = virtual_text.hints }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default
DiagnosticError = { bg = util.darken(error, darkening_percentage, cp.base), fg = error, style = virtual_text.errors }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default
DiagnosticWarn = { bg = util.darken(warning, darkening_percentage, cp.base), fg = warning, style = virtual_text.warnings }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default
DiagnosticInfo = { bg = util.darken(info, darkening_percentage, cp.base), fg = info, style = virtual_text.information }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default
DiagnosticHint = { bg = util.darken(hint, darkening_percentage, cp.base), fg = hint, style = virtual_text.hints }, -- Used as the mantle highlight group. Other Diagnostic highlights link to this by default
-- util.
-- for nvim nightly
DiagnosticUnderlineError = { style = underlines.errors, sp = error },
@ -29,10 +32,10 @@ function M.get(cp)
DiagnosticUnderlineInfo = { style = underlines.information, sp = info },
DiagnosticUnderlineHint = { style = underlines.hints, sp = hint },
LspDiagnosticsDefaultError = { fg = error }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspDiagnosticsDefaultWarning = { fg = warning }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspDiagnosticsDefaultInformation = { fg = info }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspDiagnosticsDefaultHint = { fg = hint }, -- Used as the base highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspDiagnosticsDefaultError = { fg = error }, -- Used as the mantle highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspDiagnosticsDefaultWarning = { fg = warning }, -- Used as the mantle highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspDiagnosticsDefaultInformation = { fg = info }, -- Used as the mantle highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspDiagnosticsDefaultHint = { fg = hint }, -- Used as the mantle highlight group. Other LspDiagnostic highlights link to this by default (except Underline)
LspSignatureActiveParameter = { fg = cp.peach },
-- LspDiagnosticsFloatingError = { }, -- Used to color "Error" diagnostic messages in diagnostics float
-- LspDiagnosticsFloatingWarning = { }, -- Used to color "Warning" diagnostic messages in diagnostics float
@ -51,7 +54,7 @@ function M.get(cp)
LspDiagnosticsUnderlineWarning = { style = underlines.warnings, sp = warning }, -- Used to underline "Warning" diagnostics
LspDiagnosticsUnderlineInformation = { style = underlines.information, sp = info }, -- Used to underline "Information" diagnostics
LspDiagnosticsUnderlineHint = { style = underlines.hints, sp = hint }, -- Used to underline "Hint" diagnostics
LspCodeLens = { fg = cp.gray0 }, -- virtual text of the codelens
LspCodeLens = { fg = cp.overlay0 }, -- virtual text of the codelens
}
end

@ -4,11 +4,11 @@ function M.get(cp)
return {
NeogitBranch = { fg = cp.pink },
NeogitRemote = { fg = cp.pink },
NeogitHunkHeader = { bg = cp.blue, fg = cp.white },
NeogitHunkHeaderHighlight = { bg = cp.black2, fg = cp.blue },
NeogitDiffContextHighlight = { bg = cp.black1, fg = cp.gray2 },
NeogitDiffDeleteHighlight = { bg = cp.black1, fg = cp.red },
NeogitDiffAddHighlight = { bg = cp.black1, fg = cp.green },
NeogitHunkHeader = { bg = cp.blue, fg = cp.text },
NeogitHunkHeaderHighlight = { bg = cp.base, fg = cp.blue },
NeogitDiffContextHighlight = { bg = cp.mantle, fg = cp.overlay2 },
NeogitDiffDeleteHighlight = { bg = cp.mantle, fg = cp.red },
NeogitDiffAddHighlight = { bg = cp.mantle, fg = cp.green },
}
end

@ -13,8 +13,8 @@ function M.get(cp)
return {
NeoTreeDirectoryName = { fg = cp.blue },
NeoTreeDirectoryIcon = { fg = cp.blue },
NeoTreeNormal = { fg = cp.white, bg = neotree.transparent_panel and "NONE" or cp.black1 },
NeoTreeIndentMarker = { fg = cp.gray0 },
NeoTreeNormal = { fg = cp.text, bg = neotree.transparent_panel and "NONE" or cp.mantle },
NeoTreeIndentMarker = { fg = cp.overlay0 },
NeoTreeRootName = { fg = root_dir_color, style = "bold" },
NeoTreeSymbolicLinkTarget = { fg = cp.pink },
NeoTreeGitModified = { fg = cp.yellow },

@ -4,9 +4,8 @@ function M.get(cp)
local config = require("catppuccin.config").options
local nvimtree = config.integrations.nvimtree
local root_dir_color = cp.pink
if nvimtree.show_root then
local root_dir_color = cp.mantle
if nvimtree.show_root == true then
root_dir_color = cp.blue
end
@ -14,19 +13,19 @@ function M.get(cp)
return {
NvimTreeFolderName = { fg = cp.blue },
NvimTreeFolderIcon = { fg = cp.blue },
NvimTreeNormal = { fg = cp.white, bg = nvimtree.transparent_panel and "NONE" or cp.black1 },
NvimTreeNormal = { fg = cp.text, bg = nvimtree.transparent_panel and "NONE" or cp.mantle },
NvimTreeOpenedFolderName = { fg = cp.blue },
NvimTreeEmptyFolderName = { fg = cp.blue },
NvimTreeIndentMarker = { fg = cp.gray0 },
NvimTreeVertSplit = { fg = cp.black2, bg = cp.black2 },
NvimTreeIndentMarker = { fg = cp.overlay0 },
NvimTreeVertSplit = { fg = cp.base, bg = cp.base },
NvimTreeRootFolder = { fg = root_dir_color, style = "bold" },
NvimTreeSymlink = { fg = cp.pink },
NvimTreeStatuslineNc = { fg = cp.black1, bg = cp.black1 },
NvimTreeStatuslineNc = { fg = cp.mantle, bg = cp.mantle },
NvimTreeGitDirty = { fg = cp.yellow },
NvimTreeGitNew = { fg = cp.blue },
NvimTreeGitDeleted = { fg = cp.red },
NvimTreeSpecialFile = { fg = cp.flamingo },
NvimTreeImageFile = { fg = cp.white },
NvimTreeImageFile = { fg = cp.text },
NvimTreeOpenedFile = { fg = cp.pink },
}
end

@ -2,7 +2,7 @@ local M = {}
function M.get(cp)
return {
FocusedSymbol = { fg = cp.yellow, bg = cp.black2 },
FocusedSymbol = { fg = cp.yellow, bg = cp.base },
}
end

@ -4,7 +4,7 @@ function M.get(cp)
return {
TelescopeBorder = { fg = cp.blue },
TelescopeSelectionCaret = { fg = cp.flamingo },
TelescopeSelection = { fg = cp.white, bg = cp.black3, style = "bold" },
TelescopeSelection = { fg = cp.text, bg = cp.surface0, style = "bold" },
TelescopeMatching = { fg = cp.blue },
}
end

@ -1,10 +1,10 @@
local M = {}
function M.get(cp)
local delimeters = cp.gray1
-- local delimeters = cp.overlay2
local operators = cp.sky
local cl = cp.mauve -- conditionals, loops
local keywords = cp.red
local keywords = cp.mauve
local math_logic = cp.peach
return {
@ -13,62 +13,65 @@ function M.get(cp)
-- By default, most of these groups link to an appropriate Vim group,
-- TSError -> Error for example, so you do not have to define these unless
-- you explicitly want to support Treesitter's improved syntax awareness.
TSField = { fg = cp.rosewater }, -- For fields.
TSProperty = { fg = cp.yellow, style = "italic" }, -- Same as TSField.
TSInclude = { fg = cp.teal, style = "italic" }, -- For includes: #include in C, use or extern crate in Rust, or require in Lua.
TSOperator = { fg = operators, style = "bold" }, -- For any operator: +, but also -> and * in cp.
TSKeywordOperator = { fg = operators, style = "bold" }, -- For new keyword operator
TSPunctSpecial = { fg = cp.maroon, style = "bold" }, -- For special punctutation that does not fall in the catagories before.
TSFloat = { fg = math_logic, style = "bold,italic" }, -- For floats.
TSNumber = { fg = math_logic, style = "bold,italic" }, -- For all numbers
TSBoolean = { fg = math_logic, style = "bold,italic" }, -- For booleans.
TSConstructor = { fg = cp.lavender }, -- For constructor calls and definitions: = { } in Lua, and Java constructors.
TSField = { fg = cp.teal }, -- For fields.
TSProperty = { fg = cp.teal, style = cnf.styles.properties or "NONE" }, -- Same as TSField.
TSInclude = { fg = cp.mauve, style = cnf.styles.keywords or "NONE" }, -- For includes: #include in C, use or extern crate in Rust, or require in Lua.
TSOperator = { fg = operators, style = cnf.styles.operators or "NONE" }, -- For any operator: +, but also -> and * in cp.
TSKeywordOperator = { fg = cp.mauve, style = cnf.styles.operators or "NONE" }, -- For new keyword operator
TSPunctSpecial = { fg = cp.sky, style = cnf.styles.operators or "NONE" }, -- For special punctutation that does not fall in the catagories before.
TSFloat = { fg = math_logic, style = cnf.styles.numbers or "NONE" }, -- For floats.
TSNumber = { fg = math_logic, style = cnf.styles.numbers or "NONE" }, -- For all numbers
TSBoolean = { fg = math_logic, style = cnf.styles.booleans or "NONE" }, -- For booleans.
TSConstructor = { fg = cp.sapphire }, -- For constructor calls and definitions: = { } in Lua, and Java constructors.
TSConstant = { fg = cp.peach }, -- For constants
TSConditional = { fg = cl, style = "bold" }, -- For keywords related to conditionnals.
TSRepeat = { fg = cl, style = "bold" }, -- For keywords related to loops.
TSException = { fg = cp.peach, style = cnf.styles.keywords }, -- For exception related keywords.
TSConditional = { fg = cl, style = cnf.styles.conditionals or "NONE" }, -- For keywords related to conditionnals.
TSRepeat = { fg = cl, style = cnf.styles.loops or "NONE" }, -- For keywords related to loops.
TSException = { fg = cp.mauve, style = cnf.styles.keywords or "NONE" }, -- For exception related keywords.
-- builtin
TSConstBuiltin = { fg = cp.lavender, style = cnf.styles.keywords }, -- For constant that are built in the language: nil in Lua.
TSFuncBuiltin = { fg = cp.peach, style = "italic" }, -- For builtin functions: table.insert in Lua.
TSTypeBuiltin = { fg = cp.yellow, style = "italic" }, -- For builtin types.
TSVariableBuiltin = { fg = cp.teal, style = "italic" }, -- Variable names that are defined by the languages, like this or self.
TSFunction = { fg = cp.blue, style = cnf.styles.functions }, -- For function (calls and definitions).
TSFuncMacro = { fg = cp.red }, -- For macro defined functions (calls and definitions): each macro_rules in Ruscp.
TSParameter = { fg = cp.rosewater, style = "italic" }, -- For parameters of a function.
TSKeywordFunction = { fg = cp.maroon, style = cnf.styles.keywords }, -- For keywords used to define a fuction.
TSKeyword = { fg = keywords, style = cnf.styles.keywords }, -- For keywords that don't fall in previous categories.
TSKeywordReturn = { fg = cp.pink },
TSConstBuiltin = { fg = cp.peach, style = cnf.styles.keywords or "NONE" }, -- For constant that are built in the language: nil in Lua.
TSFuncBuiltin = { fg = cp.peach, style = cnf.styles.functions or "NONE" }, -- For builtin functions: table.insert in Lua.
TSNamespace = { fg = cp.blue, style = "italic" }, -- For identifiers referring to modules and namespaces.
TSType = { fg = cp.yellow, style = cnf.styles.types or "NONE" }, -- For types.
TSTypeBuiltin = { fg = cp.yellow, style = cnf.styles.properties or "italic" }, -- For builtin types.
TSVariableBuiltin = { fg = cp.red }, -- Variable names that are defined by the languages, like this or self.
TSFunction = { fg = cp.blue, style = cnf.styles.functions or "NONE" }, -- For function (calls and definitions).
TSFuncMacro = { fg = cp.teal, style = cnf.styles.functions or "NONE" }, -- For macro defined functions (calls and definitions): each macro_rules in Ruscp.
TSParameter = { fg = cp.maroon, style = "italic" }, -- For parameters of a function.
TSKeywordFunction = { fg = cp.mauve, style = cnf.styles.keywords or "NONE" }, -- For keywords used to define a fuction.
TSKeyword = { fg = keywords, style = cnf.styles.keywords or "NONE" }, -- For keywords that don't fall in previous categories.
TSKeywordReturn = { fg = cp.mauve, style = cnf.styles.keywords or "NONE" },
-- TSAnnotation = { }; -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
-- TSAttribute = { }; -- (unstable) TODO: docs
-- TSCharacter = { }; -- For characters.
-- TSgray0 = { }; -- For gray0 blocks.
TSNote = { fg = cp.black2, bg = cp.blue },
TSWarning = { fg = cp.black2, bg = cp.yellow },
TSDanger = { fg = cp.black2, bg = cp.red },
-- TSConstMacro = { }; -- For constants that are defined by macros: NULL in cp.
-- TSoverlay0 = { }; -- For overlay0 blocks.
TSNote = { fg = cp.base, bg = cp.blue },
TSWarning = { fg = cp.base, bg = cp.yellow },
TSDanger = { fg = cp.base, bg = cp.red },
TSConstMacro = { fg = cp.mauve }; -- For constants that are defined by macros: NULL in cp.
-- TSError = { fg = cp.red }, -- For syntax/parser errors.
-- rustTSField = { fg = cp.black4 }, -- For fields.
TSLabel = { fg = cp.blue }, -- For labels: label: in C and :label: in Lua.
TSMethod = { fg = cp.blue, style = "italic" }, -- For method calls and definitions.
TSNamespace = { fg = cp.rosewater, style = "italic" }, -- For identifiers referring to modules and namespaces.
-- rustTSField = { fg = cp.surface1 }, -- For fields.
TSLabel = { fg = cp.sapphire }, -- For labels: label: in C and :label: in Lua.
TSMethod = { fg = cp.blue, style = cnf.styles.functions or "NONE" }, -- For method calls and definitions.
-- TSNone = { }; -- TODO: docs
-- TSParameterReference= { }; -- For references to parameters of a function.
tomlTSProperty = { fg = cp.blue }, -- Differentiates between string and properties
TSPunctDelimiter = { fg = cp.teal }, -- For delimiters ie: .
TSPunctBracket = { fg = delimeters }, -- For brackets and parenthesis.
TSString = { fg = cp.green }, -- For strings.
TSStringRegex = { fg = cp.peach, style = cnf.styles.strings }, -- For regexes.
TSPunctDelimiter = { fg = cp.overlay2 }, -- For delimiters ie: .
-- TSPunctBracket = { fg = delimeters }, -- For brackets and parenthesis.
TSPunctBracket = { fg = cp.overlay2 }, -- For brackets and parenthesis.
TSString = { fg = cp.green, style = cnf.styles.strings or "NONE" }, -- For strings.
TSStringRegex = { fg = cp.peach, style = cnf.styles.strings or "NONE" }, -- For regexes.
-- TSSymbol = { }; -- For identifiers referring to symbols or atoms.
TSType = { fg = cp.yellow }, -- For types.
TSVariable = { fg = cp.white, style = cnf.styles.variables }, -- Any variable name that does not have another highlighcp.
TSTagAttribute = { fg = cp.mauve, style = "italic" }, -- Tags like html tag names.
TSTag = { fg = cp.peach }, -- Tags like html tag names.
TSTagDelimiter = { fg = cp.maroon }, -- Tag delimiter like < > /
TSText = { fg = cp.white }, -- For strings considerated text in a markup language.
TSVariable = { fg = cp.text, style = cnf.styles.variables or "NONE" }, -- Any variable name that does not have another highlighcp.
TSTagAttribute = { fg = cp.teal, style = "italic" }, -- Tags like html tag names.
TSTag = { fg = cp.mauve }, -- Tags like html tag names.
TSTagDelimiter = { fg = cp.sky }, -- Tag delimiter like < > /
TSText = { fg = cp.text }, -- For strings considerated text in a markup language.
-- TSEmphasis = { }; -- For text to be represented with emphasis.
-- TSUnderline = { }; -- For text to be represented with an underline.
-- TSStrike = { }; -- For strikethrough texcp.
@ -86,25 +89,27 @@ function M.get(cp)
TSStringEscape = { fg = cp.pink, style = cnf.styles.strings }, -- For escape characters within a string.
-- bash
bashTSFuncBuiltin = { fg = cp.red, style = "italic" },
bashTSParameter = { fg = cp.yellow, style = "italic" },
-- bashTSFuncBuiltin = { fg = cp.red, style = "italic" },
-- bashTSParameter = { fg = cp.yellow, style = "italic" },
-- lua
luaTSField = { fg = cp.lavender },
luaTSConstructor = { fg = cp.flamingo }, -- For constructor calls and definitions: = { } in Lua, and Java constructors.
-- json
jsonTSLabel = { fg = cp.blue }, -- For labels: label: in C and :label: in Lua.
-- java
javaTSConstant = { fg = cp.teal },
-- lua
luaTSConstructor = { fg = cp.lavender }, -- For constructor calls and definitions: = { } in Lua, and Java constructors.
-- typescript
typescriptTSProperty = { fg = cp.lavender, style = "italic" }, -- Same as TSField.
-- typescript
typescriptTSConstructor = { fg = cp.lavender },
-- css
cssTSType = { fg = cp.lavender },
cssTSProperty = { fg = cp.yellow, style = "italic" }, -- Same as TSField.
-- TSX (Typescript React)
tsxTSConstructor = { fg = cp.lavender },
tsxTSTagAttribute = { fg = cp.mauve },
-- cpp
cppTSProperty = { fg = cp.white },
cppTSProperty = { fg = cp.text },
-- yaml
yamlTSField = { fg = cp.blue }, -- For fields.
}
end

@ -2,7 +2,7 @@ local M = {}
function M.get(cp)
local transparent_background = require("catppuccin.config").options.transparent_background
local bg_highlight = transparent_background and "NONE" or cp.black2
local bg_highlight = transparent_background and "NONE" or cp.base
return {
rainbowcol1 = {bg = bg_highlight, fg = cp.red},
rainbowcol2 = {bg = bg_highlight, fg = cp.teal},

@ -2,8 +2,8 @@ local M = {}
function M.get(cp)
return {
Sneak = { fg = cp.gray2, bg = cp.pink },
SneakScope = { bg = cp.white },
Sneak = { fg = cp.overlay2, bg = cp.pink },
SneakScope = { bg = cp.text },
}
end

@ -5,10 +5,10 @@ function M.get(cp)
WhichKey = { fg = cp.flamingo },
WhichKeyGroup = { fg = cp.blue },
WhichKeyDesc = { fg = cp.pink },
WhichKeySeperator = { fg = cp.gray0 },
WhichKeySeparator = { fg = cp.gray0 },
WhichKeyFloat = { bg = cp.black0 },
WhichKeyValue = { fg = cp.gray0 },
WhichKeySeperator = { fg = cp.overlay0 },
WhichKeySeparator = { fg = cp.overlay0 },
WhichKeyFloat = { bg = cp.crust },
WhichKeyValue = { fg = cp.overlay0 },
}
end

@ -1,5 +1,6 @@
local colors_util = require("catppuccin.utils.colors")
local color_palette = require("catppuccin.core.color_palette")
local util = require("catppuccin.utils.util")
local cp
local M = {}
@ -9,7 +10,7 @@ local function get_properties()
background = "dark",
}
if colors_util.assert_brightness(color_palette.black2) then
if colors_util.assert_brightness(cp.base) then
props["background"] = "light"
end
@ -17,69 +18,68 @@ local function get_properties()
end
local function get_base()
local cp = color_palette
cp.none = "NONE"
return {
Comment = { fg = cp.gray0, style = cnf.styles.comments }, -- just comments
ColorColumn = { bg = cp.black3 }, -- used for the columns set with 'colorcolumn'
Conceal = { fg = cp.gray1 }, -- placeholder characters substituted for concealed text (see 'conceallevel')
Cursor = { fg = cp.black2, bg = cp.white }, -- character under the cursor
lCursor = { fg = cp.black2, bg = cp.white }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
CursorIM = { fg = cp.black2, bg = cp.white }, -- like Cursor, but used when in IME mode |CursorIM|
CursorColumn = { bg = cp.black1 }, -- Screen-column at the cursor, when 'cursorcolumn' is secp.
CursorLine = { bg = cp.black3 }, -- Screen-line at the cursor, when 'cursorline' is secp. Low-priority if foreground (ctermfg OR guifg) is not secp.
Comment = { fg = cp.surface2, style = cnf.styles.comments }, -- just comments
ColorColumn = { bg = cp.surface0 }, -- used for the columns set with 'colorcolumn'
Conceal = { fg = cp.overlay1 }, -- placeholder characters substituted for concealed text (see 'conceallevel')
Cursor = { fg = cp.base, bg = cp.text }, -- character under the cursor
lCursor = { fg = cp.base, bg = cp.text }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
CursorIM = { fg = cp.base, bg = cp.text }, -- like Cursor, but used when in IME mode |CursorIM|
CursorColumn = { bg = cp.mantle }, -- Screen-column at the cursor, when 'cursorcolumn' is secp.
CursorLine = { bg = colors_util.vary_color({latte = util.lighten(cp.mantle, 0.70, cp.base)}, util.darken(cp.surface0, 0.64, cp.base)) }, -- Screen-line at the cursor, when 'cursorline' is secp. Low-priority if forecrust (ctermfg OR guifg) is not secp.
Directory = { fg = cp.blue }, -- directory names (and other special names in listings)
EndOfBuffer = { fg = cp.black2 }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|.
EndOfBuffer = { fg = cp.base }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|.
ErrorMsg = { fg = cp.red, style = "bold,italic" }, -- error messages on the command line
VertSplit = { fg = cp.black0 }, -- the column separating vertically split windows
Folded = { fg = cp.blue, bg = cp.black4 }, -- line used for closed folds
FoldColumn = { bg = cp.black2, fg = cp.gray0 }, -- 'foldcolumn'
SignColumn = { bg = cnf.transparent_background and cp.none or cp.black2, fg = cp.black4 }, -- column where |signs| are displayed
SignColumnSB = { bg = cp.black0, fg = cp.black4 }, -- column where |signs| are displayed
Substitute = { bg = cp.black4, fg = cp.pink }, -- |:substitute| replacement text highlighting
LineNr = { fg = cp.black4 }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is secp.
CursorLineNr = { fg = cp.green }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. highlights the number in numberline.
VertSplit = { fg = cp.crust }, -- the column separating vertically split windows
Folded = { fg = cp.blue, bg = cp.surface1 }, -- line used for closed folds
FoldColumn = { bg = cp.base, fg = cp.overlay0 }, -- 'foldcolumn'
SignColumn = { bg = cnf.transparent_background and cp.none or cp.base, fg = cp.surface1 }, -- column where |signs| are displayed
SignColumnSB = { bg = cp.crust, fg = cp.surface1 }, -- column where |signs| are displayed
Substitute = { bg = cp.surface1, fg = cp.pink }, -- |:substitute| replacement text highlighting
LineNr = { fg = cp.surface1 }, -- colors_util.vary_color({latte = cp.crust}, cp.surface1) }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is secp.
CursorLineNr = { fg = cp.lavender }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. highlights the number in numberline.
MatchParen = { fg = cp.peach, style = "bold" }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|
ModeMsg = { fg = cp.white, style = "bold" }, -- 'showmode' message (e.g., "-- INSERT -- ")
MsgArea = { fg = cp.white }, -- Area for messages and cmdline
ModeMsg = { fg = cp.text, style = "bold" }, -- 'showmode' message (e.g., "-- INSERT -- ")
MsgArea = { fg = cp.text }, -- Area for messages and cmdline
MsgSeparator = {}, -- Separator for scrolled messages, `msgsep` flag of 'display'
MoreMsg = { fg = cp.blue }, -- |more-prompt|
NonText = { fg = cp.gray0 }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.
Normal = { fg = cp.white, bg = cnf.transparent_background and cp.none or cp.black2 }, -- normal text
NormalNC = { fg = cp.white, bg = cnf.transparent_background and cp.none or cp.black2 }, -- normal text in non-current windows
NormalSB = { fg = cp.white, bg = cp.black0 }, -- normal text in non-current windows
NormalFloat = { fg = cp.white, bg = cp.black1 }, -- Normal text in floating windows.
NonText = { fg = cp.overlay0 }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.
Normal = { fg = cp.text, bg = cnf.transparent_background and cp.none or cp.base }, -- normal text
NormalNC = { fg = cp.text, bg = cnf.transparent_background and cp.none or cp.base }, -- normal text in non-current windows
NormalSB = { fg = cp.text, bg = cp.crust }, -- normal text in non-current windows
NormalFloat = { fg = cp.text, bg = cp.mantle }, -- Normal text in floating windows.
FloatBorder = { fg = cp.blue },
Pmenu = { bg = cp.black3, fg = cp.gray2 }, -- Popup menu: normal item.
PmenuSel = { fg = cp.white, bg = cp.black4, style = "bold" }, -- Popup menu: selected item.
PmenuSbar = { bg = cp.black4 }, -- Popup menu: scrollbar.
PmenuThumb = { bg = cp.gray0 }, -- Popup menu: Thumb of the scrollbar.
Pmenu = { bg = cp.surface0, fg = cp.overlay2 }, -- Popup menu: normal item.
PmenuSel = { fg = cp.text, bg = cp.surface1, style = "bold" }, -- Popup menu: selected item.
PmenuSbar = { bg = cp.surface1 }, -- Popup menu: scrollbar.
PmenuThumb = { bg = cp.overlay0 }, -- Popup menu: Thumb of the scrollbar.
Question = { fg = cp.blue }, -- |hit-enter| prompt and yes/no questions
QuickFixLine = { bg = cp.black4, style = "bold" }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
Search = { bg = cp.black4, fg = cp.pink, style = "bold" }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand oucp.
IncSearch = { bg = cp.pink, fg = cp.black4 }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
SpecialKey = { fg = cp.white }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace|
QuickFixLine = { bg = cp.surface1, style = "bold" }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
Search = { bg = cp.surface1, fg = cp.pink, style = "bold" }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand oucp.
IncSearch = { bg = cp.pink, fg = cp.surface1 }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
SpecialKey = { fg = cp.text }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' textspace. |hl-Whitespace|
SpellBad = { sp = cp.red, style = "undercurl" }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
SpellCap = { sp = cp.yellow, style = "undercurl" }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
SpellLocal = { sp = cp.blue, style = "undercurl" }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.
SpellRare = { sp = cp.green, style = "undercurl" }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise.
StatusLine = { fg = cp.white, bg = cp.black1 }, -- status line of current window
StatusLineNC = { fg = cp.black4, bg = cp.black1 }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window.
TabLine = { bg = cp.black1, fg = cp.black4 }, -- tab pages line, not active tab page label
StatusLine = { fg = cp.text, bg = cp.mantle }, -- status line of current window
StatusLineNC = { fg = cp.surface1, bg = cp.mantle }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window.
TabLine = { bg = cp.mantle, fg = cp.surface1 }, -- tab pages line, not active tab page label
TabLineFill = { bg = cp.black }, -- tab pages line, where there are no labels
TabLineSel = { fg = cp.green, bg = cp.black4 }, -- tab pages line, active tab page label
TabLineSel = { fg = cp.green, bg = cp.surface1 }, -- tab pages line, active tab page label
Title = { fg = cp.blue, style = "bold" }, -- titles for output from ":set all", ":autocmd" etcp.
Visual = { bg = cp.black4, style = "bold" }, -- Visual mode selection
VisualNOS = { bg = cp.black4, style = "bold" }, -- Visual mode selection when vim is "Not Owning the Selection".
Visual = { bg = cp.surface1, style = "bold" }, -- Visual mode selection
VisualNOS = { bg = cp.surface1, style = "bold" }, -- Visual mode selection when vim is "Not Owning the Selection".
WarningMsg = { fg = cp.yellow }, -- warning messages
Whitespace = { fg = cp.black4 }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
WildMenu = { bg = cp.gray0 }, -- current match in 'wildmenu' completion
Whitespace = { fg = cp.surface1 }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
WildMenu = { bg = cp.overlay0 }, -- current match in 'wildmenu' completion
-- These groups are not listed as default vim groups,
-- but they are defacto standard group names for syntax highlighting.
-- gray0ed out groups should chain up to their "preferred" group by
-- overlay0ed out groups should chain up to their "preferred" group by
-- default,
-- Ungray0 and edit if you want more specific syntax highlighting.
-- Unoverlay0 and edit if you want more specific syntax highlighting.
-- code itself
@ -113,7 +113,7 @@ local function get_base()
-- SpecialChar = { }, -- special character in a constant
-- Tag = { }, -- you can use CTRL-] on this
-- Delimiter = { }, -- character that needs attention
-- Specialgray0= { }, -- special things inside a gray0
-- Specialoverlay0= { }, -- special things inside a overlay0
-- Debug = { }, -- debugging statements
Underlined = { style = "underline" }, -- (preferred) text that stands out, HTML links
@ -123,24 +123,24 @@ local function get_base()
-- Ignore = { }, -- (preferred) left blank, hidden |hl-Ignore|
Error = { fg = cp.red }, -- (preferred) any erroneous construct
Todo = { bg = cp.yellow, fg = cp.black2, style = "bold" }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX
Todo = { bg = cp.yellow, fg = cp.base, style = "bold" }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX
qfLineNr = { fg = cp.yellow },
qfFileName = { fg = cp.blue },
htmlH1 = { fg = cp.pink, style = "bold" },
htmlH2 = { fg = cp.blue, style = "bold" },
-- mkdHeading = { fg = cp.peach, style = "bold" },
-- mkdCode = { bg = cp.terminal_black, fg = cp.white },
mkdCodeDelimiter = { bg = cp.black2, fg = cp.white },
-- mkdCode = { bg = cp.terminal_black, fg = cp.text },
mkdCodeDelimiter = { bg = cp.base, fg = cp.text },
mkdCodeStart = { fg = cp.flamingo, style = "bold" },
mkdCodeEnd = { fg = cp.flamingo, style = "bold" },
-- mkdLink = { fg = cp.blue, style = "underline" },
-- debugging
debugPC = { bg = cp.black0 }, -- used for highlighting the current line in terminal-debug
debugBreakpoint = { bg = cp.black2, fg = cp.gray0 }, -- used for breakpoint colors in terminal-debug
debugPC = { bg = cp.crust }, -- used for highlighting the current line in terminal-debug
debugBreakpoint = { bg = cp.base, fg = cp.overlay0 }, -- used for breakpoint colors in terminal-debug
-- illuminate
illuminatedWord = { bg = cp.black4 },
illuminatedCurWord = { bg = cp.black4 },
illuminatedWord = { bg = cp.surface1 },
illuminatedCurWord = { bg = cp.surface1 },
-- diff
diffAdded = { fg = cp.green },
diffRemoved = { fg = cp.red },
@ -148,12 +148,12 @@ local function get_base()
diffOldFile = { fg = cp.yellow },
diffNewFile = { fg = cp.peach },
diffFile = { fg = cp.blue },
diffLine = { fg = cp.gray0 },
diffLine = { fg = cp.overlay0 },
diffIndexLine = { fg = cp.pink },
DiffAdd = { fg = cp.green, bg = cp.black2 }, -- diff mode: Added line |diff.txt|
DiffChange = { fg = cp.yellow, bg = cp.black2 }, -- diff mode: Changed line |diff.txt|
DiffDelete = { fg = cp.red, bg = cp.black2 }, -- diff mode: Deleted line |diff.txt|
DiffText = { fg = cp.blue, bg = cp.black2 }, -- diff mode: Changed text within a changed line |diff.txt|
DiffAdd = { fg = cp.green, bg = cp.base }, -- diff mode: Added line |diff.txt|
DiffChange = { fg = cp.yellow, bg = cp.base }, -- diff mode: Changed line |diff.txt|
DiffDelete = { fg = cp.red, bg = cp.base }, -- diff mode: Deleted line |diff.txt|
DiffText = { fg = cp.blue, bg = cp.base }, -- diff mode: Changed text within a changed line |diff.txt|
-- NeoVim
healthError = { fg = cp.red },
healthSuccess = { fg = cp.teal },
@ -166,7 +166,7 @@ local function get_base()
GlyphPalette3 = { fg = cp.yellow },
GlyphPalette4 = { fg = cp.blue },
GlyphPalette6 = { fg = cp.teal },
GlyphPalette7 = { fg = cp.white },
GlyphPalette7 = { fg = cp.text },
GlyphPalette9 = { fg = cp.red },
}
end
@ -191,7 +191,7 @@ local function get_integrations()
final_integrations = vim.tbl_deep_extend(
"force",
final_integrations,
require("catppuccin.core.integrations." .. integration).get(color_palette)
require("catppuccin.core.integrations." .. integration).get(cp)
)
end
end
@ -205,11 +205,12 @@ local function get_integrations()
end
local function get_terminal()
return color_palette
return cp
end
function M.apply()
_G.cnf = require("catppuccin.config").options
cp = require("catppuccin.core.palettes.init").get_palette()
local theme = {}
theme.properties = get_properties() -- nvim settings

@ -0,0 +1,37 @@
-- NOTE: references for Catppuccin Frappé
-- monochromatic: https://coolors.co/c6ceef-b1b8d7-9ba2bf-868ca7-707590-5b5f78-454960-303348-252737-181a25
-- analogous 1: https://coolors.co/f2d5cf-eebebe-f4b8e4-ca9ee6-ea999c-e78284-ef9f76
-- analogous 2: https://coolors.co/bfb7e4-8caaee-99d1db-e5c890-85c1dc-a6d189-81c8be
local color_palette = {
rosewater = "#F2D5CF",
flamingo = "#EEBEBE",
pink = "#F4B8E4",
mauve = "#CA9EE6",
red = "#E78284",
maroon = "#EA999C",
peach = "#EF9F76",
yellow = "#E5C890",
green = "#A6D189",
teal = "#81C8BE",
sky = "#99D1DB",
sapphire = "#85C1DC",
blue = "#8CAAEE",
lavender = "#BABBF1",
text = "#C6CEEF",
subtext1 = "#B5BDDC",
subtext0 = "#A5ACC9",
overlay2 = "#949BB7",
overlay1 = "#838AA4",
overlay0 = "#737891",
surface2 = "#62677E",
surface1 = "#51566C",
surface0 = "#414559",
base = "#303446",
mantle = "#292C3C",
crust = "#232634",
}
return color_palette

@ -0,0 +1,12 @@
local M = {}
function M.get_palette()
local flvr = vim.g.catppuccin_flavour
if flvr == "mocha" or flvr == "latte" or flvr == "macchiato" or flvr == "frappe" then
return require("catppuccin.core.palettes." .. flvr)
end
return require("catppuccin.core.palettes.mocha")
end
return M

@ -0,0 +1,37 @@
-- NOTE: references for Catppuccin Latte
-- monochromatic: https://coolors.co/fbf8f4-e9e6e6-d7d3d9-c4c1cb-b2aebd-a09cb0-8e89a2-7b7794-696487-575279
-- analogous 1: https://coolors.co/de9584-dd7878-ec83d0-822fee-e64553-bb0d33-fe640b
-- analogous 2: https://coolors.co/7287fd-2a6ef5-04a5e5-e49320-209fb5-40a02b-179299
local color_palette = {
rosewater = "#dc8a78",
flamingo = "#DD7878",
pink = "#ea76cb",
mauve = "#8839EF",
red = "#D20F39",
maroon = "#E64553",
peach = "#FE640B",
yellow = "#df8e1d",
green = "#40A02B",
teal = "#179299",
sky = "#04A5E5",
sapphire = "#209FB5",
blue = "#1e66f5",
lavender = "#7287FD",
text = "#4C4F69",
subtext1 = "#5C5F77",
subtext0 = "#6C6F85",
overlay2 = "#7C7F93",
overlay1 = "#8C8FA1",
overlay0 = "#9CA0B0",
surface2 = "#ACB0BE",
surface1 = "#BCC0CC",
surface0 = "#CCD0DA",
crust = "#DCE0E8",
mantle = "#E6E9EF",
base = "#EFF1F5",
}
return color_palette

@ -0,0 +1,37 @@
-- NOTE: references for Catppuccin Macchiato
-- monochromatic: https://coolors.co/c5cff5-aeb7da-979fc0-8087a5-696f8a-52576f-3b3f55-24273a-181926-0c0d13
-- analogous 1: https://coolors.co/f4dbd6-f0c6c6-f5bde6-c6a0f6-ee99a0-ed8796-f5a97f
-- analogous 2: https://coolors.co/bfb7e4-8caaee-99d1db-e5c890-85c1dc-a6d189-81c8be
local color_palette = {
rosewater = "#F4DBD6",
flamingo = "#F0C6C6",
pink = "#F5BDE6",
mauve = "#C6A0F6",
red = "#ED8796",
maroon = "#EE99A0",
peach = "#F5A97F",
yellow = "#EED49F",
green = "#A6DA95",
teal = "#8BD5CA",
sky = "#91D7E3",
sapphire = "#7DC4E4",
blue = "#8AADF4",
lavender = "#B7BDF8",
text = "#C5CFF5",
subtext1 = "#B3BCE0",
subtext0 = "#A1AACB",
overlay2 = "#8F97B7",
overlay1 = "#7D84A2",
overlay0 = "#6C728D",
surface2 = "#5A5F78",
surface1 = "#484C64",
surface0 = "#363A4F",
base = "#24273A",
mantle = "#1E2030",
crust = "#181926",
}
return color_palette

@ -0,0 +1,37 @@
-- NOTE: references for Catppuccin Mocha
-- monochromatic: https://coolors.co/c6d0f5-aeb7d9-969dbc-7e84a0-666a83-4e5167-36374a-1e1e2e-12121c-07070a
-- analogous 1: https://coolors.co/f5e0dc-f2cdcd-f5c2e7-cba6f7-eba0ac-f38ba8-fab387
-- analogous 2: https://coolors.co/bfb7e4-8caaee-99d1db-e5c890-85c1dc-a6d189-81c8be
local color_palette = {
rosewater = "#F5E0DC",
flamingo = "#F2CDCD",
pink = "#F5C2E7",
mauve = "#CBA6F7",
red = "#F38BA8",
maroon = "#EBA0AC",
peach = "#FAB387",
yellow = "#F9E2AF",
green = "#A6E3A1",
teal = "#94E2D5",
sky = "#89DCEB",
sapphire = "#74C7EC",
blue = "#87B0F9",
lavender = "#B4BEFE",
text = "#C6D0F5",
subtext1 = "#B3BCDF",
subtext0 = "#A1A8C9",
overlay2 = "#8E95B3",
overlay1 = "#7B819D",
overlay0 = "#696D86",
surface2 = "#565970",
surface1 = "#43465A",
surface0 = "#313244",
base = "#1E1E2E",
mantle = "#181825",
crust = "#11111B",
}
return color_palette

@ -1,6 +1,11 @@
local M = {}
local utils = require("catppuccin.utils.util")
local flavours = {"latte", "frappe", "macchiato", "mocha"}
function M.cli_flavour_completion()
return vim.tbl_keys(require("catppuccin.utils.data").set_of(flavours))
end
local function load()
local catppuccin = require("catppuccin")
@ -18,17 +23,11 @@ local function load()
end
end
local function clear()
vim.cmd("hi clear")
end
function M.main(option)
option = option or "load"
if option == "load" then
load()
elseif option == "clear" then
clear()
else
print("catppuccin: option was not recognized")
end

@ -6,7 +6,7 @@ local function color_is_bright(r, g, b)
if luminance > 0.5 then
return true -- Bright colors, black font
else
return false -- Dark colors, white font
return false -- Dark colors, text font
end
end
@ -27,4 +27,13 @@ function M.assert_brightness(color)
return false -- dull
end
function M.vary_color(palettes, default)
local flvr = vim.g.catppuccin_flavour
if palettes[flvr] ~= nil then
return palettes[flvr]
end
return default
end
return M

@ -0,0 +1,11 @@
local M = {}
function M.set_of(list)
local set = {}
for i = 1, #list do
set[list[i]] = true
end
return set
end
return M

@ -21,7 +21,7 @@ local hex_to_rgb = function(hex_str)
return { tonumber(red, 16), tonumber(green, 16), tonumber(blue, 16) }
end
---@param fg string foreground color
---@param fg string forecrust color
---@param bg string background color
---@param alpha number number between 0 and 1. 0 results in bg, 1 results in fg
function util.blend(fg, bg, alpha)
@ -78,7 +78,7 @@ function util.string_to_color(colors, value, default)
return value
end
local acceptable_colors = { "black", "red", "green", "blue", "magenta", "cyan", "white", "orange", "pink" }
local acceptable_colors = { "black", "red", "green", "blue", "magenta", "cyan", "text", "orange", "pink" }
for _, ac in ipairs(acceptable_colors) do
if string.match(value, ac) then
return colors[value]
@ -117,8 +117,8 @@ function util.properties(tbl)
end
function util.terminal(cp)
g.terminal_color_0 = cp.gray0
g.terminal_color_8 = cp.gray1
g.terminal_color_0 = cp.overlay0
g.terminal_color_8 = cp.overlay1
g.terminal_color_1 = cp.red
g.terminal_color_9 = cp.red
@ -138,8 +138,8 @@ function util.terminal(cp)
g.terminal_color_6 = cp.sky
g.terminal_color_14 = cp.sky
g.terminal_color_7 = cp.white
g.terminal_color_15 = cp.white
g.terminal_color_7 = cp.text
g.terminal_color_15 = cp.text
end
function util.load(theme)

@ -2,36 +2,36 @@ local cp = require("catppuccin.core.color_palette")
local catppuccin = {}
catppuccin.normal = {
left = { { cp.black1, cp.blue }, { cp.blue, cp.black2 } },
middle = { { cp.blue, cp.black4 } },
right = { { cp.gray0, cp.black2 }, { cp.blue, cp.black3 } },
error = { { cp.black1, cp.red } },
warning = { { cp.black1, cp.yellow } },
left = { { cp.mantle, cp.blue }, { cp.blue, cp.base } },
middle = { { cp.blue, cp.surface1 } },
right = { { cp.overlay0, cp.base }, { cp.blue, cp.surface0 } },
error = { { cp.mantle, cp.red } },
warning = { { cp.mantle, cp.yellow } },
}
catppuccin.insert = {
left = { { cp.black1, cp.teal }, { cp.blue, cp.black2 } },
left = { { cp.mantle, cp.teal }, { cp.blue, cp.base } },
}
catppuccin.visual = {
left = { { cp.black1, cp.mauve }, { cp.blue, cp.black2 } },
left = { { cp.mantle, cp.mauve }, { cp.blue, cp.base } },
}
catppuccin.replace = {
left = { { cp.black1, cp.red }, { cp.blue, cp.black2 } },
left = { { cp.mantle, cp.red }, { cp.blue, cp.base } },
}
catppuccin.inactive = {
left = { { cp.blue, cp.black2 }, { cp.gray0, cp.black2 } },
middle = { { cp.black4, cp.black2 } },
right = { { cp.black4, cp.black2 }, { cp.gray0, cp.black2 } },
left = { { cp.blue, cp.base }, { cp.overlay0, cp.base } },
middle = { { cp.surface1, cp.base } },
right = { { cp.surface1, cp.base }, { cp.overlay0, cp.base } },
}
catppuccin.tabline = {
left = { { cp.gray0, cp.black2 }, { cp.gray0, cp.black2 } },
middle = { { cp.black4, cp.black2 } },
right = { { cp.black4, cp.black2 }, { cp.gray0, cp.black2 } },
tabsel = { { cp.blue, cp.black4 }, { cp.gray0, cp.black2 } },
left = { { cp.overlay0, cp.base }, { cp.overlay0, cp.base } },
middle = { { cp.surface1, cp.base } },
right = { { cp.surface1, cp.base }, { cp.overlay0, cp.base } },
tabsel = { { cp.blue, cp.surface1 }, { cp.overlay0, cp.base } },
}
return catppuccin

@ -2,35 +2,35 @@ local cp = require("catppuccin.core.color_palette")
local catppuccin = {}
catppuccin.normal = {
a = { bg = cp.blue, fg = cp.black1, gui = "bold" },
b = { bg = cp.black4, fg = cp.blue },
c = { bg = cp.black1, fg = cp.white },
a = { bg = cp.blue, fg = cp.mantle, gui = "bold" },
b = { bg = cp.surface1, fg = cp.blue },
c = { bg = cp.mantle, fg = cp.text },
}
catppuccin.insert = {
a = { bg = cp.green, fg = cp.black2, gui = "bold" },
b = { bg = cp.black4, fg = cp.teal },
a = { bg = cp.green, fg = cp.base, gui = "bold" },
b = { bg = cp.surface1, fg = cp.teal },
}
catppuccin.command = {
a = { bg = cp.peach, fg = cp.black2, gui = "bold" },
b = { bg = cp.black4, fg = cp.peach },
a = { bg = cp.peach, fg = cp.base, gui = "bold" },
b = { bg = cp.surface1, fg = cp.peach },
}
catppuccin.visual = {
a = { bg = cp.mauve, fg = cp.black2, gui = "bold" },
b = { bg = cp.black4, fg = cp.mauve },
a = { bg = cp.mauve, fg = cp.base, gui = "bold" },
b = { bg = cp.surface1, fg = cp.mauve },
}
catppuccin.replace = {
a = { bg = cp.red, fg = cp.black2, gui = "bold" },
b = { bg = cp.black4, fg = cp.red },
a = { bg = cp.red, fg = cp.base, gui = "bold" },
b = { bg = cp.surface1, fg = cp.red },
}
catppuccin.inactive = {
a = { bg = cp.black1, fg = cp.blue },
b = { bg = cp.black1, fg = cp.black4, gui = "bold" },
c = { bg = cp.black1, fg = cp.gray0 },
a = { bg = cp.mantle, fg = cp.blue },
b = { bg = cp.mantle, fg = cp.surface1, gui = "bold" },
c = { bg = cp.mantle, fg = cp.overlay0 },
}
return catppuccin

@ -0,0 +1,15 @@
if exists('g:loaded_catppuccin') | finish | endif
function! s:FlavourCompletion(...) abort
return join(sort(luaeval("require'catppuccin.main'.cli_flavour_completion()")), "\n")
endfunction
function! s:ApplyFlavour(args) abort
let l:flavour = matchstr(a:args[0], "[a-z]*")
let g:catppuccin_flavour = flavour
colorscheme catppuccin
endfunction
command! -nargs=1 -complete=custom,s:FlavourCompletion Catppuccin call s:ApplyFlavour([<f-args>])
let g:loaded_catppuccin = 1
Loading…
Cancel
Save