Refactor: Remove cterm from hlighlight extractor (#174)
- remove cterm color extraction - fix lint issues - apply lua-format
This commit is contained in:
parent
8a99a0e9e7
commit
4f53d053a1
|
@ -83,7 +83,8 @@ local Component = {
|
|||
self.status = highlight.component_format_highlight(
|
||||
self.options.color_highlight) .. self.status
|
||||
elseif self.options.color_highlight_link then
|
||||
self.status = '%#' .. self.options.color_highlight_link ..'#'.. self.status
|
||||
self.status = '%#' .. self.options.color_highlight_link .. '#' ..
|
||||
self.status
|
||||
end
|
||||
self.status = self.status .. default_highlight
|
||||
end,
|
||||
|
@ -117,12 +118,14 @@ local Component = {
|
|||
-- variable to store component output for manupulation
|
||||
status = '',
|
||||
-- Actual function the updates a component . Must be overwritten with component functionality
|
||||
-- luacheck: push no unused args
|
||||
update_status = function(self) end,
|
||||
-- luacheck: pop
|
||||
|
||||
-- Driver code of the class
|
||||
draw = function(self, default_highlight)
|
||||
self.status = ''
|
||||
if self.options.condition ~= nil and self.options.condition() ~= true then
|
||||
if self.options.condition ~= nil and self.options.condition() ~= true then
|
||||
return self.status
|
||||
end
|
||||
local status = self:update_status()
|
||||
|
|
|
@ -36,17 +36,17 @@ Diagnostics.new = function(self, options, child)
|
|||
-- apply colors
|
||||
if not new_diagnostics.options.color_error then
|
||||
new_diagnostics.options.color_error =
|
||||
utils.extract_highlight_colors('DiffDelete', 'guifg') or
|
||||
utils.extract_highlight_colors('DiffDelete', 'fg') or
|
||||
Diagnostics.default_colors.error
|
||||
end
|
||||
if not new_diagnostics.options.color_warn then
|
||||
new_diagnostics.options.color_warn =
|
||||
utils.extract_highlight_colors('DiffText', 'guifg') or
|
||||
utils.extract_highlight_colors('DiffText', 'fg') or
|
||||
Diagnostics.default_colors.warn
|
||||
end
|
||||
if not new_diagnostics.options.color_info then
|
||||
new_diagnostics.options.color_info =
|
||||
utils.extract_highlight_colors('Normal', 'guifg') or
|
||||
utils.extract_highlight_colors('Normal', 'fg') or
|
||||
Diagnostics.default_colors.info
|
||||
end
|
||||
|
||||
|
|
|
@ -33,17 +33,17 @@ Diff.new = function(self, options, child)
|
|||
-- apply colors
|
||||
if not new_instence.options.color_added then
|
||||
new_instence.options.color_added = utils.extract_highlight_colors('DiffAdd',
|
||||
'guifg') or
|
||||
'fg') or
|
||||
Diff.default_colors.added
|
||||
end
|
||||
if not new_instence.options.color_modified then
|
||||
new_instence.options.color_modified =
|
||||
utils.extract_highlight_colors('DiffChange', 'guifg') or
|
||||
utils.extract_highlight_colors('DiffChange', 'fg') or
|
||||
Diff.default_colors.modified
|
||||
end
|
||||
if not new_instence.options.color_removed then
|
||||
new_instence.options.color_removed =
|
||||
utils.extract_highlight_colors('DiffDelete', 'guifg') or
|
||||
utils.extract_highlight_colors('DiffDelete', 'fg') or
|
||||
Diff.default_colors.removed
|
||||
end
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ EvalFuncComponent.update_status = function(self)
|
|||
end
|
||||
|
||||
EvalFuncComponent.eval_lua = function(code)
|
||||
return tostring(loadstring('return '..code)())
|
||||
return tostring(loadstring('return ' .. code)())
|
||||
end
|
||||
|
||||
EvalFuncComponent.vim_function = function(name)
|
||||
|
|
|
@ -12,13 +12,15 @@ function M.highlight(name, foreground, background, gui, reload)
|
|||
if foreground and foreground ~= 'none' then
|
||||
table.insert(command, 'guifg=' .. foreground)
|
||||
if cterm_colors then
|
||||
table.insert(command, 'ctermfg=' .. utils_colors.get_cterm_color(foreground))
|
||||
table.insert(command,
|
||||
'ctermfg=' .. utils_colors.get_cterm_color(foreground))
|
||||
end
|
||||
end
|
||||
if background and background ~= 'none' then
|
||||
table.insert(command, 'guibg=' .. background)
|
||||
if cterm_colors then
|
||||
table.insert(command, 'ctermbg=' .. utils_colors.get_cterm_color(background))
|
||||
table.insert(command,
|
||||
'ctermbg=' .. utils_colors.get_cterm_color(background))
|
||||
end
|
||||
end
|
||||
if gui then
|
||||
|
@ -141,7 +143,7 @@ function M.format_highlight(is_focused, highlight_group)
|
|||
section_highlight_map[highlight_group:match(
|
||||
'lualine_(.)')]
|
||||
end
|
||||
local highlight_name = highlight_group
|
||||
local highlight_name
|
||||
if not is_focused then
|
||||
highlight_name = highlight_group .. [[_inactive]]
|
||||
else
|
||||
|
@ -199,8 +201,8 @@ function M.get_transitional_highlights(left_section_data, right_section_data,
|
|||
-- Create the highlight_group if needed
|
||||
-- Get colors from highlights
|
||||
-- using string.format to convert decimal to hexadecimal
|
||||
local fg = utils.extract_highlight_colors(left_highlight_name, 'guibg')
|
||||
local bg = utils.extract_highlight_colors(right_highlight_name, 'guibg')
|
||||
local fg = utils.extract_highlight_colors(left_highlight_name, 'bg')
|
||||
local bg = utils.extract_highlight_colors(right_highlight_name, 'bg')
|
||||
if not fg then fg = 'none' end
|
||||
if not bg then bg = 'none' end
|
||||
-- swap the bg and fg when reverse is true. As in that case highlight will
|
||||
|
|
|
@ -251,14 +251,14 @@ end
|
|||
|
||||
local function set_tabline()
|
||||
if next(config.tabline) ~= nil then
|
||||
vim.o.tabline = "%!v:lua.require'lualine'.tabline()"
|
||||
vim.o.tabline = '%!v:lua.require\'lualine\'.tabline()'
|
||||
vim.o.showtabline = 2
|
||||
end
|
||||
end
|
||||
|
||||
local function set_statusline()
|
||||
if next(config.sections) ~= nil or next(config.inactive_sections) ~= nil then
|
||||
vim.o.statusline = "%!v:lua.require'lualine'.statusline()"
|
||||
vim.o.statusline = '%!v:lua.require\'lualine\'.statusline()'
|
||||
vim.api.nvim_exec([[
|
||||
autocmd lualine WinLeave,BufLeave * lua vim.wo.statusline=require'lualine'.statusline()
|
||||
autocmd lualine WinEnter,BufEnter * set statusline<
|
||||
|
@ -277,8 +277,4 @@ local function setup(user_config)
|
|||
set_tabline()
|
||||
end
|
||||
|
||||
return {
|
||||
setup = setup,
|
||||
statusline = status_dispatch,
|
||||
tabline = tabline,
|
||||
}
|
||||
return {setup = setup, statusline = status_dispatch, tabline = tabline}
|
||||
|
|
|
@ -15,10 +15,10 @@ local function getHi(scope, syntaxlist)
|
|||
if vim.fn.hlexists(highlight_name) ~= 0 then
|
||||
local color = utils.extract_highlight_colors(highlight_name)
|
||||
if color.reverse then
|
||||
if scope == 'guibg' then
|
||||
scope = 'guifg'
|
||||
if scope == 'bg' then
|
||||
scope = 'fg'
|
||||
else
|
||||
scope = 'guibg'
|
||||
scope = 'bg'
|
||||
end
|
||||
end
|
||||
if color[scope] then return color[scope] end
|
||||
|
@ -104,20 +104,20 @@ end
|
|||
|
||||
-- Get the colors to create theme
|
||||
local colors = {
|
||||
normal = getHi('guibg', {'PmenuSel', 'PmenuThumb', 'TabLineSel'}),
|
||||
insert = getHi('guifg', {'String', 'MoreMsg'}),
|
||||
replace = getHi('guifg', {'Number', 'Type'}),
|
||||
visual = getHi('guifg', {'Special', 'Boolean', 'Constant'}),
|
||||
command = getHi('guifg', {'Identifier'}),
|
||||
back1 = getHi('guibg', {'Normal', 'StatusLineNC'}),
|
||||
fore = getHi('guifg', {'Normal', 'StatusLine'}),
|
||||
back2 = getHi('guibg', {'StatusLine'})
|
||||
normal = getHi('bg', {'PmenuSel', 'PmenuThumb', 'TabLineSel'}),
|
||||
insert = getHi('fg', {'String', 'MoreMsg'}),
|
||||
replace = getHi('fg', {'Number', 'Type'}),
|
||||
visual = getHi('fg', {'Special', 'Boolean', 'Constant'}),
|
||||
command = getHi('fg', {'Identifier'}),
|
||||
back1 = getHi('bg', {'Normal', 'StatusLineNC'}),
|
||||
fore = getHi('fg', {'Normal', 'StatusLine'}),
|
||||
back2 = getHi('bg', {'StatusLine'})
|
||||
}
|
||||
|
||||
-- Change brightness of colors
|
||||
-- darken incase of light theme lighten incase of dark theme
|
||||
|
||||
if get_color_brightness(utils.extract_highlight_colors('Normal', 'guibg')) > 0.5 then
|
||||
if get_color_brightness(utils.extract_highlight_colors('Normal', 'bg')) > 0.5 then
|
||||
brightness_modifier_parameter = -brightness_modifier_parameter
|
||||
end
|
||||
|
||||
|
|
|
@ -2,26 +2,19 @@
|
|||
-- MIT license, see LICENSE for more details.
|
||||
local M = {}
|
||||
|
||||
-- Note for now only works for termguicolors scope can be background or foreground
|
||||
-- Note for now only works for termguicolors scope can be bg or fg or any other
|
||||
-- attr parameter like bold/italic/reverse
|
||||
function M.extract_highlight_colors(color_group, scope)
|
||||
if vim.fn.hlexists(color_group) == 0 then return nil end
|
||||
local gui_colors = vim.api.nvim_get_hl_by_name(color_group, true)
|
||||
local cterm_colors = vim.api.nvim_get_hl_by_name(color_group, false)
|
||||
local color = {
|
||||
ctermfg = cterm_colors.foreground,
|
||||
ctermbg = cterm_colors.background
|
||||
}
|
||||
if gui_colors.background then
|
||||
color.guibg = string.format('#%06x', gui_colors.background)
|
||||
gui_colors.background = nil
|
||||
local color = vim.api.nvim_get_hl_by_name(color_group, true)
|
||||
if color.background ~= nil then
|
||||
color.bg = string.format('#%06x', color.background)
|
||||
color.background = nil
|
||||
end
|
||||
if gui_colors.foreground then
|
||||
color.guifg = string.format('#%06x', gui_colors.foreground)
|
||||
gui_colors.foreground = nil
|
||||
if color.foreground ~= nil then
|
||||
color.fg = string.format('#%06x', color.foreground)
|
||||
color.foreground = nil
|
||||
end
|
||||
cterm_colors.background = nil
|
||||
cterm_colors.foreground = nil
|
||||
color = vim.tbl_extend('keep', color, gui_colors, cterm_colors)
|
||||
if scope then return color[scope] end
|
||||
return color
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue