Mercurial > vim
view runtime/import/dist/vimhighlight.vim @ 35230:a05d0836b0a0 v9.1.0427
patch 9.1.0427: tests: some issues with termdebug mapping test
Commit: https://github.com/vim/vim/commit/ffed1540f36eb4a2255d7d824c9466d3d8fd581e
Author: Ken Takata <kentkt@csc.jp>
Date: Tue May 21 17:14:56 2024 +0200
patch 9.1.0427: tests: some issues with termdebug mapping test
Problem: tests: some issues with termdebug mapping test
Solution: Use assert_{true,false} if suitable, change
order of expected and actual arguments in assert() calls.
(Ken Takata)
closes: #14818
related: 7fbbd7f
Signed-off-by: Ken Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 21 May 2024 17:30:10 +0200 |
parents | 50e447c67247 |
children |
line wrap: on
line source
vim9script # Maintainer: github user lacygoill # Last Change: 2023 Mar 08 # Init {{{1 const LINK: string = '->' # Interface {{{1 export def HighlightTest() # {{{2 # Open a new window if the current one isn't empty if line('$') != 1 || getline(1) != '' new endif edit Highlight\ test # `:help scratch-buffer` &l:bufhidden = 'hide' &l:buftype = 'nofile' &l:swapfile = false var report: list<string> =<< trim END Highlighting groups for various occasions ----------------------------------------- END var various_groups: list<string> = GetVariousGroups() ->filter((_, group: string): bool => group->hlexists() && !group->IsCleared()) ->sort() ->uniq() report->extend(various_groups->FollowChains()) var language_section: list<string> =<< trim END Highlighting groups for language syntaxes ----------------------------------------- END report->extend(language_section) var syntax_groups: list<string> = getcompletion('', 'highlight') ->filter((_, group: string): bool => various_groups->index(group) == -1 && !group->IsCleared() && group !~ '^HighlightTest') # put the report report ->extend(syntax_groups->FollowChains()) ->setline(1) # highlight the group names execute $'silent! global /^\w\+\%(\%(\s*{LINK}\s*\)\w\+\)*$/ Highlight({bufnr('%')})' cursor(1, 1) enddef # }}}1 # Core {{{1 def Highlight(buf: number) # {{{2 var lnum: number = line('.') for group: string in getline('.')->split($'\s*{LINK}\s*') silent! prop_type_add($'highlight-test-{group}', { bufnr: buf, highlight: group, combine: false, }) prop_add(lnum, col('.'), { length: group->strlen(), type: $'highlight-test-{group}' }) search('\<\w\+\>', '', lnum) endfor enddef # }}}1 # Util {{{1 def IsCleared(name: string): bool # {{{2 return name ->hlget() ->get(0, {}) ->get('cleared') enddef def FollowChains(groups: list<string>): list<string> # {{{2 # A group might be linked to another, which itself might be linked... # We want the whole chain, for every group. var chains: list<string> for group: string in groups var target: string = group->LinksTo() var chain: string = group while !target->empty() chain ..= $' {LINK} {target}' target = target->LinksTo() endwhile var a_link_is_cleared: bool = chain ->split($'\s*{LINK}\s*') ->indexof((_, g: string): bool => g->IsCleared()) >= 0 if a_link_is_cleared continue endif chains->add(chain) endfor return chains enddef def LinksTo(group: string): string # {{{2 return group ->hlget() ->get(0, {}) ->get('linksto', '') enddef def GetVariousGroups(): list<string> # {{{2 return getcompletion('hl-', 'help') ->filter((_, helptag: string): bool => helptag =~ '^hl-\w\+$') ->map((_, helptag: string) => helptag->substitute('^hl-', '', '')) ->extend(range(1, 9)->map((_, n: number) => $'User{n}')) enddef