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