1 "#########################################################################
2 "# syntax/vo_base.vim: VimOutliner syntax highlighting
4 "# Copyright (C) 2001,2003 by Steve Litt (slitt@troubleshooters.com)
6 "# This program is free software; you can redistribute it and/or modify
7 "# it under the terms of the GNU General Public License as published by
8 "# the Free Software Foundation; either version 2 of the License, or
9 "# (at your option) any later version.
11 "# This program is distributed in the hope that it will be useful,
12 "# but WITHOUT ANY WARRANTY; without even the implied warranty of
13 "# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 "# GNU General Public License for more details.
16 "# You should have received a copy of the GNU General Public License
17 "# along with this program; if not, write to the Free Software
18 "# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 "# Steve Litt, slitt@troubleshooters.com, http://www.troubleshooters.com
21 "#########################################################################
24 "#########################################################################
26 "# Set of outliner friendly settings
27 "# Steve Litt, 5/28/2001
28 "# End of version 0.1.0
33 "# Steve Litt, 5/28/2001
34 "# End of version 0.1.1
38 "# Steve Litt, 5/30/2001
39 "# End of version 0.1.2
42 "# Steve Litt, 5/30/2001
43 "# End of version 0.1.3
45 "# Noel Henson adds code for outliner-friendly expand and
46 "# collapse, comma comma commands, color coding, hooks for a
47 "# spellchecker, sorting, and date insertion.
48 "# Noel Henson, 11/24/2002
49 "# End of version 0.2.0
52 "#########################################################################
55 " colors for outline levels 1-9
56 " Light background {{{2
57 " added this next conditional at Dillon's recommendation
58 if &background == "light"
59 hi OL1 guifg=black ctermfg=black
60 hi OL2 guifg=red ctermfg=red
61 hi OL3 guifg=blue ctermfg=blue
62 hi OL4 guifg=darkviolet ctermfg=magenta
63 hi OL5 guifg=black ctermfg=black
64 hi OL6 guifg=red ctermfg=red
65 hi OL7 guifg=blue ctermfg=blue
66 hi OL8 guifg=darkviolet ctermfg=magenta
67 hi OL9 guifg=black ctermfg=black
70 hi outlTags guifg=darkred ctermfg=darkred
73 hi BT1 guifg=darkgreen ctermfg=green
74 hi BT2 guifg=darkgreen ctermfg=green
75 hi BT3 guifg=darkgreen ctermfg=green
76 hi BT4 guifg=darkgreen ctermfg=green
77 hi BT5 guifg=darkgreen ctermfg=green
78 hi BT6 guifg=darkgreen ctermfg=green
79 hi BT7 guifg=darkgreen ctermfg=green
80 hi BT8 guifg=darkgreen ctermfg=green
81 hi BT9 guifg=darkgreen ctermfg=green
83 " color for pre-formatted text
84 hi PT1 guifg=darkblue ctermfg=cyan
85 hi PT2 guifg=darkblue ctermfg=cyan
86 hi PT3 guifg=darkblue ctermfg=cyan
87 hi PT4 guifg=darkblue ctermfg=cyan
88 hi PT5 guifg=darkblue ctermfg=cyan
89 hi PT6 guifg=darkblue ctermfg=cyan
90 hi PT7 guifg=darkblue ctermfg=cyan
91 hi PT8 guifg=darkblue ctermfg=cyan
92 hi PT9 guifg=darkblue ctermfg=cyan
95 hi TA1 guifg=darkviolet ctermfg=cyan
96 hi TA2 guifg=darkviolet ctermfg=cyan
97 hi TA3 guifg=darkviolet ctermfg=cyan
98 hi TA4 guifg=darkviolet ctermfg=cyan
99 hi TA5 guifg=darkviolet ctermfg=cyan
100 hi TA6 guifg=darkviolet ctermfg=cyan
101 hi TA7 guifg=darkviolet ctermfg=cyan
102 hi TA8 guifg=darkviolet ctermfg=cyan
103 hi TA9 guifg=darkviolet ctermfg=cyan
105 " color for user text (wrapping)
106 hi UT1 guifg=darkred ctermfg=cyan
107 hi UT2 guifg=darkred ctermfg=cyan
108 hi UT3 guifg=darkred ctermfg=cyan
109 hi UT4 guifg=darkred ctermfg=cyan
110 hi UT5 guifg=darkred ctermfg=cyan
111 hi UT6 guifg=darkred ctermfg=cyan
112 hi UT7 guifg=darkred ctermfg=cyan
113 hi UT8 guifg=darkred ctermfg=cyan
114 hi UT9 guifg=darkred ctermfg=cyan
116 " color for user text (non-wrapping)
117 hi UB1 guifg=darkgray ctermfg=cyan
118 hi UB2 guifg=darkgray ctermfg=cyan
119 hi UB3 guifg=darkgray ctermfg=cyan
120 hi UB4 guifg=darkgray ctermfg=cyan
121 hi UB5 guifg=darkgray ctermfg=cyan
122 hi UB6 guifg=darkgray ctermfg=cyan
123 hi UB7 guifg=darkgray ctermfg=cyan
124 hi UB8 guifg=darkgray ctermfg=cyan
125 hi UB9 guifg=darkgray ctermfg=cyan
127 " colors for folded sections
128 hi Folded guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=white
129 hi FoldColumn guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=white
131 " colors for experimental spelling error highlighting
132 " this only works for spellfix.vim with will be cease to exist soon
133 hi spellErr gui=underline guifg=darkred cterm=underline ctermfg=darkred
134 hi BadWord gui=underline guifg=darkred cterm=underline ctermfg=darkred
135 " Dark background {{{2
137 hi OL1 guifg=white ctermfg=white
138 hi OL2 guifg=red ctermfg=red
139 hi OL3 guifg=lightblue ctermfg=lightblue
140 hi OL4 guifg=darkviolet ctermfg=magenta
141 hi OL5 guifg=white ctermfg=white
142 hi OL6 guifg=red ctermfg=red
143 hi OL7 guifg=lightblue ctermfg=lightblue
144 hi OL8 guifg=darkviolet ctermfg=magenta
145 hi OL9 guifg=white ctermfg=white
148 hi outlTags guifg=darkred ctermfg=darkred
150 " color for body text
151 hi BT1 guifg=darkgreen ctermfg=green
152 hi BT2 guifg=darkgreen ctermfg=green
153 hi BT3 guifg=darkgreen ctermfg=green
154 hi BT4 guifg=darkgreen ctermfg=green
155 hi BT5 guifg=darkgreen ctermfg=green
156 hi BT6 guifg=darkgreen ctermfg=green
157 hi BT7 guifg=darkgreen ctermfg=green
158 hi BT8 guifg=darkgreen ctermfg=green
159 hi BT9 guifg=darkgreen ctermfg=green
161 " color for pre-formatted text
162 hi PT1 guifg=darkblue ctermfg=cyan
163 hi PT2 guifg=darkblue ctermfg=cyan
164 hi PT3 guifg=darkblue ctermfg=cyan
165 hi PT4 guifg=darkblue ctermfg=cyan
166 hi PT5 guifg=darkblue ctermfg=cyan
167 hi PT6 guifg=darkblue ctermfg=cyan
168 hi PT7 guifg=darkblue ctermfg=cyan
169 hi PT8 guifg=darkblue ctermfg=cyan
170 hi PT9 guifg=darkblue ctermfg=cyan
173 hi TA1 guifg=darkviolet ctermfg=cyan
174 hi TA2 guifg=darkviolet ctermfg=cyan
175 hi TA3 guifg=darkviolet ctermfg=cyan
176 hi TA4 guifg=darkviolet ctermfg=cyan
177 hi TA5 guifg=darkviolet ctermfg=cyan
178 hi TA6 guifg=darkviolet ctermfg=cyan
179 hi TA7 guifg=darkviolet ctermfg=cyan
180 hi TA8 guifg=darkviolet ctermfg=cyan
181 hi TA9 guifg=darkviolet ctermfg=cyan
183 " color for user text (wrapping)
184 hi UT1 guifg=darkred ctermfg=cyan
185 hi UT2 guifg=darkred ctermfg=cyan
186 hi UT3 guifg=darkred ctermfg=cyan
187 hi UT4 guifg=darkred ctermfg=cyan
188 hi UT5 guifg=darkred ctermfg=cyan
189 hi UT6 guifg=darkred ctermfg=cyan
190 hi UT7 guifg=darkred ctermfg=cyan
191 hi UT8 guifg=darkred ctermfg=cyan
192 hi UT9 guifg=darkred ctermfg=cyan
194 " color for user text (non-wrapping)
195 hi UB1 guifg=darkgray ctermfg=cyan
196 hi UB2 guifg=darkgray ctermfg=cyan
197 hi UB3 guifg=darkgray ctermfg=cyan
198 hi UB4 guifg=darkgray ctermfg=cyan
199 hi UB5 guifg=darkgray ctermfg=cyan
200 hi UB6 guifg=darkgray ctermfg=cyan
201 hi UB7 guifg=darkgray ctermfg=cyan
202 hi UB8 guifg=darkgray ctermfg=cyan
203 hi UB9 guifg=darkgray ctermfg=cyan
205 " colors for folded sections
206 hi Folded guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=black
207 hi FoldColumn guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=black
209 " colors for experimental spelling error highlighting
210 " this only works for spellfix.vim with will be cease to exist soon
211 hi spellErr gui=underline guifg=yellow cterm=underline ctermfg=yellow
212 hi BadWord gui=underline guifg=yellow cterm=underline ctermfg=yellow
219 syn match outlTags '_tag_\w*' contained
221 " Noel's style of body text {{{2
222 syntax region BT1 start=+^ \S+ skip=+^ \S+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
223 syntax region BT2 start=+^\(\t\)\{1} \S+ skip=+^\(\t\)\{1} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
224 syntax region BT3 start=+^\(\t\)\{2} \S+ skip=+^\(\t\)\{2} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
225 syntax region BT4 start=+^\(\t\)\{3} \S+ skip=+^\(\t\)\{3} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
226 syntax region BT5 start=+^\(\t\)\{4} \S+ skip=+^\(\t\)\{4} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
227 syntax region BT6 start=+^\(\t\)\{5} \S+ skip=+^\(\t\)\{5} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
228 syntax region BT7 start=+^\(\t\)\{6} \S+ skip=+^\(\t\)\{6} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
229 syntax region BT8 start=+^\(\t\)\{7} \S+ skip=+^\(\t\)\{7} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
230 syntax region BT9 start=+^\(\t\)\{8} \S+ skip=+^\(\t\)\{8} \S+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
232 "comment-style bodytext as per Steve Litt {{{2
233 syntax region BT1 start=+^:+ skip=+^:+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
234 syntax region BT2 start=+^\(\t\)\{1}:+ skip=+^\(\t\)\{1}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
235 syntax region BT3 start=+^\(\t\)\{2}:+ skip=+^\(\t\)\{2}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
236 syntax region BT4 start=+^\(\t\)\{3}:+ skip=+^\(\t\)\{3}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
237 syntax region BT5 start=+^\(\t\)\{4}:+ skip=+^\(\t\)\{4}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
238 syntax region BT6 start=+^\(\t\)\{5}:+ skip=+^\(\t\)\{5}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
239 syntax region BT7 start=+^\(\t\)\{6}:+ skip=+^\(\t\)\{6}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
240 syntax region BT8 start=+^\(\t\)\{7}:+ skip=+^\(\t\)\{7}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
241 syntax region BT9 start=+^\(\t\)\{8}:+ skip=+^\(\t\)\{8}:+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
243 "Preformatted body text {{{2
244 syntax region PT1 start=+^;+ skip=+^;+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
245 syntax region PT2 start=+^\(\t\)\{1};+ skip=+^\(\t\)\{1};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
246 syntax region PT3 start=+^\(\t\)\{2};+ skip=+^\(\t\)\{2};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
247 syntax region PT4 start=+^\(\t\)\{3};+ skip=+^\(\t\)\{3};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
248 syntax region PT5 start=+^\(\t\)\{4};+ skip=+^\(\t\)\{4};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
249 syntax region PT6 start=+^\(\t\)\{5};+ skip=+^\(\t\)\{5};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
250 syntax region PT7 start=+^\(\t\)\{6};+ skip=+^\(\t\)\{6};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
251 syntax region PT8 start=+^\(\t\)\{7};+ skip=+^\(\t\)\{7};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
252 syntax region PT9 start=+^\(\t\)\{8};+ skip=+^\(\t\)\{8};+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
254 "Preformatted tables {{{2
255 syntax region TA1 start=+^|+ skip=+^|+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
256 syntax region TA2 start=+^\(\t\)\{1}|+ skip=+^\(\t\)\{1}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
257 syntax region TA3 start=+^\(\t\)\{2}|+ skip=+^\(\t\)\{2}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
258 syntax region TA4 start=+^\(\t\)\{3}|+ skip=+^\(\t\)\{3}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
259 syntax region TA5 start=+^\(\t\)\{4}|+ skip=+^\(\t\)\{4}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
260 syntax region TA6 start=+^\(\t\)\{5}|+ skip=+^\(\t\)\{5}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
261 syntax region TA7 start=+^\(\t\)\{6}|+ skip=+^\(\t\)\{6}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
262 syntax region TA8 start=+^\(\t\)\{7}|+ skip=+^\(\t\)\{7}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
263 syntax region TA9 start=+^\(\t\)\{8}|+ skip=+^\(\t\)\{8}|+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
265 "wrapping user text {{{2
266 syntax region UT1 start=+^>+ skip=+^>+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
267 syntax region UT2 start=+^\(\t\)\{1}>+ skip=+^\(\t\)\{1}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
268 syntax region UT3 start=+^\(\t\)\{2}>+ skip=+^\(\t\)\{2}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
269 syntax region UT4 start=+^\(\t\)\{3}>+ skip=+^\(\t\)\{3}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
270 syntax region UT5 start=+^\(\t\)\{4}>+ skip=+^\(\t\)\{4}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
271 syntax region UT6 start=+^\(\t\)\{5}>+ skip=+^\(\t\)\{5}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
272 syntax region UT7 start=+^\(\t\)\{6}>+ skip=+^\(\t\)\{6}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
273 syntax region UT8 start=+^\(\t\)\{7}>+ skip=+^\(\t\)\{7}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
274 syntax region UT9 start=+^\(\t\)\{8}>+ skip=+^\(\t\)\{8}>+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
276 "non-wrapping user text {{{2
277 syntax region UB1 start=+^<+ skip=+^<+ end=+^\S+me=e-1 end=+^\(\t\)\{1}\S+me=e-2 contains=spellErr,SpellErrors,BadWord contained
278 syntax region UB2 start=+^\(\t\)\{1}<+ skip=+^\(\t\)\{1}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
279 syntax region UB3 start=+^\(\t\)\{2}<+ skip=+^\(\t\)\{2}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
280 syntax region UB4 start=+^\(\t\)\{3}<+ skip=+^\(\t\)\{3}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
281 syntax region UB5 start=+^\(\t\)\{4}<+ skip=+^\(\t\)\{4}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
282 syntax region UB6 start=+^\(\t\)\{5}<+ skip=+^\(\t\)\{5}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
283 syntax region UB7 start=+^\(\t\)\{6}<+ skip=+^\(\t\)\{6}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
284 syntax region UB8 start=+^\(\t\)\{7}<+ skip=+^\(\t\)\{7}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
285 syntax region UB9 start=+^\(\t\)\{8}<+ skip=+^\(\t\)\{8}<+ end=+^\(\t\)*\S+me=s-1 contains=spellErr,SpellErrors,BadWord contained
287 "comment-style bodytext formatting as per Steve Litt
288 syntax match Comment "^\s*:.*$"
289 setlocal fo-=t fo+=crqno
290 setlocal com=sO:\:\ -,mO:\:\ \ ,eO:\:\:,:\:,sO:\>\ -,mO:\>\ \ ,eO:\>\>,:\>
293 syntax region OL1 start=+^[^:\t]+ end=+^[^:\t]+me=e-1 contains=outlTags,BT1,BT2,PT1,PT2,TA1,TA2,UT1,UT2,UB1,UB2,spellErr,SpellErrors,BadWord,OL2 keepend
294 syntax region OL2 start=+^\t[^:\t]+ end=+^\t[^:\t]+me=e-2 contains=outlTags,BT2,BT3,PT2,PT3,TA2,TA3,UT2,UT3,UB2,UB3,spellErr,SpellErrors,BadWord,OL3 keepend
295 syntax region OL3 start=+^\(\t\)\{2}[^:\t]+ end=+^\(\t\)\{2}[^:\t]+me=e-3 contains=outlTags,BT3,BT4,PT3,PT4,TA3,TA4,UT3,UT4,UB3,UB4,spellErr,SpellErrors,BadWord,OL4 keepend
296 syntax region OL4 start=+^\(\t\)\{3}[^:\t]+ end=+^\(\t\)\{3}[^:\t]+me=e-4 contains=outlTags,BT4,BT5,PT4,PT5,TA4,TA5,UT4,UT5,UB4,UB5,spellErr,SpellErrors,BadWord,OL5 keepend
297 syntax region OL5 start=+^\(\t\)\{4}[^:\t]+ end=+^\(\t\)\{4}[^:\t]+me=e-5 contains=outlTags,BT5,BT6,PT5,PT6,TA5,TA6,UT5,UT6,UB5,UB6,spellErr,SpellErrors,BadWord,OL6 keepend
298 syntax region OL6 start=+^\(\t\)\{5}[^:\t]+ end=+^\(\t\)\{5}[^:\t]+me=e-6 contains=outlTags,BT6,BT7,PT6,PT7,TA6,TA7,UT6,UT7,UB6,UB7,spellErr,SpellErrors,BadWord,OL7 keepend
299 syntax region OL7 start=+^\(\t\)\{6}[^:\t]+ end=+^\(\t\)\{6}[^:\t]+me=e-7 contains=outlTags,BT7,BT8,PT7,PT8,TA7,TA8,UT7,UT8,UB7,UB8,spellErr,SpellErrors,BadWord,OL8 keepend
300 syntax region OL8 start=+^\(\t\)\{7}[^:\t]+ end=+^\(\t\)\{7}[^:\t]+me=e-8 contains=outlTags,BT8,BT9,PT8,PT9,TA8,TA9,UT8,UT9,UB8,UB9,spellErr,SpellErrors,BadWord,OL9 keepend
301 syntax region OL9 start=+^\(\t\)\{8}[^:\t]+ end=+^\(\t\)\{8}[^:\t]+me=e-9 contains=outlTags,BT9,PT9,TA9,UT9,UB9,spellErr,SpellErrors,BadWord keepend
304 if !exists("autocommand_vo_loaded")
305 let autocommand_vo_loaded = 1
306 au BufNewFile,BufRead *.otl setf outliner
307 " au CursorHold *.otl syn sync fromstart
312 " vim600: set foldmethod=marker foldlevel=0: