xref: /vim-8.2.3635/runtime/syntax/hitest.vim (revision e16b00a1)
1" Vim syntax file
2" Language:	none; used to see highlighting
3" Maintainer:	Ronald Schild <[email protected]>
4" Last Change:	2017 Jul 28
5" Version:	5.4n.1
6
7" To see your current highlight settings, do
8"    :so $VIMRUNTIME/syntax/hitest.vim
9
10" save global options and registers
11let s:hidden      = &hidden
12let s:lazyredraw  = &lazyredraw
13let s:more	  = &more
14let s:report      = &report
15let s:shortmess   = &shortmess
16let s:wrapscan    = &wrapscan
17let s:register_a  = @a
18let s:register_se = @/
19
20" set global options
21set hidden lazyredraw nomore report=99999 shortmess=aoOstTW wrapscan
22
23" print current highlight settings into register a
24redir @a
25highlight
26redir END
27
28" Open a new window if the current one isn't empty
29if line("$") != 1 || getline(1) != ""
30  new
31endif
32
33" edit temporary file
34edit Highlight\ test
35
36" set local options
37setlocal autoindent noexpandtab formatoptions=t shiftwidth=16 noswapfile tabstop=16
38let &textwidth=&columns
39
40" insert highlight settings
41% delete
42put a
43
44" remove the colored xxx items
45g/xxx /s///e
46
47" remove color settings (not needed here)
48global! /links to/ substitute /\s.*$//e
49
50" move linked groups to the end of file
51global /links to/ move $
52
53" move linked group names to the matching preferred groups
54% substitute /^\(\w\+\)\s*\(links to\)\s*\(\w\+\)$/\3\t\2 \1/e
55global /links to/ normal mz3ElD0#$p'zdd
56
57" delete empty lines
58global /^ *$/ delete
59
60" precede syntax command
61% substitute /^[^ ]*/syn keyword &\t&/
62
63" execute syntax commands
64syntax clear
65% yank a
66@a
67
68" remove syntax commands again
69% substitute /^syn keyword //
70
71" pretty formatting
72global /^/ exe "normal Wi\<CR>\t\eAA\ex"
73global /^\S/ join
74
75" find out first syntax highlighting
76let b:various = &highlight.',:Normal,:Cursor,:,'
77let b:i = 1
78while b:various =~ ':'.substitute(getline(b:i), '\s.*$', ',', '')
79   let b:i = b:i + 1
80   if b:i > line("$") | break | endif
81endwhile
82
83" insert headlines
84call append(0, "Highlighting groups for various occasions")
85call append(1, "-----------------------------------------")
86
87if b:i < line("$")-1
88   let b:synhead = "Syntax highlighting groups"
89   if exists("hitest_filetypes")
90      redir @a
91      let
92      redir END
93      let @a = substitute(@a, 'did_\(\w\+\)_syn\w*_inits\s*#1', ', \1', 'g')
94      let @a = substitute(@a, "\n\\w[^\n]*", '', 'g')
95      let @a = substitute(@a, "\n", '', 'g')
96      let @a = substitute(@a, '^,', '', 'g')
97      if @a != ""
98	 let b:synhead = b:synhead." - filetype"
99	 if @a =~ ','
100	    let b:synhead = b:synhead."s"
101	 endif
102	 let b:synhead = b:synhead.":".@a
103      endif
104   endif
105   call append(b:i+1, "")
106   call append(b:i+2, b:synhead)
107   call append(b:i+3, substitute(b:synhead, '.', '-', 'g'))
108endif
109
110" remove 'hls' highlighting
111nohlsearch
112normal 0
113
114" we don't want to save this temporary file
115set nomodified
116
117" the following trick avoids the "Press RETURN ..." prompt
1180 append
119.
120
121" restore global options and registers
122let &hidden      = s:hidden
123let &lazyredraw  = s:lazyredraw
124let &more	 = s:more
125let &report	 = s:report
126let &shortmess	 = s:shortmess
127let &wrapscan	 = s:wrapscan
128let @a		 = s:register_a
129
130" restore last search pattern
131call histdel("search", -1)
132let @/ = s:register_se
133
134" remove variables
135unlet s:hidden s:lazyredraw s:more s:report s:shortmess
136unlet s:wrapscan s:register_a s:register_se
137
138" vim: ts=8
139