diff --git a/lua/tokyo/theme.lua b/lua/tokyo/theme.lua index e0e5bc0..b222b80 100644 --- a/lua/tokyo/theme.lua +++ b/lua/tokyo/theme.lua @@ -1,11 +1,12 @@ local M = {} local p = require 'tokyo.palette' local utils = require 'tokyo.utils' +local function opt_italic(lhs, rhs) vim.tbl_extend('force', lhs, {italic = rhs}) end local hl = {} -local config = {bg_transparent = true} +local cfg = {bg_transparent = false, italic_enabled = true} -hl.predefined = { +hl.predef = { Fg = {fg = p.fg}, Gray = {fg = p.gray}, Red = {fg = p.red}, @@ -20,12 +21,12 @@ hl.predefined = { } hl.common = { - Normal = {fg = p.fg, bg = p.bg0}, - Terminal = {fg = p.fg, bg = p.bg0}, - EndOfBuffer = {fg = p.fg, bg = p.bg0}, - FoldColumn = {fg = p.fg, bg = p.bg1}, - Folded = {fg = p.fg, bg = p.bg1}, - SignColumn = {fg = p.fg, bg = p.bg1}, + Normal = {fg = p.fg, bg = not cfg.bg_transparent and p.bg0}, + Terminal = {fg = p.fg, bg = not cfg.bg_transparent and p.bg0}, + EndOfBuffer = {fg = p.bg2, bg = not cfg.bg_transparent and p.bg0}, + FoldColumn = {fg = p.fg, bg = not cfg.bg_transparent and p.bg1}, + Folded = {fg = p.fg, bg = not cfg.bg_transparent and p.bg1}, + SignColumn = {fg = p.fg, bg = not cfg.bg_transparent and p.bg0}, ToolbarLine = {fg = p.fg}, Cursor = {reverse = true}, vCursor = {reverse = true}, @@ -53,15 +54,38 @@ hl.common = { Whitespace = {fg = p.bg4}, SpecialKey = {fg = p.bg4}, Pmenu = {fg = p.fg, bg = p.bg2}, - PmenuSbar = {fg = p.none, bg = p.bg2} + PmenuSbar = {fg = p.none, bg = p.bg2}, + PmenuSel = {fg = p.bg0, bg = p.blue}, + WildMenu = {fg = p.bg0, bg = p.blue}, + PmenuThumb = {fg = p.none, bg = p.grey}, + Question = {fg = p.yellow, bg = p.none}, + SpellBad = {fg = p.red, bg = p.none, underline = true, sp = p.red}, + SpellCap = {fg = p.yellow, bg = p.none, underline = true, sp = p.yellow}, + SpellLocal = {fg = p.blue, bg = p.none, underline = true, sp = p.blue}, + SpellRare = {fg = p.purple, bg = p.none, 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, bg = p.none}, + Visual = {fg = p.none, bg = p.bg3}, + VisualNOS = {fg = p.none, bg = p.bg3, underline = true}, + QuickFixLine = {fg = p.blue, bg = p.none, underline = true}, + Debug = {fg = p.yellow, bg = p.none}, + 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 = {fg = p.blue}, - Structure = {fg = p.blue}, - StorageClass = {fg = p.blue}, - Identifier = {fg = p.orange}, - Constant = {fg = p.orange}, + Type = {fg = p.blue, italic = cfg.italic_enabled}, + Structure = {fg = p.blue, italic = cfg.italic_enabled}, + StorageClass = {fg = p.blue, italic = cfg.italic_enabled}, + Identifier = {fg = p.orange, italic = cfg.italic_enabled}, + Constant = {fg = p.orange, italic = cfg.italic_enabled}, PreProc = {fg = p.red}, PreCondit = {fg = p.red}, Include = {fg = p.red}, @@ -93,183 +117,184 @@ hl.syntax = { } hl.lua = { - luaFunc = hl.predefined.Green, - luaFunction = hl.predefined.Red, - luaTable = hl.predefined.Fg, - luaIn = hl.predefined.Red, - luaFuncCall = hl.predefined.Green, - luaLocalRed = hl.predefined.Red, - luaSpecialValue = hl.predefined.Green, - luaBraces = hl.predefined.Fg, - luaBuiltIn = hl.predefined.Blue, - luaNoise = hl.predefined.Grey, - luaFuncTable = hl.predefined.Blue, - luaFuncArgName = hl.predefined.Fg, - luaEllipsis = hl.predefined.Red, - luaDocTag = hl.predefined.Green + 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 = opt_italic(hl.predef.Blue, cfg.italic_enabled), + luaNoise = hl.predef.Grey, + luaLabel = hl.predef.Purple, + luaFuncTable = opt_italic(hl.predef.Blue, cfg.italic_enabled), + luaFuncArgName = hl.predef.Fg, + luaEllipsis = hl.predef.Red, + luaDocTag = hl.predef.Green } hl.python = { - pythonBuiltin = hl.predefined.BlueItalic, - pythonExceptio = hl.predefined.Red, - pythonDecoratorName = hl.predefined.OrangeItalic, - pythonExClass = hl.predefined.BlueItalic, - pythonBuiltinType = hl.predefined.BlueItalic, - pythonBuiltinObj = hl.predefined.OrangeItalic, - pythonDottedName = hl.predefined.OrangeItalic, - pythonBuiltinFunc = hl.predefined.Green, - pythonFunction = hl.predefined.Green, - pythonDecorator = hl.predefined.OrangeItalic, - pythonInclude = hl.predefined.Include, - pythonImport = hl.predefined.PreProc, - pythonOperator = hl.predefined.Red, - pythonConditional = hl.predefined.Red, - pythonRepeat = hl.predefined.Red, - pythonException = hl.predefined.Red, - pythonNone = hl.predefined.OrangeItalic, - pythonCoding = hl.predefined.Grey, - pythonDot = hl.predefined.Grey + pythonBuiltin = opt_italic(hl.predef.Blue, {italic = cfg.italic_enabled}), + pythonExceptio = hl.predef.Red, + pythonDecoratorName = opt_italic(hl.predef.Orange, cfg.italic_enabled), + pythonExClass = opt_italic(hl.predef.Blue, cfg.italic_enabled), + pythonBuiltinType = opt_italic(hl.predef.Blue, cfg.italic_enabled), + pythonBuiltinObj = opt_italic(hl.predef.Orange, cfg.italic_enabled), + pythonDottedName = opt_italic(hl.predef.Orange, cfg.italic_enabled), + pythonBuiltinFunc = hl.predef.Green, + pythonFunction = hl.predef.Green, + pythonDecorator = opt_italic(hl.predef.Orange, cfg.italic_enabled), + 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 = opt_italic(hl.predef.Orange, cfg.italic_enabled), + pythonCoding = hl.predef.Grey, + pythonDot = hl.predef.Grey } hl.lsp = { - LspCxxHlSkippedRegion = hl.predefined.Gray, - LspCxxHlSkippedRegionBeginEnd = hl.predefined.Red, - LspCxxHlGroupEnumConstant = hl.predefined.Orange, - LspCxxHlGroupNamespace = hl.predefined.Blue, - LspCxxHlGroupMemberVariable = hl.predefined.Orange + LspCxxHlSkippedRegion = hl.predef.Gray, + LspCxxHlSkippedRegionBeginEnd = hl.predef.Red, + LspCxxHlGroupEnumConstant = hl.predef.Orange, + LspCxxHlGroupNamespace = hl.predef.Blue, + LspCxxHlGroupMemberVariable = hl.predef.Orange } hl.json = { - jsonKeyword = hl.predefined.Red, - jsonString = hl.predefined.Green, - jsonBoolean = hl.predefined.Blue, - jsonNoise = hl.predefined.Grey, - jsonQuote = hl.predefined.Grey, - jsonBraces = hl.predefined.Fg + 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.yaml = { - yamlKey = hl.predefined.Red, - yamlConstant = hl.predefined.BlueItalic, - yamlString = hl.predefined.Green + yamlKey = hl.predef.Red, + yamlConstant = hl.predef.BlueItalic, + yamlString = hl.predef.Green } hl.git_commit = { - gitcommitSummary = hl.predefined.Red, - gitcommitUntracked = hl.predefined.Grey, - gitcommitDiscarded = hl.predefined.Grey, - gitcommitSelected = hl.predefined.Grey, - gitcommitUnmerged = hl.predefined.Grey, - gitcommitOnBranch = hl.predefined.Grey, - gitcommitArrow = hl.predefined.Grey, - gitcommitFile = hl.predefined.Green + 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 } hl.cmake = { - cmakeCommand = hl.predefined.Red, - cmakeKWconfigure_package_config_file = hl.predefined.BlueItalic, - cmakeKWwrite_basic_package_version_file = hl.predefined.BlueItalic, - cmakeKWExternalProject = hl.predefined.Green, - cmakeKWadd_compile_definitions = hl.predefined.Green, - cmakeKWadd_compile_options = hl.predefined.Green, - cmakeKWadd_custom_command = hl.predefined.Green, - cmakeKWadd_custom_target = hl.predefined.Green, - cmakeKWadd_definitions = hl.predefined.Green, - cmakeKWadd_dependencies = hl.predefined.Green, - cmakeKWadd_executable = hl.predefined.Green, - cmakeKWadd_library = hl.predefined.Green, - cmakeKWadd_link_options = hl.predefined.Green, - cmakeKWadd_subdirectory = hl.predefined.Green, - cmakeKWadd_test = hl.predefined.Green, - cmakeKWbuild_command = hl.predefined.Green, - cmakeKWcmake_host_system_information = hl.predefined.Green, - cmakeKWcmake_minimum_required = hl.predefined.Green, - cmakeKWcmake_parse_arguments = hl.predefined.Green, - cmakeKWcmake_policy = hl.predefined.Green, - cmakeKWconfigure_file = hl.predefined.Green, - cmakeKWcreate_test_sourcelist = hl.predefined.Green, - cmakeKWctest_build = hl.predefined.Green, - cmakeKWctest_configure = hl.predefined.Green, - cmakeKWctest_coverage = hl.predefined.Green, - cmakeKWctest_memcheck = hl.predefined.Green, - cmakeKWctest_run_script = hl.predefined.Green, - cmakeKWctest_start = hl.predefined.Green, - cmakeKWctest_submit = hl.predefined.Green, - cmakeKWctest_test = hl.predefined.Green, - cmakeKWctest_update = hl.predefined.Green, - cmakeKWctest_upload = hl.predefined.Green, - cmakeKWdefine_property = hl.predefined.Green, - cmakeKWdoxygen_add_docs = hl.predefined.Green, - cmakeKWenable_language = hl.predefined.Green, - cmakeKWenable_testing = hl.predefined.Green, - cmakeKWexec_program = hl.predefined.Green, - cmakeKWexecute_process = hl.predefined.Green, - cmakeKWexport = hl.predefined.Green, - cmakeKWexport_library_dependencies = hl.predefined.Green, - cmakeKWfile = hl.predefined.Green, - cmakeKWfind_file = hl.predefined.Green, - cmakeKWfind_library = hl.predefined.Green, - cmakeKWfind_package = hl.predefined.Green, - cmakeKWfind_path = hl.predefined.Green, - cmakeKWfind_program = hl.predefined.Green, - cmakeKWfltk_wrap_ui = hl.predefined.Green, - cmakeKWforeach = hl.predefined.Green, - cmakeKWfunction = hl.predefined.Green, - cmakeKWget_cmake_property = hl.predefined.Green, - cmakeKWget_directory_property = hl.predefined.Green, - cmakeKWget_filename_component = hl.predefined.Green, - cmakeKWget_property = hl.predefined.Green, - cmakeKWget_source_file_property = hl.predefined.Green, - cmakeKWget_target_property = hl.predefined.Green, - cmakeKWget_test_property = hl.predefined.Green, - cmakeKWif = hl.predefined.Green, - cmakeKWinclude = hl.predefined.Green, - cmakeKWinclude_directories = hl.predefined.Green, - cmakeKWinclude_external_msproject = hl.predefined.Green, - cmakeKWinclude_guard = hl.predefined.Green, - cmakeKWinstall = hl.predefined.Green, - cmakeKWinstall_files = hl.predefined.Green, - cmakeKWinstall_programs = hl.predefined.Green, - cmakeKWinstall_targets = hl.predefined.Green, - cmakeKWlink_directories = hl.predefined.Green, - cmakeKWlist = hl.predefined.Green, - cmakeKWload_cache = hl.predefined.Green, - cmakeKWload_command = hl.predefined.Green, - cmakeKWmacro = hl.predefined.Green, - cmakeKWmark_as_advanced = hl.predefined.Green, - cmakeKWmath = hl.predefined.Green, - cmakeKWmessage = hl.predefined.Green, - cmakeKWoption = hl.predefined.Green, - cmakeKWproject = hl.predefined.Green, - cmakeKWqt_wrap_cpp = hl.predefined.Green, - cmakeKWqt_wrap_ui = hl.predefined.Green, - cmakeKWremove = hl.predefined.Green, - cmakeKWseparate_arguments = hl.predefined.Green, - cmakeKWset = hl.predefined.Green, - cmakeKWset_directory_properties = hl.predefined.Green, - cmakeKWset_property = hl.predefined.Green, - cmakeKWset_source_files_properties = hl.predefined.Green, - cmakeKWset_target_properties = hl.predefined.Green, - cmakeKWset_tests_properties = hl.predefined.Green, - cmakeKWsource_group = hl.predefined.Green, - cmakeKWstring = hl.predefined.Green, - cmakeKWsubdirs = hl.predefined.Green, - cmakeKWtarget_compile_definitions = hl.predefined.Green, - cmakeKWtarget_compile_features = hl.predefined.Green, - cmakeKWtarget_compile_options = hl.predefined.Green, - cmakeKWtarget_include_directories = hl.predefined.Green, - cmakeKWtarget_link_directories = hl.predefined.Green, - cmakeKWtarget_link_libraries = hl.predefined.Green, - cmakeKWtarget_link_options = hl.predefined.Green, - cmakeKWtarget_precompile_headers = hl.predefined.Green, - cmakeKWtarget_sources = hl.predefined.Green, - cmakeKWtry_compile = hl.predefined.Green, - cmakeKWtry_run = hl.predefined.Green, - cmakeKWunset = hl.predefined.Green, - cmakeKWuse_mangled_mesa = hl.predefined.Green, - cmakeKWvariable_requires = hl.predefined.Green, - cmakeKWvariable_watch = hl.predefined.Green, - cmakeKWwrite_file = hl.predefined.Green + 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 } local highlight = vim.api.nvim_set_hl