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/emacs/24.3/lisp/progmodes
Viewing File: /usr/share/emacs/24.3/lisp/progmodes/ruby-mode.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:53:43 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/progmodes/ruby-mode.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (custom-declare-group 'ruby nil "Major mode for editing Ruby code." :prefix "ruby-" :group 'languages) (defconst ruby-keyword-end-re (byte-code "\300\301\302\"\203 \301\207\303\207" [string-match "\\_>" "ruby" "\\>"] 3)) #@38 Keywords at the beginning of blocks. (defconst ruby-block-beg-keywords '("class" "module" "def" "if" "unless" "case" "while" "until" "for" "begin" "do") (#$ . 784)) #@42 Regexp to match the beginning of blocks. (defconst ruby-block-beg-re (regexp-opt ruby-block-beg-keywords) (#$ . 955)) #@52 Regexp to match keywords that nest without blocks. (defconst ruby-non-block-do-re (concat "\\(for\\|rescue\\|until\\|while\\)" ruby-keyword-end-re) (#$ . 1079)) #@52 Regexp to match where the indentation gets deeper. (defconst ruby-indent-beg-re "^\\(\\s *\\(?:class\\|def\\|module\\)\\|\\(?:begin\\|case\\|for\\|if\\|un\\(?:less\\|til\\)\\|while\\)\\)\\_>" (#$ . 1246)) #@57 Modifiers that are the same as the beginning of blocks. (defconst ruby-modifier-beg-keywords '("if" "unless" "while" "until") (#$ . 1457)) #@60 Regexp to match modifiers same as the beginning of blocks. (defconst ruby-modifier-beg-re (regexp-opt ruby-modifier-beg-keywords) (#$ . 1602)) #@28 Regexp to match modifiers. (defconst ruby-modifier-re (byte-code "\301\302B!\207" [ruby-modifier-beg-keywords regexp-opt "rescue"] 3) (#$ . 1751)) #@78 Keywords where the indentation gets shallower in middle of block statements. (defconst ruby-block-mid-keywords '("then" "else" "elsif" "when" "rescue" "ensure") (#$ . 1905)) #@85 Regexp to match where the indentation gets shallower in middle of block statements. (defconst ruby-block-mid-re (regexp-opt ruby-block-mid-keywords) (#$ . 2085)) #@35 Regexp to match boolean keywords. (defconst ruby-block-op-keywords '("and" "or" "not") (#$ . 2253)) #@42 Regexp to match hanging block modifiers. (defconst ruby-block-hanging-re (byte-code "\302\303 \"!\207" [ruby-modifier-beg-keywords ruby-block-op-keywords regexp-opt append] 4) (#$ . 2359)) (defconst ruby-block-end-re "\\_<end\\_>") #@65 Regexp to match the beginning of a defun, in the general sense. (defconst ruby-defun-beg-re "\\(def\\|class\\|module\\)" (#$ . 2598)) #@45 Regexp to match the beginning of a heredoc. (defconst ruby-here-doc-beg-re "\\(<\\)<\\(-\\)?\\(\\([a-zA-Z0-9_]+\\)\\|[\"]\\([^\"]+\\)[\"]\\|[']\\([^']+\\)[']\\)" (#$ . 2738)) #@122 Return a regexp to find the end of a heredoc. This should only be called after matching against `ruby-here-doc-beg-re'. (defalias 'ruby-here-doc-end-match #[nil "\300\301\302!\205\303\304\301\305!\206\301\306!\206\301\307!!Q\207" ["^" match-string 2 "[ ]*" regexp-quote 4 5 6] 5 (#$ . 2920)]) (defconst ruby-delimiter (concat "[?$/%(){}#\"'`.:]\\|<<\\|\\[\\|\\]\\|\\_<\\(" ruby-block-beg-re "\\)\\_>\\|" ruby-block-end-re "\\|^=begin\\|" ruby-here-doc-beg-re)) #@55 Regexp to match where the indentation gets shallower. (defconst ruby-negative (concat "^[ ]*\\(\\(" ruby-block-mid-re "\\)\\>\\|" ruby-block-end-re "\\|}\\|\\]\\)") (#$ . 3395)) #@28 Regexp to match operators. (defconst ruby-operator-re "[-,.+*/%&|^~=<>:]" (#$ . 3580)) #@51 List of characters that symbol names may contain. (defconst ruby-symbol-chars "a-zA-Z0-9_" (#$ . 3673)) #@26 Regexp to match symbols. (defconst ruby-symbol-re (concat "[" ruby-symbol-chars "]") (#$ . 3783)) (define-abbrev-table 'ruby-mode-abbrev-table nil "Abbrev table in use in Ruby mode buffers.") #@27 Keymap used in Ruby mode. (defvar ruby-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210)\207" [map make-sparse-keymap define-key [134217730] ruby-backward-sexp [134217734] ruby-forward-sexp [134217744] ruby-beginning-of-block [134217742] ruby-end-of-block [134217745] ruby-indent-exp "{" ruby-toggle-block] 4) (#$ . 3981)) #@35 Syntax table to use in Ruby mode. (defvar ruby-mode-syntax-table (byte-code "\301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\320#\210\302\322\320#\210\302\323\316#\210\302\324\316#\210\302\325\316#\210\302\326\316#\210\302\327\316#\210\302\330\316#\210\302\331\316#\210\302\332\316#\210\302\333\316#\210\302\334\316#\210\302\335\316#\210\302\336\337#\210\302\340\341#\210\302\342\343#\210\302\344\345#\210\302\346\347#\210\302\350\351#\210)\207" [table make-syntax-table modify-syntax-entry 39 "\"" 34 96 35 "<" 10 ">" 92 "\\" 36 "." 63 "_" 95 58 60 62 38 124 37 61 47 43 42 45 59 40 "()" 41 ")(" 123 "(}" 125 "){" 91 "(]" 93 ")["] 4) (#$ . 4399)) (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\313\306\307&\210\300\314\315\316\304\313\306\307&\210\300\317\320\321\306\307%\210\300\322\323\324\306\307%\210\300\325\326\327\330\331\306\307&\210\300\332\333\334\306\307%\210\300\335\320\336\304\305\306\307&\210\300\337\320\340\304\305\306\307&\210\341\301\342\343#\210\341\310\342\344#\210\341\314\342\344#\210\341\317\342\343#\207" [custom-declare-variable ruby-indent-tabs-mode nil "Indentation can insert tabs in Ruby mode if this is non-nil." :type boolean :group ruby ruby-indent-level 2 "Indentation of Ruby statements." integer ruby-comment-column 32 "Indentation column of comments." ruby-deep-arglist t "Deep indent lists in parenthesis when non-nil.\nAlso ignores spaces after parenthesis when 'space." ruby-deep-indent-paren '(40 91 93 t) "Deep indent lists in parenthesis when non-nil.\nThe value t means continuous line.\nAlso ignores spaces after parenthesis when 'space." ruby-deep-indent-paren-style 'space "Default deep indent style." :options (t nil space) ruby-encoding-map '((shift_jis . cp932) (shift-jis . cp932)) "Alist to map encoding name from Emacs to Ruby." ruby-insert-encoding-magic-comment "Insert a magic Emacs 'coding' comment upon save if this is non-nil." ruby-use-encoding-map "Use `ruby-encoding-map' to set encoding magic comment if this is non-nil." put safe-local-variable booleanp integerp] 8) #@50 Create an imenu index of methods inside a block. (defalias 'ruby-imenu-create-index-in-block #[(prefix beg end) "\306\211\211\211\211\211\211b\210\307\310\311#\203\320\312\224\313\314!\315\225\313\316!\206/\313\317!\315\224 \320\230\203N\203C\fP\f\nBB\202 \321\230\203\202\203r\322\323\f\"\203m\315\324O\f\316\306OP\202q\fP\f\nBB\325!\210\202\f\326\230\203\226\203\254\315\324O\202\254\203\244\315\324O\327\fQ\f\nBB\325!\210`\330\f\203\276\331\202\277\332P #\244b\210\202.\207" [sing decl pos next name case-fold-search nil re-search-forward "^\\s *\\(\\(class\\s +\\|\\(class\\s *<<\\s *\\)\\|module\\s +\\)\\([^(<\n ]+\\)\\|\\(def\\|alias\\)\\s +\\([^(\n ]+\\)\\)" t 3 match-string 5 0 4 6 "alias" "def" string-match "^self." -1 ruby-accurate-end-of-block "self" "::" ruby-imenu-create-index-in-block "." "#" index-alist beg end prefix] 7 (#$ . 6598)]) #@53 Create an imenu index of all methods in the buffer. (defalias 'ruby-imenu-create-index #[nil "\300\301e\301#\237\207" [ruby-imenu-create-index-in-block nil] 4 (#$ . 7548)]) #@17 TODO: document. (defalias 'ruby-accurate-end-of-block #[(&optional end) "\302\206d\303\304 #\211\205#\305 8\306Y\205#`W\205#\202*\207" [end state nil apply ruby-parse-partial 2 0] 4 (#$ . 7727)]) #@54 Set up initial buffer-local variables for Ruby mode. (defalias 'ruby-mode-variables #[nil "\306!\210  \307\305!\210\310\307\311!\210\312 \307\313!\210\314 \307\315!\210\316 \307\317!\210\307\320!\210\321\307\322!\210\312\307\323!\210\312\307\324!\210\325P\307\326!\210\307\327!\210\312\211\207" [ruby-mode-syntax-table ruby-mode-abbrev-table local-abbrev-table ruby-indent-tabs-mode indent-tabs-mode indent-line-function set-syntax-table make-local-variable ruby-indent-line require-final-newline t comment-start "# " comment-end "" comment-column comment-start-skip "#+ *" parse-sexp-ignore-comments parse-sexp-lookup-properties paragraph-start "$\\|" paragraph-separate paragraph-ignore-fill-prefix ruby-comment-column page-delimiter] 2 (#$ . 7942)]) #@70 Insert a magic comment header with the proper encoding if necessary. (defalias 'ruby-mode-set-encoding #[nil "\212~\210eb\210\306\307\310\311#\205\237eb\210\206 \211\203'\312\n\313\"\206&\314\n\310\"\n\203<\315 \2037\n\f\236A\2068\n!\202=\316\317\320!\203H\321\322!\210\317\323!\203\216\324\322!\n\230?\205\236\322\224b\210`\322\225|\210\317\325!\203\211\326\310x\211\327U\203y\330c\210\331u\210\202\210 \331U\203\205\326c\210\202\210\310u\210)\nc\202\236\317\332!\206\236\205\236\333\n\334\261))\207" [coding-system-for-write buffer-file-coding-system coding-system ruby-use-encoding-map ruby-encoding-map n re-search-forward "[^-]" nil t coding-system-get mime-charset coding-system-change-eol-conversion symbol-name "ascii-8bit" looking-at "^#!" beginning-of-line 2 "\\s *#.*-*-\\s *\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]*\\)\\s *\\(;\\|-*-\\)" match-string "-*-" " " 0 " " -1 "\\s *#.*coding\\s *[:=]" "# -*- coding: " " -*-\n" ruby-insert-encoding-magic-comment] 5 (#$ . 8728)]) #@47 Return the indentation level of current line. (defalias 'ruby-current-indentation #[nil "\212\300 \210\301 \210i)\207" [beginning-of-line back-to-indentation] 1 (#$ . 9750)]) #@51 Correct the indentation of the current Ruby line. (defalias 'ruby-indent-line #[(&optional ignored) "\300\301 !\207" [ruby-indent-to ruby-calculate-indent] 2 (#$ . 9931) nil]) #@36 Indent the current line to COLUMN. (defalias 'ruby-indent-to #[(column) "\205Y\304\211\211\305W\203\306\307!\210i\310 \210`\311 \210i\312\304x\210 \nY\2031 \nZ\2023\305n\203E\nU\203E\313 \\!\202X\313\n!\210 `|\210\310 \210j\210\313 \\!+\207" [column beg top shift nil 0 error "invalid nest" beginning-of-line back-to-indentation " " move-to-column] 3 (#$ . 10113)]) #@205 Return t if the character before POS is a special character. If omitted, POS defaults to the current point. Special characters are `?', `$', `:' when preceded by whitespace, and `\' when preceded by `?'. (defalias 'ruby-special-char-p #[(&optional pos) "\206`\211SfeW\205SSf\211\303=\206<\n\304=\206<\n\305=\2033 ?\206< z\306=\206<\n\307=\205< \303=*\207" [pos b c 63 36 58 32 92] 4 (#$ . 10509)]) (defalias 'ruby-singleton-class-p #[(&optional pos) "\212\203b\210\301v\210n\204`Sf\302=?\205\303\304!)\207" [pos -1 95 looking-at "class\\s *<<"] 2]) #@17 TODO: document. (defalias 'ruby-expr-beg #[(&optional option) "\212\306\307!\210\310\307x`n\203\311\202\253\312u\210\313\314!\203.`Sfz\315=\204*\316 \203.\307\202\253\n\317=\203C \320W\203Cb\210\321 ?\202\253\313 !\206\253\313\322!\206\253\313\323!\203k\n\324=?\206\253n\206\253\212\312u\210\313\325!)\206\253\313\f!\205\253 \307x\205\253\313\326\327 #\330\"!\203\222\320\225b\210\313\331!?\202\253\n\332=\203\236\313\333!\202\253\n\334=\203\252\313\335!\202\253\307+\207" [start space option ruby-operator-re ruby-symbol-re ruby-symbol-chars store-match-data nil " " t -1 looking-at "\\?" 119 ruby-special-char-p heredoc 0 ruby-singleton-class-p "[\\[({,;]" "[!?]" modifier "\\Sw$" regexp-opt append words "\\s_\\|!" expr-qstr "[a-zA-Z][a-zA-z0-9_]* +%[^ ]" expr-re "[a-zA-Z][a-zA-z0-9_]* +/[^ ]" ruby-block-beg-keywords ruby-block-op-keywords ruby-block-mid-keywords] 6 (#$ . 11088)]) #@17 TODO: document. (defalias 'ruby-forward-string #[(term &optional end no-error expand) "\306\307! \203\310\311Q\202\312\313Q\314\n #\203J\315\224\203.\316\317 \320$\202A`Sf =\203;\fS\202=\fT\211\321V\203J\322u\210\202\323\f!\206\\\203Y\320\202\\\324\325!+\207" [term expand re c n end 1 string-to-char "[^\\]\\(\\\\\\\\\\)*\\([" "]\\|\\(#{\\)\\)" "[^\\]\\(\\\\\\\\\\)*[" "]" re-search-forward 3 ruby-forward-string "}{" nil 0 -1 zerop error "unterminated string" no-error] 5 (#$ . 12016)]) #@17 TODO: document. (defalias 'ruby-deep-indent-paren-p #[(c) "<\203 \305 \"\211\203\nA\206 \202 >\205 )\207 =\203( \207 \306=\205/\f\207" [ruby-deep-indent-paren c deep ruby-deep-indent-paren-style ruby-deep-arglist assoc 40] 4 (#$ . 12539)]) #@42 TODO: document throughout function body. (defalias 'ruby-parse-partial #[(&optional end in-string nest depth pcol indent) "\204\306 \204\f\306\307\n \310#\203\216`\311\211\211@A\306\224b\210`Sf\312>\2037\313\314!\2037Ab\210\202\215\313\315!\203Vm\204M\316``T{ \317\211$\204\215`B b\210\202\215\313\320!\203qm\204h\307\321 \317#\204\215`B b\210\202\215\313\322!\203~Ab\210\202\215\313\323!\203\247m\204\240\324\325!\203\240\316\323 \317\211$\204\215`B b\210\202\215Ab\210\202\215\313\326!\203Tm\204M\324\327!\203M\313\330!\204M\313\331!\203M\332\224b\210`Sf\333>?\334\332!\211@\335\230\203\336\336\202@\337\230\203\352\340\202@\341\230\203\366\342\202@\343\230\203\344\202\f\203@\345\230\203\345@P@ \203 \316 \317\f$\202A\f\203.\316@ \317\211$\202A\307@\345\230\203:\346\202>\347@P \317#\204\215`B b\210\202\215Ab\210\202\215\313\350!\203s\324 \203l\313\351!\203l\306\225b\210\202\215Ab\210\202\215\313\352!\203\203Ab\210\332u\210\202\215\313\353!\203\222\332y\210`b\210\202\215\313\354!\203\355\355\311f!\211C\203\330\311f\356=\203\256\324 \203\330C\357=\203\300\313\360!\203\300\306\225SA`fABDBDABEBE\306\202\345`fABDBDT)Ab\210\202\215\313\361!\203\355\362\311f!!\203 E@AEAE\202\fSDADAb\210\202\215\313F!\203bn\2047\363u\210`f\211@\364=\204[@\365=\204[Ab\210`f\211@\364=\204[@\366=\204[@\367=\204[DADSAb\210\202\215\313\370!\203\211n\204v\363u\210`f\364=\204\202\311ABDBDT\306\225b\210\202\215\313\371G\372Q!\203\373 H\374\216\313\375IP!?\206\255\212\376 \210\313J!)?*\203n\204\311\363u\210`f\211@\364=\204@\365=\204Ab\203`f\211@\203@\366=\204\377\311w\203\306\224b\203\313K!\203\371\324\201Q!\203Ab\203\311ABDB\211D\203TAb\210\202\215\313\201R!\203-\332\224b\210\316\334\332! \317#\210\202\215\313\201S!\203<\306\225b\210\202\215\313\201T!\203K\306\225b\210\202\215\313\201U!\204k\313\201V!\204k\313\201W!\204k\313\201X!\203r\306\225b\210\202\215\313\201Y!\203\224\307\201Z \317#\203\212\332y\210\202\215\306\225B b\210\202\215\313\201[!\203@\324\201\\!\2039\313\201]!\2039\201^\334\201_!\206\274\334\201`!!\332\224\203\311\201a P\306\225bL\201b MBDE \257NM`V\203\370\201c\201dMN#\211N\204\340N@BNA@D\201`N8\201eN8E\201_N8\307\201f \201gQ \310#\203.\332y\210\2025LB b\210+\202\215Ab\210\202\215\313\201h!\203OAb\210\202\215\313O!\203}\201i\201P!\203}\307\201j P\317#\203r\332y\210\202\215\306\225BPb\210\202\215\201k\201l\201m`A{\"!\210,BDEF\207" [depth indent ruby-delimiter end expand re 0 re-search-forward move nil (64 36) looking-at "\\sw" "[\"`]" ruby-forward-string t "'" "[^\\]\\(\\\\\\\\\\)*'" "/=" "/" ruby-expr-beg expr-re "%" expr-qstr "%=" "%[QqrxWw]?\\([^a-zA-Z0-9 \n]\\)" 1 (113 119) match-string "[" "][" "{" "}{" "(" ")(" "<" "><" "\\" "\\\\[^\\]*\\\\" "[^\\]\\(\\\\\\\\\\)*" "\\?" "?\\(\\\\C-\\|\\\\M-\\)*\\\\?." "\\$" "#" "[\\[{(]" ruby-deep-indent-paren-p 123 space ".\\s +[^# \n]" "[])}]" matching-paren -1 95 46 33 63 "def\\s +[^(\n;]*" "\\_<\\(" "\\)\\_>" match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) "do" back-to-indentation " " w pnt in-string deep nest pcol ruby-block-end-re ruby-block-beg-re save-match-data-internal ruby-keyword-end-re ruby-non-block-do-re ruby-modifier-re id-end line-end-position state ruby-here-doc-beg-re ruby-indent-point modifier ":\\(['\"]\\)" ":\\([-,.+*/%&|^~<>]=?\\|===?\\|<=>\\|![~=]?\\)" ":\\([a-zA-Z_][a-zA-Z_0-9]*[!?=]?\\)?" "\\.\\.\\.?" "\\.[0-9]+" "\\.[a-zA-Z_0-9]+" "\\." "^=begin" "^=end" "<<" heredoc "<<\\(-\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)" regexp-quote 4 2 "\\s *" point-at-eol apply ruby-parse-partial 3 "^" "$" "^__END__$" boundp ruby-here-doc-end-match error format "bad string %s"] 6 (#$ . 12801)]) #@17 TODO: document. (defalias 'ruby-parse-region #[(start end) "\303\212 \203 b\210\202\304 \210\214`\n}\210\n`V\203%\305\306\n#\211\204*@A@@\3078\3108@@F)\207" [state start end nil ruby-beginning-of-indent apply ruby-parse-partial 2 3] 5 (#$ . 16775)]) #@69 Return the indentation level in spaces NEST levels deeper than POS. (defalias 'ruby-indent-size #[(pos nest) " \206\303\n_\\\207" [pos nest ruby-indent-level 1] 3 (#$ . 17045)]) #@58 Return the proper indentation level of the current line. (defalias 'ruby-calculate-indent #[(&optional parse-start) "\212\306 \210`\307\211\211\211\211\310\311!\210\307f\205\312\307f!\313-./\203./b\210\2024\314 \210`/\315 \210i\316/.\"\211@\203J\307\202n A@@\203 A@A\211b\210\317 A@@!\2110\203\3150\320=\203 A@@ =\203\321\311!\210iS\202\351\316`.\"1\32218\205\240\32218\313V\205\2401A@Ab\206\240\320)\203\261\323v\210\324i\322 8\"\202\351i0\325=\204\351 \203\304S\202\351\324S\326\"\202\351\327 8\203\333\327 8b\210\202\342/b\210\315 \210\324i\322 8\" A@@ =\203\317\312 !!\203\330\331 !!\203i)\202n\322 8\203Y\322 8\313V\203Y A@A\204!\332\333!\210 A@Ab\210\323v\210`\334\335!\203Q\327 8\203@\327 8b\210\202G/b\210\315 \210\324i\322 8\"\202ni2\\\202n\322 8\203n\322 8\313W\203n\324i\322 8\"\203.b\210\307\210`\306 \210\317 !\204\235\3363\f\320#\203\235\313\225f\337=\2042Z\202\212\306 \210o)\204\317\320!\204\263 A@@\204\307\211454\204\336\340\307x\210`5\306 \210\336\3415\320#\203\327\306 \210\202\271\320\2114\203\276*\307\210\342\307x\210\307`65\306 \210\336\3436\320#\203`S\2115\203\3445!\204\316/5\"\211\203 @\203\3075\202\3575\206$6b\210\342\307x\2105\2039 @\20396\202= A@A\316/`\"*o\204L\323u\210\3347!\203x8\307x\203x\334\3459\346Q!\203x`\327 8=\204x\212\313\225b\210\334\347!)\203\336\334:!\203\344 \204`f;\316 \206\217/`\"@?\205\332`f\350=\203\317\212l\204\245\323u\210\330\351\307\320#\203\312\340\307x\210l?\205\313\323u\210\334\352!?\205\313\323v\210\334\335!?\202\313\320)\205\332;\353=?\205\332\320\211)\203\n\204\n\334\3459\346Q!\204\n\317\320!\325=\203\no\204\n~\210 \206/b\210\310\311!\210i\202 A@@\203\2022\\.b\210\306 \210\310\311!\210\334\354!\20322\\\2023. \207" [indent paren op-end begin eol state beginning-of-line nil skip-syntax-forward " " matching-paren 0 ruby-beginning-of-indent back-to-indentation ruby-parse-region ruby-deep-indent-paren-p t skip-syntax-backward 2 -1 ruby-indent-size space 1 3 search-backward char-to-string error "invalid nest" looking-at "do\\>[^_]" re-search-forward 95 " \n" "^\\s *#" " " "#" ruby-special-char-p "\\<\\(" "\\)\\>" "[a-z_]" 124 "|" "{" 44 "\\.[^.]" case-fold-search ruby-indent-point parse-start deep s ruby-indent-level ruby-negative done end pos ruby-symbol-re ruby-symbol-chars ruby-block-hanging-re ruby-operator-re c] 9 (#$ . 17232)]) #@139 Move backward to the beginning of the current top-level defun. With ARG, move backward multiple defuns. Negative ARG means move forward. (defalias 'ruby-beginning-of-defun #[(&optional arg) "\302\303\304Q\305\306 \206\f\307$\205\310 \207" [ruby-defun-beg-re arg re-search-backward "^\\s *" "\\_>" nil t 1 beginning-of-line] 5 (#$ . 19751) "p"]) #@132 Move forward to the end of the current top-level defun. With ARG, move forward multiple defuns. Negative ARG means move backward. (defalias 'ruby-end-of-defun #[(&optional arg) "\301 \210\302\303P!\205 \304y\207" [ruby-block-end-re ruby-forward-sexp looking-back "^\\s *" 1] 3 (#$ . 20108) "p"]) #@105 Backtrack to a line which can be used as a reference for calculating indentation on the lines after it. (defalias 'ruby-beginning-of-indent #[nil "\301\302\303#\205\304\305!\204\306 \205\202\207" [ruby-indent-beg-re re-search-backward nil move ruby-in-ppss-context-p anything beginning-of-line] 4 (#$ . 20414)]) #@111 Move to the beginning (N < 0) or the end (N > 0) of the current block or blocks containing the current block. (defalias 'ruby-move-to-block #[(n) "`\306 \307\310W\203 \202\311\n\312Q!\313\211 \204\243\310W\203*o\202+m\204\243y\210\307\314!\204\213\307\315!\204\213\310V\203P\307\316!\203P\317\320!\210\202\213\310W\203c\307\320!\203c\321\316!\210\202\213\322 \fW\203r\323\202\213 \203\202\fU\203\202\323\202\213\fV\203\213\323 \203\212\324 \210\307\311\312Q!\203\237\313)\202\324 -\207" [n ruby-block-end-re ruby-block-beg-re done pos down ruby-calculate-indent looking-at 0 "\\<\\(" "\\)\\>" nil "^\\s *$" "^\\s *#" "^=begin\\>" re-search-forward "^=end\\>" re-search-backward current-indentation t back-to-indentation start orig ruby-block-mid-re] 6 (#$ . 20742)]) #@89 Move backward to the beginning of the current block. With ARG, move up multiple blocks. (defalias 'ruby-beginning-of-block #[(&optional arg) "\301\206\302[!\207" [arg ruby-move-to-block 1] 2 (#$ . 21567) "p"]) #@86 Move forward to the end of the current block. With ARG, move out of multiple blocks. (defalias 'ruby-end-of-block #[(&optional arg) "\301\206\302!\207" [arg ruby-move-to-block 1] 2 (#$ . 21786) nil]) #@116 Move forward across one balanced expression (sexp). With ARG, do it many times. Negative ARG means move backward. (defalias 'ruby-forward-sexp #[(&optional arg) "\247\203\302W\203\303[!\207\206\304\305\306\307\217\210 )\207" [arg i 0 ruby-backward-sexp 1 nil (byte-code "\304V\203\265\305\306!\210\307\310!\203\304\225b\210\307\311!\203!\304\225b\210\202\256\312\313w\210\307\314!\2034\315`\316\"b\210\202\256\307\317 \320Q!\203V`Sf\321=\204V`Sf\322=\204V\323 \210\316v\210\202\256\307\324!\203\205\316v\210\307\325!\204\\\307\326!\203q\327u\210\202\\\330\313w\304V\204\\\307\331!\203\256\316u\210\202\256\313\211\n\206\225\332 \206\225\307\333!\334\335\313 #\211A@\203\253\336\337\313w\210\202\211\n\210*S\211\202\313\207" [i ruby-block-beg-re expr state 0 skip-syntax-forward " " looking-at ",\\s *" "\\?\\(\\\\[CM]-\\)*\\\\?\\S " ",.:;|&^~=!?\\+\\-\\*" nil "\\s(" scan-sexps 1 "\\<\\(" "\\)\\>" 46 58 ruby-end-of-block "\\(\\$\\|@@?\\)?\\sw" "_" "::" 2 "." "\\?\\|!\\(=[~=>]\\|[^~=]\\)" ruby-expr-beg "%\\sw?\\Sw\\|[\"'`/]" apply ruby-parse-partial t "<"] 5) (((error) (forward-word 1)))] 3 (#$ . 21996) "p"]) #@116 Move backward across one balanced expression (sexp). With ARG, do it many times. Negative ARG means move forward. (defalias 'ruby-backward-sexp #[(&optional arg) "\247\203\302W\203\303[!\207\206\304\305\306\307\217\210 )\207" [arg i 0 ruby-forward-sexp 1 nil (byte-code "\303V\203\326\304\305x\210\306u\210\307\310!\203A\311`T\306\"b\210\312`Sf\313\"\203)\306u\210\202\317\314`Sf\315\"\203\317`SSf\313=\203\317\316u\210\202\317\307\317!\203c\320\303\225Sf!\321 !\203_\322\323\305x\324\"\324=\204N)\202\317\307\325!\203t\326 \203\317\306u\210\202\317\307\327!\204\317\324u\210\306v\210\312`Sf\330\"\204}\312`Sf\331\"\203\230\306u\210\202}\314`Sf\332\"\203\262\306u\210`Sf\305f=\203\306\306u\202\303\312`Sf\333\"\203\306\306u\210`Sf\334=\204}\307\n!\203\317\335 \210S\211\202\305\207" [i c ruby-block-end-re 0 " \n,.:;|&^~=!?\\+\\-\\*" nil -1 looking-at "\\s)" scan-sexps eql 37 memql (113 81 119 87 114 120) -2 "\\s\"\\|\\\\\\S_" char-to-string search-backward logand "\\" 1 "\\s.\\|\\s\\" ruby-special-char-p "\\s(" 95 46 (36 64) 58 : ruby-beginning-of-block] 4) (((error)))] 3 (#$ . 23160) "p"]) #@66 Indent each line in the balanced expression following the point. (defalias 'ruby-indent-exp #[(&optional ignored) "\305 \306\211\211\307\310\f\307\"\210\311\216\312 \210`\313 m?\205J\314 !\211\nV\203/\307\211\202< \nU\205J\205J\306\307\205J\315 !\210\312\316!\210\202.\207" [nest column top start here point-marker nil t set-marker-insertion-type ((byte-code "b\210\301\211\223\207" [here nil] 3)) beginning-of-line current-indentation ruby-calculate-indent ruby-indent-to 2] 6 (#$ . 24306) "*P"]) #@192 Return the current method name as a string. This string includes all namespaces. For example: #exit String#gsub Net::HTTP#active? File::open. See `add-log-current-defun-function'. (defalias 'ruby-add-log-current-method #[nil "\300\301\300\217\207" [nil (byte-code "\212\306\211\307\310\311 \312\313\314\f\315\316\317\260 \306\320#\2033\321\322!\321\323!\324\230\204*\nC\306\323\224b\210i\325 \210\307V\203]\310\326\327\f\330R\306\320#\203]\323\224b\210iW\2033\321\322! Bi\325 \210\2023\n\203\333\331\n\332\"\211A\203\326 @\333\230\203z A\306\202\261 @\334\230\203\207 A\202\261 \237##\203\260#@ @\230\203\241#A\237\306##A\211#\204\213 \237\210\202\213) \203\276\335 ! \241\210\202\300 \335 \322\"\336 \211$A@)P \306\241\210\202\332\337\nP) :\203\346\340\341 \342#\n\203\370 \203\364 \nP\202\371\n\202\371 ,\207" [indent mlist mname ruby-defun-beg-re ruby-symbol-re mn nil 0 re-search-backward "^[ ]*" "[ ]+" "\\(" "\\([A-Za-z_]" "*\\|\\.\\|::" "\\)" "+\\)" t match-string 2 1 "def" beginning-of-line "^[ ]*\\(class\\|module\\)[ ]+" "\\([A-Z]" "*\\)" split-string "\\.\\|::" "" "self" last "." "#" mapconcat identity "::" ml x] 11)] 3 (#$ . 24833)]) (defalias 'ruby-brace-to-do-end #[(orig end) "\304\211\nb\210`Sf\305=\205w\306\307!\210\212\310\304x\210n)\204 \311c\210\312c\210\313 m\2045\304fz\314=\2035\315c\210 b\210\306\316!\210`Sfz\314=\203H\315c\210\317c\210\313 \320\321!\203e\316\224\204\\\315c\210\322\225Tb\210\323\324!\210\320\325!\204n\311c\210\326 \"\210 b\210\327*\207" [end-marker beg-marker end orig nil 125 delete-char -1 " " "\n" "end" point-marker 119 " " 1 "do" looking-at "\\(\\s \\)*|" 0 search-forward "|" "\\s *$" indent-region t] 3]) (defalias 'ruby-do-end-to-brace #[(orig end) "\306\211\211\211\f\307Zb\210\310 !\205\202\311\307!\210\312 \313c\210b\210\311\314!\210\315c\210\312 \310\316!\203E\311\317\320\225\320\224\321#!\210\306u\210\322\323\324 \325#\210\212\326\306w\210`\nb\210\326\306x\210`) W\204s\327 !\327!U\203~\330i Z\314#W\203~\331\332!\210\nb\210\331\332!\210 b\210\325,\207" [end-pos beg-pos end-marker beg-marker end ruby-block-end-re nil 3 looking-at delete-char point-marker "}" 2 "{" "\\s +|" - 0 1 re-search-forward "|" line-end-position t " \n " line-number-at-pos + just-one-space -1 orig fill-column] 5]) #@188 Toggle block type from do-end to braces or back. The block must begin on the current line or above it and end after the point. If the result is do-end block, it will always be multiline. (defalias 'ruby-toggle-block #[nil "`\304\211\304\210\305\306!\2052`\307 \310\216\311 \210*`\211\nV\2052\312\224\203.\313 \"\2022\314 \"?\2058\nb+\207" [end beg start save-match-data-internal nil re-search-backward "\\({\\)\\|\\_<do\\(\\s \\|$\\||\\)" match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ruby-forward-sexp 1 ruby-brace-to-do-end ruby-do-end-to-brace] 4 (#$ . 27199) nil]) (byte-code "\300\301!\210\302\303!\210\304\305\306\"\210\304\307\310\"\210\304\311\312\"\210\304\313\314\"\207" [(lambda (#1=#:def-tmp-var) (defconst ruby-percent-literal-beg-re #1# "Regexp to match the beginning of percent literal.")) "\\(%\\)[qQrswWx]?\\([[:punct:]]\\)" (lambda (#1#) (defconst ruby-syntax-methods-before-regexp #1# "Methods that can take regexp as the first argument.\nIt will be properly highlighted even when the call omits parens.")) ("gsub" "gsub!" "sub" "sub!" "scan" "split" "split!" "index" "match" "assert_match" "Given" "Then" "When") defalias ruby-syntax-propertize-function #[(start end) "b\210\306 !\210\307 !\210` \211b\210` W\205\310\311 \312#\205\313\224\203H\313\224\313\225\212\314\315\316\224!8)?\2056\317\n\203D\320\f \321\n$\210+\202\314\224\204R\322\224\203\227\323\324!\211A\322 \233\241\210\325 !\210)\326\224\203{\326\224\326\225\327\n\203z\320\f \321\n$\210+\314\224\203\314\224\314\225\330\n\203\223\320\f \321\n$\210+\202\331\224\203\250\320\331\224\331\225\321\332$\210\202\333\224\203\271\320\333\224\333\225\321\332$\210\202\334\224\203\370\323\324!\211A\335 \233\241\210\325 !\210)\336\224\336\225\337\316\224!?\205\346\320\336\224\336\225\321\340$\210\306 !\n\203\364\320\f \321\n$\210+\202\335\224\203\323\324!\211A\341 \233\241\210\325 !\210)\320\313\224\313\225\321\342$\210\343 !\210\202*\207" [start end syntax me mb md ruby-syntax-propertize-heredoc ruby-syntax-enclosing-percent-literal re-search-forward "\\([?$]\\)[#\"'`]\\|\\(^\\|[[=(,~?:;<>]\\|\\(?:^\\|\\s \\)\\(?:&&\\|and\\|elsif\\|if\\|not\\|or\\|un\\(?:less\\|til\\)\\|wh\\(?:en\\|ile\\)\\|||\\)\\|\\_<\\(?:Given\\|Then\\|When\\|assert_match\\|gsub!?\\|index\\|match\\|s\\(?:can\\|plit!?\\|ub!?\\)\\)\\)\\s *\\(/\\)[^/\n\\\\]*\\(?:\\\\.[^/\n\\\\]*\\)*\\(/\\)\\|^=en\\(d\\)\\_>\\|^\\(=\\)begin\\_>\\|\\(<\\)<\\(-\\)?\\(\\([a-zA-Z0-9_]+\\)\\|[\"]\\([^\"]+\\)[\"]\\|[']\\([^']+\\)[']\\).*\\(\n\\)\\|\\(?:^\\|[[ \n<+(,=]\\)\\(%\\)[qQrswWx]?\\([[:punct:]]\\)" t 1 3 syntax-ppss 0 (9) put-text-property syntax-table 4 match-data ints set-match-data 2 (7 . 47) (7 . 47) 5 (14) 6 13 14 7 ruby-singleton-class-p #2=(7) 28 #5=(15) ruby-syntax-propertize-percent-literal] 8 "Syntactic keywords for Ruby mode. See `syntax-propertize-function'."] ruby-syntax-propertize-heredoc #[(limit) "\305 \306\307 8\310=\205h\212\311 8b\210\312 \210\313\n\314 \315#\2030\316\317\224!\204\320 \321PB\202)`A\203@\311 8b\210\237\203_\313\211A@\f\322#\203_\204@\323`S`\324\325$\210\202@` W\205g b)*\207" [res ppss ruby-here-doc-beg-re start limit syntax-ppss nil 3 10 8 beginning-of-line re-search-forward line-end-position t ruby-singleton-class-p 0 ruby-here-doc-end-match "\n" move put-text-property syntax-table #2#] 5] ruby-syntax-enclosing-percent-literal #[(limit) "\304 `\305 8\306=\205$\307 8b\210\310\n!\203\311 !\210`W\205$b*\207" [start state ruby-percent-literal-beg-re limit syntax-ppss 3 t 8 looking-at ruby-syntax-propertize-percent-literal] 2] ruby-syntax-propertize-percent-literal #[(limit) "\304\224b\210\305\306 8\307=\205)\310f\311!\312 HA\206!\313\314\"A\310\211\315\316\217,\207" [op ops cl parse-sexp-lookup-properties 2 3 syntax-ppss t nil char-to-string syntax-table assoc ((60 . 62)) (byte-code "\2033\306 p\307\216\310\311\306\312\"!\210\313 \314\315!P\"\210\313\316\fP\"\210\313\317\320\"\210\214` }\210\321 \210,\202=\322\323\324\f!P \312#\210\325`S`\306\326$\207" [cl #3=#:buffer #4=#:table op ops limit syntax-table ((byte-code "rq\210\302 !\210)\302\207" [#3# #4# set-syntax-table] 2)) set-syntax-table make-char-table nil modify-syntax-entry "(" char-to-string ")" 92 "\\" forward-list re-search-forward "[^\\]\\(?:\\\\\\\\\\)*" regexp-quote put-text-property #5#] 5) (((scan-error search-failed) (goto-char limit)))] 4]] 3) (defalias 'ruby-in-ppss-context-p #[(context &optional ppss) "\206\302`! \303=\203\3048\204_\3058\202\\ \306=\203&\3048\202\\ \307=\2034\3048\310=\202\\ \311=\203G\312\303!\205`\312\307!?\202\\ \313=\203S\3058\202\\\314\315\316\317 !\320R!\205`\321)\207" [ppss context syntax-ppss anything 3 4 string heredoc 10 non-heredoc ruby-in-ppss-context-p comment error "Internal error on `ruby-in-ppss-context-p': " "context name `" symbol-name "' is unknown" t] 5]) #@89 The syntax table to use for fontifying Ruby mode buffers. See `font-lock-syntax-table'. (defvar ruby-font-lock-syntax-table (byte-code "\302!\303\304\305 #\210 )\207" [ruby-mode-syntax-table tbl copy-syntax-table modify-syntax-entry 95 "w"] 4) (#$ . 32172)) #@51 Additional expressions to highlight in Ruby mode. (defconst ruby-font-lock-keywords (byte-code "\302\303\304\305R\306B \307\310E\311\312\313\314\315\316\317\257\n\207" [ruby-keyword-end-re ruby-here-doc-beg-re ("^\\s *def\\s +\\([^( \n]+\\)" 1 font-lock-function-name-face) "\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\(defined\\?\\|" "\\(a\\(?:lias\\(?:_method\\)?\\|nd\\)\\|b\\(?:egin\\|reak\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|lass\\)\\|d\\(?:ef\\|o\\)\\|e\\(?:ls\\(?:e\\|if\\)\\|n\\(?:d\\|sure\\)\\)\\|f\\(?:ail\\|or\\)\\|i[fn]\\|module\\(?:_function\\)?\\|n\\(?:\\(?:ex\\|o\\)t\\)\\|or\\|p\\(?:r\\(?:ivate\\|otected\\)\\|ublic\\)\\|r\\(?:aise\\|e\\(?:do\\|scue\\|t\\(?:ry\\|urn\\)\\)\\)\\|super\\|th\\(?:en\\|row\\)\\|un\\(?:def\\|less\\|til\\)\\|wh\\(?:en\\|ile\\)\\|yield\\)" "\\)" 2 0 font-lock-string-face ("\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\(nil\\|self\\|true\\|false\\)\\>" 2 font-lock-variable-name-face) ("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|@?\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)" 2 font-lock-constant-face) ("\\(\\$\\([^a-zA-Z0-9 \n]\\|[0-9]\\)\\)\\W" 1 font-lock-variable-name-face) ("\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+" 0 font-lock-variable-name-face) ("\\(^\\|[^_]\\)\\b\\([A-Z]+\\(\\w\\|_\\)*\\)" 2 font-lock-type-face) ("\\(^\\s *\\|[[{(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+\\):[^:]" 2 font-lock-constant-face) (ruby-match-expression-expansion 0 font-lock-variable-name-face t)] 10) (#$ . 32438)) (defalias 'ruby-match-expression-expansion #[(limit) "\301\302\303#\205\304\305!\206\306!\207" [limit re-search-forward "[^\\]\\(\\\\\\\\\\)*\\(#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\)\\)" move ruby-in-ppss-context-p string ruby-match-expression-expansion] 4]) (byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [ruby-mode-hook variable-documentation put purecopy "Hook run when entering Ruby mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp ruby-mode-map definition-name ruby-mode] 5) (defvar ruby-mode-map (make-sparse-keymap)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [ruby-mode-map variable-documentation put purecopy "Keymap for `ruby-mode'." boundp ruby-mode-syntax-table definition-name ruby-mode] 5) (defvar ruby-mode-syntax-table (make-syntax-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [ruby-mode-syntax-table variable-documentation put purecopy "Syntax table for `ruby-mode'." ruby-mode-abbrev-table definition-name ruby-mode] 5) (defvar ruby-mode-abbrev-table (progn (define-abbrev-table 'ruby-mode-abbrev-table nil) ruby-mode-abbrev-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [ruby-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `ruby-mode'." ruby-mode derived-mode-parent prog-mode] 5) #@435 Major mode for editing Ruby scripts. \[ruby-indent-line] properly indents subexpressions of multi-line class, module, def, if, while, for, do, and case statements, taking nesting into account. The variable `ruby-indent-level' controls the amount of indentation. \{ruby-mode-map} In addition to any hooks its parent mode `prog-mode' might have run, this mode runs the hook `ruby-mode-hook', as the final step during initialization. (defalias 'ruby-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2036 \321 =\203<\322\f\323 \"\210)\3245\325\"\204V56=\204V\3265\3256C#\210\327 !\210\330\f!\21056\331 \210\306\332!\210\333\306\334!\210\335\306\336!\210\337\306\340!\210\341 \342\343\344!\203\214\344\202\235\343\345!\203\226\345\202\235\343\346!\205\235\346\347\350\351$\210\306\352!\210\353\354*\"*\306\355!\210\356-\306\357!\2107/\306\360!\21080\306\361!\210\3621)\363\364!\207" [delay-mode-hooks major-mode mode-name ruby-mode-map ruby-mode-syntax-table parent make-local-variable t prog-mode ruby-mode "Ruby" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table ruby-mode-variables imenu-create-index-function ruby-imenu-create-index add-log-current-defun-function ruby-add-log-current-method beginning-of-defun-function ruby-beginning-of-defun end-of-defun-function ruby-end-of-defun add-hook boundp before-save-hook write-contents-functions write-contents-hooks ruby-mode-set-encoding nil local electric-indent-chars append (123 125) font-lock-defaults ((ruby-font-lock-keywords) nil nil) font-lock-keywords font-lock-syntax-table syntax-propertize-function ruby-syntax-propertize-function run-mode-hooks ruby-mode-hook ruby-mode-abbrev-table local-abbrev-table ruby-font-lock-keywords ruby-font-lock-syntax-table] 6 (#$ . 35512) nil]) (byte-code "\302\303\304\305!\306B\"\210\307\310\311\312\313\257\314\211\203* @\302\315\304!\306B\"\210 A\211\204*\316\306!\207" [name --dolist-tail-- add-to-list auto-mode-alist purecopy "\\.rb\\'" ruby-mode "ruby" "rbx" "jruby" "ruby1.9" "ruby1.8" nil interpreter-mode-alist provide] 6)