From 388bfe43db668a8b1c3a0b1b9047fb6af05614a1 Mon Sep 17 00:00:00 2001 From: Fernando Schauenburg Date: Tue, 8 Feb 2022 00:00:55 +0100 Subject: [PATCH] vim: move color definitions to a separate module --- config/nvim/after/plugin/lualine.lua | 44 +++++++------------------- config/nvim/after/plugin/nvim-tree.lua | 43 +++++++++---------------- config/nvim/lua/fs/colors.lua | 39 +++++++++++++++++++++++ 3 files changed, 65 insertions(+), 61 deletions(-) create mode 100644 config/nvim/lua/fs/colors.lua diff --git a/config/nvim/after/plugin/lualine.lua b/config/nvim/after/plugin/lualine.lua index 3704d8d..9b549e2 100644 --- a/config/nvim/after/plugin/lualine.lua +++ b/config/nvim/after/plugin/lualine.lua @@ -1,27 +1,3 @@ -local gui = vim.opt.termguicolors:get() - -local function color(tbl) - if gui then return tbl.gui end - return tbl.index -end - -base03 = color { index = 8, gui = '#002b36' } -base02 = color { index = 0, gui = '#073642' } -base01 = color { index = 10, gui = '#586e75' } -base00 = color { index = 11, gui = '#657b83' } -base0 = color { index = 12, gui = '#839496' } -base1 = color { index = 14, gui = '#93a1a1' } -base2 = color { index = 7, gui = '#eee8d5' } -base3 = color { index = 15, gui = '#fdf6e3' } -yellow = color { index = 3, gui = '#b58900' } -orange = color { index = 9, gui = '#cb4b16' } -red = color { index = 1, gui = '#dc322f' } -magenta = color { index = 5, gui = '#d33682' } -violet = color { index = 13, gui = '#6c71c4' } -blue = color { index = 4, gui = '#268bd2' } -cyan = color { index = 6, gui = '#2aa198' } -green = color { index = 2, gui = '#859900' } - local paste = { function() return 'P' end, color = { fg = base3, bg = yellow, gui = 'bold' }, @@ -46,6 +22,8 @@ local fileformat = { 'fileformat', padding = { left = 0, right = 1}} local progress = '%3l/%L|%-2v' -- line / total |column +local C = require'fs.colors'.colors() + require('lualine').setup { options = { icons_enabled = true, @@ -53,17 +31,17 @@ require('lualine').setup { section_separators = { left = '', right = '' }, theme = { normal = { - a = { fg = base03, bg = blue, gui='bold' }, - b = { fg = base2, bg = base00 }, - c = { fg = base1, bg = base02 }, + a = { fg = C.base03, bg = C.blue, gui='bold' }, + b = { fg = C.base03, bg = C.base00 }, + c = { fg = C.base1, bg = C.base02 }, }, - insert = { a = { fg = base03, bg = green, gui = 'bold' } }, - visual = { a = { fg = base03, bg = magenta, gui = 'bold' } }, - replace = { a = { fg = base03, bg = red, gui = 'bold' } }, + insert = { a = { fg = C.base03, bg = C.green, gui = 'bold' } }, + visual = { a = { fg = C.base03, bg = C.magenta, gui = 'bold' } }, + replace = { a = { fg = C.base03, bg = C.red, gui = 'bold' } }, inactive = { - a = { fg = base1, bg = base00 }, - b = { fg = base0, bg = base01 }, - c = { fg = base00, bg = base02 }, + a = { fg = C.base1, bg = C.base00 }, + b = { fg = C.base0, bg = C.base01 }, + c = { fg = C.base01, bg = C.base02 }, }, }, }, diff --git a/config/nvim/after/plugin/nvim-tree.lua b/config/nvim/after/plugin/nvim-tree.lua index 85815d7..e61f9a9 100644 --- a/config/nvim/after/plugin/nvim-tree.lua +++ b/config/nvim/after/plugin/nvim-tree.lua @@ -41,36 +41,23 @@ require'nvim-tree'.setup { }, } -base03 = { cterm = 8, gui = '#002b36' } -base02 = { cterm = 0, gui = '#073642' } -base01 = { cterm = 10, gui = '#586e75' } -base00 = { cterm = 11, gui = '#657b83' } -base0 = { cterm = 12, gui = '#839496' } -base1 = { cterm = 14, gui = '#93a1a1' } -base2 = { cterm = 7, gui = '#eee8d5' } -base3 = { cterm = 15, gui = '#fdf6e3' } -yellow = { cterm = 3, gui = '#b58900' } -orange = { cterm = 9, gui = '#cb4b16' } -red = { cterm = 1, gui = '#dc322f' } -magenta = { cterm = 5, gui = '#d33682' } -violet = { cterm = 13, gui = '#6c71c4' } -blue = { cterm = 4, gui = '#268bd2' } -cyan = { cterm = 6, gui = '#2aa198' } -green = { cterm = 2, gui = '#859900' } local function highlight(group, color) - vim.cmd( - vim.fn.printf( - 'highlight %s ctermfg=%d guifg=%s', - group, color.cterm, color.gui)) + if vim.opt.termguicolors:get() then + vim.cmd(vim.fn.printf('highlight %s guifg=%s', group, color)) + else + vim.cmd(vim.fn.printf('highlight %s ctermfg=%d', group, color)) + end end -highlight('NvimTreeSpecialFile' , base2 ) -highlight('NvimTreeIndentMarker' , base01 ) -highlight('NvimTreeGitStaged' , green ) -highlight('NvimTreeGitRenamed' , yellow ) -highlight('NvimTreeGitNew' , yellow ) -highlight('NvimTreeGitDirty' , yellow ) -highlight('NvimTreeGitDeleted' , orange ) -highlight('NvimTreeGitMerge' , red ) +local C = require'fs.colors'.colors() + +highlight('NvimTreeSpecialFile' , C.base2 ) +highlight('NvimTreeIndentMarker' , C.base01 ) +highlight('NvimTreeGitStaged' , C.green ) +highlight('NvimTreeGitRenamed' , C.yellow ) +highlight('NvimTreeGitNew' , C.yellow ) +highlight('NvimTreeGitDirty' , C.yellow ) +highlight('NvimTreeGitDeleted' , C.orange ) +highlight('NvimTreeGitMerge' , C.red ) diff --git a/config/nvim/lua/fs/colors.lua b/config/nvim/lua/fs/colors.lua new file mode 100644 index 0000000..d88575e --- /dev/null +++ b/config/nvim/lua/fs/colors.lua @@ -0,0 +1,39 @@ +local M = {} + +local function generate(tbl, gui) + local cterm, gui = {}, {} + for name, color in pairs(tbl) do + cterm[name] = color.cterm + gui[name] = color.gui + end + return cterm, gui +end + +local cterm_colors, gui_colors = generate { + base03 = { cterm = 8, gui = '#002b36' }, + base02 = { cterm = 0, gui = '#073642' }, + base01 = { cterm = 10, gui = '#586e75' }, + base00 = { cterm = 11, gui = '#657b83' }, + base0 = { cterm = 12, gui = '#839496' }, + base1 = { cterm = 14, gui = '#93a1a1' }, + base2 = { cterm = 7, gui = '#eee8d5' }, + base3 = { cterm = 15, gui = '#fdf6e3' }, + yellow = { cterm = 3, gui = '#b58900' }, + orange = { cterm = 9, gui = '#cb4b16' }, + red = { cterm = 1, gui = '#dc322f' }, + magenta = { cterm = 5, gui = '#d33682' }, + violet = { cterm = 13, gui = '#6c71c4' }, + blue = { cterm = 4, gui = '#268bd2' }, + cyan = { cterm = 6, gui = '#2aa198' }, + green = { cterm = 2, gui = '#859900' }, +} + +M.colors = function(gui) + if gui or vim.opt.termguicolors:get() then + return gui_colors + end + return cterm_colors +end + +return M +