" Vim syntax file
" Language:	none; used to see highlighting
" Maintainer:	Ronald Schild <rs@scutum.de>
" Last Change:	2001 Sep 02
" Version:	5.4n.1

" To see your current highlight settings, do
"    :so $VIMRUNTIME/syntax/hitest.vim

" save global options and registers
let s:hidden      = &hidden
let s:lazyredraw  = &lazyredraw
let s:more	  = &more
let s:report      = &report
let s:shortmess   = &shortmess
let s:wrapscan    = &wrapscan
let s:register_a  = @a
let s:register_se = @/

" set global options
set hidden lazyredraw nomore report=99999 shortmess=aoOstTW wrapscan

" print current highlight settings into register a
redir @a
highlight
redir END

" Open a new window if the current one isn't empty
if line("$") != 1 || getline(1) != ""
  new
endif

" edit temporary file
edit Highlight\ test

" set local options
setlocal autoindent noexpandtab formatoptions=t shiftwidth=16 noswapfile tabstop=16
let &textwidth=&columns

" insert highlight settings
% delete
put a

" remove the colored xxx items
g/xxx /s///e

" remove color settings (not needed here)
global! /links to/ substitute /\s.*$//e

" move linked groups to the end of file
global /links to/ move $

" move linked group names to the matching preferred groups
% substitute /^\(\w\+\)\s*\(links to\)\s*\(\w\+\)$/\3\t\2 \1/e
global /links to/ normal mz3ElD0#$p'zdd

" delete empty lines
global /^ *$/ delete

" precede syntax command
% substitute /^[^ ]*/syn keyword &\t&/

" execute syntax commands
syntax clear
% yank a
@a

" remove syntax commands again
% substitute /^syn keyword //

" pretty formatting
global /^/ exe "normal Wi\<CR>\t\eAA\ex"
global /^\S/ join

" find out first syntax highlighting
let b:various = &highlight.',:Normal,:Cursor,:,'
let b:i = 1
while b:various =~ ':'.substitute(getline(b:i), '\s.*$', ',', '')
   let b:i = b:i + 1
   if b:i > line("$") | break | endif
endwhile

" insert headlines
call append(0, "Highlighting groups for various occasions")
call append(1, "-----------------------------------------")

if b:i < line("$")-1
   let b:synhead = "Syntax highlighting groups"
   if exists("hitest_filetypes")
      redir @a
      let
      redir END
      let @a = substitute(@a, 'did_\(\w\+\)_syn\w*_inits\s*#1', ', \1', 'g')
      let @a = substitute(@a, "\n\\w[^\n]*", '', 'g')
      let @a = substitute(@a, "\n", '', 'g')
      let @a = substitute(@a, '^,', '', 'g')
      if @a != ""
	 let b:synhead = b:synhead." - filetype"
	 if @a =~ ','
	    let b:synhead = b:synhead."s"
	 endif
	 let b:synhead = b:synhead.":".@a
      endif
   endif
   call append(b:i+1, "")
   call append(b:i+2, b:synhead)
   call append(b:i+3, substitute(b:synhead, '.', '-', 'g'))
endif

" remove 'hls' highlighting
nohlsearch
normal 0

" add autocommands to remove temporary file from buffer list
aug highlighttest
   au!
   au BufUnload Highlight\ test if expand("<afile>") == "Highlight test"
   au BufUnload Highlight\ test    bdelete! Highlight\ test
   au BufUnload Highlight\ test endif
   au VimLeavePre * if bufexists("Highlight test")
   au VimLeavePre *    bdelete! Highlight\ test
   au VimLeavePre * endif
aug END

" we don't want to save this temporary file
set nomodified

" the following trick avoids the "Press RETURN ..." prompt
0 append
.

" restore global options and registers
let &hidden      = s:hidden
let &lazyredraw  = s:lazyredraw
let &more	 = s:more
let &report	 = s:report
let &shortmess	 = s:shortmess
let &wrapscan	 = s:wrapscan
let @a		 = s:register_a

" restore last search pattern
call histdel("search", -1)
let @/ = s:register_se

" remove variables
unlet s:hidden s:lazyredraw s:more s:report s:shortmess
unlet s:wrapscan s:register_a s:register_se

" vim: ts=8
