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/hideshow.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:53:37 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/progmodes/hideshow.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314\315\306\301&\210\310\316\302\317\314\320\306\301\321\322& \210\310\323\324\325\314\326\306\301&\207" [custom-declare-group hideshow nil "Minor mode for hiding and showing program and comment blocks." :prefix "hs-" :group languages custom-declare-variable hs-hide-comments-when-hiding-all t "Hide the comments too when you do an `hs-hide-all'." :type boolean hs-minor-mode-hook "Hook called when hideshow minor mode is activated or deactivated." hook :version "21.1" hs-isearch-open 'code "What kind of hidden blocks to open when doing `isearch'.\nOne of the following symbols:\n\n code -- open only code blocks\n comment -- open only comment blocks\n t -- open both code and comment blocks\n nil -- open neither code nor comment blocks\n\nThis has effect only if `search-invisible' is set to `open'." (choice (const :tag "open only code blocks" code) (const :tag "open only comment blocks" comment) (const :tag "open both code and comment blocks" t) (const :tag "don't open any of them" nil))] 10) #@1214 Alist for initializing the hideshow variables for different modes. Each element has the form (MODE START END COMMENT-START FORWARD-SEXP-FUNC ADJUST-BEG-FUNC). If non-nil, hideshow will use these values as regexps to define blocks and comments, respectively for major mode MODE. START, END and COMMENT-START are regular expressions. A block is defined as text surrounded by START and END. As a special case, START may be a list of the form (COMPLEX-START MDATA-SELECTOR), where COMPLEX-START is a regexp w/ multiple parts and MDATA-SELECTOR an integer that specifies which sub-match is the proper place to adjust point, before calling `hs-forward-sexp-func'. Point is adjusted to the beginning of the specified match. For example, see the `hs-special-modes-alist' entry for `bibtex-mode'. For some major modes, `forward-sexp' does not work properly. In those cases, FORWARD-SEXP-FUNC specifies another function to use instead. See the documentation for `hs-adjust-block-beginning' to see what is the use of ADJUST-BEG-FUNC. If any of the elements is left nil or omitted, hideshow tries to guess appropriate values. The regexps should not contain leading or trailing whitespace. Case does not matter. (defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) (#$ . 1651)) #@71 Function called if non-nil when doing `hs-hide-all' for non-comments. (defvar hs-hide-all-non-comment-function nil (#$ . 3107)) #@153 If non-nil, hiding remembers internal blocks. This means that when the outer block is shown again, any previously hidden internal blocks remain hidden. (defvar hs-allow-nesting nil (#$ . 3242)) #@204 Hook called (with `run-hooks') at the end of commands to hide text. These commands include the toggling commands (when the result is to hide a block), `hs-hide-all', `hs-hide-block' and `hs-hide-level'. (defvar hs-hide-hook nil (#$ . 3443)) #@187 Hook called (with `run-hooks') at the end of commands to show text. These commands include the toggling commands (when the result is to show a block), `hs-show-all' and `hs-show-block'. (defvar hs-show-hook nil (#$ . 3691)) #@688 Function called with one arg, OV, a newly initialized overlay. Hideshow puts a unique overlay on each range of text to be hidden in the buffer. Here is a simple example of how to use this variable: (defun display-code-line-counts (ov) (when (eq 'code (overlay-get ov 'hs)) (overlay-put ov 'display (format "... / %d" (count-lines (overlay-start ov) (overlay-end ov)))))) (setq hs-set-up-overlay 'display-code-line-counts) This example shows how to get information from the overlay as well as how to set its `display' property. See `hs-make-overlay' and info node `(elisp)Overlays'. (defvar hs-set-up-overlay nil (#$ . 3922)) #@132 Non-nil if using hideshow mode as a minor mode of some other mode. Use the command `hs-minor-mode' to toggle or set this variable. (defvar hs-minor-mode nil (#$ . 4659)) #@33 Keymap for hideshow minor mode. (defvar hs-minor-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\302\317\320#\210)\207" [map make-sparse-keymap define-key "@" hs-hide-block "@" hs-show-block "@\210" hs-hide-all "@\223" hs-show-all "@\f" hs-hide-level "@" hs-toggle-hiding [(shift mouse-2)] hs-mouse-toggle-hiding] 4) (#$ . 4835)) #@47 Menu used when hideshow minor mode is active. (defvar hs-minor-mode-menu nil (#$ . 5270)) (easy-menu-do-define 'hs-minor-mode-menu hs-minor-mode-map "Menu used when hideshow minor mode is active." '("Hide/Show" ["Hide Block" hs-hide-block :help "Hide the code or comment block at point"] ["Show Block" hs-show-block :help "Show the code or comment block at point"] ["Hide All" hs-hide-all :help "Hide all the blocks in the buffer"] ["Show All" hs-show-all :help "Show all the blocks in the buffer"] ["Hide Level" hs-hide-level :help "Hide all block at levels below the current block"] ["Toggle Hiding" hs-toggle-hiding :help "Toggle the hiding state of the current block"] "----" ["Hide comments when hiding all" (setq hs-hide-comments-when-hiding-all (not hs-hide-comments-when-hiding-all)) :help "If t also hide comment blocks when doing `hs-hide-all'" :style toggle :selected hs-hide-comments-when-hiding-all] ("Reveal on isearch" ["Code blocks" (setq hs-isearch-open 'code) :help "Show hidden code blocks when isearch matches inside them" :active t :style radio :selected (eq hs-isearch-open 'code)] ["Comment blocks" (setq hs-isearch-open 'comment) :help "Show hidden comment blocks when isearch matches inside them" :active t :style radio :selected (eq hs-isearch-open 'comment)] ["Code and Comment blocks" (setq hs-isearch-open t) :help "Show both hidden code and comment blocks when isearch matches inside them" :active t :style radio :selected (eq hs-isearch-open t)] ["None" (setq hs-isearch-open nil) :help "Do not hidden code or comment blocks when isearch matches inside them" :active t :style radio :selected (eq hs-isearch-open nil)]))) #@122 Regexp for beginning of comments. Differs from mode-specific comment regexps in that surrounding whitespace is stripped. (defvar hs-c-start-regexp nil (#$ . 6929)) (make-variable-buffer-local 'hs-c-start-regexp) #@32 Regexp for beginning of block. (defvar hs-block-start-regexp nil (#$ . 7147)) (make-variable-buffer-local 'hs-block-start-regexp) #@225 Element in `hs-block-start-regexp' match data to consider as block start. The internal function `hs-forward-sexp' moves point to the beginning of this element (using `match-beginning') before calling `hs-forward-sexp-func'. (defvar hs-block-start-mdata-select nil (#$ . 7284)) (make-variable-buffer-local 'hs-block-start-mdata-select) #@26 Regexp for end of block. (defvar hs-block-end-regexp nil (#$ . 7625)) (make-variable-buffer-local 'hs-block-end-regexp) #@314 Function used to do a `forward-sexp'. Should change for Algol-ish modes. For single-character block delimiters -- ie, the syntax table regexp for the character is either `(' or `)' -- `hs-forward-sexp-func' would just be `forward-sexp'. For other modes such as simula, a more specialized function is necessary. (defvar hs-forward-sexp-func 'forward-sexp (#$ . 7752)) (make-variable-buffer-local 'hs-forward-sexp-func) #@691 Function used to tweak the block beginning. The block is hidden from the position returned by this function, as opposed to hiding it from the position returned when searching for `hs-block-start-regexp'. For example, in c-like modes, if we wish to also hide the curly braces (if you think they occupy too much space on the screen), this function should return the starting point (at the end of line) of the hidden region. It is called with a single argument ARG which is the position in buffer after the block beginning. It should return the position from where we should start hiding. It should not move the point. See `hs-c-like-adjust-block-beginning' for an example of using this. (defvar hs-adjust-block-beginning nil (#$ . 8179)) (make-variable-buffer-local 'hs-adjust-block-beginning) #@369 Text of the line where a hidden block begins, set during isearch. You can display this in the mode line by adding the symbol `hs-headline' to the variable `mode-line-format'. For example, (unless (memq 'hs-headline mode-line-format) (setq mode-line-format (append '("-" hs-headline) mode-line-format))) Note that `mode-line-format' is buffer-local. (defvar hs-headline nil (#$ . 8983)) #@119 Delete hideshow overlays in region defined by FROM and TO. Skip "internal" overlays if `hs-allow-nesting' is non-nil. (defalias 'hs-discard-overlays #[(from to) " W\203\n \n\203/\305\306 !\211V\205-\307 !\211\203\310 !\311 !\210\202)\207\312 \"\305\211\205P\f@\313 \314\"\203H\311 !\210\fA\211\204:\305*\207" [to from hs-allow-nesting ov --dolist-tail-- nil next-overlay-change hs-overlay-at overlay-end delete-overlay overlays-in overlay-get hs] 4 (#$ . 9395)]) #@656 Return a new overlay in region defined by B and E with type KIND. KIND is either `code' or `comment'. Optional fourth arg B-OFFSET when added to B specifies the actual buffer position where the block begins. Likewise for optional fifth arg E-OFFSET. If unspecified they are taken to be 0 (zero). The following properties are set in the overlay: 'invisible 'hs 'hs-b-offset 'hs-e-offset. Also, depending on variable `hs-isearch-open', the following properties may be present: 'isearch-open-invisible 'isearch-open-invisible-temporary. If variable `hs-set-up-overlay' is non-nil it should specify a function to call with the newly initialized overlay. (defalias 'hs-make-overlay #[(b e kind &optional b-offset e-offset) "\204\306 \204\f\306\307\n \"\f\310=\203\311\202\f\312\313\314#\210\312\314#\210\312\315#\210\312\316 #\210 \317=\204H =\203V\312\320\321#\210\312\322\323#\210\203a!\210*\207" [b-offset e-offset b e hs-isearch-open io 0 make-overlay block code overlay-put invisible hs hs-b-offset hs-e-offset t isearch-open-invisible hs-isearch-show isearch-open-invisible-temporary hs-isearch-show-temporary ov kind hs-set-up-overlay] 4 (#$ . 9889)]) #@141 Delete overlay OV, and set `hs-headline' to nil. This function is meant to be used as the `isearch-open-invisible' property of an overlay. (defalias 'hs-isearch-show #[(ov) "\302\303 !\207" [hs-headline ov nil delete-overlay] 2 (#$ . 11096)]) #@339 Hide or show overlay OV, and set `hs-headline', all depending on HIDE-P. If HIDE-P is non-nil, `hs-headline' is set to nil and overlay OV is hidden. Otherwise, `hs-headline' is set to the line of text at the head of OV, and OV is shown. This function is meant to be used as the `isearch-open-invisible-temporary' property of an overlay. (defalias 'hs-isearch-show-temporary #[(ov hide-p) "?\205 \206\305\n!\212 b\210\306 \210\307\310w\210`) {)\311 \210\310\203?\312\n\313\"\211\203T\314\n\315\f#\210\314\n\313\310#\210\202T\312\n\315\"\211\203T\314\n\313\f#\210\314\n\315\310#\210)\314\n\316\205]\317#\207" [hide-p hs-headline ov start value overlay-start beginning-of-line " " nil force-mode-line-update overlay-get hs-isearch-display overlay-put display invisible hs] 4 (#$ . 11348)]) #@52 Return non-nil if the point is at the block start. (defalias 'hs-looking-at-block-start-p #[nil "\302!\205\303 \304\216\305\306 8*?\207" [hs-block-start-regexp save-match-data-internal looking-at match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 8 syntax-ppss] 2 (#$ . 12160)]) #@119 Adjust point based on MATCH-DATA and call `hs-forward-sexp-func' w/ ARG. Original match data is restored upon return. (defalias 'hs-forward-sexp #[(match-data arg) "\301 \305\216\306 !\210\n\224b\210 \f!*\207" [save-match-data-internal match-data hs-block-start-mdata-select hs-forward-sexp-func arg ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) set-match-data] 2 (#$ . 12496)]) #@105 Hide a region from BEG to END, marking it as a comment. Optional arg REPOS-END means reposition at end. (defalias 'hs-hide-comment-region #[(beg end &optional repos-end) "b\210\305 b\210\305 \306 \n\"\210\307 \n\310 %\210*\f\203\" \202#b\207" [beg end end-eol beg-eol repos-end line-end-position hs-discard-overlays hs-make-overlay comment] 6 (#$ . 12923)]) #@335 Hide block if on block beginning. Optional arg END means reposition at end. Optional arg COMMENT-REG is a list of the form (BEGIN END) and specifies the limits of the comment, or nil if the block is not a comment. The block beginning is adjusted by `hs-adjust-block-beginning' and then further adjusted to be at the end of the line. (defalias 'hs-hide-block-at-point #[(&optional end comment-reg) "\203\306@\211A@)\n#\207\307 \205\225\310\311!\312\225\313\211\211\212\2034!b\210\2028b\210\314 )\315\316\"\210\317!\203N\312\224\202O` \fW\203\207\320 \f\"\316V\203\207\203s\321 !\211\203s\322 !\210\202}\204}\323 \f\"\210\324 \f\325 Z$\210\n\203\217\f\202\223 ^b-\207" [comment-reg x end ov q p hs-hide-comment-region hs-looking-at-block-start-p match-data t 0 nil line-end-position hs-forward-sexp 1 looking-back count-lines hs-overlay-at delete-overlay hs-discard-overlays hs-make-overlay code header-end mdata hs-adjust-block-beginning hs-block-end-regexp hs-allow-nesting] 7 (#$ . 13296)]) #@425 Return non-nil if point is inside a comment, otherwise nil. Actually, return a list containing the buffer position of the start and the end of the comment. A comment block can be hidden only if on its starting line there is only whitespace preceding the actual comment beginning. If we are inside of a comment but this condition is not met, we return a list having a nil as its car and the end of comment position as cdr. (defalias 'hs-inside-comment-p #[nil "\212`\304\305w\210\306 !\204\307 e\310#\205\226o\204)`\311\312!\210`U\203)\312u\210\202\311\313 [!\210\314\305w\210`\310\315 \210\306\316 P!\204| b\210\311\317!\210\314\305w\210``W\203n` V\203n\306 !\204n`\311\317!\210\314\305w\210\202O\306 !\203z`V\203|\305\311\313 !\210\314\305x\210\305\210`Y\205\225\n\205\223 `D**\207" [q hs-c-start-regexp hidable p "[:blank:]" nil looking-at re-search-backward t forward-comment -1 buffer-size " \n\f" beginning-of-line "[ ]*" 1] 4 (#$ . 14345)]) #@266 Set up hideshow variables for new buffers. If `hs-special-modes-alist' has information associated with the current buffer's major mode, use that. Otherwise, guess start, end and `comment-start' regexps; `forward-sexp' function; and adjust-block-beginning function. (defalias 'hs-grok-mode-type #[nil "\306\300!\203x\306\301!\203x\203x \203x\307\n \"\211A@\206 \310\211<\2036 @ \211A@)\202< \311\312\f8\206C\313\314\f8\206e\315!\316\317\"\203b\311\211\225SO\202d)\320\f8\206n\321\322\f8\211*\207\323\324\325\326 !\"\207" [comment-start comment-end major-mode hs-special-modes-alist lookup start-elem boundp assoc "\\s(" 0 2 "\\s)" 3 regexp-quote string-match " +$" 4 forward-sexp 5 nil error "%s Mode doesn't support Hideshow Minor Mode" format-mode-line hs-block-start-regexp x hs-block-start-mdata-select hs-block-end-regexp c-start-regexp hs-c-start-regexp hs-forward-sexp-func hs-adjust-block-beginning hs-minor-mode mode-name] 5 (#$ . 15329)]) #@93 Reposition point at block-start. Return point, or nil if original point was not in a block. (defalias 'hs-find-block-beginning #[nil "\304`\305 \203 `\202?\306\n\304\307#\2033\310 \311\216\312\313 8*\204 \212\314\310\307!\315\"\210`)W\211\203 \203;`\202?b\210\304*\207" [here done hs-block-start-regexp save-match-data-internal nil hs-looking-at-block-start-p re-search-backward t match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 8 syntax-ppss hs-forward-sexp 1] 4 (#$ . 16328)]) #@71 Recursively hide blocks ARG levels below point in region (MINP MAXP). (defalias 'hs-hide-level-recursive #[(arg minp maxp) "\306 \203`T \307!\210`S \204\310\n\"\210b\210\311\312 !\210`\nW\203Y\313\f\n\314#\203Y\315 \316\216\317\320 8*\204\307V\203M\321S\n#\210\202\224b\210\322\314!\210\202\nb\207" [minp hs-forward-sexp-func maxp hs-allow-nesting hs-block-start-regexp save-match-data-internal hs-find-block-beginning 1 hs-discard-overlays forward-comment buffer-size re-search-forward t match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 8 syntax-ppss hs-hide-level-recursive hs-hide-block-at-point arg hs-block-start-mdata-select] 4 (#$ . 16876)]) #@163 Evaluate BODY forms if variable `hs-minor-mode' is non-nil. In the dynamic context of this macro, `inhibit-point-motion-hooks' and `case-fold-search' are both t. (defalias 'hs-life-goes-on '(macro . #[(&rest body) "\301\302\303\304BBE\207" [body when hs-minor-mode let ((inhibit-point-motion-hooks t) (case-fold-search t))] 5 (#$ . 17605)])) (put 'hs-life-goes-on 'edebug-form-spec '(&rest form)) #@66 Return hideshow overlay at POSITION, or nil if none to be found. (defalias 'hs-overlay-at #[(position) "\304!\305\211 \204\" @\211\203\"\306\n\307\"\205\n A\202 +\207" [position found ov overlays overlays-at nil overlay-get hs] 3 (#$ . 18009)]) #@71 Return non-nil if point is in an already-hidden block, otherwise nil. (defalias 'hs-already-hidden-p #[nil "\212\301 \211\203@\203@b\210\202)\302\210\204)\303 \203)\304 \203)\305\225b\210)\302\210\306`!)\207" [c-reg hs-inside-comment-p nil hs-find-block-beginning hs-looking-at-block-start-p 0 hs-overlay-at] 3 (#$ . 18273)]) #@268 Adjust INITIAL, the buffer position after `hs-block-start-regexp'. Actually, point is never moved; a new position is returned that is the end of the C-function header. This adjustment function is meant to be assigned to `hs-adjust-block-beginning' for C-like modes. (defalias 'hs-c-like-adjust-block-beginning #[(initial) "\212Sb\210\301\302 [!\210`)\207" [initial forward-comment buffer-size] 2 (#$ . 18620)]) #@257 Hide all top level blocks, displaying only first and last lines. Move point to the beginning of the line, and run the normal hook `hs-hide-hook'. See documentation for `run-hooks'. If `hs-hide-comments-when-hiding-all' is non-nil, also hide the comments. (defalias 'hs-hide-all #[nil "\205\273\306\211\212 \204\307ed\"\210eb\210\310\311ed#\312\f\313 \203)\314\313Q\202*\315R \2047\316d!\210\317d\306#\203\256\320\224\203a\320\224b\210\203T \202W\321\306!\204\215\322\225b\210\202\215\323 \211\203\214@\203\214\324@A@\"\320V\203\206\321\306\"\210\202\214A@b\210)` \247\203\243 @Y\205\251\325 \"*\210\202/\326!\210+\327 \210\330\331!*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks hs-allow-nesting hs-block-start-regexp hs-hide-comments-when-hiding-all t hs-discard-overlays make-progress-reporter "Hiding all blocks..." "\\(" "\\)" "\\|\\(" "" forward-comment re-search-forward 1 hs-hide-block-at-point 0 hs-inside-comment-p count-lines progress-reporter-do-update progress-reporter-done beginning-of-line run-hooks hs-hide-hook hs-c-start-regexp re spew hs-hide-all-non-comment-function c-reg value reporter] 8 (#$ . 19040) nil]) #@60 Show everything then run `hs-show-hook'. See `run-hooks'. (defalias 'hs-show-all #[nil "\205\304\211\305\306!\210\307\310ed\"\210)\305\311!\210\312\313!*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks hs-allow-nesting t message "Showing all blocks ..." nil hs-discard-overlays "Showing all blocks ... done" run-hooks hs-show-hook] 3 (#$ . 20256) nil]) #@184 Select a block and hide it. With prefix arg, reposition at END. Upon completion, point is repositioned and the normal hook `hs-hide-hook' is run. See documentation for `run-hooks'. (defalias 'hs-hide-block #[(&optional end) "\205=\305\211\306 \211\203& @\203 \307 @ A@\"\310X\203&\311\312!\202< \2044\313 \2044\314 \205<\315\f \"\210\316\317!+\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks c-reg end t hs-inside-comment-p count-lines 1 message "(not enough comment lines to hide)" hs-looking-at-block-start-p hs-find-block-beginning hs-hide-block-at-point run-hooks hs-hide-hook] 4 (#$ . 20639) "P"]) #@213 Select a block and show it. With prefix arg, reposition at END. Upon completion, point is repositioned and the normal hook `hs-show-hook' is run. See documentation for functions `hs-hide-block' and `run-hooks'. (defalias 'hs-show-block #[(&optional end) "\205\236\306\211\307\310 !`\211\2059 \203\311\f!\2022\312\f\313\"\314=\203* \2022\315\f!\312\f\316\"\\b\210\317\f!\210\306*\204\232\320 \321\211\211\203c@\203z@\211A@)\202z\322 \203z\323 \203z`\324\325\306!\326\"\210`\203\231\203\231\327\"\210 \203\224\202\227Tb\210+\330\331!*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks here ov end t hs-overlay-at line-end-position overlay-end overlay-get hs comment overlay-start hs-b-offset delete-overlay hs-inside-comment-p nil hs-find-block-beginning hs-looking-at-block-start-p hs-forward-sexp match-data 1 hs-discard-overlays run-hooks hs-show-hook q p c-reg x] 5 (#$ . 21279) "P"]) #@95 Hide all blocks ARG levels below this block. The hook `hs-hide-hook' is run; see `run-hooks'. (defalias 'hs-hide-level #[(arg) "\205\304\211\212\305\306!\210\307 ed#\210\305\310!\210)\311\312!*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks arg t message "Hiding blocks ..." hs-hide-level-recursive "Hiding blocks ... done" run-hooks hs-hide-hook] 4 (#$ . 22243) "p"]) #@76 Toggle hiding/showing of a block. See `hs-hide-block' and `hs-show-block'. (defalias 'hs-toggle-hiding #[nil "\205\303\211\304 \203\305 \202\306 *\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks t hs-already-hidden-p hs-show-block hs-hide-block] 2 (#$ . 22640) nil]) #@176 Toggle hiding/showing of a block. This command should be bound to a mouse key. Argument E is a mouse event used by `mouse-set-point'. See `hs-hide-block' and `hs-show-block'. (defalias 'hs-mouse-toggle-hiding #[(e) "\205\304\211\305 !\210\306 *\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks e t mouse-set-point hs-toggle-hiding] 2 (#$ . 22939) "@e"]) #@109 Hide the first block of comments in a file. This can be useful if you have huge RCS logs in those comments. (defalias 'hs-hide-initial-comment-block #[nil "\2054\306\211\212eb\210\307\310w\210\311 )\211\2053 @ \211A@) \312 \"\313V\2052\314 \"*+\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks c-reg x end t " \n\f" nil hs-inside-comment-p count-lines 1 hs-hide-comment-region beg] 4 (#$ . 23320) nil]) #@95 Non-nil if Hs minor mode is enabled. Use the command `hs-minor-mode' to change this variable. (defvar hs-minor-mode nil (#$ . 23759)) (make-variable-buffer-local 'hs-minor-mode) #@836 Minor mode to selectively hide/show code and comment blocks. With a prefix argument ARG, enable the mode if ARG is positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil. When hideshow minor mode is on, the menu bar is augmented with hideshow commands and the hideshow commands are enabled. The value '(hs . t) is added to `buffer-invisibility-spec'. The main commands are: `hs-hide-all', `hs-show-all', `hs-hide-block', `hs-show-block', `hs-hide-level' and `hs-toggle-hiding'. There is also `hs-hide-initial-comment-block' and `hs-mouse-toggle-hiding'. Turning hideshow minor mode off reverts the menu bar and the variables to default values and disables the hideshow commands. Lastly, the normal hook `hs-minor-mode-hook' is run using `run-hooks'. Key bindings: \{hs-minor-mode-map} (defalias 'hs-minor-mode #[(&optional arg) "\306  \307=\203\n?\202\310 !\311V\312\n\2035\313 \210\314\315\316\312\317$\210\320\f!\210\321\305!\210\317\322\323!\210\202?\324\325!\210\317\326 \210)\327\330\n\203I\331\202J\332\"\210\333\334!\203k\306 \203^\306 \232\203k\335\336\n\203h\337\202i\340\"\210)\341 \210\n\207" [#1=#:last-message arg hs-minor-mode hs-headline hs-minor-mode-menu line-move-ignore-invisible current-message toggle prefix-numeric-value 0 nil hs-grok-mode-type add-hook change-major-mode-hook turn-off-hideshow t easy-menu-add make-local-variable add-to-invisibility-spec (hs . t) remove-from-invisibility-spec (hs . t) hs-show-all run-hooks hs-minor-mode-hook hs-minor-mode-on-hook hs-minor-mode-off-hook called-interactively-p any message "Hs minor mode %sabled" "en" "dis" force-mode-line-update] 5 (#$ . 23944) (list (or current-prefix-arg 'toggle))]) (byte-code "\301\302\303\304\211%\207" [hs-minor-mode-map add-minor-mode hs-minor-mode " hs" nil] 6) #@43 Unconditionally turn off `hs-minor-mode'. (defalias 'turn-off-hideshow #[nil "\300\301!\207" [hs-minor-mode -1] 2 (#$ . 25783)]) (provide 'hideshow)