Update structure; add .lua-format; add terminal support
This commit is contained in:
1 parent
a0788e4347
commit
90ffef282e
6 files changed
+169
-107
No files matched your search
@@ -0,0 +1 @@
|
||||
column_limit: 100
|
||||
@@ -1,4 +1,8 @@
|
||||
|
||||
local cfg = {bg_transparent = true, italic_enabled = true, gamma = 1.0}
|
||||
local cfg = {
|
||||
transparent_background = true,
|
||||
enable_italic = true,
|
||||
enable_italic_comment = true,
|
||||
gamma = 1.0
|
||||
}
|
||||
|
||||
return cfg
|
||||
@@ -1,7 +1,17 @@
|
||||
local p = require 'tokyo.palette'
|
||||
local function opt_italic(lhs, rhs) vim.tbl_extend('force', lhs, {italic = rhs}) end
|
||||
local p = require('tokyo.palette')
|
||||
local cfg = require('tokyo.config')
|
||||
local hl = {}
|
||||
local u = require('tokyo.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},
|
||||
@@ -12,15 +22,19 @@ hl.predef = {
|
||||
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.bg_transparent and p.none or p.bg0},
|
||||
Terminal = {fg = p.fg, bg = cfg.bg_transparent and p.none or p.bg0},
|
||||
EndOfBuffer = {fg = p.bg2, bg = cfg.bg_transparent and p.none or p.bg0},
|
||||
FoldColumn = {fg = p.fg, bg = cfg.bg_transparent and p.none or p.bg1},
|
||||
Folded = {fg = p.fg, bg = cfg.bg_transparent and p.none or p.bg1},
|
||||
SignColumn = {fg = p.fg, bg = cfg.bg_transparent and p.none or p.bg0},
|
||||
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},
|
||||
@@ -31,6 +45,7 @@ hl.common = {
|
||||
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},
|
||||
@@ -38,9 +53,9 @@ hl.common = {
|
||||
DiffText = {fg = p.none, reverse = true},
|
||||
Directory = {fg = p.green},
|
||||
ErrorMsg = {fg = p.red, bold = true, underline = true},
|
||||
WarningMsg = {fg = p.yellow, bg = p.none, bold = true},
|
||||
ModeMsg = {fg = p.fg, bg = p.none, bold = true},
|
||||
MoreMsg = {fg = p.blue, bg = p.none, bold = 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},
|
||||
@@ -49,14 +64,14 @@ hl.common = {
|
||||
SpecialKey = {fg = p.bg4},
|
||||
Pmenu = {fg = p.fg, bg = p.bg2},
|
||||
PmenuSbar = {fg = p.none, bg = p.bg2},
|
||||
PmenuSel = {fg = p.bg0, bg = p.blue},
|
||||
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, 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},
|
||||
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},
|
||||
@@ -64,53 +79,53 @@ hl.common = {
|
||||
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},
|
||||
VertSplit = {fg = p.black},
|
||||
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},
|
||||
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 = {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},
|
||||
Keyword = {fg = p.red},
|
||||
Define = {fg = p.red},
|
||||
Typedef = {fg = p.red},
|
||||
Exception = {fg = p.red},
|
||||
Conditional = {fg = p.red},
|
||||
Repeat = {fg = p.red},
|
||||
Statement = {fg = p.red},
|
||||
Macro = {fg = p.purple},
|
||||
Error = {fg = p.red},
|
||||
Label = {fg = p.purple},
|
||||
Special = {fg = p.purple},
|
||||
SpecialChar = {fg = p.purple},
|
||||
Boolean = {fg = p.purple},
|
||||
String = {fg = p.yellow},
|
||||
Character = {fg = p.yellow},
|
||||
Number = {fg = p.purple},
|
||||
Float = {fg = p.purple},
|
||||
Function = {fg = p.green},
|
||||
Operator = {fg = p.red},
|
||||
Title = {fg = p.red},
|
||||
Tag = {fg = p.orange},
|
||||
Delimiter = {fg = p.fg},
|
||||
Comment = {fg = p.gray, italic = true},
|
||||
SpecialComment = {fg = p.grey},
|
||||
Todo = {fg = p.blue}
|
||||
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.lua = {
|
||||
hl.langs.lua = {
|
||||
luaFunc = hl.predef.Green,
|
||||
luaFunction = hl.predef.Red,
|
||||
luaTable = hl.predef.Fg,
|
||||
@@ -119,46 +134,38 @@ hl.lua = {
|
||||
luaLocalRed = hl.predef.Red,
|
||||
luaSpecialValue = hl.predef.Green,
|
||||
luaBraces = hl.predef.Fg,
|
||||
luaBuiltIn = opt_italic(hl.predef.Blue, cfg.italic_enabled),
|
||||
luaBuiltIn = hl.predef.BlueItalic,
|
||||
luaNoise = hl.predef.Grey,
|
||||
luaLabel = hl.predef.Purple,
|
||||
luaFuncTable = opt_italic(hl.predef.Blue, cfg.italic_enabled),
|
||||
luaFuncTable = hl.predef.BlueItalic,
|
||||
luaFuncArgName = hl.predef.Fg,
|
||||
luaEllipsis = hl.predef.Red,
|
||||
luaDocTag = hl.predef.Green
|
||||
}
|
||||
|
||||
hl.python = {
|
||||
pythonBuiltin = opt_italic(hl.predef.Blue, {italic = cfg.italic_enabled}),
|
||||
hl.langs.python = {
|
||||
pythonBuiltin = hl.predef.BlueItalic,
|
||||
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),
|
||||
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 = opt_italic(hl.predef.Orange, cfg.italic_enabled),
|
||||
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 = opt_italic(hl.predef.Orange, cfg.italic_enabled),
|
||||
pythonNone = hl.predef.OrangeItalic,
|
||||
pythonCoding = hl.predef.Grey,
|
||||
pythonDot = hl.predef.Grey
|
||||
}
|
||||
|
||||
hl.lsp = {
|
||||
LspCxxHlSkippedRegion = hl.predef.Gray,
|
||||
LspCxxHlSkippedRegionBeginEnd = hl.predef.Red,
|
||||
LspCxxHlGroupEnumConstant = hl.predef.Orange,
|
||||
LspCxxHlGroupNamespace = hl.predef.Blue,
|
||||
LspCxxHlGroupMemberVariable = hl.predef.Orange
|
||||
}
|
||||
|
||||
hl.json = {
|
||||
hl.langs.json = {
|
||||
jsonKeyword = hl.predef.Red,
|
||||
jsonString = hl.predef.Green,
|
||||
jsonBoolean = hl.predef.Blue,
|
||||
@@ -167,24 +174,22 @@ hl.json = {
|
||||
jsonBraces = hl.predef.Fg
|
||||
}
|
||||
|
||||
hl.yaml = {
|
||||
yamlKey = hl.predef.Red,
|
||||
yamlConstant = hl.predef.BlueItalic,
|
||||
yamlString = hl.predef.Green
|
||||
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.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
|
||||
}
|
||||
|
||||
hl.cmake = {
|
||||
hl.langs.cmake = {
|
||||
cmakeCommand = hl.predef.Red,
|
||||
cmakeKWconfigure_package_config_file = hl.predef.BlueItalic,
|
||||
cmakeKWwrite_basic_package_version_file = hl.predef.BlueItalic,
|
||||
@@ -291,5 +296,42 @@ hl.cmake = {
|
||||
cmakeKWwrite_file = hl.predef.Green
|
||||
}
|
||||
|
||||
return hl
|
||||
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("tokyo")
|
||||
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
|
||||
|
||||
+4
-12
@@ -1,22 +1,14 @@
|
||||
local M = {}
|
||||
local hl = require('tokyo.theme')
|
||||
|
||||
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 highlights = require('tokyo.highlights')
|
||||
local terminal = require('tokyo.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
|
||||
local ns = create_namespace("tokyo")
|
||||
for _, group in pairs(hl) do
|
||||
for group_name, group_settings in pairs(group) do
|
||||
highlight(ns, group_name, group_settings)
|
||||
end
|
||||
end
|
||||
set_hl_ns(ns)
|
||||
highlights.setup()
|
||||
terminal.setup()
|
||||
end
|
||||
|
||||
function M.setup() colorscheme() end
|
||||
|
||||
@@ -7,7 +7,7 @@ local colors = {
|
||||
bg1 = '#1A1B2A',
|
||||
bg2 = '#212234',
|
||||
bg3 = '#392B41',
|
||||
bg4 = '#32344E',
|
||||
bg4 = '#4A5057',
|
||||
bg_red = '#F6718A',
|
||||
diff_red = '#773440',
|
||||
bg_green = '#B0E973',
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
local M = {}
|
||||
local p = require 'tokyo.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
|
||||
Reference in new issue
Block a user