93 lines
2.6 KiB
Lua
93 lines
2.6 KiB
Lua
local modules = require('lualine_require').lazy_require({ notices = 'lualine.utils.notices' })
|
|
|
|
local function add_notice(notice)
|
|
modules.notices.add_notice('theme(base16): ' .. notice)
|
|
end
|
|
|
|
local function setup(colors)
|
|
local theme = {
|
|
normal = {
|
|
a = { fg = colors.bg, bg = colors.normal },
|
|
b = { fg = colors.light_fg, bg = colors.alt_bg },
|
|
c = { fg = colors.fg, bg = colors.bg },
|
|
},
|
|
replace = {
|
|
a = { fg = colors.bg, bg = colors.replace },
|
|
b = { fg = colors.light_fg, bg = colors.alt_bg },
|
|
},
|
|
insert = {
|
|
a = { fg = colors.bg, bg = colors.insert },
|
|
b = { fg = colors.light_fg, bg = colors.alt_bg },
|
|
},
|
|
visual = {
|
|
a = { fg = colors.bg, bg = colors.visual },
|
|
b = { fg = colors.light_fg, bg = colors.alt_bg },
|
|
},
|
|
inactive = {
|
|
a = { fg = colors.dark_fg, bg = colors.bg },
|
|
b = { fg = colors.dark_fg, bg = colors.bg },
|
|
c = { fg = colors.dark_fg, bg = colors.bg },
|
|
},
|
|
}
|
|
|
|
theme.command = theme.normal
|
|
theme.terminal = theme.insert
|
|
|
|
return theme
|
|
end
|
|
|
|
local function setup_default()
|
|
return setup {
|
|
bg = '#282a2e',
|
|
alt_bg = '#373b41',
|
|
dark_fg = '#969896',
|
|
fg = '#b4b7b4',
|
|
light_fg = '#c5c8c6',
|
|
normal = '#81a2be',
|
|
insert = '#b5bd68',
|
|
visual = '#b294bb',
|
|
replace = '#de935f',
|
|
}
|
|
end
|
|
|
|
local function setup_base16()
|
|
local loaded, base16 = pcall(require, 'base16-colorscheme')
|
|
|
|
if not loaded then
|
|
add_notice(
|
|
'nvim-base16 is not currently present in your runtimepath, make sure it is properly installed,'
|
|
.. ' fallback to default colors.'
|
|
)
|
|
|
|
return nil
|
|
end
|
|
|
|
if not base16.colors and not vim.env.BASE16_THEME then
|
|
add_notice(
|
|
'nvim-base16 is not loaded yet, you should update your configuration to load it before lualine'
|
|
.. ' so that the colors from your colorscheme can be used, fallback to "tomorrow-night" theme.'
|
|
)
|
|
elseif not base16.colors and not base16.colorschemes[vim.env.BASE16_THEME] then
|
|
add_notice(
|
|
'The colorscheme "%s" defined by the environment variable "BASE16_THEME" is not handled by'
|
|
.. ' nvim-base16, fallback to "tomorrow-night" theme.'
|
|
)
|
|
end
|
|
|
|
local colors = base16.colors or base16.colorschemes[vim.env.BASE16_THEME or 'tomorrow-night']
|
|
|
|
return setup {
|
|
bg = colors.base01,
|
|
alt_bg = colors.base02,
|
|
dark_fg = colors.base03,
|
|
fg = colors.base04,
|
|
light_fg = colors.base05,
|
|
normal = colors.base0D,
|
|
insert = colors.base0B,
|
|
visual = colors.base0E,
|
|
replace = colors.base09,
|
|
}
|
|
end
|
|
|
|
return setup_base16() or setup_default()
|