codekingpro/portable-devtools
114k
1" Vim syntax file2" Language: Falcon3" Maintainer: Steven Oliver <oliver.steven@gmail.com>4" Website: http://github.com/steveno/vim-files/blob/master/syntax/falcon.vim5" Credits: Thanks the ruby.vim authors, I borrowed a lot!6" Thanks to the lisp authors for the rainbow code!7" -------------------------------------------------------------------------------8 9" When wanted, highlight the trailing whitespace.10if exists("c_space_errors")11 if !exists("c_no_trail_space_error")12 syn match falconSpaceError "\s\+$"13 endif14 15 if !exists("c_no_tab_space_error")16 syn match falconSpaceError " \+\t"me=e-117 endif18endif19 20" Symbols21syn match falconSymbol "\(;\|,\|\.\)"22syn match falconSymbolOther "\(#\|@\)" display23 24" Operators25syn match falconOperator "\(+\|-\|\*\|/\|=\|<\|>\|\*\*\|!=\|\~=\)"26syn match falconOperator "\(<=\|>=\|=>\|\.\.\|<<\|>>\|\"\)"27 28" Clusters29syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@falconStringSpecial fold30syn case match31 32" Keywords33syn keyword falconKeyword all allp any anyp as attributes brigade cascade catch choice class const34syn keyword falconKeyword continue def directive do list dropping enum eq eval exit export from function35syn keyword falconKeyword give global has hasnt in init innerfunc lambda launch launch len List list36syn keyword falconKeyword load notin object pass print printl provides raise return self sender static to37syn keyword falconKeyword try xamp38 39" Error Type Keywords40syn keyword falconKeyword CloneError CodeError Error InterruprtedError IoError MathError41syn keyword falconKeyword ParamError RangeError SyntaxError TraceStep TypeError42 43" Todo44syn keyword falconTodo DEBUG FIXME NOTE TODO XXX45 46" Conditionals47syn keyword falconConditional and case default else end if iff48syn keyword falconConditional elif or not switch select49syn match falconConditional "end\s\if"50 51" Loops52syn keyword falconRepeat break for loop forfirst forlast formiddle while53 54" Booleans55syn keyword falconBool true false56 57" Constants58syn keyword falconConst PI E nil59syn match falconConstant "\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=\%(\s*(\)\@!"60 61" Comments62syn match falconCommentSkip contained "^\s*\*\($\|\s\+\)"63syn region falconComment start="/\*" end="\*/" contains=@falconCommentGroup,falconSpaceError,falconTodo64syn region falconCommentL start="//" end="$" keepend contains=@falconCommentGroup,falconSpaceError,falconTodo65syn match falconSharpBang "\%^#!.*" display66syn sync ccomment falconComment67 68" Numbers69syn match falconNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal70syn match falconNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal71syn match falconHexadecimal contained "\<0x\x\+\>"72syn match falconOctal contained "\<0\o\+\>"73syn match falconIntLiteral contained "[+-]\<d\+\(\d\+\)\?\>"74syn match falconFloatLiteral contained "[+-]\=\d\+\.\d*"75syn match falconFloatLiteral contained "[+-]\=\d*\.\d*"76 77" Includes78syn keyword falconInclude load import79 80" Expression Substitution and Backslash Notation81syn match falconStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display82syn match falconStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display83syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold84 85" Normal String and Shell Command Output86syn region falconString matchgroup=falconStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold87syn region falconString matchgroup=falconStringDelimiter start="'" end="'" skip="\\\\\|\\'" fold88syn region falconString matchgroup=falconStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=falconStringEscape fold89 90" Generalized Single Quoted String, Symbol and Array of Strings91syn region falconString matchgroup=falconStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold92syn region falconString matchgroup=falconStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape93syn region falconString matchgroup=falconStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape94syn region falconString matchgroup=falconStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape95syn region falconString matchgroup=falconStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape96syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold97syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape98syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape99syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape100syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape101 102" Generalized Double Quoted String and Array of Strings and Shell Command Output103syn region falconString matchgroup=falconStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold104syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold105syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=falconStringEscape,falconDelimEscape fold106syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=falconStringEscape,falconDelimEscape fold107syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=falconStringEscape,falconDelimEscape fold108syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=falconStringEscape,falconDelimEscape fold109 110syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<\z(\h\w*\)\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend111syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<"\z([^"]*\)"\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend112syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<'\z([^']*\)'\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ fold keepend113syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<`\z([^`]*\)`\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend114 115syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-\z(\h\w*\)\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend116syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-"\z([^"]*\)"\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend117syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-'\z([^']*\)'\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ fold keepend118syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend119 120" Falcon rainbox to highlight parens in varying colors121if exists("g:falcon_rainbow") && g:falcon_rainbow != 0122 syn region falconParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen1123 syn region falconParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen2124 syn region falconParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen3125 syn region falconParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen4126 syn region falconParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen5127 syn region falconParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen6128 syn region falconParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen7129 syn region falconParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen8130 syn region falconParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen9131 syn region falconParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen0132endif133 134" Setup the colors for the rainbox135if exists("g:falcon_rainbow") && g:falcon_rainbow != 0136 if &bg == "dark"137 hi def hlLevel0 ctermfg=red guifg=red1138 hi def hlLevel1 ctermfg=yellow guifg=orange1139 hi def hlLevel2 ctermfg=green guifg=yellow1140 hi def hlLevel3 ctermfg=cyan guifg=greenyellow141 hi def hlLevel4 ctermfg=magenta guifg=green1142 hi def hlLevel5 ctermfg=red guifg=springgreen1143 hi def hlLevel6 ctermfg=yellow guifg=cyan1144 hi def hlLevel7 ctermfg=green guifg=slateblue1145 hi def hlLevel8 ctermfg=cyan guifg=magenta1146 hi def hlLevel9 ctermfg=magenta guifg=purple1147 else148 hi def hlLevel0 ctermfg=red guifg=red3149 hi def hlLevel1 ctermfg=darkyellow guifg=orangered3150 hi def hlLevel2 ctermfg=darkgreen guifg=orange2151 hi def hlLevel3 ctermfg=blue guifg=yellow3152 hi def hlLevel4 ctermfg=darkmagenta guifg=olivedrab4153 hi def hlLevel5 ctermfg=red guifg=green4154 hi def hlLevel6 ctermfg=darkyellow guifg=paleturquoise3155 hi def hlLevel7 ctermfg=darkgreen guifg=deepskyblue4156 hi def hlLevel8 ctermfg=blue guifg=darkslateblue157 hi def hlLevel9 ctermfg=darkmagenta guifg=darkviolet158 endif159endif160 161" Syntax Synchronizing162syn sync minlines=10 maxlines=100163 164" Define the default highlighting165if !exists("did_falcon_syn_inits")166 167 hi def link falconKeyword Keyword168 hi def link falconCommentString String169 hi def link falconTodo Todo170 hi def link falconConditional Keyword171 hi def link falconRepeat Repeat172 hi def link falconcommentSkip Comment173 hi def link falconComment Comment174 hi def link falconCommentL Comment175 hi def link falconConst Constant176 hi def link falconConstants Constant177 hi def link falconOperator Operator178 hi def link falconSymbol Normal179 hi def link falconSpaceError Error180 hi def link falconHexadecimal Number181 hi def link falconOctal Number182 hi def link falconIntLiteral Number183 hi def link falconFloatLiteral Float184 hi def link falconStringEscape Special185 hi def link falconStringDelimiter Delimiter186 hi def link falconString String187 hi def link falconBool Constant188 hi def link falconSharpBang PreProc189 hi def link falconInclude Include190 hi def link falconSymbol Constant191 hi def link falconSymbolOther Delimiter192endif193 194let b:current_syntax = "falcon"195 196" vim: set sw=4 sts=4 et tw=80 :197 198 