mirror of https://github.com/sgoudham/nvim.git
BREAKING CHANGE: reworked most directories and function calls
parent
24191b87a2
commit
c41a6272f7
@ -1,7 +1,7 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get_colors()
|
function M.get_colors()
|
||||||
return require("catppuccin.core.palettes.init").get_palette()
|
return require("catppuccin.palettes.init").get_palette()
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
BufferCurrent = { bg = cp.surface1, fg = cp.text },
|
BufferCurrent = { bg = cp.surface1, fg = cp.text },
|
||||||
BufferCurrentIndex = { bg = cp.surface1, fg = cp.blue },
|
BufferCurrentIndex = { bg = cp.surface1, fg = cp.blue },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
local cnf = require("catppuccin.config").options
|
local cnf = require("catppuccin.config").options
|
||||||
local transparent_background = cnf.transparent_background
|
local transparent_background = cnf.transparent_background
|
||||||
local bg_highlight = (transparent_background and cnf.dim_inactive.enable and cp.dim)
|
local bg_highlight = (transparent_background and cnf.dim_inactive.enable and cp.dim)
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
CmpItemAbbr = { fg = cp.overlay2 },
|
CmpItemAbbr = { fg = cp.overlay2 },
|
||||||
CmpItemAbbrDeprecated = { fg = cp.overlay0, style = { "strikethrough" } },
|
CmpItemAbbrDeprecated = { fg = cp.overlay0, style = { "strikethrough" } },
|
@ -1,8 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
local util = require("catppuccin.utils.util")
|
function M.get()
|
||||||
|
|
||||||
function M.get(cp)
|
|
||||||
local error = cp.red
|
local error = cp.red
|
||||||
local warning = cp.yellow
|
local warning = cp.yellow
|
||||||
local info = cp.sky
|
local info = cp.sky
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
DashboardShortCut = { fg = cp.pink },
|
DashboardShortCut = { fg = cp.pink },
|
||||||
DashboardHeader = { fg = cp.blue },
|
DashboardHeader = { fg = cp.blue },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
FernBranchText = { fg = cp.blue },
|
FernBranchText = { fg = cp.blue },
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
GitGutterAdd = { fg = cp.green },
|
GitGutterAdd = { fg = cp.green },
|
||||||
GitGutterChange = { fg = cp.yellow },
|
GitGutterChange = { fg = cp.yellow },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
local cnf = require("catppuccin.config").options
|
local cnf = require("catppuccin.config").options
|
||||||
local bg_highlight = (cnf.transparent_background and cnf.dim_inactive.enable and cp.dim)
|
local bg_highlight = (cnf.transparent_background and cnf.dim_inactive.enable and cp.dim)
|
||||||
or (cnf.transparent_background and "NONE")
|
or (cnf.transparent_background and "NONE")
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
HopNextKey = { bg = cp.base, fg = cp.peach, style = { "bold", "underline" } },
|
HopNextKey = { bg = cp.base, fg = cp.peach, style = { "bold", "underline" } },
|
||||||
HopNextKey1 = { bg = cp.base, fg = cp.blue, style = { "bold" } },
|
HopNextKey1 = { bg = cp.base, fg = cp.blue, style = { "bold" } },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
|
|
||||||
local hi = {
|
local hi = {
|
||||||
IndentBlanklineChar = { fg = cp.surface0 },
|
IndentBlanklineChar = { fg = cp.surface0 },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
DiagnosticError = { fg = cp.red },
|
DiagnosticError = { fg = cp.red },
|
||||||
DiagnosticWarning = { fg = cp.yellow },
|
DiagnosticWarning = { fg = cp.yellow },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
LspTroubleText = { fg = cp.green },
|
LspTroubleText = { fg = cp.green },
|
||||||
LspTroubleCount = { fg = cp.pink, bg = cp.surface1 },
|
LspTroubleCount = { fg = cp.pink, bg = cp.surface1 },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
markdownHeadingDelimiter = { fg = cp.peach, style = { "bold" } },
|
markdownHeadingDelimiter = { fg = cp.peach, style = { "bold" } },
|
||||||
markdownCode = { fg = cp.flamingo },
|
markdownCode = { fg = cp.flamingo },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
local transparent_background = require("catppuccin.config").options.transparent_background
|
local transparent_background = require("catppuccin.config").options.transparent_background
|
||||||
local bg_highlight = transparent_background and "NONE" or cp.base
|
local bg_highlight = transparent_background and "NONE" or cp.base
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
local ucolors = require("catppuccin.utils.colors")
|
local ucolors = require("catppuccin.utils.colors")
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
|
|
||||||
local options = require("catppuccin.config").options
|
local options = require("catppuccin.config").options
|
||||||
local virtual_text = options.integrations.native_lsp.virtual_text
|
local virtual_text = options.integrations.native_lsp.virtual_text
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
NeogitBranch = { fg = cp.pink },
|
NeogitBranch = { fg = cp.pink },
|
||||||
NeogitRemote = { fg = cp.pink },
|
NeogitRemote = { fg = cp.pink },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
local config = require("catppuccin.config").options
|
local config = require("catppuccin.config").options
|
||||||
local neotree = config.integrations.neotree
|
local neotree = config.integrations.neotree
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
NotifyERRORBorder = { fg = cp.red },
|
NotifyERRORBorder = { fg = cp.red },
|
||||||
NotifyERRORIcon = { fg = cp.red },
|
NotifyERRORIcon = { fg = cp.red },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
local config = require("catppuccin.config").options
|
local config = require("catppuccin.config").options
|
||||||
local nvimtree = config.integrations.nvimtree
|
local nvimtree = config.integrations.nvimtree
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
FocusedSymbol = { fg = cp.yellow, bg = cp.base },
|
FocusedSymbol = { fg = cp.yellow, bg = cp.base },
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
tkLink = { fg = cp.blue },
|
tkLink = { fg = cp.blue },
|
||||||
tkBrackets = { fg = cp.pink },
|
tkBrackets = { fg = cp.pink },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
TelescopeBorder = { fg = cp.blue },
|
TelescopeBorder = { fg = cp.blue },
|
||||||
TelescopeSelectionCaret = { fg = cp.flamingo },
|
TelescopeSelectionCaret = { fg = cp.flamingo },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
-- local delimeters = cp.overlay2
|
-- local delimeters = cp.overlay2
|
||||||
local operators = cp.sky
|
local operators = cp.sky
|
||||||
local cl = cp.mauve -- conditionals, loops
|
local cl = cp.mauve -- conditionals, loops
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
local cnf = require("catppuccin.config").options
|
local cnf = require("catppuccin.config").options
|
||||||
local transparent_background = cnf.transparent_background
|
local transparent_background = cnf.transparent_background
|
||||||
local bg_highlight = (transparent_background and cnf.dim_inactive.enable and cp.dim)
|
local bg_highlight = (transparent_background and cnf.dim_inactive.enable and cp.dim)
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
Sneak = { fg = cp.overlay2, bg = cp.pink },
|
Sneak = { fg = cp.overlay2, bg = cp.pink },
|
||||||
SneakScope = { bg = cp.text },
|
SneakScope = { bg = cp.text },
|
@ -1,6 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get(cp)
|
function M.get()
|
||||||
return {
|
return {
|
||||||
WhichKey = { fg = cp.flamingo },
|
WhichKey = { fg = cp.flamingo },
|
||||||
WhichKeyGroup = { fg = cp.blue },
|
WhichKeyGroup = { fg = cp.blue },
|
@ -0,0 +1,18 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local ucolors = require("catppuccin.utils.colors")
|
||||||
|
|
||||||
|
function M.get()
|
||||||
|
local props = {
|
||||||
|
termguicolors = true,
|
||||||
|
background = "dark",
|
||||||
|
}
|
||||||
|
|
||||||
|
if ucolors.assert_brightness(cp.base) then
|
||||||
|
props["background"] = "light"
|
||||||
|
end
|
||||||
|
|
||||||
|
return props
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
@ -0,0 +1,104 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.get()
|
||||||
|
return {
|
||||||
|
Comment = { fg = cp.surface2, style = cnf.styles.comments }, -- just comments
|
||||||
|
Constant = { fg = cp.peach }, -- (preferred) any constant
|
||||||
|
String = { fg = cp.green, style = cnf.styles.strings }, -- a string constant: "this is a string"
|
||||||
|
Character = { fg = cp.teal }, -- a character constant: 'c', '\n'
|
||||||
|
Number = { fg = cp.peach }, -- a number constant: 234, 0xff
|
||||||
|
Float = { fg = cp.peach }, -- a floating point constant: 2.3e10
|
||||||
|
Boolean = { fg = cp.peach }, -- a boolean constant: TRUE, false
|
||||||
|
Identifier = { fg = cp.flamingo, style = cnf.styles.variables }, -- (preferred) any variable name
|
||||||
|
Function = { fg = cp.blue, style = cnf.styles.functions }, -- function name (also: methods for classes)
|
||||||
|
Statement = { fg = cp.mauve }, -- (preferred) any statement
|
||||||
|
Conditional = { fg = cp.red }, -- if, then, else, endif, switch, etcp.
|
||||||
|
Repeat = { fg = cp.red }, -- for, do, while, etcp.
|
||||||
|
Label = { fg = cp.peach }, -- case, default, etcp.
|
||||||
|
Operator = { fg = cp.sky }, -- "sizeof", "+", "*", etcp.
|
||||||
|
Keyword = { fg = cp.pink, style = cnf.styles.keywords }, -- any other keyword
|
||||||
|
-- Exception = { }, -- try, catch, throw
|
||||||
|
|
||||||
|
PreProc = { fg = cp.pink }, -- (preferred) generic Preprocessor
|
||||||
|
Include = { fg = cp.pink }, -- preprocessor #include
|
||||||
|
-- Define = { }, -- preprocessor #define
|
||||||
|
-- Macro = { }, -- same as Define
|
||||||
|
-- PreCondit = { }, -- preprocessor #if, #else, #endif, etcp.
|
||||||
|
|
||||||
|
StorageClass = { fg = cp.yellow }, -- static, register, volatile, etcp.
|
||||||
|
Structure = { fg = cp.yellow }, -- struct, union, enum, etcp.
|
||||||
|
Typedef = { fg = cp.yellow }, -- A typedef
|
||||||
|
Special = { fg = cp.pink }, -- (preferred) any special symbol
|
||||||
|
Type = { fg = cp.blue }, -- (preferred) int, long, char, etcp.
|
||||||
|
-- SpecialChar = { }, -- special character in a constant
|
||||||
|
-- Tag = { }, -- you can use CTRL-] on this
|
||||||
|
-- Delimiter = { }, -- character that needs attention
|
||||||
|
-- Specialoverlay0= { }, -- special things inside a overlay0
|
||||||
|
-- Debug = { }, -- debugging statements
|
||||||
|
|
||||||
|
Underlined = { style = { "underline" } }, -- (preferred) text that stands out, HTML links
|
||||||
|
Bold = { style = { "bold" } },
|
||||||
|
Italic = { style = { "italic" } },
|
||||||
|
-- ("Ignore", below, may be invisible...)
|
||||||
|
-- Ignore = { }, -- (preferred) left blank, hidden |hl-Ignore|
|
||||||
|
|
||||||
|
Error = { fg = cp.red }, -- (preferred) any erroneous construct
|
||||||
|
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.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.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.surface1 },
|
||||||
|
illuminatedCurWord = { bg = cp.surface1 },
|
||||||
|
-- diff
|
||||||
|
diffAdded = { fg = cp.green },
|
||||||
|
diffRemoved = { fg = cp.red },
|
||||||
|
diffChanged = { fg = cp.yellow },
|
||||||
|
diffOldFile = { fg = cp.yellow },
|
||||||
|
diffNewFile = { fg = cp.peach },
|
||||||
|
diffFile = { fg = cp.blue },
|
||||||
|
diffLine = { fg = cp.overlay0 },
|
||||||
|
diffIndexLine = { fg = cp.pink },
|
||||||
|
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 },
|
||||||
|
healthWarning = { fg = cp.yellow },
|
||||||
|
-- misc
|
||||||
|
|
||||||
|
-- glyphs
|
||||||
|
GlyphPalette1 = { fg = cp.red },
|
||||||
|
GlyphPalette2 = { fg = cp.teal },
|
||||||
|
GlyphPalette3 = { fg = cp.yellow },
|
||||||
|
GlyphPalette4 = { fg = cp.blue },
|
||||||
|
GlyphPalette6 = { fg = cp.teal },
|
||||||
|
GlyphPalette7 = { fg = cp.text },
|
||||||
|
GlyphPalette9 = { fg = cp.red },
|
||||||
|
|
||||||
|
Define = { link = "PreProc" }, -- preprocessor #define
|
||||||
|
Macro = { link = "PreProc" }, -- same as Define
|
||||||
|
PreCondit = { link = "PreProc" }, -- preprocessor #if, #else, #endif, etc.
|
||||||
|
|
||||||
|
SpecialChar = { link = "Special" }, -- special character in a constant
|
||||||
|
Tag = { link = "Special" }, -- you can use CTRL-] on this
|
||||||
|
Delimiter = { link = "Special" }, -- character that needs attention
|
||||||
|
SpecialComment = { link = "Special" }, -- special things inside a comment
|
||||||
|
Debug = { link = "Special" }, -- debugging statements
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
@ -0,0 +1,31 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.get()
|
||||||
|
return {
|
||||||
|
terminal_color_0 = cp.overlay0,
|
||||||
|
terminal_color_8 = cp.overlay1,
|
||||||
|
|
||||||
|
terminal_color_1 = cp.red,
|
||||||
|
terminal_color_9 = cp.red,
|
||||||
|
|
||||||
|
terminal_color_2 = cp.green,
|
||||||
|
terminal_color_10 = cp.green,
|
||||||
|
|
||||||
|
terminal_color_3 = cp.yellow,
|
||||||
|
terminal_color_11 = cp.yellow,
|
||||||
|
|
||||||
|
terminal_color_4 = cp.blue,
|
||||||
|
terminal_color_12 = cp.blue,
|
||||||
|
|
||||||
|
terminal_color_5 = cp.pink,
|
||||||
|
terminal_color_13 = cp.pink,
|
||||||
|
|
||||||
|
terminal_color_6 = cp.sky,
|
||||||
|
terminal_color_14 = cp.sky,
|
||||||
|
|
||||||
|
terminal_color_7 = cp.text,
|
||||||
|
terminal_color_15 = cp.text,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
@ -0,0 +1,107 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
-- Credit: https://github.com/EdenEast/nightfox.nvim
|
||||||
|
local fmt = string.format
|
||||||
|
local function inspect(t)
|
||||||
|
local list = {}
|
||||||
|
for k, v in pairs(t) do
|
||||||
|
local q = type(v) == "string" and [["]] or ""
|
||||||
|
table.insert(list, fmt([[%s = %s%s%s]], k, q, v, q))
|
||||||
|
end
|
||||||
|
|
||||||
|
table.sort(list)
|
||||||
|
return fmt([[{ %s }]], table.concat(list, ", "))
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.compile()
|
||||||
|
local theme = require("catppuccin.lib.mapper").apply()
|
||||||
|
local lines = {
|
||||||
|
[[
|
||||||
|
-- This file is autogenerated by CATPPUCCIN.
|
||||||
|
-- Do not make changes directly to this file.
|
||||||
|
|
||||||
|
vim.cmd("hi clear")
|
||||||
|
if vim.fn.exists("syntax_on") then
|
||||||
|
vim.cmd("syntax reset")
|
||||||
|
end
|
||||||
|
vim.g.colors_name = "catppuccin"]],
|
||||||
|
}
|
||||||
|
local config = require("catppuccin.config").options
|
||||||
|
local custom_highlights = config.custom_highlights
|
||||||
|
for property, value in pairs(theme.properties) do
|
||||||
|
table.insert(lines, fmt("vim.o.%s = %s", property, value))
|
||||||
|
end
|
||||||
|
local tbl = vim.tbl_deep_extend("keep", theme.integrations, theme.base)
|
||||||
|
tbl = vim.tbl_deep_extend("keep", custom_highlights, tbl)
|
||||||
|
|
||||||
|
for group, color in pairs(tbl) do
|
||||||
|
if color.link then
|
||||||
|
table.insert(lines, fmt([[vim.api.nvim_set_hl(0, "%s", { link = "%s" })]], group, color.link))
|
||||||
|
else
|
||||||
|
if color.style then
|
||||||
|
if color.style ~= "NONE" then
|
||||||
|
if type(color.style) == "table" then
|
||||||
|
for _, style in ipairs(color.style) do
|
||||||
|
color[style] = true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
color[color.style] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
color.style = nil
|
||||||
|
vim.api.nvim_set_hl(0, group, color)
|
||||||
|
table.insert(lines, fmt([[vim.api.nvim_set_hl(0, "%s", %s)]], group, inspect(color)))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.term_colors then
|
||||||
|
local colors = {
|
||||||
|
"overlay0",
|
||||||
|
"red",
|
||||||
|
"green",
|
||||||
|
"yellow",
|
||||||
|
"blue",
|
||||||
|
"pink",
|
||||||
|
"sky",
|
||||||
|
"text",
|
||||||
|
"overlay1",
|
||||||
|
"red",
|
||||||
|
"green",
|
||||||
|
"yellow",
|
||||||
|
"blue",
|
||||||
|
"pink",
|
||||||
|
"sky",
|
||||||
|
"text",
|
||||||
|
}
|
||||||
|
for i = 0, 15 do
|
||||||
|
table.insert(lines, fmt('vim.g.terminal_color_%d = "%s"', i, theme.terminal[colors[i + 1]]))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
os.execute(
|
||||||
|
string.format("mkdir %s %s", vim.loop.os_uname().sysname == "Windows" and "" or "-p", config.compile.path)
|
||||||
|
)
|
||||||
|
local file = io.open(
|
||||||
|
config.compile.path
|
||||||
|
.. (vim.loop.os_uname().sysname == "Windows" and "\\" or "/")
|
||||||
|
.. vim.g.catppuccin_flavour
|
||||||
|
.. config.compile.suffix
|
||||||
|
.. ".lua",
|
||||||
|
"w"
|
||||||
|
)
|
||||||
|
file:write(table.concat(lines, "\n"))
|
||||||
|
file:close()
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.clean()
|
||||||
|
local config = require("catppuccin.config").options
|
||||||
|
local compiled_path = config.compile.path
|
||||||
|
.. (vim.loop.os_uname().sysname == "Windows" and "\\" or "/")
|
||||||
|
.. vim.g.catppuccin_flavour
|
||||||
|
.. config.compile.suffix
|
||||||
|
.. ".lua"
|
||||||
|
os.remove(compiled_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
@ -0,0 +1,52 @@
|
|||||||
|
local M = {}
|
||||||
|
local g = vim.g
|
||||||
|
|
||||||
|
function M.highlight(group, color)
|
||||||
|
if color.link then
|
||||||
|
vim.api.nvim_set_hl(0, group, {
|
||||||
|
link = color.link,
|
||||||
|
})
|
||||||
|
else
|
||||||
|
if color.style then
|
||||||
|
for _, style in ipairs(color.style) do
|
||||||
|
color[style] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
color.style = nil
|
||||||
|
vim.api.nvim_set_hl(0, group, color)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.syntax(tbl)
|
||||||
|
for group, colors in pairs(tbl) do
|
||||||
|
M.highlight(group, colors)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.properties(tbl)
|
||||||
|
for property, value in pairs(tbl) do
|
||||||
|
vim.o[property] = value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.load(theme)
|
||||||
|
vim.cmd("hi clear")
|
||||||
|
if vim.fn.exists("syntax_on") then
|
||||||
|
vim.cmd("syntax reset")
|
||||||
|
end
|
||||||
|
g.colors_name = "catppuccin"
|
||||||
|
local custom_highlights = require("catppuccin.config").options.custom_highlights
|
||||||
|
|
||||||
|
M.properties(theme.properties)
|
||||||
|
M.syntax(theme.editor)
|
||||||
|
M.syntax(theme.syntax)
|
||||||
|
M.syntax(theme.integrations)
|
||||||
|
M.syntax(custom_highlights)
|
||||||
|
|
||||||
|
if require("catppuccin.config").options["term_colors"] then
|
||||||
|
M.properties(theme.terminal)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
@ -0,0 +1,54 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local lui = require("catppuccin.lib.ui")
|
||||||
|
|
||||||
|
local function get_integrations()
|
||||||
|
local integrations = cnf["integrations"]
|
||||||
|
local final_integrations = {}
|
||||||
|
|
||||||
|
for integration in pairs(integrations) do
|
||||||
|
local cot = false
|
||||||
|
if type(integrations[integration]) == "table" then
|
||||||
|
if integrations[integration]["enabled"] == true then
|
||||||
|
cot = true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if integrations[integration] == true then
|
||||||
|
cot = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if cot then
|
||||||
|
final_integrations = vim.tbl_deep_extend(
|
||||||
|
"force",
|
||||||
|
final_integrations,
|
||||||
|
require("catppuccin.groups.integrations." .. integration).get()
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return final_integrations
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.apply()
|
||||||
|
_G.cnf = require("catppuccin.config").options
|
||||||
|
_G.cp = require("catppuccin.palettes.init").get_palette()
|
||||||
|
|
||||||
|
cp.none = "NONE"
|
||||||
|
cp.dim = lui.dim()
|
||||||
|
|
||||||
|
local theme = {}
|
||||||
|
theme.properties = require("catppuccin.groups.properties").get() -- nvim settings
|
||||||
|
theme.syntax = require("catppuccin.groups.syntax").get()
|
||||||
|
theme.editor = require("catppuccin.groups.editor").get()
|
||||||
|
theme.integrations = get_integrations() -- plugins
|
||||||
|
theme.terminal = require("catppuccin.groups.terminal").get() -- terminal colors
|
||||||
|
|
||||||
|
-- uninstantiate to avoid poluting global scope and because it's not needed anymore
|
||||||
|
_G.cnf = nil
|
||||||
|
_G.cp = nil
|
||||||
|
|
||||||
|
return theme
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
@ -1,149 +0,0 @@
|
|||||||
local g = vim.g
|
|
||||||
local util = {}
|
|
||||||
|
|
||||||
function util.highlight(group, color)
|
|
||||||
if color.link then
|
|
||||||
vim.api.nvim_set_hl(0, group, {
|
|
||||||
link = color.link,
|
|
||||||
})
|
|
||||||
else
|
|
||||||
if color.style then
|
|
||||||
for _, style in ipairs(color.style) do
|
|
||||||
color[style] = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
color.style = nil
|
|
||||||
vim.api.nvim_set_hl(0, group, color)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function util.syntax(tbl)
|
|
||||||
for group, colors in pairs(tbl) do
|
|
||||||
util.highlight(group, colors)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function util.properties(tbl)
|
|
||||||
for property, value in pairs(tbl) do
|
|
||||||
vim.o[property] = value
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function util.terminal(cp)
|
|
||||||
g.terminal_color_0 = cp.overlay0
|
|
||||||
g.terminal_color_8 = cp.overlay1
|
|
||||||
|
|
||||||
g.terminal_color_1 = cp.red
|
|
||||||
g.terminal_color_9 = cp.red
|
|
||||||
|
|
||||||
g.terminal_color_2 = cp.green
|
|
||||||
g.terminal_color_10 = cp.green
|
|
||||||
|
|
||||||
g.terminal_color_3 = cp.yellow
|
|
||||||
g.terminal_color_11 = cp.yellow
|
|
||||||
|
|
||||||
g.terminal_color_4 = cp.blue
|
|
||||||
g.terminal_color_12 = cp.blue
|
|
||||||
|
|
||||||
g.terminal_color_5 = cp.pink
|
|
||||||
g.terminal_color_13 = cp.pink
|
|
||||||
|
|
||||||
g.terminal_color_6 = cp.sky
|
|
||||||
g.terminal_color_14 = cp.sky
|
|
||||||
|
|
||||||
g.terminal_color_7 = cp.text
|
|
||||||
g.terminal_color_15 = cp.text
|
|
||||||
end
|
|
||||||
|
|
||||||
function util.load(theme)
|
|
||||||
vim.cmd("hi clear")
|
|
||||||
if vim.fn.exists("syntax_on") then
|
|
||||||
vim.cmd("syntax reset")
|
|
||||||
end
|
|
||||||
g.colors_name = "catppuccin"
|
|
||||||
local custom_highlights = require("catppuccin.config").options.custom_highlights
|
|
||||||
|
|
||||||
util.properties(theme.properties)
|
|
||||||
util.syntax(theme.base)
|
|
||||||
util.syntax(theme.integrations)
|
|
||||||
util.syntax(custom_highlights)
|
|
||||||
|
|
||||||
if require("catppuccin.config").options["term_colors"] then
|
|
||||||
util.terminal(theme.terminal)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Credit: https://github.com/EdenEast/nightfox.nvim
|
|
||||||
local fmt = string.format
|
|
||||||
local function inspect(t)
|
|
||||||
local list = {}
|
|
||||||
for k, v in pairs(t) do
|
|
||||||
local q = type(v) == "string" and [["]] or ""
|
|
||||||
table.insert(list, fmt([[%s = %s%s%s]], k, q, v, q))
|
|
||||||
end
|
|
||||||
|
|
||||||
table.sort(list)
|
|
||||||
return fmt([[{ %s }]], table.concat(list, ", "))
|
|
||||||
end
|
|
||||||
|
|
||||||
function util.compile()
|
|
||||||
local theme = require("catppuccin.core.mapper").apply()
|
|
||||||
local lines = { [[
|
|
||||||
-- This file is autogenerated by CATPPUCCIN.
|
|
||||||
-- Do not make changes directly to this file.
|
|
||||||
|
|
||||||
vim.cmd("hi clear")
|
|
||||||
if vim.fn.exists("syntax_on") then
|
|
||||||
vim.cmd("syntax reset")
|
|
||||||
end
|
|
||||||
vim.g.colors_name = "catppuccin"]] }
|
|
||||||
local config = require("catppuccin.config").options
|
|
||||||
local custom_highlights = config.custom_highlights
|
|
||||||
for property, value in pairs(theme.properties) do
|
|
||||||
table.insert(lines, fmt("vim.o.%s = %s", property, value))
|
|
||||||
end
|
|
||||||
local tbl = vim.tbl_deep_extend("keep", theme.integrations, theme.base)
|
|
||||||
tbl = vim.tbl_deep_extend("keep", custom_highlights, tbl)
|
|
||||||
|
|
||||||
for group, color in pairs(tbl) do
|
|
||||||
if color.link then
|
|
||||||
table.insert(lines, fmt([[vim.api.nvim_set_hl(0, "%s", { link = "%s" })]], group, color.link))
|
|
||||||
else
|
|
||||||
if color.style then
|
|
||||||
if color.style ~= "NONE" then
|
|
||||||
if type(color.style) == "table" then
|
|
||||||
for _, style in ipairs(color.style) do
|
|
||||||
color[style] = true
|
|
||||||
end
|
|
||||||
else
|
|
||||||
color[color.style] = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
color.style = nil
|
|
||||||
vim.api.nvim_set_hl(0, group, color)
|
|
||||||
table.insert(lines, fmt([[vim.api.nvim_set_hl(0, "%s", %s)]], group, inspect(color)))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if config.term_colors then
|
|
||||||
local colors = { "overlay0", "red", "green", "yellow", "blue", "pink", "sky", "text", "overlay1", "red", "green", "yellow", "blue", "pink", "sky", "text"}
|
|
||||||
for i = 0, 15 do
|
|
||||||
table.insert(lines, fmt('vim.g.terminal_color_%d = "%s"', i, theme.terminal[colors[i + 1]]))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
os.execute(string.format("mkdir %s %s", vim.loop.os_uname().sysname == 'Windows' and "" or "-p", config.compile.path))
|
|
||||||
local file = io.open(config.compile.path .. (vim.loop.os_uname().sysname == 'Windows' and "\\" or "/") .. vim.g.catppuccin_flavour .. config.compile.suffix .. ".lua", "w")
|
|
||||||
file:write(table.concat(lines, "\n"))
|
|
||||||
file:close()
|
|
||||||
end
|
|
||||||
|
|
||||||
function util.clean()
|
|
||||||
local config = require("catppuccin.config").options
|
|
||||||
local compiled_path = config.compile.path .. (vim.loop.os_uname().sysname == 'Windows' and "\\" or "/") .. vim.g.catppuccin_flavour .. config.compile.suffix .. ".lua"
|
|
||||||
os.remove(compiled_path)
|
|
||||||
end
|
|
||||||
|
|
||||||
return util
|
|
Loading…
Reference in New Issue