32 lines
840 B
VimL

vim9script
# Extra functionality for displaying Vim help .
# Called when editing the doc/syntax.txt file
export def HighlightGroups()
var save_cursor = getcurpos()
var buf: number = bufnr('%')
var start: number = search('\*highlight-groups\*', 'c')
var end: number = search('^======')
for lnum in range(start, end)
var word: string = getline(lnum)->matchstr('^\w\+\ze\t')
if word->hlexists()
var type = 'help-hl-' .. word
if prop_type_list({bufnr: buf})->index(type) != -1
# was called before, delete existing properties
prop_remove({type: type, bufnr: buf})
prop_type_delete(type, {bufnr: buf})
endif
prop_type_add(type, {
bufnr: buf,
highlight: word,
combine: false,
})
prop_add(lnum, 1, {length: word->strlen(), type: type})
endif
endfor
setpos('.', save_cursor)
enddef