feat: different guide hl group per-level (#41)

This commit is contained in:
Steven Arcangeli 2022-01-29 12:47:29 -08:00
parent 6a425ba8b2
commit 0c5c346e88
3 changed files with 30 additions and 11 deletions

View file

@ -469,6 +469,12 @@ hi AerialFunctionIcon guifg=#cb4b16 guibg=NONE guisp=NONE gui=NONE cterm=NONE
" There's also this group for the cursor position
hi link AerialLine QuickFixLine
" You can customize the guides (if show_guide=true)
hi link AerialGuide Comment
" You can set a different guide color for each level
hi AerialGuide1 guifg=Red
hi AerialGuide2 guifg=Blue
```
## FAQ

View file

@ -39,29 +39,33 @@ M.update_aerial_buffer = function(buf)
local kind = config.get_icon(item.kind, conf.collapsed)
local spacing
if config.show_guides then
spacing = ""
local last_spacing = 0
local guides = {}
for i = 1, item.level do
local is_last = conf.is_last_by_level[i]
if i == item.level then
if is_last then
spacing = spacing .. config.guides.last_item
table.insert(guides, config.guides.last_item)
else
spacing = spacing .. config.guides.mid_item
table.insert(guides, config.guides.mid_item)
end
else
if is_last then
spacing = spacing .. config.guides.whitespace
table.insert(guides, config.guides.whitespace)
else
spacing = spacing .. config.guides.nested_top
table.insert(guides, config.guides.nested_top)
end
end
local hl_end = last_spacing + string_len[guides[i]]
table.insert(highlights, {
group = string.format("AerialGuide%d", i),
row = row,
col_start = last_spacing,
col_end = hl_end,
})
last_spacing = hl_end
end
table.insert(highlights, {
group = "AerialGuide",
row = row,
col_start = 0,
col_end = string_len[spacing],
})
spacing = table.concat(guides, "")
else
spacing = string.rep(" ", item.level)
end

View file

@ -48,6 +48,15 @@ highlight default link AerialLine QuickFixLine
" The guides when show_guide = true
highlight default link AerialGuide Comment
highlight default link AerialGuide1 AerialGuide
highlight default link AerialGuide2 AerialGuide
highlight default link AerialGuide3 AerialGuide
highlight default link AerialGuide4 AerialGuide
highlight default link AerialGuide5 AerialGuide
highlight default link AerialGuide6 AerialGuide
highlight default link AerialGuide7 AerialGuide
highlight default link AerialGuide8 AerialGuide
highlight default link AerialGuide9 AerialGuide
" The icon displayed to the left of the symbol
highlight default link AerialArrayIcon Identifier