PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/share/vim/vim74/syntax
Viewing File: /usr/share/vim/vim74/syntax/groovy.vim
" Vim syntax file " Language: Groovy " Original Author: Alessio Pace <billy.corgan@tiscali.it> " Maintainer: Tobias Rapp <yahuxo@gmx.de> " Version: 0.1.13 " URL: http://www.vim.org/scripts/script.php?script_id=945 " Last Change: 2013 Apr 24 " THE ORIGINAL AUTHOR'S NOTES: " " This is my very first vim script, I hope to have " done it the right way. " " I must directly or indirectly thank the author of java.vim and ruby.vim: " I copied from them most of the stuff :-) " " Relies on html.vim " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded " " HOWTO USE IT (INSTALL) when not part of the distribution: " " 1) copy the file in the (global or user's $HOME/.vim/syntax/) syntax folder " " 2) add this line to recognize groovy files by filename extension: " " au BufNewFile,BufRead *.groovy setf groovy " in the global vim filetype.vim file or inside $HOME/.vim/filetype.vim " " 3) add this part to recognize by content groovy script (no extension needed :-) " " if did_filetype() " finish " endif " if getline(1) =~ '^#!.*[/\\]groovy\>' " setf groovy " endif " " in the global scripts.vim file or in $HOME/.vim/scripts.vim " " 4) open/write a .groovy file or a groovy script :-) " " Let me know if you like it or send me patches, so that I can improve it " when I have time " Quit when a syntax file was already loaded if !exists("main_syntax") if version < 600 syntax clear elseif exists("b:current_syntax") finish endif " we define it here so that included files can test for it let main_syntax='groovy' endif let s:cpo_save = &cpo set cpo&vim " don't use standard HiLink, it will not work with included syntax files if version < 508 command! -nargs=+ GroovyHiLink hi link <args> else command! -nargs=+ GroovyHiLink hi def link <args> endif " ########################## " Java stuff taken from java.vim " some characters that cannot be in a groovy program (outside a string) " syn match groovyError "[\\@`]" "syn match groovyError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/" "syn match groovyOK "\.\.\." " keyword definitions syn keyword groovyExternal native package syn match groovyExternal "\<import\>\(\s\+static\>\)\?" syn keyword groovyError goto const syn keyword groovyConditional if else switch syn keyword groovyRepeat while for do syn keyword groovyBoolean true false syn keyword groovyConstant null syn keyword groovyTypedef this super syn keyword groovyOperator new instanceof syn keyword groovyType boolean char byte short int long float double syn keyword groovyType void syn keyword groovyType Integer Double Date Boolean Float String Array Vector List syn keyword groovyStatement return syn keyword groovyStorageClass static synchronized transient volatile final strictfp serializable syn keyword groovyExceptions throw try catch finally syn keyword groovyAssert assert syn keyword groovyMethodDecl synchronized throws syn keyword groovyClassDecl extends implements interface " to differentiate the keyword class from MyClass.class we use a match here syn match groovyTypedef "\.\s*\<class\>"ms=s+1 syn keyword groovyClassDecl enum syn match groovyClassDecl "^class\>" syn match groovyClassDecl "[^.]\s*\<class\>"ms=s+1 syn keyword groovyBranch break continue nextgroup=groovyUserLabelRef skipwhite syn match groovyUserLabelRef "\k\+" contained syn keyword groovyScopeDecl public protected private abstract if exists("groovy_highlight_groovy_lang_ids") || exists("groovy_highlight_groovy_lang") || exists("groovy_highlight_all") " groovy.lang.* syn keyword groovyLangClass Closure MetaMethod GroovyObject syn match groovyJavaLangClass "\<System\>" syn keyword groovyJavaLangClass Cloneable Comparable Runnable Serializable Boolean Byte Class Object syn keyword groovyJavaLangClass Character CharSequence ClassLoader Compiler " syn keyword groovyJavaLangClass Integer Double Float Long syn keyword groovyJavaLangClass InheritableThreadLocal Math Number Object Package Process syn keyword groovyJavaLangClass Runtime RuntimePermission InheritableThreadLocal syn keyword groovyJavaLangClass SecurityManager Short StrictMath StackTraceElement syn keyword groovyJavaLangClass StringBuffer Thread ThreadGroup syn keyword groovyJavaLangClass ThreadLocal Throwable Void ArithmeticException syn keyword groovyJavaLangClass ArrayIndexOutOfBoundsException AssertionError syn keyword groovyJavaLangClass ArrayStoreException ClassCastException syn keyword groovyJavaLangClass ClassNotFoundException syn keyword groovyJavaLangClass CloneNotSupportedException Exception syn keyword groovyJavaLangClass IllegalAccessException syn keyword groovyJavaLangClass IllegalArgumentException syn keyword groovyJavaLangClass IllegalMonitorStateException syn keyword groovyJavaLangClass IllegalStateException syn keyword groovyJavaLangClass IllegalThreadStateException syn keyword groovyJavaLangClass IndexOutOfBoundsException syn keyword groovyJavaLangClass InstantiationException InterruptedException syn keyword groovyJavaLangClass NegativeArraySizeException NoSuchFieldException syn keyword groovyJavaLangClass NoSuchMethodException NullPointerException syn keyword groovyJavaLangClass NumberFormatException RuntimeException syn keyword groovyJavaLangClass SecurityException StringIndexOutOfBoundsException syn keyword groovyJavaLangClass UnsupportedOperationException syn keyword groovyJavaLangClass AbstractMethodError ClassCircularityError syn keyword groovyJavaLangClass ClassFormatError Error ExceptionInInitializerError syn keyword groovyJavaLangClass IllegalAccessError InstantiationError syn keyword groovyJavaLangClass IncompatibleClassChangeError InternalError syn keyword groovyJavaLangClass LinkageError NoClassDefFoundError syn keyword groovyJavaLangClass NoSuchFieldError NoSuchMethodError syn keyword groovyJavaLangClass OutOfMemoryError StackOverflowError syn keyword groovyJavaLangClass ThreadDeath UnknownError UnsatisfiedLinkError syn keyword groovyJavaLangClass UnsupportedClassVersionError VerifyError syn keyword groovyJavaLangClass VirtualMachineError syn keyword groovyJavaLangObject clone equals finalize getClass hashCode syn keyword groovyJavaLangObject notify notifyAll toString wait GroovyHiLink groovyLangClass groovyConstant GroovyHiLink groovyJavaLangClass groovyExternal GroovyHiLink groovyJavaLangObject groovyConstant syn cluster groovyTop add=groovyJavaLangObject,groovyJavaLangClass,groovyLangClass syn cluster groovyClasses add=groovyJavaLangClass,groovyLangClass endif " Groovy stuff syn match groovyOperator "\.\." syn match groovyOperator "<\{2,3}" syn match groovyOperator ">\{2,3}" syn match groovyOperator "->" syn match groovyExternal '^#!.*[/\\]groovy\>' syn match groovyExceptions "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>" " Groovy JDK stuff syn keyword groovyJDKBuiltin as def in syn keyword groovyJDKOperOverl div minus plus abs round power multiply syn keyword groovyJDKMethods each call inject sort print println syn keyword groovyJDKMethods getAt putAt size push pop toList getText writeLine eachLine readLines syn keyword groovyJDKMethods withReader withStream withWriter withPrintWriter write read leftShift syn keyword groovyJDKMethods withWriterAppend readBytes splitEachLine syn keyword groovyJDKMethods newInputStream newOutputStream newPrintWriter newReader newWriter syn keyword groovyJDKMethods compareTo next previous isCase syn keyword groovyJDKMethods times step toInteger upto any collect dump every find findAll grep syn keyword groovyJDKMethods inspect invokeMethods join syn keyword groovyJDKMethods getErr getIn getOut waitForOrKill syn keyword groovyJDKMethods count tokenize asList flatten immutable intersect reverse reverseEach syn keyword groovyJDKMethods subMap append asWritable eachByte eachLine eachFile syn cluster groovyTop add=groovyJDKBuiltin,groovyJDKOperOverl,groovyJDKMethods " no useful I think, so I comment it.. "if filereadable(expand("<sfile>:p:h")."/groovyid.vim") " source <sfile>:p:h/groovyid.vim "endif if exists("groovy_space_errors") if !exists("groovy_no_trail_space_error") syn match groovySpaceError "\s\+$" endif if !exists("groovy_no_tab_space_error") syn match groovySpaceError " \+\t"me=e-1 endif endif " it is a better case construct than java.vim to match groovy syntax syn region groovyLabelRegion transparent matchgroup=groovyLabel start="\<case\>" matchgroup=NONE end=":\|$" contains=groovyNumber,groovyString,groovyLangClass,groovyJavaLangClass syn match groovyUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=groovyLabel syn keyword groovyLabel default if !exists("groovy_allow_cpp_keywords") syn keyword groovyError auto delete extern friend inline redeclared syn keyword groovyError register signed sizeof struct template typedef union syn keyword groovyError unsigned operator endif " The following cluster contains all groovy groups except the contained ones syn cluster groovyTop add=groovyExternal,groovyError,groovyError,groovyBranch,groovyLabelRegion,groovyLabel,groovyConditional,groovyRepeat,groovyBoolean,groovyConstant,groovyTypedef,groovyOperator,groovyType,groovyType,groovyStatement,groovyStorageClass,groovyAssert,groovyExceptions,groovyMethodDecl,groovyClassDecl,groovyClassDecl,groovyClassDecl,groovyScopeDecl,groovyError,groovyError2,groovyUserLabel,groovyLangObject " Comments syn keyword groovyTodo contained TODO FIXME XXX if exists("groovy_comment_strings") syn region groovyCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=groovySpecial,groovyCommentStar,groovySpecialChar,@Spell syn region groovyComment2String contained start=+"+ end=+$\|"+ contains=groovySpecial,groovySpecialChar,@Spell syn match groovyCommentCharacter contained "'\\[^']\{1,6\}'" contains=groovySpecialChar syn match groovyCommentCharacter contained "'\\''" contains=groovySpecialChar syn match groovyCommentCharacter contained "'[^\\]'" syn cluster groovyCommentSpecial add=groovyCommentString,groovyCommentCharacter,groovyNumber syn cluster groovyCommentSpecial2 add=groovyComment2String,groovyCommentCharacter,groovyNumber endif syn region groovyComment start="/\*" end="\*/" contains=@groovyCommentSpecial,groovyTodo,@Spell syn match groovyCommentStar contained "^\s*\*[^/]"me=e-1 syn match groovyCommentStar contained "^\s*\*$" syn match groovyLineComment "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell syn match groovyLineComment "#.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell GroovyHiLink groovyCommentString groovyString GroovyHiLink groovyComment2String groovyString GroovyHiLink groovyCommentCharacter groovyCharacter syn cluster groovyTop add=groovyComment,groovyLineComment if !exists("groovy_ignore_groovydoc") && main_syntax != 'jsp' syntax case ignore " syntax coloring for groovydoc comments (HTML) " syntax include @groovyHtml <sfile>:p:h/html.vim syntax include @groovyHtml runtime! syntax/html.vim unlet b:current_syntax syntax spell default " added by Bram syn region groovyDocComment start="/\*\*" end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell syn region groovyCommentTitle contained matchgroup=groovyDocComment start="/\*\*" matchgroup=groovyCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@groovyHtml,groovyCommentStar,groovyTodo,@Spell,groovyDocTags syn region groovyDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}" syn match groovyDocTags contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=groovyDocParam syn match groovyDocParam contained "\s\S\+" syn match groovyDocTags contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>" syntax case match endif " match the special comment /**/ syn match groovyComment "/\*\*/" " Strings and constants syn match groovySpecialError contained "\\." syn match groovySpecialCharError contained "[^']" syn match groovySpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)" syn match groovyRegexChar contained "\\." syn region groovyString start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr syn region groovyString start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell syn region groovyString start=+"""+ end=+"""+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr syn region groovyString start=+'''+ end=+'''+ contains=groovySpecialChar,groovySpecialError,@Spell " regex string syn region groovyString start='/[^/]' end='/' contains=groovySpecialChar,groovyRegexChar,groovyELExpr " syn region groovyELExpr start=+${+ end=+}+ keepend contained syn match groovyELExpr /\${.\{-}}/ contained syn match groovyELExpr /\$[a-zA-Z_][a-zA-Z0-9_.]*/ contained GroovyHiLink groovyELExpr Identifier " TODO: better matching. I am waiting to understand how it really works in groovy " syn region groovyClosureParamsBraces start=+|+ end=+|+ contains=groovyClosureParams " syn match groovyClosureParams "[ a-zA-Z0-9_*]\+" contained " GroovyHiLink groovyClosureParams Identifier " next line disabled, it can cause a crash for a long line "syn match groovyStringError +"\([^"\\]\|\\.\)*$+ " disabled: in groovy strings or characters are written the same " syn match groovyCharacter "'[^']*'" contains=groovySpecialChar,groovySpecialCharError " syn match groovyCharacter "'\\''" contains=groovySpecialChar " syn match groovyCharacter "'[^\\]'" syn match groovyNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" syn match groovyNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" syn match groovyNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" syn match groovyNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" " unicode characters syn match groovySpecial "\\u\d\{4\}" syn cluster groovyTop add=groovyString,groovyCharacter,groovyNumber,groovySpecial,groovyStringError if exists("groovy_highlight_functions") if groovy_highlight_functions == "indent" syn match groovyFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses syn region groovyFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses syn match groovyFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses syn region groovyFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses else " This line catches method declarations at any indentation>0, but it assumes " two things: " 1. class names are always capitalized (ie: Button) " 2. method names are never capitalized (except constructors, of course) syn region groovyFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,groovyComment,groovyLineComment,@groovyClasses endif syn match groovyBraces "[{}]" syn cluster groovyTop add=groovyFuncDef,groovyBraces endif if exists("groovy_highlight_debug") " Strings and constants syn match groovyDebugSpecial contained "\\\d\d\d\|\\." syn region groovyDebugString contained start=+"+ end=+"+ contains=groovyDebugSpecial syn match groovyDebugStringError +"\([^"\\]\|\\.\)*$+ syn match groovyDebugCharacter contained "'[^\\]'" syn match groovyDebugSpecialCharacter contained "'\\.'" syn match groovyDebugSpecialCharacter contained "'\\''" syn match groovyDebugNumber contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" syn match groovyDebugNumber contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" syn match groovyDebugNumber contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" syn match groovyDebugNumber contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" syn keyword groovyDebugBoolean contained true false syn keyword groovyDebugType contained null this super syn region groovyDebugParen start=+(+ end=+)+ contained contains=groovyDebug.*,groovyDebugParen " to make this work you must define the highlighting for these groups syn match groovyDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen syn match groovyDebug "\<p\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen syn match groovyDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen syn match groovyDebug "\<trace[SL]\=\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen syn cluster groovyTop add=groovyDebug if version >= 508 || !exists("did_c_syn_inits") GroovyHiLink groovyDebug Debug GroovyHiLink groovyDebugString DebugString GroovyHiLink groovyDebugStringError groovyError GroovyHiLink groovyDebugType DebugType GroovyHiLink groovyDebugBoolean DebugBoolean GroovyHiLink groovyDebugNumber Debug GroovyHiLink groovyDebugSpecial DebugSpecial GroovyHiLink groovyDebugSpecialCharacter DebugSpecial GroovyHiLink groovyDebugCharacter DebugString GroovyHiLink groovyDebugParen Debug GroovyHiLink DebugString String GroovyHiLink DebugSpecial Special GroovyHiLink DebugBoolean Boolean GroovyHiLink DebugType Type endif endif " Match all Exception classes syn match groovyExceptions "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>" if !exists("groovy_minlines") let groovy_minlines = 10 endif exec "syn sync ccomment groovyComment minlines=" . groovy_minlines " ################### " Groovy stuff " syn match groovyOperator "|[ ,a-zA-Z0-9_*]\+|" " All groovy valid tokens " syn match groovyTokens ";\|,\|<=>\|<>\|:\|:=\|>\|>=\|=\|==\|<\|<=\|!=\|/\|/=\|\.\.|\.\.\.\|\~=\|\~==" " syn match groovyTokens "\*=\|&\|&=\|\*\|->\|\~\|+\|-\|/\|?\|<<<\|>>>\|<<\|>>" " Must put explicit these ones because groovy.vim mark them as errors otherwise " syn match groovyTokens "<=>\|<>\|==\~" "syn cluster groovyTop add=groovyTokens " Mark these as operators " Hightlight brackets " syn match groovyBraces "[{}]" " syn match groovyBraces "[\[\]]" " syn match groovyBraces "[\|]" if exists("groovy_mark_braces_in_parens_as_errors") syn match groovyInParen contained "[{}]" GroovyHiLink groovyInParen groovyError syn cluster groovyTop add=groovyInParen endif " catch errors caused by wrong parenthesis syn region groovyParenT transparent matchgroup=groovyParen start="(" end=")" contains=@groovyTop,groovyParenT1 syn region groovyParenT1 transparent matchgroup=groovyParen1 start="(" end=")" contains=@groovyTop,groovyParenT2 contained syn region groovyParenT2 transparent matchgroup=groovyParen2 start="(" end=")" contains=@groovyTop,groovyParenT contained syn match groovyParenError ")" GroovyHiLink groovyParenError groovyError " catch errors caused by wrong square parenthesis syn region groovyParenT transparent matchgroup=groovyParen start="\[" end="\]" contains=@groovyTop,groovyParenT1 syn region groovyParenT1 transparent matchgroup=groovyParen1 start="\[" end="\]" contains=@groovyTop,groovyParenT2 contained syn region groovyParenT2 transparent matchgroup=groovyParen2 start="\[" end="\]" contains=@groovyTop,groovyParenT contained syn match groovyParenError "\]" " ############################### " java.vim default highlighting if version >= 508 || !exists("did_groovy_syn_inits") if version < 508 let did_groovy_syn_inits = 1 endif GroovyHiLink groovyFuncDef Function GroovyHiLink groovyBraces Function GroovyHiLink groovyBranch Conditional GroovyHiLink groovyUserLabelRef groovyUserLabel GroovyHiLink groovyLabel Label GroovyHiLink groovyUserLabel Label GroovyHiLink groovyConditional Conditional GroovyHiLink groovyRepeat Repeat GroovyHiLink groovyExceptions Exception GroovyHiLink groovyAssert Statement GroovyHiLink groovyStorageClass StorageClass GroovyHiLink groovyMethodDecl groovyStorageClass GroovyHiLink groovyClassDecl groovyStorageClass GroovyHiLink groovyScopeDecl groovyStorageClass GroovyHiLink groovyBoolean Boolean GroovyHiLink groovySpecial Special GroovyHiLink groovySpecialError Error GroovyHiLink groovySpecialCharError Error GroovyHiLink groovyString String GroovyHiLink groovyRegexChar String GroovyHiLink groovyCharacter Character GroovyHiLink groovySpecialChar SpecialChar GroovyHiLink groovyNumber Number GroovyHiLink groovyError Error GroovyHiLink groovyStringError Error GroovyHiLink groovyStatement Statement GroovyHiLink groovyOperator Operator GroovyHiLink groovyComment Comment GroovyHiLink groovyDocComment Comment GroovyHiLink groovyLineComment Comment GroovyHiLink groovyConstant Constant GroovyHiLink groovyTypedef Typedef GroovyHiLink groovyTodo Todo GroovyHiLink groovyCommentTitle SpecialComment GroovyHiLink groovyDocTags Special GroovyHiLink groovyDocParam Function GroovyHiLink groovyCommentStar groovyComment GroovyHiLink groovyType Type GroovyHiLink groovyExternal Include GroovyHiLink htmlComment Special GroovyHiLink htmlCommentPart Special GroovyHiLink groovySpaceError Error GroovyHiLink groovyJDKBuiltin Special GroovyHiLink groovyJDKOperOverl Operator GroovyHiLink groovyJDKMethods Function endif delcommand GroovyHiLink let b:current_syntax = "groovy" if main_syntax == 'groovy' unlet main_syntax endif let b:spell_options="contained" let &cpo = s:cpo_save unlet s:cpo_save " vim: ts=8