2022-05-06 16:32:46 +01:00
|
|
|
vim9script
|
|
|
|
|
|
|
|
# Extra functionality for displaying Vim help .
|
|
|
|
|
|
|
|
# Called when editing the doc/syntax.txt file
|
|
|
|
export def HighlightGroups()
|
|
|
|
var buf: number = bufnr('%')
|
|
|
|
var lnum: number = search('\*highlight-groups\*', 'cn')
|
|
|
|
while getline(lnum) !~ '===' && lnum < line('$')
|
2022-06-09 20:45:54 +01:00
|
|
|
var word: string = getline(lnum)->matchstr('^\w\+\ze\s')
|
2022-05-06 16:32:46 +01:00
|
|
|
if word->hlexists()
|
2022-05-12 17:24:49 +01:00
|
|
|
var name = 'help-hl-' .. word
|
|
|
|
if prop_type_list({bufnr: buf})->match(name) == -1
|
|
|
|
prop_type_add('help-hl-' .. word, {
|
|
|
|
bufnr: buf,
|
|
|
|
highlight: word,
|
|
|
|
combine: false,
|
|
|
|
})
|
|
|
|
else
|
|
|
|
# was called before, delete existing properties
|
|
|
|
prop_remove({type: name, bufnr: buf})
|
|
|
|
endif
|
2022-05-06 16:32:46 +01:00
|
|
|
prop_add(lnum, 1, {length: word->strlen(), type: 'help-hl-' .. word})
|
|
|
|
endif
|
|
|
|
++lnum
|
|
|
|
endwhile
|
|
|
|
enddef
|