| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:	none; used to see highlighting | 
					
						
							|  |  |  | " Maintainer:	Ronald Schild <rs@scutum.de> | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | " Last Change:	2019 Jun 06 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Version:	5.4n.1 | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | " Additional Changes By: Lifepillar, Bram | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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 | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | let s:whichwrap   = &whichwrap | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | set whichwrap& | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " print current highlight settings into register a | 
					
						
							|  |  |  | redir @a | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | silent highlight | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | setlocal autoindent noexpandtab formatoptions=t shiftwidth=18 noswapfile tabstop=18 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | let &textwidth=&columns | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " insert highlight settings | 
					
						
							|  |  |  | % delete | 
					
						
							|  |  |  | put a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | " remove cleared groups | 
					
						
							|  |  |  | silent! g/ cleared$/d | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " remove the colored xxx items | 
					
						
							|  |  |  | g/xxx /s///e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " remove color settings (not needed here) | 
					
						
							|  |  |  | global! /links to/ substitute /\s.*$//e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | " Move split 'links to' lines to the same line | 
					
						
							|  |  |  | % substitute /^\(\w\+\)\n\s*\(links to.*\)/\1\t\2/e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " move linked groups to the end of file | 
					
						
							|  |  |  | global /links to/ move $ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " move linked group names to the matching preferred groups | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | " TODO: this fails if the group linked to isn't defined | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | % substitute /^\(\w\+\)\s*\(links to\)\s*\(\w\+\)$/\3\t\2 \1/e | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | silent! global /links to/ normal mz3ElD0#$p'zdd | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " 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 | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | let &whichwrap   = s:whichwrap | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2019-06-06 12:14:49 +02:00
										 |  |  | unlet s:whichwrap s:wrapscan s:register_a s:register_se | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " vim: ts=8 |