summaryrefslogtreecommitdiff
path: root/nvim/lua/lualine/themes
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/lualine/themes')
-rw-r--r--nvim/lua/lualine/themes/base16.lua128
1 files changed, 128 insertions, 0 deletions
diff --git a/nvim/lua/lualine/themes/base16.lua b/nvim/lua/lualine/themes/base16.lua
new file mode 100644
index 0000000..03f4f35
--- /dev/null
+++ b/nvim/lua/lualine/themes/base16.lua
@@ -0,0 +1,128 @@
+
+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_nvim()
+ -- Continue to load nvim-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
+
+local function setup_base16_vim()
+ -- Check if tinted-theming/base16-vim is already loaded
+ if vim.g.base16_gui00 and vim.g.base16_gui0F then
+ return setup {
+ bg = vim.g.base16_gui01,
+ alt_bg = vim.g.base16_gui02,
+ dark_fg = vim.g.base16_gui03,
+ fg = vim.g.base16_gui04,
+ light_fg = vim.g.base16_gui05,
+ normal = vim.g.base16_gui0D,
+ insert = vim.g.base16_gui0B,
+ visual = vim.g.base16_gui0E,
+ replace = vim.g.base16_gui09,
+ }
+ end
+
+ -- base16-vim has been renamed to tinted-vim along with colors
+ -- context: https://github.com/nvim-lualine/lualine.nvim/pull/1352
+ if vim.g.tinted_gui00 and vim.g.tinted_gui0F then
+ return setup {
+ bg = vim.g.tinted_gui01,
+ alt_bg = vim.g.tinted_gui02,
+ dark_fg = vim.g.tinted_gui03,
+ fg = vim.g.tinted_gui04,
+ light_fg = vim.g.tinted_gui05,
+ normal = vim.g.tinted_gui0D,
+ insert = vim.g.tinted_gui0B,
+ visual = vim.g.tinted_gui0E,
+ replace = vim.g.tinted_gui09,
+ }
+ end
+ return nil
+end
+
+return setup_base16_vim() or setup_base16_nvim() or setup_default()