| " 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 |