Rename to tokyodark

This commit is contained in:
2021-04-22 01:11:09 -03:00
parent 90ffef282e
commit 44d3879b37
8 changed files with 25 additions and 19 deletions

8
lua/tokyodark/config.lua Normal file
View File

@@ -0,0 +1,8 @@
local cfg = {
transparent_background = true,
enable_italic = true,
enable_italic_comment = true,
gamma = 1.0
}
return cfg

View File

@@ -0,0 +1,343 @@
local p = require('tokyodark.palette')
local cfg = require('tokyodark.config')
local u = require('tokyodark.utils')
local M = {}
local hl = {langs = {}, plugins = {}}
local highlight = vim.api.nvim_set_hl
local set_hl_ns = vim.api.nvim__set_hl_ns or vim.api.nvim_set_hl_ns
local create_namespace = vim.api.nvim_create_namespace
local function load_highlights(ns, highlights)
for group_name, group_settings in pairs(highlights) do
highlight(ns, group_name, group_settings)
end
end
hl.predef = {
Fg = {fg = p.fg},
Gray = {fg = p.gray},
Red = {fg = p.red},
Orange = {fg = p.orange},
Yellow = {fg = p.yellow},
Green = {fg = p.green},
Blue = {fg = p.blue},
Purple = {fg = p.purple},
BlueItalic = {fg = p.blue, italic = cfg.enable_italic},
RedItalic = {fg = p.red, italic = cfg.enable_italic},
GreenItalic = {fg = p.green, italic = cfg.enable_italic},
OrangeItalic = {fg = p.orange, italic = cfg.enable_italic}
}
hl.common = {
Normal = {fg = p.fg, bg = cfg.transparent_background and p.none or p.bg0},
Terminal = {fg = p.fg, bg = cfg.transparent_background and p.none or p.bg0},
EndOfBuffer = {fg = p.bg2, bg = cfg.transparent_background and p.none or p.bg0},
FoldColumn = {fg = p.fg, bg = cfg.transparent_background and p.none or p.bg1},
Folded = {fg = p.fg, bg = cfg.transparent_background and p.none or p.bg1},
SignColumn = {fg = p.fg, bg = cfg.transparent_background and p.none or p.bg0},
ToolbarLine = {fg = p.fg},
Cursor = {reverse = true},
vCursor = {reverse = true},
iCursor = {reverse = true},
lCursor = {reverse = true},
CursorIM = {reverse = true},
CursorColumn = {bg = p.bg1},
CursorLine = {bg = p.bg1},
ColorColumn = {bg = p.bg1},
CursorLineNr = {fg = p.fg},
LineNr = {fg = p.bg4},
Conceal = {fg = p.grey, bg = p.bg1},
DiffAdd = {fg = p.none, bg = p.diff_green},
DiffChange = {fg = p.none, bg = p.diff_blue},
DiffDelete = {fg = p.none, bg = p.diff_red},
DiffText = {fg = p.none, reverse = true},
Directory = {fg = p.green},
ErrorMsg = {fg = p.red, bold = true, underline = true},
WarningMsg = {fg = p.yellow, bold = true},
ModeMsg = {fg = p.fg, bold = true},
MoreMsg = {fg = p.blue, bold = true},
IncSearch = {fg = p.bg0, bg = p.bg_red},
Search = {fg = p.bg0, bg = p.bg_green},
MatchParen = {fg = p.none, bg = p.bg4},
NonText = {fg = p.bg4},
Whitespace = {fg = p.bg4},
SpecialKey = {fg = p.bg4},
Pmenu = {fg = p.fg, bg = p.bg2},
PmenuSbar = {fg = p.none, bg = p.bg2},
PmenuSel = {fg = p.bg0, bg = p.bg_green},
WildMenu = {fg = p.bg0, bg = p.blue},
PmenuThumb = {fg = p.none, bg = p.grey},
Question = {fg = p.yellow},
SpellBad = {fg = p.red, underline = true, sp = p.red},
SpellCap = {fg = p.yellow, underline = true, sp = p.yellow},
SpellLocal = {fg = p.blue, underline = true, sp = p.blue},
SpellRare = {fg = p.purple, underline = true, sp = p.purple},
StatusLine = {fg = p.fg, bg = p.bg3},
StatusLineTerm = {fg = p.fg, bg = p.bg3},
StatusLineNC = {fg = p.grey, bg = p.bg1},
StatusLineTermNC = {fg = p.grey, bg = p.bg1},
TabLine = {fg = p.fg, bg = p.bg4},
TabLineFill = {fg = p.grey, bg = p.bg1},
TabLineSel = {fg = p.bg0, bg = p.bg_red},
VertSplit = {fg = p.black},
Visual = {fg = p.none, bg = p.bg3},
VisualNOS = {fg = p.none, bg = p.bg3, underline = true},
QuickFixLine = {fg = p.blue, underline = true},
Debug = {fg = p.yellow},
debugPC = {fg = p.bg0, bg = p.green},
debugBreakpoint = {fg = p.bg0, bg = p.red},
ToolbarButton = {fg = p.bg0, bg = p.bg_blue}
}
hl.syntax = {
Type = hl.predef.BlueItalic,
Structure = hl.predef.BlueItalic,
StorageClass = hl.predef.BlueItalic,
Identifier = hl.predef.OrangeItalic,
Constant = hl.predef.OrangeItalic,
PreProc = hl.predef.Red,
PreCondit = hl.predef.Red,
Include = hl.predef.Red,
Keyword = hl.predef.Red,
Define = hl.predef.Red,
Typedef = hl.predef.Red,
Exception = hl.predef.Red,
Conditional = hl.predef.Red,
Repeat = hl.predef.Red,
Statement = hl.predef.Red,
Macro = hl.predef.Purple,
Error = hl.predef.Red,
Label = hl.predef.Purple,
Special = hl.predef.Purple,
SpecialChar = hl.predef.Purple,
Boolean = hl.predef.Purple,
String = hl.predef.Yellow,
Character = hl.predef.Yellow,
Number = hl.predef.Purple,
Float = hl.predef.Purple,
Function = hl.predef.Green,
Operator = hl.predef.Red,
Title = hl.predef.Red,
Tag = hl.predef.Orange,
Delimiter = hl.predef.Fg,
Comment = {fg = p.bg4, italic = cfg.enable_italic_comment},
SpecialComment = {fg = p.bg4, italic = cfg.enable_italic_comment},
Todo = {fg = p.blue, italic = cfg.enable_italic_comment}
}
hl.langs.lua = {
luaFunc = hl.predef.Green,
luaFunction = hl.predef.Red,
luaTable = hl.predef.Fg,
luaIn = hl.predef.Red,
luaFuncCall = hl.predef.Green,
luaLocalRed = hl.predef.Red,
luaSpecialValue = hl.predef.Green,
luaBraces = hl.predef.Fg,
luaBuiltIn = hl.predef.BlueItalic,
luaNoise = hl.predef.Grey,
luaLabel = hl.predef.Purple,
luaFuncTable = hl.predef.BlueItalic,
luaFuncArgName = hl.predef.Fg,
luaEllipsis = hl.predef.Red,
luaDocTag = hl.predef.Green
}
hl.langs.python = {
pythonBuiltin = hl.predef.BlueItalic,
pythonExceptio = hl.predef.Red,
pythonDecoratorName = hl.predef.OrangeItalic,
pythonExClass = hl.predef.BlueItalic,
pythonBuiltinType = hl.predef.BlueItalic,
pythonBuiltinObj = hl.predef.OrangeItalic,
pythonDottedName = hl.predef.OrangeItalic,
pythonBuiltinFunc = hl.predef.Green,
pythonFunction = hl.predef.Green,
pythonDecorator = hl.predef.OrangeItalic,
pythonInclude = hl.syntax.Include,
pythonImport = hl.syntax.PreProc,
pythonOperator = hl.predef.Red,
pythonConditional = hl.predef.Red,
pythonRepeat = hl.predef.Red,
pythonException = hl.predef.Red,
pythonNone = hl.predef.OrangeItalic,
pythonCoding = hl.predef.Grey,
pythonDot = hl.predef.Grey
}
hl.langs.json = {
jsonKeyword = hl.predef.Red,
jsonString = hl.predef.Green,
jsonBoolean = hl.predef.Blue,
jsonNoise = hl.predef.Grey,
jsonQuote = hl.predef.Grey,
jsonBraces = hl.predef.Fg
}
hl.langs.yaml = {
yamlKey = hl.predef.Red,
yamlConstant = hl.predef.BlueItalic,
yamlString = hl.predef.Green
}
hl.langs.latex = {
texStatement = hl.predef.BlueItalic,
texOnlyMath = hl.predef.Grey,
texDefName = hl.predef.Yellow,
texNewCmd = hl.predef.Orange,
texCmdName = hl.predef.Blue,
texBeginEnd = hl.predef.Red,
texBeginEndName = hl.predef.Green,
texDocType = hl.predef.RedItalic,
ttexDocTypeArgs = hl.predef.Orange,
texInputFile = hl.predef.Green
}
hl.langs.cmake = {
cmakeCommand = hl.predef.Red,
cmakeKWconfigure_package_config_file = hl.predef.BlueItalic,
cmakeKWwrite_basic_package_version_file = hl.predef.BlueItalic,
cmakeKWExternalProject = hl.predef.Green,
cmakeKWadd_compile_definitions = hl.predef.Green,
cmakeKWadd_compile_options = hl.predef.Green,
cmakeKWadd_custom_command = hl.predef.Green,
cmakeKWadd_custom_target = hl.predef.Green,
cmakeKWadd_definitions = hl.predef.Green,
cmakeKWadd_dependencies = hl.predef.Green,
cmakeKWadd_executable = hl.predef.Green,
cmakeKWadd_library = hl.predef.Green,
cmakeKWadd_link_options = hl.predef.Green,
cmakeKWadd_subdirectory = hl.predef.Green,
cmakeKWadd_test = hl.predef.Green,
cmakeKWbuild_command = hl.predef.Green,
cmakeKWcmake_host_system_information = hl.predef.Green,
cmakeKWcmake_minimum_required = hl.predef.Green,
cmakeKWcmake_parse_arguments = hl.predef.Green,
cmakeKWcmake_policy = hl.predef.Green,
cmakeKWconfigure_file = hl.predef.Green,
cmakeKWcreate_test_sourcelist = hl.predef.Green,
cmakeKWctest_build = hl.predef.Green,
cmakeKWctest_configure = hl.predef.Green,
cmakeKWctest_coverage = hl.predef.Green,
cmakeKWctest_memcheck = hl.predef.Green,
cmakeKWctest_run_script = hl.predef.Green,
cmakeKWctest_start = hl.predef.Green,
cmakeKWctest_submit = hl.predef.Green,
cmakeKWctest_test = hl.predef.Green,
cmakeKWctest_update = hl.predef.Green,
cmakeKWctest_upload = hl.predef.Green,
cmakeKWdefine_property = hl.predef.Green,
cmakeKWdoxygen_add_docs = hl.predef.Green,
cmakeKWenable_language = hl.predef.Green,
cmakeKWenable_testing = hl.predef.Green,
cmakeKWexec_program = hl.predef.Green,
cmakeKWexecute_process = hl.predef.Green,
cmakeKWexport = hl.predef.Green,
cmakeKWexport_library_dependencies = hl.predef.Green,
cmakeKWfile = hl.predef.Green,
cmakeKWfind_file = hl.predef.Green,
cmakeKWfind_library = hl.predef.Green,
cmakeKWfind_package = hl.predef.Green,
cmakeKWfind_path = hl.predef.Green,
cmakeKWfind_program = hl.predef.Green,
cmakeKWfltk_wrap_ui = hl.predef.Green,
cmakeKWforeach = hl.predef.Green,
cmakeKWfunction = hl.predef.Green,
cmakeKWget_cmake_property = hl.predef.Green,
cmakeKWget_directory_property = hl.predef.Green,
cmakeKWget_filename_component = hl.predef.Green,
cmakeKWget_property = hl.predef.Green,
cmakeKWget_source_file_property = hl.predef.Green,
cmakeKWget_target_property = hl.predef.Green,
cmakeKWget_test_property = hl.predef.Green,
cmakeKWif = hl.predef.Green,
cmakeKWinclude = hl.predef.Green,
cmakeKWinclude_directories = hl.predef.Green,
cmakeKWinclude_external_msproject = hl.predef.Green,
cmakeKWinclude_guard = hl.predef.Green,
cmakeKWinstall = hl.predef.Green,
cmakeKWinstall_files = hl.predef.Green,
cmakeKWinstall_programs = hl.predef.Green,
cmakeKWinstall_targets = hl.predef.Green,
cmakeKWlink_directories = hl.predef.Green,
cmakeKWlist = hl.predef.Green,
cmakeKWload_cache = hl.predef.Green,
cmakeKWload_command = hl.predef.Green,
cmakeKWmacro = hl.predef.Green,
cmakeKWmark_as_advanced = hl.predef.Green,
cmakeKWmath = hl.predef.Green,
cmakeKWmessage = hl.predef.Green,
cmakeKWoption = hl.predef.Green,
cmakeKWproject = hl.predef.Green,
cmakeKWqt_wrap_cpp = hl.predef.Green,
cmakeKWqt_wrap_ui = hl.predef.Green,
cmakeKWremove = hl.predef.Green,
cmakeKWseparate_arguments = hl.predef.Green,
cmakeKWset = hl.predef.Green,
cmakeKWset_directory_properties = hl.predef.Green,
cmakeKWset_property = hl.predef.Green,
cmakeKWset_source_files_properties = hl.predef.Green,
cmakeKWset_target_properties = hl.predef.Green,
cmakeKWset_tests_properties = hl.predef.Green,
cmakeKWsource_group = hl.predef.Green,
cmakeKWstring = hl.predef.Green,
cmakeKWsubdirs = hl.predef.Green,
cmakeKWtarget_compile_definitions = hl.predef.Green,
cmakeKWtarget_compile_features = hl.predef.Green,
cmakeKWtarget_compile_options = hl.predef.Green,
cmakeKWtarget_include_directories = hl.predef.Green,
cmakeKWtarget_link_directories = hl.predef.Green,
cmakeKWtarget_link_libraries = hl.predef.Green,
cmakeKWtarget_link_options = hl.predef.Green,
cmakeKWtarget_precompile_headers = hl.predef.Green,
cmakeKWtarget_sources = hl.predef.Green,
cmakeKWtry_compile = hl.predef.Green,
cmakeKWtry_run = hl.predef.Green,
cmakeKWunset = hl.predef.Green,
cmakeKWuse_mangled_mesa = hl.predef.Green,
cmakeKWvariable_requires = hl.predef.Green,
cmakeKWvariable_watch = hl.predef.Green,
cmakeKWwrite_file = hl.predef.Green
}
hl.plugins.lsp = {
LspCxxHlSkippedRegion = hl.predef.Gray,
LspCxxHlSkippedRegionBeginEnd = hl.predef.Red,
LspCxxHlGroupEnumConstant = hl.predef.Orange,
LspCxxHlGroupNamespace = hl.predef.Blue,
LspCxxHlGroupMemberVariable = hl.predef.Orange,
LspDiagnosticsDefaultError = {fg = u.color_gamma(p.red, 0.5)},
LspDiagnosticsDefaultWarning = {fg = u.color_gamma(p.yellow, 0.5)},
LspDiagnosticsDefaultInformation = {fg = u.color_gamma(p.blue, 0.5)},
LspDiagnosticsDefaultHint = {fg = u.color_gamma(p.purple, 0.5)},
LspDiagnosticsUnderlineError = {underline = true, sp = u.color_gamma(p.red, 0.5)},
LspDiagnosticsUnderlineWarning = {underline = true, sp = u.color_gamma(p.yellow, 0.5)},
LspDiagnosticsUnderlineInformation = {underline = true, sp = u.color_gamma(p.blue, 0.5)},
LspDiagnosticsUnderlineHint = {underline = true, sp = u.color_gamma(p.purple, 0.5)}
}
hl.plugins.git_commit = {
gitcommitSummary = hl.predef.Red,
gitcommitUntracked = hl.predef.Grey,
gitcommitDiscarded = hl.predef.Grey,
gitcommitSelected = hl.predef.Grey,
gitcommitUnmerged = hl.predef.Grey,
gitcommitOnBranch = hl.predef.Grey,
gitcommitArrow = hl.predef.Grey,
gitcommitFile = hl.predef.Green
}
function M.setup()
local ns = create_namespace("tokyodark")
load_highlights(ns, hl.predef)
load_highlights(ns, hl.common)
load_highlights(ns, hl.syntax)
for _, group in pairs(hl.langs) do load_highlights(ns, group) end
for _, group in pairs(hl.plugins) do load_highlights(ns, group) end
set_hl_ns(ns)
end
return M

16
lua/tokyodark/init.lua Normal file
View File

@@ -0,0 +1,16 @@
local M = {}
local highlights = require('tokyodark.highlights')
local terminal = require('tokyodark.terminal')
local function colorscheme()
vim.cmd("hi clear")
if vim.fn.exists("syntax_on") then vim.cmd("syntax reset") end
vim.o.background = "dark"
vim.o.termguicolors = true
highlights.setup()
terminal.setup()
end
function M.setup() colorscheme() end
return M

33
lua/tokyodark/palette.lua Normal file
View File

@@ -0,0 +1,33 @@
local color_gamma = require('tokyodark.utils').color_gamma
local gamma = require('tokyodark.config').gamma
local colors = {
black = '#06080A',
bg0 = '#11121D',
bg1 = '#1A1B2A',
bg2 = '#212234',
bg3 = '#392B41',
bg4 = '#4A5057',
bg_red = '#F6718A',
diff_red = '#773440',
bg_green = '#B0E973',
diff_green = '#587738',
bg_blue = '#749DF6',
diff_blue = '#354A77',
fg = '#A0A8CD',
red = '#EE6D85',
orange = '#F6955B',
yellow = '#D7A65F',
green = '#95C561',
blue = '#7199EE',
purple = '#A485DD',
grey = '#3b4261',
none = 'NONE'
}
local function gamma_correction(colors)
local colors_corrected = {}
for k, v in pairs(colors) do colors_corrected[k] = color_gamma(v, gamma) end
return colors_corrected
end
return gamma_correction(colors)

View File

@@ -0,0 +1,23 @@
local M = {}
local p = require 'tokyodark.palette'
function M.setup()
vim.g.terminal_color_0 = p.black
vim.g.terminal_color_1 = p.red
vim.g.terminal_color_2 = p.green
vim.g.terminal_color_3 = p.yellow
vim.g.terminal_color_4 = p.blue
vim.g.terminal_color_5 = p.purple
vim.g.terminal_color_6 = p.orange
vim.g.terminal_color_7 = p.fg
vim.g.terminal_color_8 = p.black
vim.g.terminal_color_9 = p.red
vim.g.terminal_color_10 = p.green
vim.g.terminal_color_11 = p.yellow
vim.g.terminal_color_12 = p.blue
vim.g.terminal_color_13 = p.purple
vim.g.terminal_color_14 = p.orange
vim.g.terminal_color_15 = p.fg
end
return M

40
lua/tokyodark/utils.lua Normal file
View File

@@ -0,0 +1,40 @@
local U = {}
function U.tprint(tbl, indent)
if not indent then indent = 0 end
for k, v in pairs(tbl) do
local formatting = string.rep(" ", indent) .. k .. ": "
if type(v) == "table" then
print(formatting)
U.tprint(v, indent + 1)
elseif type(v) == 'boolean' then
print(formatting .. tostring(v))
else
print(formatting .. v)
end
end
end
function U.hex2rgb(hex)
hex = hex:gsub("#", "")
return tonumber("0x" .. hex:sub(1, 2)), tonumber("0x" .. hex:sub(3, 4)),
tonumber("0x" .. hex:sub(5, 6))
end
function U.gamma_corrector(value, gamma)
value = ((value / 255) ^ (1 / gamma)) * 255
return math.min(math.max(math.floor(value), 0), 255)
end
function U.color_gamma(hex, gamma)
if hex:find('#') == nil then
return hex
end
local r, g, b = U.hex2rgb(hex)
r = U.gamma_corrector(r, gamma)
g = U.gamma_corrector(g, gamma)
b = U.gamma_corrector(b, gamma)
return string.format("#%02x%02x%02x", r, g, b)
end
return U