Bram Moolenaar | b3c9077 | 2022-05-06 16:32:46 +0100 | [diff] [blame] | 1 | vim9script |
| 2 | |
| 3 | # Extra functionality for displaying Vim help . |
| 4 | |
| 5 | # Called when editing the doc/syntax.txt file |
| 6 | export def HighlightGroups() |
Bram Moolenaar | 6ba83ba | 2022-06-12 22:15:57 +0100 | [diff] [blame] | 7 | var save_cursor = getcurpos() |
Bram Moolenaar | b3c9077 | 2022-05-06 16:32:46 +0100 | [diff] [blame] | 8 | var buf: number = bufnr('%') |
Bram Moolenaar | 6ba83ba | 2022-06-12 22:15:57 +0100 | [diff] [blame] | 9 | |
| 10 | var start: number = search('\*highlight-groups\*', 'c') |
| 11 | var end: number = search('^======') |
| 12 | for lnum in range(start, end) |
| 13 | var word: string = getline(lnum)->matchstr('^\w\+\ze\t') |
Bram Moolenaar | b3c9077 | 2022-05-06 16:32:46 +0100 | [diff] [blame] | 14 | if word->hlexists() |
Bram Moolenaar | 6ba83ba | 2022-06-12 22:15:57 +0100 | [diff] [blame] | 15 | var type = 'help-hl-' .. word |
| 16 | if prop_type_list({bufnr: buf})->index(type) != -1 |
Bram Moolenaar | de21673 | 2022-05-12 17:24:49 +0100 | [diff] [blame] | 17 | # was called before, delete existing properties |
Bram Moolenaar | 6ba83ba | 2022-06-12 22:15:57 +0100 | [diff] [blame] | 18 | prop_remove({type: type, bufnr: buf}) |
| 19 | prop_type_delete(type, {bufnr: buf}) |
Bram Moolenaar | de21673 | 2022-05-12 17:24:49 +0100 | [diff] [blame] | 20 | endif |
Bram Moolenaar | 6ba83ba | 2022-06-12 22:15:57 +0100 | [diff] [blame] | 21 | prop_type_add(type, { |
| 22 | bufnr: buf, |
| 23 | highlight: word, |
| 24 | combine: false, |
| 25 | }) |
| 26 | prop_add(lnum, 1, {length: word->strlen(), type: type}) |
Bram Moolenaar | b3c9077 | 2022-05-06 16:32:46 +0100 | [diff] [blame] | 27 | endif |
Bram Moolenaar | 6ba83ba | 2022-06-12 22:15:57 +0100 | [diff] [blame] | 28 | endfor |
| 29 | |
| 30 | setpos('.', save_cursor) |
Bram Moolenaar | b3c9077 | 2022-05-06 16:32:46 +0100 | [diff] [blame] | 31 | enddef |