[ADD] conf for archlinux, <init>
[arrow.git] / archlinux_conf / home / .vim / syntax / viki.vim
blob4626e0b9d5011f8391b428f3cb5423900d004fb6
1 " viki.vim -- the viki syntax file
2 " @Author:      Thomas Link (micathom AT gmail com?subject=vim)
3 " @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
4 " @Created:     30-Dez-2003.
5 " @Last Change: 2008-04-17.
6 " @Revision: 0.858
8 if !g:vikiEnabled
9     finish
10 endif
12 if version < 600
13     syntax clear
14 elseif exists("b:current_syntax")
15     finish
16 endif
18 " This command sets up buffer variables and adds some basic highlighting.
19 let b:vikiEnabled = 0
20 call viki#DispatchOnFamily('MinorMode', '', 2)
21 let b:vikiEnabled = 2
23 runtime syntax/texmath.vim
25 " On slow machine the extended syntax highlighting can cause some major 
26 " slowdown (I'm not really sure what is causing this, but it can be 
27 " avoided anyway by highlighting only the basic syntax)
28 " if g:vikiBasicSyntax
29 "     finish
30 " endif
32 syn match vikiSemiParagraph /^\s\+$/
34 syn match vikiEscape /\\/ contained containedin=vikiEscapedChar
35 syn match vikiEscapedChar /\\\_./ contains=vikiEscape,vikiChar
37 " exe 'syn match vikiAnchor /^\('. escape(b:vikiCommentStart, '\/.*^$~[]') .'\)\?[[:blank:]]*#'. b:vikiAnchorNameRx .'/'
38 exe 'syn match vikiAnchor /^[[:blank:]]*%\?[[:blank:]]*#'. b:vikiAnchorNameRx .'.*/'
39 " syn match vikiMarkers /\(\([#?!+]\)\2\{2,2}\)/
40 syn match vikiMarkers /\V\(###\|???\|!!!\|+++\)/
41 " syn match vikiSymbols /\(--\|!=\|==\+\|\~\~\+\|<-\+>\|<=\+>\|<\~\+>\|<-\+\|-\+>\|<=\+\|=\+>\|<\~\+\|\~\+>\|\.\.\.\)/
42 syn match vikiSymbols /\V\(--\|!=\|==\+\|~~\+\|<-\+>\|<=\+>\|<~\+>\|<-\+\|-\+>\|<=\+\|=\+>\|<~\+\|~\+>\|...\|&\(#\d\+\|\w\+\);\)/
44 syn cluster vikiHyperLinks contains=vikiLink,vikiExtendedLink,vikiURL,vikiInexistentLink
46 if b:vikiTextstylesVer == 1
47     syn match vikiBold /\(^\|\W\zs\)\*\(\\\*\|\w\)\{-1,}\*/
48     syn region vikiContinousBold start=/\(^\|\W\zs\)\*\*[^      *]/ end=/\*\*\|\n\{2,}/ skip=/\\\n/
49     syn match vikiUnderline /\(^\|\W\zs\)_\(\\_\|[^_\s]\)\{-1,}_/
50     syn region vikiContinousUnderline start=/\(^\|\W\zs\)__[^   _]/ end=/__\|\n\{2,}/ skip=/\\\n/
51     syn match vikiTypewriter /\(^\|\W\zs\)=\(\\=\|\w\)\{-1,}=/
52     syn region vikiContinousTypewriter start=/\(^\|\W\zs\)==[^  =]/ end=/==\|\n\{2,}/ skip=/\\\n/
53     syn cluster vikiTextstyles contains=vikiBold,vikiContinousBold,vikiTypewriter,vikiContinousTypewriter,vikiUnderline,vikiContinousUnderline,vikiEscapedChar
54 else
55     syn region vikiBold start=/\(^\|\W\zs\)__[^         _]/ end=/__\|\n\{2,}/ skip=/\\_\|\\\n/ contains=vikiEscapedChar
56     syn region vikiTypewriter start=/\(^\|[^\w`]\zs\)''[^       ']/ end=/''\|\n\{2,}/ skip=/\\'\|\\\n/ contains=vikiEscapedChar
57     syn cluster vikiTextstyles contains=vikiBold,vikiTypewriter,vikiEscapedChar
58 endif
60 syn cluster vikiText contains=@vikiTextstyles,@vikiHyperLinks,vikiMarkers
62 " exe 'syn match vikiComment /\V\^\[[:blank:]]\*'. escape(b:vikiCommentStart, '\/') .'\.\*/ contains=@vikiText'
63 " syn match vikiComment /^[[:blank:]]*%.*$/ contains=@vikiText
64 syn match vikiComment /^[[:blank:]]*%.*$/ contains=@vikiHyperLinks,vikiMarkers,vikiEscapedChar
66 " syn region vikiString start=+^[[:blank:]]\+"\|"+ end=+"[.?!]\?[[:blank:]]\+$\|"+ contains=@vikiText
67 " syn region vikiString start=+^"\|\s"\|[({\[]\zs"+ end=+"+ contains=@vikiText
68 syn region vikiString start=+^"\|\s"\|[({\[]\zs"\|[^[:alnum:]]\zs"\ze[[:alnum:]]+ end=+"+ contains=@vikiText
70 let b:vikiHeadingStart = '*'
71 if g:vikiFancyHeadings
72     let hd=escape(b:vikiHeadingStart, '\/')
73     exe 'syn region vikiHeading1 start=/\V\^'. hd .'\[[:blank:]]\+/ end=/\n/ contains=@vikiText'
74     exe 'syn region vikiHeading2 start=/\V\^'. hd.hd .'\[[:blank:]]\+/ end=/\n/ contains=@vikiText'
75     exe 'syn region vikiHeading3 start=/\V\^'. hd.hd.hd .'\[[:blank:]]\+/ end=/\n/ contains=@vikiText'
76     exe 'syn region vikiHeading4 start=/\V\^'. hd.hd.hd.hd .'\[[:blank:]]\+/ end=/\n/ contains=@vikiText'
77     exe 'syn region vikiHeading5 start=/\V\^'. hd.hd.hd.hd.hd .'\[[:blank:]]\+/ end=/\n/ contains=@vikiText'
78     exe 'syn region vikiHeading6 start=/\V\^'. hd.hd.hd.hd.hd.hd .'\[[:blank:]]\+/ end=/\n/ contains=@vikiText'
79 else
80     exe 'syn region vikiHeading start=/\V\^'. escape(b:vikiHeadingStart, '\/') .'\+\[[:blank:]]\+/ end=/\n/ contains=@vikiText'
81 endif
83 syn match vikiList /^[[:blank:]]\+\([-+*#?@]\|[0-9#]\+\.\|[a-zA-Z?]\.\)\ze[[:blank:]]/
84 syn match vikiDescription /^[[:blank:]]\+\(\\\n\|.\)\{-1,}[[:blank:]]::\ze[[:blank:]]/ contains=@vikiHyperLinks,vikiEscapedChar,vikiComment
86 " \( \+#\S\+\)\?
87 syn match vikiPriorityListTodoGen /^[[:blank:]]\+\zs#\(T: \+.\{-}\u.\{-}:\|\d*\u\d*\( \+\(_\|[0-9%-]\+\)\)\?\)\( \+\[[^[].\{-}\]\)\?\ze /
88 syn match vikiPriorityListTodoA /^[[:blank:]]\+\zs#\(T: \+.\{-}A.\{-}:\|\d*A\d*\( \+\(_\|[0-9%-]\+\)\)\?\)\( \+\[[^[].\{-}\]\)\?\ze /
89 syn match vikiPriorityListTodoB /^[[:blank:]]\+\zs#\(T: \+.\{-}B.\{-}:\|\d*B\d*\( \+\(_\|[0-9%-]\+\)\)\?\)\( \+\[[^[].\{-}\]\)\?\ze /
90 syn match vikiPriorityListTodoC /^[[:blank:]]\+\zs#\(T: \+.\{-}C.\{-}:\|\d*C\d*\( \+\(_\|[0-9%-]\+\)\)\?\)\( \+\[[^[].\{-}\]\)\?\ze /
91 syn match vikiPriorityListTodoD /^[[:blank:]]\+\zs#\(T: \+.\{-}D.\{-}:\|\d*D\d*\( \+\(_\|[0-9%-]\+\)\)\?\)\( \+\[[^[].\{-}\]\)\?\ze /
92 syn match vikiPriorityListTodoE /^[[:blank:]]\+\zs#\(T: \+.\{-}E.\{-}:\|\d*E\d*\( \+\(_\|[0-9%-]\+\)\)\?\)\( \+\[[^[].\{-}\]\)\?\ze /
93 syn match vikiPriorityListTodoF /^[[:blank:]]\+\zs#\(T: \+.\{-}F.\{-}:\|\d*F\d*\( \+\(_\|[0-9%-]\+\)\)\?\)\( \+\[[^[].\{-}\]\)\?\ze /
95 syn match vikiPriorityListDoneGen /^[[:blank:]]\+\zs#\(T: \+x\([0-9%-]\+\)\?.\{-}\u.\{-}:\|\(T: \+\)\?\d*\u\d* \+x[0-9%-]*\):\? .*/
96 syn match vikiPriorityListDoneA /^[[:blank:]]\+\zs#\(T: \+x\([0-9%-]\+\)\?.\{-}A.\{-}:\|\(T: \+\)\?\d*A\d* \+x[0-9%-]*\):\? .*/
97 syn match vikiPriorityListDoneB /^[[:blank:]]\+\zs#\(T: \+x\([0-9%-]\+\)\?.\{-}B.\{-}:\|\(T: \+\)\?\d*B\d* \+x[0-9%-]*\):\? .*/
98 syn match vikiPriorityListDoneC /^[[:blank:]]\+\zs#\(T: \+x\([0-9%-]\+\)\?.\{-}C.\{-}:\|\(T: \+\)\?\d*C\d* \+x[0-9%-]*\):\? .*/
99 syn match vikiPriorityListDoneD /^[[:blank:]]\+\zs#\(T: \+x\([0-9%-]\+\)\?.\{-}D.\{-}:\|\(T: \+\)\?\d*D\d* \+x[0-9%-]*\):\? .*/
100 syn match vikiPriorityListDoneE /^[[:blank:]]\+\zs#\(T: \+x\([0-9%-]\+\)\?.\{-}E.\{-}:\|\(T: \+\)\?\d*E\d* \+x[0-9%-]*\):\? .*/
101 syn match vikiPriorityListDoneF /^[[:blank:]]\+\zs#\(T: \+x\([0-9%-]\+\)\?.\{-}F.\{-}:\|\(T: \+\)\?\d*F\d* \+x[0-9%-]*\):\? .*/
103 syn match vikiTableRowSep /||\?/ contained containedin=vikiTableRow,vikiTableHead
104 syn region vikiTableHead start=/^[[:blank:]]*|| / skip=/\\\n/ end=/\(^\| \)||[[:blank:]]*$/
105             \ transparent keepend
106             " \ contains=ALLBUT,vikiTableRow,vikiTableHead 
107 syn region vikiTableRow  start=/^[[:blank:]]*| / skip=/\\\n/ end=/\(^\| \)|[[:blank:]]*$/
108             \ transparent keepend
109             " \ contains=ALLBUT,vikiTableRow,vikiTableHead
111 syn keyword vikiCommandNames 
112             \ #CAP #CAPTION #LANG #LANGUAGE #INC #INCLUDE #DOC #VAR #KEYWORDS #OPT 
113             \ #PUT #CLIP #SET #GET #XARG #XVAL #ARG #VAL #BIB #TITLE #TI #AUTHOR 
114             \ #AU #AUTHORNOTE #AN #DATE #IMG #IMAGE #FIG #FIGURE #MAKETITLE 
115             \ #MAKEBIB #LIST #DEFLIST #REGISTER #DEFCOUNTER #COUNTER #TABLE #IDX 
116             \ #AUTOIDX #NOIDX #DONTIDX #WITH #ABBREV #MODULE #MOD #LTX #INLATEX 
117             \ #PAGE #NOP
118             \ contained containedin=vikiCommand
120 syn keyword vikiRegionNames
121             \ #Doc #Var #Native #Ins #Write #Code #Inlatex #Ltx #Img #Image #Fig 
122             \ #Figure #Footnote #Fn #Foreach #Table #Verbatim #Verb #Abstract 
123             \ #Quote #Qu #R #Ruby #Clip #Put #Set #Header #Footer #Swallow #Skip 
124             \ contained containedin=vikiMacroDelim,vikiRegion,vikiRegionWEnd,vikiRegionAlt
126 syn keyword vikiMacroNames 
127             \ {fn {cite {attr {attrib {date {doc {var {arg {val {xarg {xval {opt 
128             \ {msg {clip {get {ins {native {ruby {ref {anchor {label {lab {nl {ltx 
129             \ {math {$ {list {item {term {, {sub {^ {sup {super {% {stacked {: 
130             \ {text {plain {\\ {em {emph {_ {code {verb {img {cmt {pagenumber 
131             \ {pagenum {idx {let {counter 
132             \ contained containedin=vikiMacro,vikiMacroDelim
134 syn match vikiSkeleton /{{\_.\{-}[^\\]}}/
136 syn region vikiMacro matchgroup=vikiMacroDelim start=/{\W\?[^:{}]*:\?/ end=/}/ 
137             \ transparent contains=@vikiText,vikiMacroNames,vikiMacro
139 syn region vikiRegion matchgroup=vikiMacroDelim 
140             \ start=/^[[:blank:]]*#\([A-Z]\([a-z][A-Za-z]*\)\?\>\|!!!\)\(\\\n\|.\)\{-}<<\z(.*\)$/ 
141             \ end=/^[[:blank:]]*\z1[[:blank:]]*$/ 
142             \ contains=@vikiText,vikiRegionNames
143 syn region vikiRegionWEnd matchgroup=vikiMacroDelim 
144             \ start=/^[[:blank:]]*#\([A-Z]\([a-z][A-Za-z]*\)\?\>\|!!!\)\(\\\n\|.\)\{-}:[[:blank:]]*$/ 
145             \ end=/^[[:blank:]]*#End[[:blank:]]*$/ 
146             \ contains=@vikiText,vikiRegionNames
147 syn region vikiRegionAlt matchgroup=vikiMacroDelim 
148             \ start=/^[[:blank:]]*\z(=\{4,}\)[[:blank:]]*\([A-Z][a-z]*\>\|!!!\)\(\\\n\|.\)\{-}$/ 
149             \ end=/^[[:blank:]]*\z1\([[:blank:]].*\)\?$/ 
150             \ contains=@vikiText,vikiRegionNames
152 syn match vikiCommand /^\C[[:blank:]]*#\([A-Z]\{2,}\)\>\(\\\n\|.\)*/
153             \ contains=vikiCommandNames
155 syn match vikiFilesMarkers /\[\[\([^\/]\+\/\)*\|\]!\]/ contained containedin=vikiFiles
156 syn match vikiFilesIndicators /{.\{-}}/ contained containedin=vikiFiles
157 syn match vikiFiles /^\s*\[\[.\{-}\]!\].*$/
158             \ contained containedin=vikiFilesRegion contains=vikiFilesMarkers,vikiFilesIndicators
159 syn region vikiFilesRegion matchgroup=vikiMacroDelim
160             \ start=/^[[:blank:]]*#Files\>\(\\\n\|.\)\{-}<<\z(.*\)$/ 
161             \ end=/^[[:blank:]]*\z1[[:blank:]]*$/ 
162             \ contains=vikiFiles
165 if g:vikiHighlightMath == 'latex'
166     syn region vikiTexFormula matchgroup=Comment
167                 \ start=/\$/ end=/\$/
168                 \ contains=@texmathMath
169     syn sync match vikiTexFormula grouphere NONE /^\s*$/
170 endif
172 syn region vikiTexRegion matchgroup=vikiMacroDelim
173             \ start=/^[[:blank:]]*#Ltx\>\(\\\n\|.\)\{-}<<\z(.*\)$/ 
174             \ end=/^[[:blank:]]*\z1[[:blank:]]*$/ 
175             \ contains=@texmathMath
176 syn region vikiTexMacro matchgroup=vikiMacroDelim
177             \ start=/{\(ltx\)\([^:{}]*:\)\?/ end=/}/ 
178             \ transparent contains=vikiMacroNames,@texmath
179 syn region vikiTexMathMacro matchgroup=vikiMacroDelim
180             \ start=/{\(math\>\|\$\)\([^:{}]*:\)\?/ end=/}/ 
181             \ transparent contains=vikiMacroNames,@texmathMath
184 syntax sync minlines=2
185 " syntax sync maxlines=50
186 " syntax sync match vikiParaBreak /^\s*$/
187 " syntax sync linecont /\\$/
190 " Define the default highlighting.
191 " For version 5.7 and earlier: only when not done already
192 " For version 5.8 and later: only when an item doesn't have highlighting yet
193 if version >= 508 || !exists("did_viki_syntax_inits")
194   if version < 508
195       let did_viki_syntax_inits = 1
196       command! -nargs=+ HiLink hi link <args>
197   else
198       command! -nargs=+ HiLink hi def link <args>
199   endif
200   
201   if &background == "light"
202       let s:cm1="Dark"
203       let s:cm2="Light"
204   else
205       let s:cm1="Light"
206       let s:cm2="Dark"
207   endif
209   if exists("g:vikiHeadingFont")
210       let s:hdfont = " font=". g:vikiHeadingFont
211   else
212       let s:hdfont = ""
213   endif
214   
215   if exists("g:vikiTypewriterFont")
216       let s:twfont = " font=". g:vikiTypewriterFont
217   else
218       let s:twfont = ""
219   endif
221   HiLink vikiSemiParagraph NonText
222   HiLink vikiEscapedChars Normal
223   exe "hi vikiEscape ctermfg=". s:cm2 ."grey guifg=". s:cm2 ."grey"
224   exe "hi vikiList term=bold cterm=bold gui=bold ctermfg=". s:cm1 ."Cyan guifg=". s:cm1 ."Cyan"
225   HiLink vikiDescription vikiList
226   if g:vikiFancyHeadings
227       if &background == "light"
228           let hdhl="term=bold,underline cterm=bold gui=bold ctermfg=". s:cm1 ."Magenta guifg=".s:cm1."Magenta". s:hdfont
229           exe "hi vikiHeading1 ". hdhl ." guibg=#ffff00"
230           exe "hi vikiHeading2 ". hdhl ." guibg=#ffff30"
231           exe "hi vikiHeading3 ". hdhl ." guibg=#ffff60"
232           exe "hi vikiHeading4 ". hdhl ." guibg=#ffff90"
233           exe "hi vikiHeading5 ". hdhl ." guibg=#ffffb0"
234           exe "hi vikiHeading6 ". hdhl ." guibg=#ffffe0"
235       else
236           let hdhl="term=bold,underline cterm=bold gui=bold ctermfg=DarkMagenta guifg=DarkMagenta". s:hdfont
237           exe "hi vikiHeading1 ". hdhl ." guibg=#ffff00"
238           exe "hi vikiHeading2 ". hdhl ." guibg=#aadd00"
239           exe "hi vikiHeading3 ". hdhl ." guibg=#88aa00"
240           exe "hi vikiHeading4 ". hdhl ." guibg=#558800"
241           exe "hi vikiHeading5 ". hdhl ." guibg=#225500"
242           exe "hi vikiHeading6 ". hdhl ." guibg=#002200"
243       endif
244   else
245       exe "hi vikiHeading term=bold,underline cterm=bold gui=bold ctermfg=". s:cm1 ."Magenta guifg=".s:cm1."Magenta". s:hdfont
246   endif
247   
248   let vikiPriorityListTodo = ' term=bold,underline cterm=bold gui=bold guifg=Black ctermfg=Black '
249   exec 'hi vikiPriorityListTodoGen'. vikiPriorityListTodo  .'ctermbg=LightRed guibg=LightRed'
250   exec 'hi vikiPriorityListTodoA'. vikiPriorityListTodo  .'ctermbg=Red guibg=Red'
251   exec 'hi vikiPriorityListTodoB'. vikiPriorityListTodo  .'ctermbg=Brown guibg=Orange'
252   exec 'hi vikiPriorityListTodoC'. vikiPriorityListTodo  .'ctermbg=Yellow guibg=Yellow'
253   exec 'hi vikiPriorityListTodoD'. vikiPriorityListTodo  .'ctermbg=LightMagenta guibg=LightMagenta'
254   exec 'hi vikiPriorityListTodoE'. vikiPriorityListTodo  .'ctermbg=LightYellow guibg=LightYellow'
255   exec 'hi vikiPriorityListTodoF'. vikiPriorityListTodo  .'ctermbg=LightGreen guibg=LightGreen'
257   " let vikiPriorityListDone = ' guifg='. s:cm1 .'Gray '
258   " exec 'hi vikiPriorityListDoneA'. vikiPriorityListDone
259   " exec 'hi vikiPriorityListDoneB'. vikiPriorityListDone
260   " exec 'hi vikiPriorityListDoneC'. vikiPriorityListDone
261   " exec 'hi vikiPriorityListDoneD'. vikiPriorityListDone
262   " exec 'hi vikiPriorityListDoneE'. vikiPriorityListDone
263   " exec 'hi vikiPriorityListDoneF'. vikiPriorityListDone
264   HiLink vikiPriorityListDoneA Comment
265   HiLink vikiPriorityListDoneB Comment
266   HiLink vikiPriorityListDoneC Comment
267   HiLink vikiPriorityListDoneD Comment
268   HiLink vikiPriorityListDoneE Comment
269   HiLink vikiPriorityListDoneF Comment
270   HiLink vikiPriorityListDoneGen Comment
271   
272   exe "hi vikiTableRowSep term=bold cterm=bold gui=bold ctermbg=". s:cm2 ."Grey guibg=". s:cm2 ."Grey"
273   
274   exe "hi vikiSymbols term=bold cterm=bold gui=bold ctermfg=". s:cm1 ."Red guifg=". s:cm1 ."Red"
275   hi vikiMarkers term=bold cterm=bold gui=bold ctermfg=DarkRed guifg=DarkRed ctermbg=yellow guibg=yellow
276   hi vikiAnchor term=italic cterm=italic gui=italic ctermfg=grey guifg=grey
277   HiLink vikiComment Comment
278   HiLink vikiString String
279   
280   if b:vikiTextstylesVer == 1
281       hi vikiContinousBold term=bold cterm=bold gui=bold
282       hi vikiContinousUnderline term=underline cterm=underline gui=underline
283       exe "hi vikiContinousTypewriter term=underline ctermfg=". s:cm1 ."Grey guifg=". s:cm1 ."Grey". s:twfont
284       HiLink vikiBold vikiContinousBold
285       HiLink vikiUnderline vikiContinousUnderline 
286       HiLink vikiTypewriter vikiContinousTypewriter
287   else
288       " hi vikiBold term=italic,bold cterm=italic,bold gui=italic,bold
289       hi vikiBold term=bold,underline cterm=bold,underline gui=bold
290       exe "hi vikiTypewriter term=underline ctermfg=". s:cm1 ."Grey guifg=". s:cm1 ."Grey". s:twfont
291   endif
293   HiLink vikiMacroHead Statement
294   HiLink vikiMacroDelim Identifier
295   HiLink vikiSkeleton Special
296   HiLink vikiCommand Statement
297   HiLink vikiRegion Statement
298   HiLink vikiRegionWEnd vikiRegion
299   HiLink vikiRegionAlt vikiRegion
300   HiLink vikiFilesRegion Statement
301   HiLink vikiFiles Constant
302   HiLink vikiFilesMarkers Ignore
303   HiLink vikiFilesIndicators Special
304   " HiLink vikiCommandNames Constant
305   " HiLink vikiRegionNames Constant
306   " HiLink vikiMacroNames Constant
307   HiLink vikiCommandNames Identifier
308   HiLink vikiRegionNames Identifier
309   HiLink vikiMacroNames Identifier
311   " Statement PreProc
312   HiLink vikiTexSup Type
313   HiLink vikiTexSub Type
314   " HiLink vikiTexArgDelimiters Comment
315   HiLink vikiTexCommand Statement
316   HiLink vikiTexText Normal
317   HiLink vikiTexMathFont Type
318   HiLink vikiTexMathWord Identifier
319   HiLink vikiTexUnword Constant
320   HiLink vikiTexPairs PreProc
322   delcommand HiLink
323 endif
325 " if g:vikiMarkInexistent && !exists("b:vikiCheckInexistent")
326 if g:vikiMarkInexistent
327     call viki#MarkInexistentInitial()
328 endif
330 let b:current_syntax = 'viki'