mirror of
https://github.com/webhooked/kanso.nvim.git
synced 2026-05-30 21:57:02 +02:00
Adds an EditorConfig file to maintain consistent coding styles across editors. Reformats code with consistent indentation using spaces instead of tabs. Makes minor color palette adjustments.
428 lines
15 KiB
Lua
428 lines
15 KiB
Lua
local c = require("kanso.lib.color")
|
|
|
|
--TODO:
|
|
--PreProc needs its own color
|
|
--parameter and field should be different
|
|
---@class SyntaxElements
|
|
---@field string ColorSpec
|
|
---@field variable ColorSpec
|
|
---@field number ColorSpec
|
|
---@field constant ColorSpec
|
|
---@field identifier ColorSpec
|
|
---@field parameter ColorSpec
|
|
---@field fun ColorSpec
|
|
---@field statement ColorSpec
|
|
---@field keyword ColorSpec
|
|
---@field operator ColorSpec
|
|
---@field preproc ColorSpec
|
|
---@field type ColorSpec
|
|
---@field regex ColorSpec
|
|
---@field deprecated ColorSpec
|
|
---@field comment ColorSpec
|
|
---@field punct ColorSpec
|
|
---@field special1 ColorSpec
|
|
---@field special2 ColorSpec
|
|
---@field special3 ColorSpec
|
|
|
|
---@class DiagnosticsElements
|
|
---@field error ColorSpec
|
|
---@field ok ColorSpec
|
|
---@field warning ColorSpec
|
|
---@field info ColorSpec
|
|
---@field hint ColorSpec
|
|
--
|
|
---@class DiffElements
|
|
---@field add ColorSpec
|
|
---@field delete ColorSpec
|
|
---@field change ColorSpec
|
|
---@field text ColorSpec
|
|
|
|
---@class VCSElements
|
|
---@field added ColorSpec
|
|
---@field removed ColorSpec
|
|
---@field changed ColorSpec
|
|
---@field untracked ColorSpec
|
|
|
|
---@class UiElements
|
|
---@field none ColorSpec
|
|
---@field fg ColorSpec Default foreground
|
|
---@field fg_dim ColorSpec Dimmed foreground
|
|
---@field fg_reverse ColorSpec
|
|
---@field bg_dim ColorSpec Dimmed background
|
|
---@field bg_m3 ColorSpec
|
|
---@field bg_m2 ColorSpec
|
|
---@field bg_m1 ColorSpec
|
|
---@field bg ColorSpec Default background
|
|
---@field bg_p1 ColorSpec Lighter background ColorColumn, Folded, Gutter
|
|
---@field bg_p2 ColorSpec Lighter background Cursor{Line,Column}, TabLineSel (Selected Items)
|
|
---@field bg_gutter ColorSpec {Sign,Fold}Column, LineNr
|
|
---@field special ColorSpec SpecialKey
|
|
---@field indent_line ColorSpec IndentLine
|
|
---@field active_indent_line ColorSpec IndentLine
|
|
---@field nontext ColorSpec LineNr, NonText
|
|
---@field whitespace ColorSpec Whitespace
|
|
---@field bg_search ColorSpec
|
|
---@field bg_visual ColorSpec
|
|
---@field cursor_line_nr_foreground ColorSpec
|
|
---@field cursor_line_nr_active_foreground ColorSpec
|
|
---@field cursor_bg ColorSpec
|
|
---@field cursor_fg ColorSpec
|
|
---@field pmenu MenuElements
|
|
---@field float FloatElements
|
|
|
|
---@class FloatElements
|
|
---@field fg ColorSpec
|
|
---@field bg ColorSpec
|
|
---@field fg_border ColorSpec
|
|
---@field bg_border ColorSpec
|
|
|
|
---@class MenuElements
|
|
---@field bg ColorSpec
|
|
---@field fg ColorSpec
|
|
---@field fg_sel ColorSpec
|
|
---@field bg_sel ColorSpec
|
|
---@field bg_sbar ColorSpec
|
|
---@field bg_thumb ColorSpec
|
|
|
|
---@class ThemeColors
|
|
---@field syn SyntaxElements
|
|
---@field diag DiagnosticsElements
|
|
---@field vcs VCSElements
|
|
---@field diff DiffElements
|
|
---@field ui UiElements
|
|
---@field term ColorSpec[]
|
|
|
|
return {
|
|
---@param palette PaletteColors
|
|
---@return ThemeColors
|
|
zen = function(palette)
|
|
return {
|
|
ui = {
|
|
none = "NONE",
|
|
fg = palette.inkWhite,
|
|
fg_dim = palette.oldWhite,
|
|
fg_reverse = palette.zenBlue1,
|
|
|
|
bg_dim = palette.zen0,
|
|
|
|
bg_m3 = palette.zen0,
|
|
bg_m2 = palette.zen0,
|
|
bg_m1 = palette.zen0,
|
|
bg = palette.zen0,
|
|
bg_p1 = palette.zen1,
|
|
bg_p2 = palette.zen2,
|
|
|
|
special = palette.inkGray3,
|
|
indent_line = palette.inkBlack2,
|
|
active_indent_line = palette.inkBlack3,
|
|
whitespace = palette.inkBlack0,
|
|
nontext = palette.inkAsh,
|
|
|
|
bg_visual = palette.inkBlack3,
|
|
bg_search = palette.zenBlue2,
|
|
|
|
cursor_line_nr_foreground = palette.inkGray3,
|
|
cursor_line_nr_active_foreground = palette.fujiWhite,
|
|
cursor_bg = palette.fujiWhite,
|
|
cursor_fg = palette.zen0,
|
|
|
|
pmenu = {
|
|
fg = palette.fujiWhite,
|
|
fg_sel = "NONE",
|
|
bg = palette.zen0,
|
|
bg_sel = palette.inkBlack3,
|
|
bg_thumb = palette.inkBlack3,
|
|
bg_sbar = palette.zen0,
|
|
},
|
|
|
|
float = {
|
|
fg = palette.oldWhite,
|
|
bg = palette.zen0,
|
|
fg_border = palette.zen2,
|
|
bg_border = palette.zen0,
|
|
},
|
|
},
|
|
syn = {
|
|
string = palette.inkGreen2,
|
|
variable = "NONE",
|
|
number = palette.inkPink,
|
|
constant = palette.inkOrange,
|
|
identifier = palette.inkViolet,
|
|
parameter = palette.inkGray1,
|
|
fun = palette.inkBlue2,
|
|
statement = palette.inkViolet,
|
|
keyword = palette.inkViolet,
|
|
operator = palette.inkGray1,
|
|
preproc = palette.inkGray1,
|
|
type = palette.inkAqua,
|
|
regex = palette.inkRed,
|
|
deprecated = palette.katanaGray,
|
|
punct = palette.inkGray1,
|
|
comment = palette.inkGray2,
|
|
special1 = palette.inkYellow,
|
|
special2 = palette.inkViolet,
|
|
special3 = palette.inkViolet,
|
|
},
|
|
diag = {
|
|
error = palette.samuraiRed,
|
|
ok = palette.springGreen,
|
|
warning = palette.roninYellow,
|
|
info = palette.inkBlue,
|
|
hint = palette.zenAqua1,
|
|
},
|
|
diff = {
|
|
add = palette.winterGreen,
|
|
delete = palette.winterRed,
|
|
change = palette.winterBlue,
|
|
text = palette.winterYellow,
|
|
},
|
|
vcs = {
|
|
added = palette.autumnGreen,
|
|
removed = palette.autumnRed,
|
|
changed = palette.autumnYellow,
|
|
untracked = palette.inkGray2,
|
|
},
|
|
term = {
|
|
palette.zen0, -- black
|
|
palette.inkRed, -- red
|
|
palette.inkGreen2, -- green
|
|
palette.inkYellow, -- yellow
|
|
palette.inkBlue2, -- blue
|
|
palette.inkPink, -- magenta
|
|
palette.inkWhite, -- cyan
|
|
palette.oldWhite, -- white
|
|
palette.inkGray1, -- bright black
|
|
palette.zenRed, -- bright red
|
|
palette.inkGreen, -- bright green
|
|
palette.carpYellow, -- bright yellow
|
|
palette.springBlue, -- bright blue
|
|
palette.springViolet1, -- bright magenta
|
|
palette.zenAqua2, -- bright cyan
|
|
palette.inkWhite, -- bright white
|
|
palette.inkOrange, -- extended color 1
|
|
palette.inkOrange2, -- extended color 2
|
|
},
|
|
}
|
|
end,
|
|
---@param palette PaletteColors
|
|
---@return ThemeColors
|
|
ink = function(palette)
|
|
return {
|
|
ui = {
|
|
none = "NONE",
|
|
fg = palette.inkWhite,
|
|
fg_dim = palette.oldWhite,
|
|
fg_reverse = palette.zenBlue1,
|
|
|
|
bg_dim = palette.inkBlack0,
|
|
|
|
bg_m3 = palette.inkBlack0,
|
|
bg_m2 = palette.inkBlack0,
|
|
bg_m1 = palette.inkBlack0,
|
|
bg = palette.inkBlack0,
|
|
bg_p1 = palette.inkBlack1,
|
|
bg_p2 = palette.inkBlack2,
|
|
|
|
special = palette.inkGray3,
|
|
indent_line = palette.inkBlack2,
|
|
active_indent_line = palette.inkBlack3,
|
|
whitespace = palette.inkBlack0,
|
|
nontext = palette.inkAsh,
|
|
|
|
bg_visual = palette.inkBlack3,
|
|
bg_search = palette.zenBlue2,
|
|
|
|
cursor_line_nr_foreground = palette.inkGray3,
|
|
cursor_line_nr_active_foreground = palette.fujiWhite,
|
|
cursor_bg = palette.fujiWhite,
|
|
cursor_fg = palette.inkBlack0,
|
|
|
|
pmenu = {
|
|
fg = palette.fujiWhite,
|
|
fg_sel = "NONE",
|
|
bg = palette.inkBlack0,
|
|
bg_sel = palette.inkBlack3,
|
|
bg_thumb = palette.inkBlack3,
|
|
bg_sbar = palette.inkBlack0,
|
|
},
|
|
|
|
float = {
|
|
fg = palette.oldWhite,
|
|
bg = palette.inkBlack0,
|
|
fg_border = palette.inkBlack2,
|
|
bg_border = palette.inkBlack0,
|
|
},
|
|
},
|
|
syn = {
|
|
string = palette.inkGreen2,
|
|
variable = "NONE",
|
|
number = palette.inkPink,
|
|
constant = palette.inkOrange,
|
|
identifier = palette.inkViolet,
|
|
parameter = palette.inkGray1,
|
|
fun = palette.inkBlue2,
|
|
statement = palette.inkViolet,
|
|
keyword = palette.inkViolet,
|
|
operator = palette.inkGray1,
|
|
preproc = palette.inkGray1,
|
|
type = palette.inkAqua,
|
|
regex = palette.inkRed,
|
|
deprecated = palette.katanaGray,
|
|
punct = palette.inkGray1,
|
|
comment = palette.inkGray2,
|
|
special1 = palette.inkYellow,
|
|
special2 = palette.inkViolet,
|
|
special3 = palette.inkViolet,
|
|
},
|
|
diag = {
|
|
error = palette.samuraiRed,
|
|
ok = palette.springGreen,
|
|
warning = palette.roninYellow,
|
|
info = palette.inkBlue,
|
|
hint = palette.zenAqua1,
|
|
},
|
|
diff = {
|
|
add = palette.winterGreen,
|
|
delete = palette.winterRed,
|
|
change = palette.winterBlue,
|
|
text = palette.winterYellow,
|
|
},
|
|
vcs = {
|
|
added = palette.autumnGreen,
|
|
removed = palette.autumnRed,
|
|
changed = palette.autumnYellow,
|
|
untracked = palette.inkGray2,
|
|
},
|
|
term = {
|
|
palette.inkBlack0, -- black
|
|
palette.inkRed, -- red
|
|
palette.inkGreen2, -- green
|
|
palette.inkYellow, -- yellow
|
|
palette.inkBlue2, -- blue
|
|
palette.inkPink, -- magenta
|
|
palette.inkWhite, -- cyan
|
|
palette.oldWhite, -- white
|
|
palette.inkGray1, -- bright black
|
|
palette.zenRed, -- bright red
|
|
palette.inkGreen, -- bright green
|
|
palette.carpYellow, -- bright yellow
|
|
palette.springBlue, -- bright blue
|
|
palette.springViolet1, -- bright magenta
|
|
palette.zenAqua2, -- bright cyan
|
|
palette.inkWhite, -- bright white
|
|
palette.inkOrange, -- extended color 1
|
|
palette.inkOrange2, -- extended color 2
|
|
},
|
|
}
|
|
end,
|
|
---@param palette PaletteColors
|
|
---@return ThemeColors
|
|
pearl = function(palette)
|
|
return {
|
|
ui = {
|
|
none = "NONE",
|
|
fg = palette.pearlInk0,
|
|
fg_dim = palette.pearlInk0,
|
|
fg_reverse = palette.pearlGray,
|
|
|
|
bg_dim = palette.pearlWhite0,
|
|
|
|
bg_m3 = palette.pearlWhite0,
|
|
bg_m2 = palette.pearlWhite0,
|
|
bg_m1 = palette.pearlWhite0,
|
|
bg = palette.pearlWhite0,
|
|
bg_p1 = palette.pearlWhite1,
|
|
bg_p2 = palette.pearlWhite1,
|
|
|
|
nontext = palette.pearlViolet1,
|
|
whitespace = palette.pearlWhite0,
|
|
special = palette.pearlViolet2,
|
|
indent_line = palette.pearlWhite1,
|
|
active_indent_line = palette.pearlWhite2,
|
|
|
|
bg_visual = palette.pearlWhite2,
|
|
bg_search = palette.pearlBlue2,
|
|
|
|
cursor_line_nr_foreground = palette.pearlGray4,
|
|
cursor_line_nr_active_foreground = palette.inkBlack2,
|
|
cursor_bg = palette.fujiWhite,
|
|
cursor_fg = palette.inkBlack2,
|
|
|
|
pmenu = {
|
|
fg = palette.pearlInk2,
|
|
fg_sel = "NONE", -- This is important to make highlights pass-through
|
|
bg = palette.pearlWhite0,
|
|
bg_sel = palette.pearlWhite2,
|
|
bg_thumb = palette.pearlWhite2,
|
|
bg_sbar = palette.pearlWhite0,
|
|
},
|
|
float = {
|
|
fg = palette.pearlInk2,
|
|
bg = palette.pearlWhite0,
|
|
fg_border = palette.pearlWhite2,
|
|
bg_border = palette.pearlWhite0,
|
|
},
|
|
},
|
|
syn = {
|
|
string = palette.pearlGreen,
|
|
variable = "NONE",
|
|
number = palette.pearlPink,
|
|
constant = palette.pearlOrange,
|
|
identifier = palette.pearlViolet4,
|
|
parameter = palette.pearlBlue5,
|
|
fun = palette.pearlBlue4,
|
|
statement = palette.pearlViolet4,
|
|
keyword = palette.pearlViolet4,
|
|
operator = palette.pearlGray3,
|
|
preproc = palette.pearlGray2,
|
|
type = palette.pearlAqua,
|
|
regex = palette.pearlYellow2,
|
|
deprecated = palette.pearlGray3,
|
|
comment = palette.pearlGray3,
|
|
punct = palette.pearlGray3,
|
|
special1 = palette.pearlYellow2,
|
|
special2 = palette.pearlViolet4,
|
|
special3 = palette.pearlViolet4,
|
|
},
|
|
vcs = {
|
|
added = palette.pearlGreen2,
|
|
removed = palette.pearlRed2,
|
|
changed = palette.pearlYellow3,
|
|
untracked = palette.pearlGray4,
|
|
},
|
|
diff = {
|
|
add = palette.pearlGreen3,
|
|
delete = palette.pearlRed4,
|
|
change = palette.pearlCyan,
|
|
text = palette.pearlYellow4,
|
|
},
|
|
diag = {
|
|
error = palette.pearlRed3,
|
|
ok = palette.pearlGreen,
|
|
warning = palette.pearlOrange2,
|
|
info = palette.pearlTeal3,
|
|
hint = palette.pearlAqua2,
|
|
},
|
|
term = {
|
|
palette.inkBlack2, -- black
|
|
palette.pearlRed, -- red
|
|
palette.pearlGreen, -- green
|
|
palette.pearlYellow, -- yellow
|
|
palette.pearlBlue4, -- blue
|
|
palette.pearlPink, -- magenta
|
|
palette.pearlAqua, -- cyan
|
|
palette.pearlInk0, -- white
|
|
palette.pearlGray3, -- bright black
|
|
palette.pearlRed2, -- bright red
|
|
palette.pearlGreen2, -- bright green
|
|
palette.pearlYellow2, -- bright yellow
|
|
palette.pearlTeal2, -- bright blue
|
|
palette.pearlViolet4, -- bright magenta
|
|
palette.pearlAqua2, -- bright cyan
|
|
palette.pearlInk2, -- bright white
|
|
palette.pearlOrange2, -- extended color 1
|
|
palette.pearlRed3, -- extended color 2
|
|
},
|
|
}
|
|
end,
|
|
}
|