fix(ui): Use a seperate highlight for connectors
* Some colorschemes do some funky things with the comment highlight, most notably making them italic, which messes up the outline connector. Fix this by copying the foreground color from the comment hl into a new highlight. * Closes #42
This commit is contained in:
@@ -27,25 +27,40 @@ local function highlight_text(name, text, hl_group)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function M.setup_highlights()
|
function M.setup_highlights()
|
||||||
|
-- Setup the FocusedSymbol highlight group if it hasnt been done already by
|
||||||
|
-- a theme or manually set
|
||||||
|
if vim.fn.hlexists('FocusedSymbol') == 0 then
|
||||||
|
vim.cmd 'hi FocusedSymbol term=italic,bold cterm=italic ctermbg=yellow ctermfg=darkblue gui=bold,italic guibg=yellow guifg=darkblue'
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Some colorschemes do some funky things with the comment highlight, most
|
||||||
|
-- notably making them italic, which messes up the outline connector. Fix
|
||||||
|
-- this by copying the foreground color from the comment hl into a new
|
||||||
|
-- highlight.
|
||||||
|
local comment_fg_gui = vim.fn.synIDattr(vim.fn.hlID('SignColumn'), 'fg',
|
||||||
|
'gui')
|
||||||
|
local comment_fg_cterm = vim.fn.synIDattr(vim.fn.hlID('SignColumn'), 'fg',
|
||||||
|
'cterm')
|
||||||
|
|
||||||
|
|
||||||
|
vim.cmd(string.format('hi SymbolsOutlineConnector ctermfg=%s guifg=%s',
|
||||||
|
comment_fg_cterm, comment_fg_gui))
|
||||||
|
|
||||||
local symbols = config.options.symbols
|
local symbols = config.options.symbols
|
||||||
|
|
||||||
-- markers
|
-- markers
|
||||||
highlight_text("marker_middle", M.markers.middle, "Comment")
|
highlight_text("marker_middle", M.markers.middle, "SymbolsOutlineConnector")
|
||||||
highlight_text("marker_vertical", M.markers.vertical, "Comment")
|
highlight_text("marker_vertical", M.markers.vertical,
|
||||||
highlight_text("markers_horizontal", M.markers.horizontal, "Comment")
|
"SymbolsOutlineConnector")
|
||||||
highlight_text("markers_bottom", M.markers.bottom, "Comment")
|
highlight_text("markers_horizontal", M.markers.horizontal,
|
||||||
|
"SymbolsOutlineConnector")
|
||||||
|
highlight_text("markers_bottom", M.markers.bottom, "SymbolsOutlineConnector")
|
||||||
|
|
||||||
for _, value in ipairs(symbol_kinds) do
|
for _, value in ipairs(symbol_kinds) do
|
||||||
local symbol = symbols[value]
|
local symbol = symbols[value]
|
||||||
highlight_text(value, symbol.icon, symbol.hl)
|
highlight_text(value, symbol.icon, symbol.hl)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Setup the FocusedSymbol highlight group if it hasnt been done already by
|
|
||||||
-- a theme or manually set
|
|
||||||
if vim.fn.hlexists('FocusedSymbol') == 0 then
|
|
||||||
vim.cmd(
|
|
||||||
'hi FocusedSymbol term=italic,bold cterm=italic ctermbg=yellow ctermfg=darkblue gui=bold,italic guibg=yellow guifg=darkblue')
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
Reference in New Issue
Block a user