From cd35afdac1cd6463da9f2c0ab15812b316be73a4 Mon Sep 17 00:00:00 2001 From: mpeterv Date: Sat, 18 Jul 2015 13:38:17 +0300 Subject: [PATCH] Start updating docs --- .gitignore | 4 - doc/.buildinfo | 4 + doc/.doctrees/cli.doctree | Bin 0 -> 80577 bytes doc/.doctrees/config.doctree | Bin 0 -> 39279 bytes doc/.doctrees/environment.pickle | Bin 0 -> 13877 bytes doc/.doctrees/index.doctree | Bin 0 -> 4323 bytes doc/.doctrees/inline.doctree | Bin 0 -> 17316 bytes doc/.doctrees/module.doctree | Bin 0 -> 19974 bytes doc/.doctrees/warnings.doctree | Bin 0 -> 47242 bytes doc/_sources/cli.txt | 163 ++++++++++++--------- doc/_sources/config.txt | 67 +++++++-- doc/_sources/index.txt | 4 +- doc/_sources/inline.txt | 40 +++-- doc/_sources/module.txt | 24 ++- doc/_sources/warnings.txt | 6 +- doc/cli.html | 117 +++++++++------ doc/config.html | 118 +++++++++++---- doc/genindex.html | 11 +- doc/index.html | 19 ++- doc/inline.html | 44 ++++-- doc/module.html | 36 ++--- doc/objects.inv | Bin 361 -> 403 bytes doc/search.html | 11 +- doc/searchindex.js | 2 +- doc/warnings.html | 25 +++- docsrc/Makefile | 177 ---------------------- docsrc/cli.rst | 159 +++++++++++--------- docsrc/conf.py | 4 +- docsrc/config.rst | 55 ++++++- docsrc/index.rst | 4 +- docsrc/inline.rst | 40 +++-- docsrc/make.bat | 242 ------------------------------- docsrc/module.rst | 16 +- docsrc/warnings.rst | 6 +- src/luacheck/main.lua | 7 +- 35 files changed, 646 insertions(+), 759 deletions(-) create mode 100644 doc/.buildinfo create mode 100644 doc/.doctrees/cli.doctree create mode 100644 doc/.doctrees/config.doctree create mode 100644 doc/.doctrees/environment.pickle create mode 100644 doc/.doctrees/index.doctree create mode 100644 doc/.doctrees/inline.doctree create mode 100644 doc/.doctrees/module.doctree create mode 100644 doc/.doctrees/warnings.doctree delete mode 100644 docsrc/Makefile delete mode 100644 docsrc/make.bat diff --git a/.gitignore b/.gitignore index ab42bbf9..eae2f811 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,4 @@ bin/luacheck -*.luac -docsrc/_build -docsrc/_static -docsrc/_templates .luacheckcache luacov.stats.out luacov.report.out diff --git a/doc/.buildinfo b/doc/.buildinfo new file mode 100644 index 00000000..1a9d31ae --- /dev/null +++ b/doc/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: d43b93e13331a625eafd96b5503e6e76 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/.doctrees/cli.doctree b/doc/.doctrees/cli.doctree new file mode 100644 index 0000000000000000000000000000000000000000..51808ed1d1d562d3909a373a98a45b3a9fb99ceb GIT binary patch literal 80577 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 literal 0 HcmV?d00001 diff --git a/doc/.doctrees/config.doctree b/doc/.doctrees/config.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a28e641e4101ca4978c1d364f9f0ce68602cf5fd GIT binary patch literal 39279 zcmeHw2Xq|O*|ssRa={p|0aKP4iVT*7Ot z_Z~{v zHkXQh`TkUCu#zto%ij389aF>Fs>-l7)t4_gUc=muv1kc^6P9$WjpCrAn%JDm6tgK7 z1~ZjhsyPL2u1YZ>@Njmz`e5 zsKHwsJ)ZKtbj7LCg>x&(4iZk1_S@c5Hy2XvviZoR&eS;;4a^LN(Ky zb9(2uU=Wp6Z;Lj+S(Pi^dg-y1Oh04gt)CuiG*dx@ zj}|s>%N&f}sxh}=XKtg;+^o)AQ)jNFvzmkMoY6QZu5g~S2-(#(oR+PRKib>I_qK&0 zIcnUj+LNjF#D$lv0IKCY!1m zPpLkI{O#^;4&bU643bv)VycpJQYI-<*}TFKDXGQHsXh8qNPtvdsanj=O64o5h514O z!b|f}r&wWl^@tf_l~gU4Ql;XoRDUU7>`zq(Q`I7_JY-T1M^0I5FE1`voPm@=vNfmn zVP?aAZF;IVQ%v?)=f=JLHcz{^f(CHSgkC!5Mv6*=Kk zRh9D#9ElBTnp3*dgL0rOn=fa23Sb=4SS$@G?JH#Zo4p+)gJXQyJKjzlAUh`wkWs+^ z*`;ns7V=1^OrgQs6E$fm{2ETRH8`t@P%}+fx*J!R3^1oHIpj$s{CLjgXxcyCRO338h0f=4+?Wi z9uB~sn(r(wH+u?(o4a^UuFmE9ptZJ-39inSMnrDIZ{?L&MZgyL-a-cC+p)s7L35d0 z)LAnCe)SiQ+$5PunZ>D8P?gLtIs0+)j)>s}|@)w8%u9*tf)>*qG0vXg5%+dHK(w_0w7gU3wo)W+QS+ysXjCs1R0dZJj^b(-&;o|{3T z7$avi=J>RGrth6ar}_7oNm=8!_X9Y-L_g`~)$AdN#+Pj#MxFo@fxj~{{TGzq-s#G0p@GgVo z%YE+(Eg532tn0l|y`@6AefcVkypRrERrg3n0D7#!yBgB2@x5z9X+Nx!HV)v0`D`WE zK8+GDheSSU84=!f7!{Oqz3<%+O1beHq--!GB^NON$oFmvnQ#6E=9Oxh>w=VXGT8?2 z7T9yE@7)%PyuCiu+7s`NxCm8R*x=m>0eAV{-JyVck_6n!;QqKSxcJjjEpG7cg^c@r z@BUE614%OOqKpUSrt^^R{RCjSDeWy6d+%Wc{5~^s!w*ylZgexr#``rgk%6MtSW-p+}MzYr6j^1Y{NA}2uRVFtx} z2BM#g8u)Cz1Y_WHFfio%CCvMk?>$fRDC4QXyj)<{3%>X3(5@Hjr5d|l61#rmd%vY! zlVI1*PG6>4sH7HT3RTB@8Ny$P8u&`RC}ZHOFtA?0?_lX`zV~}tN@2f=TIwL4%VWfN zucMZ+#ow8ktoMh6>q1W{i$U=QBL1fD{W0|Ht$K6J$b7po$6@%6@4XwM|CEG&limMb zqx9zczW3)4{Xr7?9il&!sD0#ne*w5-Jfha!jf5_#?r!g6IQf1wVxQEDX>FfEF`vp` zK!5eUzd=myV_wugs|VY;j|l!8;T;W4qR0CJVg0-BeW{JLbAOcp@-H1+R1wN>9DL<_ z{|G($XOeXB=wIT|*S;EoIRiSydA1!(rGk?ws^w4zufB?SrA7*_ex`$tspZMgRwH8+ zs*XQejRx`67-6*F0G(hE0OB7r4edn zlo5ngKzua~N7H>S#V7P2@*{`T;6PT>g=y803F=pqLfmva#}TbomquKo)C}QVBg(mE zGN(%=WL}Gu@mw1xzDfyvXryCS6#-p`Als$*Xh1Ci$E|8@Uy*`sf*H_tapJ4>1Z%k> z3LdSW$ZNYagX|lS26+H0R3j=7(U~B=+7QPeqLiNyQD(W?NYJxFG!!>UA#SuC2BaD7 z5|9?*-B|P1jPO=MY?s2L;g~JZxMUNKO$e?{luc0uk2VAG)#k!%xkfgX*X7C_;Qhq}BMiXW?VcI=pg8n_E5VzeV z%%0N7@zE}vdqp|Flg#N-2`!&X%7ob)C%)Q8;QEHz-Ho}>0nBVWxIL)v5@@?r5sm7; z!VtHtwS6ju??*7BIu9qlN(6x`ek|^U9;vewdCfV%nMr+okMiM0x}n7i=QZ zOR#=mGg7jsfjOW~xP0SMiC}i}AWnSc3D$B&6ymHBd2N@bu#?NAx|2goR0Wj? zN)^Oc3vdiNnK}|WIhsBTg=ta91REAhA#T4(pTne)>2tVnelN=DCv&<~LhFwpW%?Y6 z6JH%A@bG@aUjq=;qY1KIijPM17y-wvYHeSMf{!JbQ9TYPzB*p8mMfy*(f1R1ZI@<{ z{RC2Tzo8Xs2`UiLr69gK5yv2+l%Eh$Nt=@deR7C~;!~s$H`)#Zaw^&-Ag2lM>6*7= z#i6G%&UTe`2Ax5$?NUuNFlP!=T!#tFSp>HYBk%`kgqLT7`05-HW4T5P4XR6~a|L;x zM(SibUkY*ULmpm$cJc5+;k`)n#_mBE6J)y-ANA}K0mo$<&n_jHU49u(e08~CEmuS# z@>eAC+AhstmtRR5y$4-|3IyY75MNz`W6^HBu+g&!iAnKIGre(Jub|LU^Cjyz)0< zcXuoL`e_1em!hLiJtM%lT;tTU1hcQ7!-=ncDOk%DQHc4k5_xTxCa|xcCvD@i#fVn; z{{l{Y^=ll1KBm}&K91(hi^B9$$ON^&kwV;LlQX}SM&``R!ud*+^VMWdmr7{x??{<5 zui?a3zZbYAm&NXGXHjpVnsvJPqal;$b%Je|YN7%CgD}OdYi(bJ3f>@?0eurEzWSqJ zEmuUrv$qm?ZI|Yd{cTb`uTo=;dIt@N@Vg+s`V)>pgsCSX!jeVr3HtpI4Fmoxg}Cu{ z7@!Z(E&=*bct6s-GU|6w3O~?bwU53HmDOK}wOwk7#^+<ZdD4{uZS@fA8Ki5c|MPEoEu6)S9zoT9J`%-wn(!BC~+TDG)k6!-=5w=U& zQLp|f$hctR)xQX4uYZjbOsb5O{&7VVg1(%TVHz7ULHRf-)G61q2IHlX$~!*2+=TL4JpKpx5EIfiFOIlTEe@w=1oqf6tT8T zEz$U_BRp{xCO#Iy!z7c9Hu$(M2*{Dxo~a~<=irv)1?xQ!>ve}Cv$M(t2TjK z9SsOmcenmA8`qt!iLzbFk49%3LC4K%ZJ$ob+Y-zK*$yYZ+Fr1hE21zycSz*5UD`qR z9ZB_{)!GcT6KW98ok4uH3ywi%P{DASv8$kW3(?TLyAF6$$5sGdQUuAF%I+x-TIyagyJ;Kx*GC_S-3USj-!Z^~%gy|E`{wQZInbV~b z8lER*!nio`)qH^m2~#a{9Ul^=K$PuLel(&3f{vTj+P*3!7YSxWOE~e>pkOUmM8PF5 zk=J%<2iX;=P8e;5Dx(H5t$_HdienH{DoBW_46y}*UKpaGd65+2R@-4n7NcE4a+vTQ zu6b(`=6i(LE`>+q;R`e_*~H@rf@>4zNL0b2qdFvm$D zu5-wn;23l+#V2%bG-1vZrn5pOsQ-Z!;-;H~Ia?Z;Fy{#8xlzvZ zk~v)}q2cF~GGQ*jiLWjccrYEU986VWO*C`nA_8rfDxyKXSQz4#wYIND;g=B1pk9g- zUtK0x%N0@Z>heTh+odUFzk*cHRECzQD^ZEaUIpT-t8ok>OC1T3m9)7=(AS1&DF2}p z;)dH{V6H>E1m=3-y+QNVq|J?l*e-=fL-Hem#wDAO+(d9~+T4sPcytShuWl7)%Qdp8 zye@5S6Xfk0sng~TDa3USd2=V)#hbf?_ioKwn>P0lW4n|db?3)|jf*z!+)FTf_&%KY z>VCmmu82aAA4uf2U0T5&evmYhHV>hUQ2YeMR}bSDbS}jwbZ#_l9ucNTLnf&IsTAU- zo3wdM8ksha3+EG2&L@*OT`HmBKO<$@{2V8~`h~!Q^_BVp--U%@oC|o0P}`-FXjq>X zmbh)L?Wa&k5FYMHKw{Wg@Tb(ipP;ic~Lpj@Y7}M>V4R0tn_>a15eL zEeX+;)Ok_RFNJ8R|BV#lrrTj~ev5Vq&db94isr3JomUCL-_|7ZW`wM%RKF8wT(Swu zYXsM(&hJqLk6s7y)gOe}a*b>%uS=ab1o@^$>eTt86yiFEym<@l;?3K_`;O+VO`Ug% zv0X}!y7MQ&#zh-<-XoZO{60=Fy&_o46;TNC2Z_A4ODovNACg8==OdI6iobyP>SG*( z&ZYQ-&W)zdC&Kh;$OQF&l|tNflRAHsMyAeZ!uffW^NVComr7{(-$|J|U*g19UkTij zcf-27&2YtwKBZz7i+N=>?H}a8yb4KVu>4av<0iJY&!Con5zOd*jT6kPEH43ZMHJjy zPRem!%&U+M>?6^R=<@BddXv=hXhp0?fnc6RM9C^ym&y`iEr~Qn&|^b1tQaSSdMkoZ zjYqqLszG=sXx^Gcnn(!#t|p1ZW|BbTl1*$T6I`1}E1(J8cq>)5g8)bwd1>&o9a10WO;uAVInn;!~*&!3uuPcSP=_ZlZlSU@e z`og(El(R9J)1?v`K9iJ*v>{G>wUNMsUvbJ#p$|8oS;S!Cgd{RNngkm+s6JPBmSj!br2=aFlc`=tlHgxV>(nzxGjWR;94+!Q+a11(^;uAVInk@SY(|#cn z)X$Sb+;o#HX=!A#>@S=LL^(T>IbABD;Rlj3Sq{R9uMQTtUcA`djn|ElD~Aw*IS`V_ z=;#z^+@{v{H7WK`f*H;(ocO9+u$C*L;7=xz*LG8B5wK*xoO~w=w>ZvwQ%3!!S!7Pcut&VkIhF&BiO9t?+r2J%q_k%Mk z8@xNC3S`FQ2}vYO10p1@(}bx=aN9B}C;^Np41!=@MZ{vBg%U8G0#cV=N|0rZ)ag}` zLfo362vpH75m+F+3pKAvFRN=e3*%uCF}6$TQAZaGHZIyYdKkeR4~OH#SKkw?<%%eD zjGxGhnHRF5V~!xz=|v;dktib+M}c5Q1;=1OP<+CGh^E&u!gOrN1og*BA#S=!uj8eW z>Ggf#JR!=tB$?Bt5*ogglq2dyocQV_fm`z0WiU})Mo3R446`OAk+E}%z~gqcwy#Ce zrxMJNo`w@&oi13*6;bf%j6`1Br6FWLlT=^7&D&qxY?L^LOoTVPs*TNfD_EE2;55k5$7UeF}*?(iOj{q6IWp(a|yx2{D^ZY z+Ti15Aed+oDVTU61Ljvi>XPURL0+kmI*G25LR|Tfe^;Yj{JTbYuhqQKUqpXMgzZvx z)T`?R85eB4x}IS6_YFAl)s2F+ToHw!|0t0cvoK^s&~G9Qe-XVIC4}J?5X`OM7<4s- zCvC~+e0QOze5Uf!%YI+DUD2^yM*)ZDCa%NoGz8n>>rbItlWzeU)?A0U_znj zEbKCa7fEzKp_oGO(m3)lUR#xgrXFJ)FpEyEKOEkC5sK zg@`TcQB)(kKLzpCV>kxUrIv)~N+LZj=qExn)ITYOxapXRLOs?0jFiFoIZiO!BJg1n z=_z6{-9i$H&eOsZS7D;_48g-B(z9rTkI#W%;zgujB8Ci@Zvm-Gq+bd0d5zSG^nw)P z%7^^>HQL3$7lrpF%`1O>Htt-KFDLN3919g*@SmxEL$vKuPt?QT3Rhf-@$hAW_207z z5??_pe0&weSHBZEmTT0|q^OV440%l$eyBt_mO7V|MAkwNe$;fWj9+Mc5P_XuW+ypI#i#|Rel zF|5WI{XoibUd+d^9qb>Hw#jR^QDf9cs7Gx70)lxN9D^L8n&EQf6G49(qM`q0j~Q9^T~ z<43Lm{}SZa8mR})2)weE@X}G({mY?U{2PfAEOimMeuvL2zZpe@?NWBstI>iS#;Y;p zVW*G92_|F&Yq=r{K_8#UYrC|8o!&qi-fSkIgfL75@zo?8gRZ9VgszUJ(qv&;A!LH` zDN=|VZc=GQX=Ex*70#8SoGT}Dx>Q25S0QC8O~Z+=rVHHaSXq`8@B$wl!AP!EiN~xA zNo2gNCVX)NTie&6j@1cfWM|+6voeCktPHE++?rC3^I}$p?OH}mTQ#IoVt{17G#S?>Xh183UTFF<%D|1xRsQ{U^Y&CwTZy> zXN(eV5}OijyVMi)a5LeGD={8!PVlg|oh{G`AGZYY)m9?Ma*Z0A6!kHhD|3XQO*3d$ zx0XWO3X?0_NF#G)TjAU;%DH_qr%NRa(hj5y(vCRs)lLErRuuG>2Ji_nWXR4$*)HWr zgR_gE<7TzCTa>&j!OW1|aDs&|g0)-`h0(c3A}^+U$OiU3N%e{XZH8(`4dS^M2xf9{ z4Dx~shRch&g5EnsL-RgTh+B=hE!0!Noe^+cw(+NjVD@h>PO#`ju$C*L5M?Kk*LG!Ntpp@WXcqUvlQhVOy+c{gqC}x93KiNzA6hmSlx+L zeWiu`uAW&}P$AfMsU{lPsxZZ^Yi+lwU;)95>_VJi1&m-VS46?H#fiL_$srrq4!A6 zpyLR!T?&te<#>U{C7ZB(pWxaAIssMiXbFg~mI|}w8rf7{mp~^9@+6Ja33Rd);yQ=C zIR)+F&8fnBn&yoq(CGwWR)!>!KxYUzF5CEXCc*6Hvv7h%FoLyQ5rrt9oycpuG=ot- zhcuc%=b{3^I1j{E=i?Z3FXbn6Z#01}5T*-5Cg{IN3US*_0$nVPOrT4I^U^5iWyzc_ zmC*9bNjW~Qz=^M}6u8x~iaejy4B4(qX%M%ctH@xxR27Zx)xsFJu(f?%D!GPWM)z8r zU_FdrEmuUryXz8pF_%L&uwPHAUkj_VNZo)&MEXV$%-G-NBX#I2+Z)NMHN)$IbWO{6;rv0Vy}hUQLz#wDB3+(mG0BHfKDcyteluYN4d zmTP2Fd0isiE6DpaQYX^=Qi$su^5y}wi#HDn??ak5mPkJ#2s1Mzkwkh}z;W5epGOF0 zS3imqEQ=AW<%%do`LRS^+oc(d^5dk@M0x@h2*#5jzWN!CLHAOALia`!>F2`qi;xNW zpOQk{c9Td?OCuBM8R2|3%K2O}r%NTY{FkI0AHTwhubvlp@bETJ%2o>wvgZY&Y?tz* zA^o+W<7TzCuSdx*63mdkgcB@@5v=8kD7f_7L|#nVkPYlFlj?^zZH9UUHHhh}Aee)} zF^DM@B*auw<~2e8K14(F>r#kYjkzk+Q}Z848Im_};;T0WUYjz1Bm{33kwk{rTLO(s zHt~3y;M$aV2UYOsT@bu@B+Qm;WK(%v%DgAY_ccJ`~=MG;b_r z{z4GmHX@1m^Ra;AvW-8V5X}Dl6epN{5iH&*Vl|@tHz~(?ZI@;+%Ab)&Q|5D2AQ)eO z`0DRC2Hi{f3Edk_nJ$V6H{5m}_A*TpBOs zI4|Z}*bepvQk^o|3^f5Yi0MQS%(vhe#FPpWVk#*!SqFNj6OYrGv zw9B{kR06A5S{H@*m&u%g!Ca=CFE^<5(27{B58|s0aKs36#c%l4C}rtE zHIwJ*QH-G45a%wKQL=p@t^RBGsSW4IEZYs6*#AgZQci$6#pF z6dBs-aeO|L7NLXM(d;IA?24dCiuCP!9ln)iCnmC$)({H`P#m+1*SE@xh7Z zapoeiIoc&7wh-PeHE;BnzpaR{UCNG*`Ze`7Tn38*ZLac9lk6aCZ~V z-J_g)By+k{LbLZIgq@Zf^$6!{rLTyVcb6h1IQ61m{c6?EJzGq(38nDN{P zCs>{%Sj!braB1H}UVL$eY%pv;QhmYIW~h0nK}^#i_?QfiK}@M2A*OP{JwVWW+gzie z`9LYet+vCE9E5fW$-%;Vh~|}dt?RCas*_;brJ87D4i%=j4ilL!g7qIS^#Z%m2rn}r zzUmP%mTR=oAUIl^K)r&@YNSpeM+$N6Lmu{_T|Dd;-kj!*CQzOT+okNNTdpAEf{k1A z31){EaN?^0!CJ0}LfDImy!iSI+0fx7(lCJrQ9>9z5PVby$Dp$*JfX9r2~-xQO2`D| zRVl;`Hwm;r8ks-~g>zAqb8#}KOC>b>Fj6Ma;W)vX8-WMwAWOxjfP*tF?V5CEq|WGvY>^U}8tGmMfw#GH*)c#dk=^2KJjt%@e$sp>9D9;(05GuWrLJ z$O$SKE+=jm^c^7@n(vfC+-f@v$z5odklZc2_h{alwZT6o#C9n>8jpJg8kcP1aUa38 zfArpuDtPn&h_4VV5Z5{6%_C?RZypuipK9LPwZV@O zW4n|db?0%x#zh-s{bfZ+44{EDl3R)DM+Q<1MStLHQ;9(6gue~A)4HG?BWcRa^GmWudLd!D3fjrGr(jdXp1wW-?e(`rGjQ0uXip zl09!IoZqJ3thsfTIhh@tY$98hpmonZ=A~vgZ=Av&II@ArEPhOWp@Xj)fSS!gaDqK> zLYewq6L9p)W=iEb>UlVaFRBJ#)#kT})eGWqeJ9Q`-?Uc07C>8vy=)OtF9MIAdIDWey8%7Ik@H&-@v;$-@C|zPinPUz*FrdoUPU`bQFId$^*hwTzSltT0u@cm5#myrJFs?=U^=?1T^Fn;l`gdJ3i9`3>q#_=N%SM{)8k zFG%|^3>aqz_I@hC2{+iqEjrD)w?Jz zNslXJiv3k=%ccH=vP=I2{~Fh2zG)kio6mpHmDm--y`2~dBL_K$VDtRLZS0eVv}+3Sou1_UY2 zodVP+g00;wAa_D;I<4H)SXu4iE*fh?{-+}UuUbCtA;C@+Ct{)!mASDlEeLi7P@f4f zl7i}UshO6W&iw(@7g8FN8!KA`Y$@ta!>lE$bJL9|Wa^g!!?nuMA-IbaZUAOQuG!wnY$1Ye zF}Mj9ZYOfrm}NeBC7X!IoxpJ6W>Cxqjo5c8BcI5^22d42aRF9S^oG=|M#JLT*vZXc zj5tysyE(yF9xDJ|oX6n|^Q=neDiCE zY!;s{EEN&>#k0b3%&iyAhG_lxwqen1b%Pyo2C5ZoqKHASM=73_aJ4RXcjFuXD$kjy z=G3nEny7iinuXocz-_iS+iRa)c1vxYt5gQ(w6rW-xUe~2>}wvZ_BLTlp5`9aa)c`N zII2==;ogNU+je)Q3i%$DQ7{ZUx#?%KGM>lqG*(JwdV8_aA{wx_TeT?9N7#;z&tG^( z(+W)@4J8~mZJQ+<(Dju#(CCMr@(l)_at2BZSS{a-#-pA7xMLYR0TnXbTPWNjC@{dm zJaA$09JMlnnvi^}NUZCVZ|flWrU{^}V|!%5|F$#KbO=MvtqOvVkBMaK|B7UI#<63b z;Z_&!0W`CXvcK|6UDsKm(^M*!|1g^@OgM)*3WKK6TMLI zVRaeCnOa8+v_zn-1vGB7c1&e>S7=tw%WHwE-oh zM{$oH2?~Xz`O^e;6I6|8>}Z7SWlbA36C8C1aXXes;c_s|}*-jwaYe>f^e8>TR$7HZaX_7+?4Z1P7 zH>L34R(4t&o12?wHl$Lirl!=q95%8G+vQOXUmq)Lc|m=dQvtz^jEq`r*DiDSM-Zvn zNDKC5n}bKjY}laD*?fP#f(K3hp#!dcQ`W{?S+i36rL2@?*kM-#e&kIyd-m{V4`XpK ziGl5mYu*iRu5$s8%Gd%rBhSK(hx@Zqhj(@5i&(-@I44noD{3 zFa(MIMNR&c-&;gPY%qVyhdTEmL)$W`_%5Ib%)TIa%RmHMuF*?_B{nhU4-L3I=1+eB11&|6>nc%vN>#5V5#|yrf+qS!V7S4mq6#jIQovwpz)x(`hWfN^G=AxEByKFzoUE{d< zw%KM|v>vQwcS0Pe4X{xRKQzu-?yue@iqVKkg+XkbN~=OC-25SjIc!|<2!q@_Hdc@Q z9Y;gz{%BH8lm6ZRf0(4!6X)EP#8!Df#B00!eV_h3vA(-GJg>r zB8;7eF=?4-N9yLsu!NyG5|=g|)T@nAPXxRi?uI6of*uc8RI zcAko&&T|ReFe#@7w2-0*DQO|H1a26HT9*ce%`8{SwS?ePJ4 z1nOY!ksx?yMFi+Rpt`8J+rr%c-E~YIt#utEx{lSlI{x=^Yr}M$NI%|4=N34TDBq60?7(SUKB%avN4q*+cDmQyr~ zq=7Wont!T*PBWlYYt65@(9?_41vk7GXP_Nk@TK0+i--_)Cfec5Ss-|~Mucf+XhzhT zrI7F+b7xU!YqQT0v(MFLcl<}0Slg-RiJ|8kLnlb5hBrs{;|0<*d_P`@cJw2+*))9W zB2=O4E(XCe6yeuhM`h8j%y` zwnn$iEmh2V40G+qGp}BNQLYYhF$SK^s})S+FUa@hd+}>Usff9clKkeT?tq}0!0OM+ z-YN3qL$bBK5CrZn0kp}+3PT2{yHO1%?g7C|UxLx=sD?1mMjy#F*iM_uT-iO zaaF@tRr<>6O;locFC5e3P{H4Y%IYnte4CY1%8LhjN`G7Ra7y;UU-hg?{rK0@`}^wiLoF4$Pc z@)~U1C2Sw#*ckr_t-QEgaRvftgZcy@T;V?j!TWRMkbcDz!r!E@VP|@D!CBxG@Z*qv zk7rD|R8_rBZoS+_otQRCkD@W{lyTYUyz{uZP@$BEoRzQ738q7AUe}EC= z;h!K_wSr?XR%rys!1}qJgrq0ehC_WV0M`U%1fJ&b5o#R6pp2BlvIb>S9TYbV$MRs8 zaEubsqobn77|{&ttWE~IrL&3=Oe+|Uv7~Jst+*aUoJfw9dOf?pNzgHvy%OZQ`0ttf0$**MOuhUR%&}orCw>^&KU1hWc;Rbh zw3pN>IAYs%V$)N@bnD6V&gV!etLbQgohw0KNoDad3%>W}6nimkr&dMV-1J1%*W1;D z1qoeMRZy#;EH2`Br_k&&7<15H;BvhUSUo!H^i=y*BPFG$ zIQY?q<76==K68#!Q8Q7$G`(i2S{bZXhLgV`1&yI;y%n_)3zN8n7eDoME#g&L%|acz za)oSlV6ZE^;FVPq>T&JH`-51V6?PV%c-ZA#xD>(_ z4DyZ9h?R%VVAFaVZ;D^TSzOUsl&^5iSE^+b#n}`+Iz7g`qqvEPl%B?rUXaH^m6B4M zO6@AWn6{qZ^ldTAE%SGvjIt5vCm< zEIZXKyc{T~Ev0%2-lr^K^va@VEFUVXt)zY`qgSr>RPq%#szW$OWKPf*?=EJDY7_8e zCP8HQZY{Md#Cl9^gX;9?YNfAfOSLV}8;mHX&URW-z8LLfwLM|ug{7&CS2}lKd4(>s zs2XEkUi92ic*o=Nf`y-b`9*3c!kA~7p00)YY$d05Mh)&TlWPa5+J(T;>3O@tq+NMF zwoBWjc0(z*UU~)GDk{#R3bPQuyH?chsK-mJ{SI!Q8TQp4sF<6cEaPe@ihD}!#PR?x zcU@i;PX%Swj=H6McXn{-im?~!(rZUng$ypPeJ*rT`mg#%*bdB2Rb=9WeK7hEA8k2e5?HUT#cgZ|5pH=(vWHNFg+U@(H za%p;oPJ5@|$i)a@t>n6T%|&1yAV?z9A9{CGl}2S}dYWVkerdsyF#HLJ{N?hptlA%~ zOYlZ-W?@)$0IGObkWhwKa!!cMt@fl>i9ht{TgicB8j)T;k0nS4;T-e+I5uMas;oqq zrpX%mZ}8ReJKCyl3vSW5)vykCMs7(pJr$!Im%U0=%+rr)hlrp~9C4$c%_ogRMJS#$ z5}#nI>G8qcqpZ3B?Nr@3%DNXCmO%ki{~}|0r|QLtEU(SvW^}47O1Wb*)oM@k{{j63 B&65BC literal 0 HcmV?d00001 diff --git a/doc/.doctrees/environment.pickle b/doc/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..45d45e6f6b615644bf5f91586f84d91603c1df3b GIT binary patch literal 13877 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 literal 0 HcmV?d00001 diff --git a/doc/.doctrees/index.doctree b/doc/.doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3a830510ce968c67163d2f44960d1f9bbb137dae GIT binary patch literal 4323 zcmbVQ2Y4Ju6_#a{yR%hX3317h*zpA-orwb&69OatWN z7>JOl3BC8;d+$B;-h1!8xA4yvm5UNW^hw{hcRMrhfB*a6oA-2izwLx}qFhf-2BE`c zO@H)xplY2A0p&e8eRUq%_!=-q_dI=Oq>mEl%&uA8o=Tcf-*x6*zW;SXkaSSY`43pUA zG}2-+Q5c2V%L#0p3;_v7-AbW+^u4m?ZiU{ zc495qZKA>|_8WA%*k-Z8eEk7~ z8e-T=*nsB-oX(i)$6YXsI`<6tK*W0lb z*rGneV~Ltk4?Fc^%eiunP%4r~n$51OMADu_jGKN|8)jB&!@0-IGwW6z>Xy$@+kL zwijDxXJ;o-M<&C#+r-jI;w!2VnPfZbNp`eUMYjRX9=dU!kbt_~lpd(rxRGZ7t$po0 zMcsnR0vna)I2iX*^0ke#fb;*SPir@5umN56vRkPP02_jxBz7sB-iMQKNHi$wQE#Fh z(4~^VqrURW!zl(iG9^_el?Mf(3|5zYqvYC-;}+|3)VdjXJ)6>;_WA%$&Ex$)wZdx4 zr#m!1wIKtymks5|(t|V=4{nrx3+)U&L~PG0MwyS4ii(wFiib;MFy5m-dMG@5SW1^` zaO=F!Ln?IOPNej3y=pg3xjxxyT#qP2q&p0-D8lJ&c+yen(K$Wxx`J>85Et8N0Vp4p z(qhT~iHv^%(uHPsDWykiXu646Kbyodfg&UBF)PGr0Q6X~buDp^6GJP+ZNRycfbjT~ zo}leypL1$BAm~DJWlC4+S6X~oAz52RP*&O;MX;Vkj-|LWNl(Q7;yTT9`$_BN_IR1w zPX-$|`0S?u>r+#D8UP7x=gO?$0jj01BDP7PkV%vuA6LxNTWn;x^Mc|eJtL)OvI-va z-r`v)J)4codA}WcX1P+*a}0Ve+p?x_%XUA{py#vgJBB=+d7Y*&#CDh$!IyIgg$ zx-XRPHR)}v3I=ShkEXXTqOInUb|EjMlHSo`qY@WwWa6IDZN8*;B96G?SD|?q8`QV) zJiVKZcvjF&(2--k!|6S&A9wtFSygKh-L@am`!vFgThrq++@trShujP=(B%htpZ)=~ z?ZWa@vEYMKgKVS#QM9TbYKem_wwuRs7@KfCbU>(?e-u{Wc!=AF*|_#fVvB%54_?wo z*r3DPNtZs_V&fcLiH_?$u5`h*hiS%~ae6Ud8D%tb!L4 z`wyP&&}Z2eKIdY#fvOW(aPv8EGgP!SpD$ts!OghRRbfnDz{$23TE|W9TdrrKi;FQa zK`38bWP9L=zno|*Q8#6zx%$!)+sK0%`f{uAE0R2M;D_(gS2TTdQ3#P`Ek*` z(wtyo%X+xN!4rz!BmBfuGJC! zkPWh<7r^w7*l;;Y{#fi`W4L7%rV5=4ph(eA7Fo5+1CIF;Wd9Vx`E_zHlg!CQ}5897TG4uw@9S?^PhF$%-C5je}8EuZMLJgfaf#$ zUok0U^XK1E`g=oc!wt4w%!;jIDS^mV|4SghJN}W#pUML4?%#xTJ dF)^}gSxqJV+o1nsU5%b|uSw%R+_q?_{|k3RE9L+I literal 0 HcmV?d00001 diff --git a/doc/.doctrees/inline.doctree b/doc/.doctrees/inline.doctree new file mode 100644 index 0000000000000000000000000000000000000000..60eeee0b3f09a5b75ffd726fc3b0a1182f440a9e GIT binary patch literal 17316 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 literal 0 HcmV?d00001 diff --git a/doc/.doctrees/module.doctree b/doc/.doctrees/module.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6cbce353a4a2f4ff3d990c7180701948ffacbd09 GIT binary patch literal 19974 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°AU{4B(Zy2twE1!0B&)Al|?}{RO4N^jG}a3!=8ut@;?sLi!umEaIs#@l7eMgHL}Kv{`dd+3mXlpA`DE z2ePqUtTDpJLa;fWy4We>;66pOQD3Dw_{F{^!`h1@AI$N0T-ZuJb)W`vE&)HhjgD{V z@T-BioQ0R=sS|ZW_Iw)40|DRDsZ*J{P-dsSAgFCzw=Sq+b23wOgRxAN#@BhlM0p)` zGei%3E$_&D56SJEPs;d35=ehyyjq;uLifTQm)q{5QmouSG7A+sp zKAc&=-|@lCtlW0)qo@yMXw8L%`a~_)2zQ^-C`ZqQgTP{CtZIPw)xf>x)Qw;6a-9iU zA+XE1z4-D5w|Wje0aSsXuSBKYjk>i59(F{5R&jPucY6_ERYFfx_l*@TCf#9oVy1#G z70`Y{QW_gxy{+gM1KbZ=Ev3uws)e&P=i&|0atLg(S7)Ih?Fi&v=|+VV!NXrjIBL}*6?%6kmBfBt0@&L@kXW$ zgY^i?T5JK(I?gZ56^cF|PQcg2h=&Po4|*63tYgLPw4T8@)SS_r?DW&&C>iXwdt059 zHZWj^ebE^Z=?H%AGT*?WBa!n~*bC892KX!z2OcscU{EII`s2qM!S5*$9Aio#)gFNqYqcjOXJ z$PvHXas@gKwL5U4?o2j{PDc?B3}VVgXMP6Lu8-Qwl0&|Hg^bQ*q*?OGEjkO&A#KKQ zKW?$g{Ar0!mU_$U_TrXrqUq_#*@7~NUtFs_geSh|2s(yTedeDSs_S-7G*tL>E&*WEkN5B9 literal 0 HcmV?d00001 diff --git a/doc/.doctrees/warnings.doctree b/doc/.doctrees/warnings.doctree new file mode 100644 index 0000000000000000000000000000000000000000..188d8c76d46dafa6886fa0745f24fb2accb13698 GIT binary patch literal 47242 zcmeHQ2bdeh**4&M?xsr^gu!q&zB87ohNIWWm{0_wT<&xy-AQYmbUTu4A7tsp^cF%5 zCG^lj3%!M2LJciIAc2G=q?3dYlJLLpH?w=AmChIf$^ZXPp2xn??0oOncXoDmcJ_!B zyECQkY9(JNw-!s8Y`KZmzHG75osSxWalorR*#Y`-duB3G>UoKaH9JL@d3530cQdhbVTa;G$ zbXNh#M=waNjpOAkSY*;_08ItZ3zI>rF$+?o0- zMsqK_W0#7sLcUyym3m@})2f&+_Lkjo3sS35ST3C@Eyj^pCfi*|t8^t_Dwf^x3sO;A z6|D)Z8PsFK(p02IFgS?hm@j(bg4ASCsBAjZQYsb(f`&;8QZvv{Emq6fjBRBVy5%eR zbRmC;H29vGtknqs=D6_;o#akgP)$xQSG&rUd<9V~6+56#*)D%+C|CiY zJG(zy$*R8Dg=)Gxm+f9S8|hhA-Lw6GwyJW)ot_+3N%t~G-3^kXkVsU>-7wjdu2fXM zt6G8a&7M1>IXOC0?I&H?o!Ooog~*r7_`Okka&%X^dm&UVyR+JpE9Em~x24@}O-^D0 zwUl~Ve0lEdbaI5|uyMOPCpRu#O%5+0^W1o1MX)y~k2^PqT6ZpA$iN5gChhK~&0)tO zVufszyBXZFx#w;HH%Q9P52x&w@YS^3`nl=34U!`S;uOImp{OEN)d#qHg^j9k}&8@SurA5%4ow~7~ zSr99!SZAky96d}=zBg8qrqR_`%(of!L){Acp&a*tI#=mOAQxg^S$X5a!)I_bZIr{|=Sl)*b2-t&qn_pDr}H z38dM4&)tIxkA)AdAk*^;>OBvBO#eOMbY3q^PPku%<$HPV-e8m*2BGtj;5eT~8A?g%$-PY&-c70QVft5C9wd9bjq z+a*DNw!6tKfLovE76WdjI&Pyuyf~k!$xi6QeFm^mO(B# zfa~ncVa(9vR=~3Axr+jpi|f6mm2sDZS*X(DCU*b~4)NSW0|sAj#Gp$5cy<24MP3aw zxrc$r;huX$z~jh9JPsj`qjJ0&9PPQsfH*ZAdAcL|QTJGQ>~MYE%1J+YTs?<)ViY+X zkJBK)Ek&lD;JGJ)S&lr8mTM8u))AtcdlKAE^-lKOQv&r)t!Ez1iF&7rdZ&Bt8B~wG z$WGaEx5~>!z&#TZPPVl?tDce3@*B`H3_lyne$#W$p|WIky02^wT4tg1N{EPiuI_C{ zR2X3Qyati)DrMmG^I_Emo_k?n)wk-EF_FKhIma+x?75c&)R#7*zJLz?cC&cwGS9s{ zpuVCJ^~I#VQapB*=Uxrs)JpK!#&hPl*TB5XY)^fsoTK%A&X*4HVJtJB@>$%TSt2OEPB8FhNIm&Y=#?h}oq;j8!pr>qIU#MqmbbS%J zE}Pj8VZlqD`!X#c<7aIP>|ng&xvvI>yjCyK1mj0K7_WQo8v*s3ji_ItFMlj%zva1a z(`+4#xcd|6@w#o`PwN@P6JyEXogf%-_g$FsGtd1wO(Bc7Y*Qo{?|JSo0AaG0u>_;PTFzm#tau}|DBJ4(1_Ix+b^dKVd!zI3p!4!E z{XH!DgXjK{7E!?awncVuKJeT>1%~~(Ua|?!UvzLj^xVG&)E_mX{(!#yo4Da)&;2{y zpo25l{Ri~;&^Gj+^$g;Pab)mG5S+Pc*b2jj9ebo&0fnbl#9!J(ULV^wF-mGBp&71e zFp_Nc)Cj4BZ^fcH>ZwMek*cau0vxS@saWH;_$hA)NMZjgl7N+`G1l-m9_sf6W411q*cyI8TUV7JrQ z)CNe1J*pKuo6At^(Li1GGzamr7VOlM-K%My5nUkn?Ti9*vO>g)n{#STZH{#1Bt>RmlC6n5*_; zbJQVY+f#cBSy-QVVj@}YLt;NA=Bj;Bg&UG6Jhh(yBaY!qp|%?&CH5D}l%~}7A0U;m zyl7y>foK;i4ifCa8k^dXmx}IgOyYiePPCIn)S+s6)oKtBOJv)+e5rM3yBIo1_4XepKNG7lo&k03(j!OQE(KBq_>5S<#f* z{;E{M@}hwii_k7sEEen%jZLj@UpQjnM-A3>V}SUmL&>(8hX|jrSYzg)ByL-N8D9rI z{NSPR)M3Io;uyhH+xCN<4u=ci2o2EgI8rKMy-YeBC5=pnqXl`4jXbt7(xDK>?l_iA zhvV_XQ%i;1PlvcVfz45ejBP)iC}d%M;)%&*c@l~Jbcm~yQH2{$LE))W1sHJ*UkbI| zAn9xg3{Q*ql9c0ybrfD1K1JLFqZ2`gq2;v#8eLR>7!OKjw& zjgbz8FnZr+$%MEJKRk80keh^j5vlbh1zbAgt%5HuhW#;{_CX@mKP1IxB=~A#f^gfuEwTjqJK#0=Zu4oNJCF5 ztzP0La)~;WZyS5Fa0?4J#@<5Ww$Cc*R-oXM+faDwd%{2B81Xd0_KBSuw+rA74bZN+ zQz~KYOlsUEjZBTZ1$mE+ytgsZp%BLLK9)?4`|-n54+yzVjW})?9%OUWA!FNH-xsp5 zKJmoLWcd(@b!w2s!>GaykD&0>qXLXLhA)NMZjjV?Oei1Ml-m9$q!N}F4Xk()?PA4K zf_++J+>i)^@8w5#*~j^0mfDhe8;iAF*V}U&jwmy&>d&$m8lw zHb)&YwmtJ>Aq(phPpm?gZ;{v!d0f4XD%|iB6rTF203(j!OQE(KB;@Z1<-3|v+y67E zgyls8D}Ii4vEn_!{z7Brk*^7PTJ_56j#l+c(ncLhu}%7wV8SAdN$-l}AF(;=kg@HPzX@4bpLk+bviz9DewgQ~zoQB_`~!uj{wctSWB5|2 z?FI?+Cqg-FMVWQd_OBq7u)Jts#foSbD^|h}PYu`D)T)D>exZb^B!AILs~SN-)S)Qb zu8{%^%Q1G1BBpH_Oh(%^IK`Geat26H9SUI-TUjzOX5)vaHWqS| z7#O?FVKb&{SXhY>7qYNE@x7rOR@Fu(QHSDfTelHrVcEvkZAm;-Vhkl{ zJAmMk?NNAY2Voy^jC2}cd&EwR9R;wH2586ZES0cwCNXxAMkdCtg51qU?%o*bPza;= z6_!kl1b%pGzL5Kg5m$S#8Iv|Fti)I#WMO^ci8aV_PZIly5m#SD6>iuIg{SrwV8k(e zDb#j@B*s2Mxv!?w_9vwhmKP1I*bnVu#r}d#X{^lr;dzli3Sf6JRIm;php0o@wxI_K zr?6mS=s_gb^NY(Vhnho^Ev?x)0Dm1i@iY*<(+;Rsn+pLk+TvRp`FKPBd>0;+IB z9|}(u1sHJ*UkbI|ASqE2%6?6$?RTXTmKP1IP-qt`%7U$EY^oWfhWYkzVOdF0C6A~> z>9(nhgjZO!F?BJC+di9|CBVQR11LOoh;WZMMmW{C{b8rYp#u22257f@f-*wZyO)q=Fx zj|;J5SR z#rWZ=ON87{khr>(&6vtzVI|17g)FR3JP{?!%Sh}eNL*cxD%@}d3Qt`rz=&h`QmE|) zNsz0A@@h?~?Y~AUVR_NOitnIZthiRN*J*5OoghK5z8;UN>}!gj64w(Nbtu%f@CIQK zmS`-zk;HAw#s0e>h4nX~@YK!1G~yVURMxiMPJ&wmaH|GrC)_5Luu3Kgz9)@Lg4+do zhmE|mG18$BM(i$@OoF@d!&CPNxt|1c)xB)Sqzwxz3GNfJus-p`T4Z@YiTxy)s~$iV zZg>!dr@k-1h-3ItsO<(xf`^3iVNI#+e?%%_dC|a%N6{`;JSN!3H8!l; zzTpYNqYeezRz4|g!cvWuPm#E7xkWq;a(LkfC_MFyFpfAzE|s>uU?;<~0(edXv@@QU zN?0wE3@=C{li@`{{?JCg)EMbd2qX70OD4lB_~EHnh1?_q?j>JiGp2J`Sjq4sAq(ph zPfR7t*GX)W0W97?6>fMFg{OWjz=&h`QmE|)NrtzC@@-A2?f;2X!t$bl6+cD0Sn-Zv z-__XABgER5T52yFt?FlF5p^isw)E%1DlFMp`W}hHPb!x!<`;m#8^1*1sb2~6h+||^ zdD|OyQoJvKUu%GN%5S6+R?Q^EZ>5n*@jF5O-bVhRG18$BM(~d;nG_%3ho}A|tgLI1=hvYDM5|f>gfNd1ZSz(Xd{~?@ zZzW>dKArb)(82BzC_FV%I7S>JkZRg?+uY644!ebxj)hhGuCZI;SbsGv#Z6gdLj*&+tZL96zZ!3W9G(a1_y;Q>LnBeaq zjST*dg51eQ?%WvZPzWQn3rhxnSN!nQZbEK?k4yOOY{pa$3oH0v5wfs8@x;1hnIN$V zK3L306>iuAg{Kw>Fya`#6l%Lcg1@IwepORy`}dMcSY9-+VsEsI75fNwUyYRr?GwCS z8@^#|RY}644h7oQ?I-ZCG-KWVB-X)S7Hh5phSdk4@YI3AFya__RMNKE4*o#`I9LO; z@$FIxt7C%yHECq=Zv606M#%l($5ocin6zPG1;0ng!urG$ z)5x-y#D4JODu*iEkVoMuM}QH>@TE}O4HEo?LRrw1+WtPNgyls8D~f0rD@uax*I0QB zY(>cK?Oh_G4rSSfDM5w>8N@9@=c*&wj0qVQR>+SMvamk! z#Cl|TG>QF?&sE2u3O5{!!c)fyFya`#6l%LcLVmnZF4dIU{u87UmKP1II1%k)#Yuua zS!3mGcq=%y_kgYH6r!RI<=MuaD(J8OOr-KSMpMkRVl$>% zSXiOINXWwa#1re2<;5g6p$CggP=y;VMd7J$3ozmsz7%S^K|+6-P+qPnwf$E}B`hx* zSaBuV#fqy0d$q>OvtcXrd=Eu-OlVct5D;}J%C_q}0u0MBc3n$i{lK{~)9XM0ORq=a zsT+h<#4(bnm~E*Y@EZm2T@BC%-z1f=A|~KBOCtk*iy&{ck+(HQIuyd_e2*mqemj16 z>JB0I10Gj*vKiAVEUbXvC1hcJ;)&^Gc{hpufXCH6sKO2RqVUvx0*p9@FNNA}kbvJW zln-c1ZU2K(3CoKHR(v1rV#Py(eOO~Yc2`2wq)gwek9m=!~d{j7u1sVe%BXQgE zaDN<>u>A=Xo_bPvMjRuOs@k^ODe#m4p4I^Ef*(jFtdU89XQYuS@T?%8vysm?MmiM2 zc)h@qDexkGcUrHscmPv+R zNh6cteL?=(M*gNT(xDJW?zb$N48Ow zJ~zoCmY;X$_-?=KpV6xRLE@-GF}6+r6i`@(vFQ^Mw++E?7~Tzsg)5-I`+4|_i6zHK zp+dHWcA!@hz;F%FhK`U*SP2v8k4hm9H+?DSkj8s@dK~h33((n4QIVPBsN>IWS3;IX%wCbrYo_&68BibMnA1;O``EO z9t+FJh;RuDHAY5B+_t)Xibjgbz8(1{zcq!Ty94^K4eUYaRnVSVC>8DzN; ziA^ei#Vl0eh87f_Y87C_F?=c1c7vqCY@ys(Q)>I?NF^)}?-=4ZMaEguin;iK7wv>R zk{XXxFpED6>8@;{Rc%T_ymH6FvS%{^g!vnLHYagg17=&G0hVov0x#bQ3%qQ`PzYVK153JQNBr>APC{-1j3N2X zY{oH%uy_usvfZ$o>N0 zHY2!tXa^l2m9T;)K@OBgCdfg8JlICIH%2-XLf3wcC0*NrAD-$Iaz8=hD$Qn0rm(Oa z)+J`QTkU7M8h1;TINf%q@|)?X%132M&I5QQ)OK zk${)-$P9B&C~Uvj=}{IyMFX^Zs!|E-XVPPlG%`IF3v!8#9B7PmD1?qZge4t&D1LbA z>q2hQW0N_`V>2dRSXll#Ovu9e#1pf~@^BKH^Z<(^P=yA)UkbI|An9?m zP#&Wxwf)CRB`gmw6XG~U9>KSNT+r1 z*>i;;ue6a@HAXrV!eCs@l6iLxe&EeIA@|RoxVo0jQHPA}47*Oq!urG$Eo6B;iT$%D zu5LgTF1!(ir@kw|h-3ItXx-U!lThBQDYgB#NF^*U8dz~F+Qo|71p7UWl_#4)0(W-i zdwABUbg?_f(}r?vqiz>eScoy|4rvUZHh1DEY`Y7Er|uS#`qPFwnbYPTA-vZR>eGf= zF*EOzqhaw;hj6;}ewO;Q$@i!SP=n+LQDB`C{^|>H)S(DFF-J>cYNORd8uhTC9?__j zO#!!Pb?Z_S{X2HdM=QjT`qGmZcVBl7XeRb0X&=iO*eBJ($puV z!7^1ng(JzRUh3B3ziU%&!Jr8>ZqBNn21ObhbE+TUM{Y`*8+7h&cDYl}2t(}tsh-6z zPdz8~h&(?thJ4Wj`d(8&UB$*R*QyKfs|v} zCEeM6-bQ9)++8(;D@I3WXKQTtir$_xgKc2DE9KywCUDN>yK}O$XyX;^-1*ag$H98- z0mQB9H7H%{LvB!~ek8Wk`!M0h>~$e%OU?g+ja6@eF}(gJ3ar`^DUmN+3M^*K%z6Em z$a>qz;wF^ha{A#Xaxm-%jpk|nQ?w(McpdA2*6#?XcQq%u4wAQhLhldCFDsTmgDfcV zb5Y_wtwice6c~6B-Hmh{zYxj4)RM(~>)e#S<5$vV`BS}*Bgq*--@)EOI*yvvY=fPO z`ZegKC;1J2aZeR&`;D#yJ5|T93vqX;TEKgAS!^ks z%>=s;!*6H~Ha2EYrX!~{D94(?0FSzjLYN}k5HDJ3CUE(Hu%98$mtHW~%w>pB7=Fc) z&!3ZSGRX=amf|z8gK=wbD|bW2#**k^3)p*|i|oq9d_VThZs4HK&Ylv-;WDr_n!9;ALa+YUICO{TI&>bV2NN%w_Tu@$E2NAGw-U-tr*Y!gk^ukyu8Gl)S`%rxQC z36-iUlHDw_fI)*@Y;t^!4Qe%L%^0mt?YWvo5q^~fq+@J2wstArJNApscRd`c8ifU*}ZQiu(?f2YkvAr$zzs^N!Dik~RNVPT! zPpyN${=Fq*E2D|w$~Gh16@9l=LQ^c|i3C6IZwVHv6U zsrA5t@mOCtg?1+&fiFztGio~8lF?=GRvUnVj_)##$6nHAw7DT#@JLCx>$A!qZ6?>m z#RNA=9fM!q=;#{g;O&%}A*h-7o15U!)H3F9WNf;TaI(&AHH$}*YX|C?yIFH%Yra9E zT0rGc%`9(lTZPM*+=MK(&Qj~->J8O_`LjWcH|~7~Mjv#SbA$^AvT-4qD|J1ixX&^_ z52H2#DFQ<8*rV4?g@a|C8NG^z?4dU!z$`skwuH?=i45BUg{QU@z7fZWrMiPd)_Fp* zl_p7DfI*HuF#go{DFesH(9Ps=&x?;{^kR(1XD%4#;hQCR{(_ITu#e|~y?5J39?%3& zXY@!eT`ZwhnL%KWD)oUHk81_WQJoBN>)eX3{N%fFqdpKzV+@J@OUAb7AF2fzH{+W= z)uMc01)t@>{X97F8yx7sO8Tb0ti{WhZ_4YxQ!6BrMCQUd_RAD)wb{=&Z_NDcxrobY2?2y{Z~#I z;FRJOY9~1u&Tx%p*SIs<(KRByhjk%DyP)c+T?M2sJmhT;=hijDxn-WKYB!+3Zg*k# z70oWST+mv}62f4aZmG% zS+QOWe*K|tH~0)*yB&W}+d&?VjAb2r1nY3v>I^Yh&HFucCy3yVBSkz>tOA2UsyQ3^;gHL5S={=`kX ztF#Cg#o+3f9;6L~wW=N{QR6qgc~!6I7S57*qTlyRP6*mk2Y#u_t31TOp$-a9EfkrN zFIgtM!T6ZIuOO29jARspeP2-yhJB>b?E6Y+xB9+*R6XSiNS{gMZJ$YNf;+?CI8qAK za79_zR5Tm;_QjBpz!Hx8`K+@l*hL0=1;hoPTvJ&Nt7Lx;GcOrrR*-!~esIu?-Tm*W zscaw8EHn81v~p+XY<^*@SZdLXT6{+NEZRa}#_H_UM8QpxCaV2Jm0Apq8zkuxF(e#- zctZI}Iv@mXsXf1VOVuIZjc^=_0*fz1P~^)H1iKkFla8KUNwE9B&Bt z4a{Za0To^&PIX#X@r$Fjw;j{7dmIo z(cp6he4Ykt<7x?m7^0KV|Kx$x`GUJZ=Cps(+SVBD{FVekp$8{UfPILhk|A@Vks`q7Id`@6<0Bq@|U)Qx8O4K|uIj zz#7h1f&xCj3WcYx7Jd=Oh@*ONyXj1?5t8p{lGL*ZVep*Df6#1m<}Iuq!VLDIfw%Br zD7z?Ms+Ma$B|8iEm-x7?zGe4O?CooxZp*E4Lk^@h4|d9!!HJc-Oa0u7NpAUz*~Pf~ z#|Qx<3DEII9Q`=H0K`wx;t5czx)!$8dRgvjuM?B&y}Z~D==DO-mMZ=GeWGrFY{c(I z6j*g5ibVbsiokD75YuhnB!`{?r_S(0i9VyFRn9s>?Llv7| z3rKec5pXY66tpv>0g7%3rdx&KRLyG zo;ee9S2Jf~^HP5Hf}e!O>KgLtq=DdP^mN)g)PP6Z;%h`m8sxhx$qQJkW^F zf5aa30)!)uFQUMEjI=|4KG&hM<#NiCnycqt5|Wn(NorTmy&?@({;F4TB)KleGyH0N z3%?pK4;c8>cwN(9jaRRMPKF;p!jIf28Gan^JLh#_%i+fx_~ofLrLI4Vx8tXMkY4?m z9HS0Zw?`sx2@^|KGZG1;zDO!k?n>)H}jD;uy(PdT>zku8{mplcd^^ z!28y$>M*{F(O0rogTB%=?JJp7(BqeEW}f;vIMtdbLxA^0K)rb<_)h%=acy6K0>1T_}%p;^=nWexW5q&zttRMh1Fopl4C7|`W0Y@R3QA`T*@v=1(X*^=A^JQ|m&Q!f!xI zaQHeb2WxoZvaEOJV$E4D;mK5S0mSy2{01E2te-67+YDV;_Oo!tR_ZShhgi}PI#rWn z0?pKiJPM=#Dmv9gHdv|k5$QOW@HhPM)W<>|aSU(TWljUhlfO%I9k;|uyx#nS#BKjB z>;DO9NTg3tcxo8#oZ)$2ZQ3G)S*gF;lUL+MB zfe6YC+dEzeCul;s=S~*8(s=gY4V(4$t$b?>hED`dW5Xv2x=z)=@X18d@G1D=sg;F1 z;uwb1z&3mpX|CgzIE99NE}Po=PO`UK>BKv_Qxsj$uf-w%svluH%+Cm3FU7V*Sozt#;GU z0BhGnfrSIYB9K6_zP0)upO;+yR**cvpDy&4NVNfuBq#M2O2`3g4e5qBELYNI{K$=# zE9o4+^P3@DcqN^QU!K}X>Uu=Gt8f~eKUA~GAc}SKS`Ar$-XZ`?4Rh5DB(xHw2h(*7 zXQK@c*cgSU<_M>Vqop|1M;stghzrSFO_I78w^qS&(4IUWBnLP0UDbRcQ^qn!zMb3? z`u35(eB5-+(mC*HdA2pS!vJYHBE&5=o)c?7VgWm!po4p?T){Gsv_fx^$BP-bIpJKs zzB|cm73;2+D(o;qa}SFF;WIxUQ( za<+gqAT`3u6~214DhW249?3dM08M#L7w*xwdR7@vBdkxqdosCIoG%o6vXvp9`?s9NHtDw?KiVB4SG9 z|E4MEGkM0DsgQYM&{oDEz6f5E%N&DjEsf#GYA);p+t7|)U<|OqS)jJTLHKK16rS2n zIOy9|3dFe|yieC?CU|=d-a)`SYVZ&3e5{xfoO(257ik*WkX_LZLwKKV zaB4Rkf*HG`z&qQ5*JeVQ81_g?6|M12)7SD77~ZK>2-8cxqokYll&g?XX61PipXf0^VPPKRxa# zAwR&7GkT^cqyY!Y;h_yU2<1{Jq0}R?jm+NJbf(3=f~$q(5Ot`UJ#r}s$kN4(TmmV51n9kK z>X{bNh$JYX@KnFBia16Rl|mk%_v8T56%wUMQXe5F28SBBykn_Aa7{NoivLy|CY*Q0 z6`b2KbarCd?n12SWgX*=zO-5>gZ#mde$I-OOZvtWS8SOL#l>2#+ngDdrFadl)3F`( zz$J*lrww6*Fz7Pth8Jw^7;LWT?OIhCUZ@R)j0-B_ocd5~;Rn1b1o~ql%j-S02q1)L zF$zyD5e^ag9Le%>fTj$dxe5*lpF<2E6zD=2ANC-J%F(a^8qUk#*U^qt;&a@NU6qF# z6gvzB9svtfcOVpDcOdLCCH(3L4LMREM`?)ksM1`k=+Q!Sj3Lt3xFCC|?Xl7{w6@2g z9on*&G&prU4ngImC_Ht7;I+yWW~+RtsQe$xP<5hK^dwRAWUXlGKde-3cuo=3PBp6W zIWn)NwWk%Mbed2M9i`LJjwo@OqZY2tKnsF(CJIlTC2VxCDB2EIqwDK8H27=*e^Y~p zxV~B^$2mfNt|6Z!M%8u&H0eBPAKIkz(GHWw0d9lU1vn0aE<}N?4TOm{h+^vu3iUY` zY4F7YzC?qEc&e@q!nMqa;nYLleW`%HZ9r3@7vByT{IssQ{WJX?Ukw<%$~fzR2d%zL z;I*#=IMdOXTw^Fs>T+PXq<)_10S8|MxI$FAQmZt0g>`0tp{K6G@!VL4dIwAWuNGR% z>*^XFNk#^xbnr)|&~?o5n7K z`z@eC2HlFnQ@07vh+{-jO(c=ITz^kUZr3C!emFFkS}?cTI=`xT?9RDc)VNoY@(meW z@mDSKu&jj#k)GSd)NqOKi2BwKhQJIB(HG#ZU6x~EXi!?*VJI8i$%or(@}AFA&9YUD zFs#WyD&UVZG;bLjY^5KjLVTr>_>M}c|I<`3G()Koyr&>O@KrEt9l$1YQ)3%Ip4*=b{YH{HV<3rKDHMYG!^FYIccXss)x_F0TsJtUJo}31g z8n~S5_jX&=9Y}%Ngp{$$ost>#3AwF5R=Gkqwa=eB>6okJaw-Y`N?Fk{gv zG7;XCqeJ`b$7uI6wxZrb4UT#n1vb|ZsCE=Z*pBiu_NPMmj;3ssvF{4O&kO-qSwgqk zjMKd^mHoMp4Xx~ZXos@Q`vyGJFVGC_e~AL$P!e8Rdn#dT-zan6*Wh0Z_%|B->6!am zA^)8r=Xb5~4upLb95n9tLNv5-e?U8oWA@i^P=7=tO#1)@zPluxv}shpHtli1hs@yr zYZtUXYpeevR)46iPW^wfFgTB`5&U1p+K-I2ytCj4zOR(2Vwolf?1KZ&V8H%2p>8x_ zA7y~*V~}uszJ1O3e5!dyX9nYc2T`ucp$frZ{2#)5X1n?)e#kAh&+-!-Nar?c&&_Jb zas@REx8KbUSdq9oCF+8T3YLB@`3tjl!iYG)IFU(^I(h~$epC%l_DK!=ao?Q!rh@+W1l#a8? z46w%w$plTJALZc*9#^v#IWiuc*)on9e0V}7>g zDt(3Z`ZGN(8nsPlM=*A6jqNJWPO+4?e&Csx`vp8IGtxMn2Yqo9k>@Q%e_F|dOTGb& zw`;Si2k+}+o)AoGB#N)nV7EjS9B34$8$S`=4#IHU_cJYV7lZBuyH65qiF3S^OH3bNy z(8?%0wTi$a%MZt?%*-;w&Q*oUYK93;B3>wwKfErkE=R+vYdEue4Yd0g@jkUCYS1cz z!c$R!>T3l>*w+gGBEFVTPSupbMcmSDZ6R345U@+)McmI_Y8aEYp*36=?a+|B;rT!{ z4acD8dML1%Kp1E}DbCij(dBx&25%tX4K;X(%e7@lvyjg)fPB4myhlKK}I2ALOLL>6qw(4^uJ zgMN6f$lS!p+>RbIy};+~bC@ohl3#K-UopsyOpb)us>-X)a5S|EM0}p!Ol=Ny-Kx34 zb7TuP*Mx3M96{*jq43mJ`0KA3rOgt$-}pq!H5_(#Q)( z^J3Fq`=f*o1v0;L2H&4&Z-0HZjgXJWHx~jfxmgg_eKzZ&VIAD7$dr84p%#opiDg@A8>HuMNPh)m7W!E^%}>+9fSK4f zW6^2;Of0+w)47DTRrP}tQr1O*P2KU=zot;D!IVW;&vO;sG@Vfv>PkQjXH=!Kyw2D@ z?2JW#i!&Ar>m@ep0mC}%3~E7V9Kuq6@1Wip{>jTK{RpWnukBr7+m8fXY(Gj^A8oTf#;^|CPAzEru`JtC+c!)E{}uCr`YpB^=E8Ac z27ern02Ch=11;CWnDC*f$jIvIbH zM!MX*1|x!Apm(@>?ba{Jb1w$w^eZ3}6oO3)}|p3LYMj z$#zwH)s^IwoRsbB$}&#|Fej1AW-IC{96upB6*t`2@Madpa+y7R@Jk|DlM6HhRUX`u}shxe)Lg?3d2 zi;JEa@(v7GU<#%QZa^b;^vm|QOy78ujJlE4$=M}&T*Ps;sg{iwzf0C5k|XsDiMmNx zN~Dp}oLs1sl)71tuG(EFr5AQ!!X#hlz)EKBn+uQMg2tuEsW7!KxI7LfPlw)L@Kz9= zkX$KST%>LjX4>%na<-a*m3;;EJvlrHo5huoy)x5L#IrtiyBwcF@0F`v6+A1>8n4_T zJjd!W3EmVcE>w34@dTa(!F8jo?vkSuLlIMV<8X3BwbIkFg}R5on+z+SI`?W$`Jx?U zbsx#b2&AQ)?^XA+KCvT{FY~)+$aSveR1XMt47wLgCH3T&s0T^L^DN!fu{fWpI#o`qP8Q&ErN_|oJUv(q|a z^%xE;NKTNv8ua4ha&%l7vuTwMw~FCeSv`ScCnU!)eS#k2NgPYAW8ES44^(ocqVyP< z?4sEqF3(m^kqSeiVkNz#BbV>Z74W~Jp621<{ML*50e`Ml>%Gt^_zXxKIW;D*-|ZN5 z*Ruq#h#dl-*zL}zzZP3No3+7Cr4Smh=c9w zhh({$oGzGn%PNjuaS}6p8TAqxmnO%m^y1*q%Q%GdbiDX8=+0lk(FN76Y#UllPQm$u4z*GhoAnU)bpUa@nJPN#=kC=)sI2iuHM35xtZqZ{%ut7Y>PZZRcsQE-?Fu1S`2Jg@9+TU Uz|&$@yLy)gxI!get#-Bk4-5gb*8l(j literal 0 HcmV?d00001 diff --git a/doc/_sources/cli.txt b/doc/_sources/cli.txt index 94b32377..cc4a0370 100644 --- a/doc/_sources/cli.txt +++ b/doc/_sources/cli.txt @@ -11,7 +11,7 @@ Command line interface The output of ``luacheck`` consists of separate reports for each checked file and ends with a summary:: $ luacheck src - Checking src/bad_code.lua Failure + Checking src/bad_code.lua 5 warnings src/bad_code.lua:3:16: unused variable helper src/bad_code.lua:3:23: unused variable length argument @@ -20,11 +20,11 @@ The output of ``luacheck`` consists of separate reports for each checked file an src/bad_code.lua:9:11: accessing undefined variable hepler Checking src/good_code.lua OK - Checking src/python_code.lua Syntax error + Checking src/python_code.lua 1 error - spec/samples/python_code.lua:1:6: expected '=' near '__future__' + src/python_code.lua:1:6: expected '=' near '__future__' - Checking src/unused_code.lua Failure + Checking src/unused_code.lua 9 warnings src/unused_code.lua:3:18: unused argument baz src/unused_code.lua:4:8: unused loop variable i @@ -51,67 +51,75 @@ Options taking several arguments can be used several times; ``--ignore foo --ign Note that options that may take several arguments, such as ``--globals``, should not be used immediately before positional arguments; given ``--globals foo bar file.lua``, ``luacheck`` will consider all ``foo``, ``bar`` and ``file.lua`` global and then panic as there are no file names left. -===================================== ============================================================================ -Option Meaning -===================================== ============================================================================ -``-g`` | ``--no-global`` Filter out warnings related to global variables. -``-u`` | ``--no-unused`` Filter out warnings related to unused variables and values. -``-r`` | ``--no-redefined`` Filter out warnings related to redefined variables. -``-a`` | ``--no-unused-args`` Filter out warnings related to unused arguments and loop variables. -``-s`` | ``--no-unused-secondaries`` Filter out warnings related to unused variables set together with used ones. - - See :ref:`secondaryvaluesandvariables` -``--std `` Set standard globals. ```` must be one of: - - * ``_G`` - globals of the Lua interpreter ``luacheck`` runs on (default); - * ``lua51`` - globals of Lua 5.1; - * ``lua52`` - globals of Lua 5.2; - * ``lua52c`` - globals of Lua 5.2 compiled with LUA_COMPAT_ALL; - * ``lua53`` - globals of Lua 5.3; - * ``lua53c`` - globals of Lua 5.3 compiled with LUA_COMPAT_5_2; - * ``luajit`` - globals of LuaJIT 2.0; - * ``min`` - intersection of globals of Lua 5.1, Lua 5.2 and LuaJIT 2.0; - * ``max`` - union of globals of Lua 5.1, Lua 5.2 and LuaJIT 2.0; - * ``none`` - no standard globals. -``--globals [] ...`` Add custom globals on top of standard ones. -``--read-globals [] ...`` Add read-only globals. -``--new-globals [] ...`` Set custom globals. Removes custom globals added previously. -``--new-read-globals [] ...`` Set read-only globals. Removes read-only globals added previously. -``-c`` | ``--compat`` Equivalent to ``--std max``. -``-d`` | ``--allow-defined`` Allow defining globals implicitly by setting them. - - See :ref:`implicitlydefinedglobals` -``-t`` | ``--allow-defined-top`` Allow defining globals implicitly by setting them in the top level scope. - - See :ref:`implicitlydefinedglobals` -``-m`` | ``--module`` Limit visibility of implicitly defined globals to their files. - - See :ref:`modules` -``--no-unused-globals`` Filter out warnings related to set but unused global variables. -``--ignore | -i [] ...`` Filter out warnings matching patterns. -``--enable | -o [] ...`` Do not filter out warnings matching patterns. -``--only | -o [] ...`` Filter out warnings not matching patterns. -``--no-inline`` Disable inline options. -``--config `` Path to custom configuration file (default: ``.luacheckrc``). -``--no-config`` Do not look up custom configuration file. -``--cache []`` Path to cache file. (default: ``.luacheckcache``). See :ref:`cache` -``--no-cache`` Do not use cache. -``-j`` | ``--jobs`` Check ```` files in parallel. Requires `LuaLanes `_. -``--formatter `` Use custom formatter. ```` must be a module name or one of: - - * ``TAP`` - Test Anything Protocol formatter; - * ``JUnit`` - JUnit XML formatter; - * ``plain`` - simple warning-per-line formatter; - * ``default`` - standard formatter. -``-q`` | ``--quiet`` Suppress report output for files without warnings. - - * ``-qq`` - Suppress output of warnings. - * ``-qqq`` - Only output summary. -``--codes`` Show warning codes. -``--no-color`` Do not colorize output. -``-v`` | ``--version`` Show version of luacheck and its dependencies and exit. -``-h`` | ``--help`` Show help and exit. -===================================== ============================================================================ +======================================= ============================================================================ +Option Meaning +======================================= ============================================================================ +``-g | --no-global`` Filter out warnings related to global variables. +``-u | --no-unused`` Filter out warnings related to unused variables and values. +``-r | --no-redefined`` Filter out warnings related to redefined variables. +``-a | --no-unused-args`` Filter out warnings related to unused arguments and loop variables. +``-s | --no-unused-secondaries`` Filter out warnings related to unused variables set together with used ones. + + See :ref:`secondaryvaluesandvariables` +``--no-self`` Filter out warnings related to implicit ``self`` argument. +``--std `` Set standard globals. ```` can be one of: + + * ``_G`` - globals of the Lua interpreter ``luacheck`` runs on (default); + * ``lua51`` - globals of Lua 5.1; + * ``lua52`` - globals of Lua 5.2; + * ``lua52c`` - globals of Lua 5.2 compiled with LUA_COMPAT_ALL; + * ``lua53`` - globals of Lua 5.3; + * ``lua53c`` - globals of Lua 5.3 compiled with LUA_COMPAT_5_2; + * ``luajit`` - globals of LuaJIT 2.0; + * ``min`` - intersection of globals of Lua 5.1, Lua 5.2 and LuaJIT 2.0; + * ``max`` - union of globals of Lua 5.1, Lua 5.2 and LuaJIT 2.0; + * ``busted`` - globals added by Busted 2.0; + * ``none`` - no standard globals. + + See :ref:`stds` +``--globals [] ...`` Add custom globals on top of standard ones. +``--read-globals [] ...`` Add read-only globals. +``--new-globals [] ...`` Set custom globals. Removes custom globals added previously. +``--new-read-globals [] ...`` Set read-only globals. Removes read-only globals added previously. +``-c | --compat`` Equivalent to ``--std max``. +``-d | --allow-defined`` Allow defining globals implicitly by setting them. + + See :ref:`implicitlydefinedglobals` +``-t | --allow-defined-top`` Allow defining globals implicitly by setting them in the top level scope. + + See :ref:`implicitlydefinedglobals` +``-m | --module`` Limit visibility of implicitly defined globals to their files. + + See :ref:`modules` +``--ignore | -i [] ...`` Filter out warnings matching patterns. +``--enable | -e [] ...`` Do not filter out warnings matching patterns. +``--only | -o [] ...`` Filter out warnings not matching patterns. +``--no-inline`` Disable inline options. +``--config `` Path to custom configuration file (default: ``.luacheckrc``). +``--no-config`` Do not look up custom configuration file. +``--filename `` Use another filename in output, for selecting + configuration overrides and for file filtering. +``--exclude-files [] ...`` Do not check files matching these globbing patterns. Recursive globs such as ``**/*.lua`` are supported. +``--include-files [] ...`` Do not check files not matching these globbing patterns. +``--cache []`` Path to cache file. (default: ``.luacheckcache``). See :ref:`cache` +``--no-cache`` Do not use cache. +``-j | --jobs`` Check ```` files in parallel. Requires `LuaLanes `_. +``--formatter `` Use custom formatter. ```` must be a module name or one of: + + * ``TAP`` - Test Anything Protocol formatter; + * ``JUnit`` - JUnit XML formatter; + * ``plain`` - simple warning-per-line formatter; + * ``default`` - standard formatter. +``-q | --quiet`` Suppress report output for files without warnings. + + * ``-qq`` - Suppress output of warnings. + * ``-qqq`` - Only output summary. +``--codes`` Show warning codes. +``--ranges`` Show ranges of columns related to warnings. +``--no-color`` Do not colorize output. +``-v | --version`` Show version of Luacheck and its dependencies and exit. +``-h | --help`` Show help and exit. +======================================= ============================================================================ .. _patterns: @@ -128,12 +136,19 @@ Pattern Matching warnings 4.2/.*_ Shadowing declarations of arguments with ``_`` suffix or redefining them. ======= ========================================================================= -Unless already anchored, patterns matching variable names are anchored at both sides and patterns matching warning codes are anchored at their beginnings. This allows to filter warnings by category (e.g. ``--only 1`` focuses ``luacheck`` on global-related warnings). +Unless already anchored, patterns matching variable names are anchored at both sides and patterns matching warning codes are anchored at their beginnings. This allows one to filter warnings by category (e.g. ``--only 1`` focuses ``luacheck`` on global-related warnings). + +.. _stds: + +Sets of standard globals +------------------------ + +CLI option ``--stds`` allows combining built-in sets described above using ``+``. For example, ``--std max`` is equivalent to ``--std=lua51+lua52+lua53``. Leading plus sign adds new sets to default one instead of replacing it. For instance, ``--std +busted`` is suitable for checking test files that use `Busted `_ testing framework. Custom sets of globals can be defined by mutating global variable ``stds`` in config. See :ref:`custom_stds` Formatters ---------- -CLI option ``--formatter`` allows selecting a custom formatter for ``luacheck`` output. A custom formatter is a Lua module returning a function with three arguments: report as returned by ``luacheck`` module (see :ref:`report`), array of file names and table of options. Options contain values assigned to ``quiet``, ``color``, ``limit``, ``codes`` and ``formatter`` options in CLI or config. Formatter function must return a string. +CLI option ``--formatter`` allows selecting a custom formatter for ``luacheck`` output. A custom formatter is a Lua module returning a function with three arguments: report as returned by ``luacheck`` module (see :ref:`report`), array of file names and table of options. Options contain values assigned to ``quiet``, ``color``, ``limit``, ``codes``, ``ranges`` and ``formatter`` options in CLI or config. Formatter function must return a string. .. _cache: @@ -141,3 +156,17 @@ Caching ------- If LuaFileSystem is available, Luacheck can cache results of checking files. On subsequent checks, only files which have changed since the last check will be rechecked, improving run time significantly. Changing options (e.g. defining additional globals) does not invalidate cache. Caching can be enabled by using ``--cache `` option or ``cache`` config option. Using ``--cache`` without an argument or setting ``cache`` config option to ``true`` sets ``.luacheckcache`` as the cache file. Note that ``--cache`` must be used every time ``luacheck`` is run, not on the first run only. + +Stable interface for editor plugins and tools +--------------------------------------------- + +Command-line interface of Luacheck can change between minor releases. Starting from 0.11.0 version, the following interface is guaranteed at least till 1.0.0 version, and should be used by tools using Luacheck output, e.g. editor plugins. + +* Luacheck should be started from the directory containing the checked file. +* File can be passed through stdin using ``-`` as argument or using a temporary file. Real filename should be passed using ``--filename`` option. +* Plain formatter should be used. It outputs one issue (warning or error) per line. +* To get precise error location, ``--ranges`` option can be used. Each line starts with real filename (passed using ``--filename``), followed by ``::-:``, where ```` is line number on which issue occurred and ``-`` is inclusive range of columns of token related to issue. Numbering starts from 1. If ``--ranges`` is not used, end column and dash is not printed. +* To get warning and error codes, ``--codes`` option can be used. For each line, substring between parentheses contains three digit issue code, prefixed with ``E`` for errors and ``W`` for warnings. Lack of such substring indicates a fatal error (e.g. I/O error). +* The rest of the line is warning message. + +If compatibility with older Luacheck version is desired, output of ``luacheck --help`` can be used to get its version. If it contains string ``0..``, where ```` is at least 11 and ``patch`` is any number, interface described above should be used. diff --git a/doc/_sources/config.txt b/doc/_sources/config.txt index 2c389875..e71fc9c9 100644 --- a/doc/_sources/config.txt +++ b/doc/_sources/config.txt @@ -1,9 +1,9 @@ Configuration file ================== -By default, ``luacheck`` tries to load configuration from ``.luacheckrc`` file in the current directory. Path to config can be set using ``--config`` option. Config loading can be disabled using ``--no-config`` flag. +``luacheck`` tries to load configuration from ``.luacheckrc`` file in the current directory. If not found, it will look for it in the parent directory and so on, going up until it reaches file system root. Path to config can be set using ``--config`` option, in which case it will be used during recursive loading. Config loading can be disabled using ``--no-config`` flag. -Config is simply a Lua script executed by ``luacheck``. It may set various options by assigning to globals. +Config is simply a Lua script executed by ``luacheck``. It may set various options by assigning to globals or by returning a table with option names as keys. .. _options: @@ -18,12 +18,15 @@ Option Type Default value ``formatter`` String ``"default"`` ``cache`` Boolean or string ``false`` ``jobs`` Positive integer ``1`` +``exclude_files`` Array of strings ``{}`` +``include_files`` Array of strings (Include all files) ``global`` Boolean ``true`` ``unused`` Boolean ``true`` ``redefined`` Boolean ``true`` ``unused_args`` Boolean ``true`` ``unused_secondaries`` Boolean ``true`` -``std`` String or array of strings ``"_G"`` +``self`` Boolean ``true`` +``std`` String or set of standard globals ``"_G"`` ``globals`` Array of strings ``{}`` ``new_globals`` Array of strings (Do not overwrite) ``read_globals`` Array of strings ``{}`` @@ -32,7 +35,6 @@ Option Type Default value ``allow_defined`` Boolean ``false`` ``allow_defined_top`` Boolean ``false`` ``module`` Boolean ``false`` -``unused_globals`` Boolean ``true`` ``ignore`` Array of patterns (see :ref:`patterns`) ``{}`` ``enable`` Array of patterns ``{}`` ``only`` Array of patterns (Do not filter) @@ -45,39 +47,76 @@ An example of a config which makes ``luacheck`` ensure that only globals from th :linenos: std = "min" - ignore = {"211"} + ignore = {"212"} -Per-prefix overrides --------------------- +.. _custom_stds: -The environment in which ``luacheck`` loads the config contains a special global ``files``. When checking a file ````, ``luacheck`` will override options from the main config with entries from ``files[]``, applying entries for shorter prefixes first. This allows to override options for a specific file by setting ``files[]``, and for all files in a directory by setting ``files[/]``. For example, the following config re-enables detection of unused arguments only for files in ``src/dir``, but not for ``src/dir/myfile.lua``: + +Custom sets of globals +---------------------- + +``std`` option allows setting a custom standard set of globals using a table. In that table, string keys are globals, and string in array part are read-only globals. + +Additionally, custom sets can be given names by mutating global ``stds`` variable. For example, when using `LPEG `_ library, it makes sense to access its functions tersely using globals. In that case, the following config allows removing false positives related to global access easily: + +.. code-block:: lua + :linenos: + + stds.lpeg = require "lpeg" + +.. code-block:: lua + :linenos: + + local lpeg = require "lpeg" + + local function parse1(...) + -- This function only uses lpeg functions as globals. + local _ENV = lpeg + -- luacheck: std lpeg + local digit, space = R "09", S " " + -- ... + end + + local function parse2(...) + -- This function uses lpeg functions as well as standard globals. + local _ENV = setmetatable({}, {__index = function(_, k) return _ENV[k] or lpeg[k] end}) + -- luacheck: std +lpeg + local digit, space = R "09", S " " + local number = C(digit^1) / tonumber + -- ... + end + +Per-file and per-path overrides +------------------------------- + +The environment in which ``luacheck`` loads the config contains a special global ``files``. When checking a file ````, ``luacheck`` will override options from the main config with entries from ``files[]`` and ``files[]``, applying entries for shorter paths first. For example, the following config re-enables detection of unused arguments only for files in ``src/dir``, but not for ``src/dir/myfile.lua``: .. code-block:: lua :linenos: std = "min" - ignore = {"211"} + ignore = {"212"} - files["src/dir/"] = { - enable = {"211"} + files["src/dir"] = { + enable = {"212"} } files["src/dir/myfile.lua"] = { - ignore = {"211"} + ignore = {"212"} } Note that ``files`` table supports autovivification, so that .. code-block:: lua - files["myfile.lua"].ignore = {"211"} + files["myfile.lua"].ignore = {"212"} and .. code-block:: lua files["myfile.lua"] = { - ignore = {"211"} + ignore = {"212"} } are equivalent. diff --git a/doc/_sources/index.txt b/doc/_sources/index.txt index 233222d1..6b1d8962 100644 --- a/doc/_sources/index.txt +++ b/doc/_sources/index.txt @@ -11,4 +11,6 @@ Contents: inline module -This is documentation for `Luacheck `_ 0.10.0, a static analyzer and a linter for `Lua `_. +This is documentation for master branch version of `Luacheck `_, a linter for `Lua `_. + +This documentation is being updated. diff --git a/doc/_sources/inline.txt b/doc/_sources/inline.txt index 2657b919..b974a109 100644 --- a/doc/_sources/inline.txt +++ b/doc/_sources/inline.txt @@ -3,22 +3,30 @@ Inline options Luacheck supports setting some options directly in the checked files using inline configuration comments. An inline configuration comment starts with ``luacheck:`` label, possibly after some whitespace. The body of the comment should contain comma separated options, where option invocation consists of its name plus space separated arguments. The following options are supported: -================= ============================================ -Option Number of arguments -================= ============================================ -compat 0 -module 0 -allow_defined 0 -allow_defined_top 0 -std 1 -globals 0+ -new_globals 0+ -read_globals 0+ -new_read_globals 0+ -ignore 0+ (without arguments everything is ignored) -enable 1+ -only 1+ -================= ============================================ +================== ============================================ +Option Number of arguments +================== ============================================ +global 0 +unused 0 +redefined 0 +unused args 0 +unused secondaries 0 +self 0 +compat 0 +module 0 +allow defined 0 +allow defined top 0 +std 1 +globals 0+ +new globals 0+ +read globals 0+ +new read globals 0+ +ignore 0+ (without arguments everything is ignored) +enable 1+ +only 1+ +================== ============================================ + +Options that take no arguments can be prefixed with ``no`` to invert their meaning. E.g. ``--luacheck: no unused args`` disables unused argument warnings. Part of the file affected by inline option dependes on where it is placed. If there is any code on the line with the option, only that line is affected; otherwise, everthing till the end of the current closure is. In particular, inline options at the top of the file affect all of it: diff --git a/doc/_sources/module.txt b/doc/_sources/module.txt index 04136520..d33cd121 100644 --- a/doc/_sources/module.txt +++ b/doc/_sources/module.txt @@ -3,9 +3,9 @@ Luacheck module Use ``local luacheck = require "luacheck"`` to import ``luacheck`` module. It contains the following functions: -* ``luacheck.get_report(source)``: Given source string, returns analysis data (an array) or nil and syntax error table (table with fields ``line``, ``column``, ``offset``, ``msg``). -* ``luacheck.process_reports(reports, options)``: Processes array of analysis reports and applies options. ``reports[i]`` uses ``options``, ``options[i]``, ``options[i][1]``, ``options[i][2]``, ... as options, overriding each other in that order. Options table is a table with fields similar to config options; see :ref:`options`. Analysis reports with field ``error`` are ignored. ``process_reports`` returns final report, see :ref:`report`. -* ``luacheck.check_strings(sources, options)``: Checks array of sources using options, returns final report. Tables in ``sources`` array are ignored. +* ``luacheck.get_report(source)``: Given source string, returns analysis data (a table). +* ``luacheck.process_reports(reports, options)``: Processes array of analysis reports and applies options. ``reports[i]`` uses ``options``, ``options[i]``, ``options[i][1]``, ``options[i][2]``, ... as options, overriding each other in that order. Options table is a table with fields similar to config options; see :ref:`options`. Analysis reports with field ``fatal`` are ignored. ``process_reports`` returns final report, see :ref:`report`. +* ``luacheck.check_strings(sources, options)``: Checks array of sources using options, returns final report. Tables with field ``fatal`` within ``sources`` array are ignored. * ``luacheck.check_files(files, options)``: Checks array of files using options, returns final report. Open file handles can passed instead of filenames, in which case they will be read till EOF and closed. ``luacheck._VERSION`` contains Luacheck version as a string in ``MAJOR.MINOR.PATCH`` format. @@ -17,21 +17,19 @@ Using ``luacheck`` as a function is equivalent to calling ``luacheck.check_files Report format ------------- -A final report is an array of file reports plus fields ``warnings`` and ``errors`` containing total number of warnings and errors, correspondingly. +A final report is an array of file reports plus fields ``warnings``, ``errors`` and ``fatals`` containing total number of warnings, errors and fatal errors, correspondingly. -A file report is an array of warnings. If an error occured while checking a file, its report will have ``error`` field containing ``"I/O"`` or ``"syntax"``. In case of syntax error, ``line`` (number), ``colunmn`` (number), ``offset`` (number) and ``msg`` (string) fields are also present. +A file report is an array of issues (warnings or errors). If a fatal error occured while checking a file, its report will have ``fatal`` field containing error type. -A warning is a table with field ``code`` indicating the type of warning (see :doc:`warnings`), and fields ``line`` and ``column`` pointing to the source of the warning. Absence of ``code`` field indicates that the warning is related to a broken inline configuration comment; then, ``invalid`` field marks comments with invalid syntax, and ``unpaired`` field marks unpaired push/pop comments. +An issue is a table with field ``code`` indicating its type (see :doc:`warnings`), and fields ``line``, ``column`` and ``end_column`` pointing to the source of the warning. ``name`` field may contain name of relate variable. Issues of some types can also have additional fields: -Warnings of some types can also have additional fields: - -===== ======================================================================================= +===== ======================================================================================== Codes Additional fields -===== ======================================================================================= +===== ======================================================================================== +011 ``msg`` field contains syntax error message. 111 ``module`` field indicates that assignment is to a non-module global variable. 211 ``func`` field indicates that unused variable is a function. -212 ``vararg`` field indicated that variable length argument is unused. -4.. ``prev_line`` and ``prev_column`` fields contain location of the overwritten defintion. -===== ======================================================================================= +4.. ``prev_line`` and ``prev_column`` fields contain location of the overwritten definition. +===== ======================================================================================== Other fields may be present for internal reasons. diff --git a/doc/_sources/warnings.txt b/doc/_sources/warnings.txt index 9bce4093..3db713bb 100644 --- a/doc/_sources/warnings.txt +++ b/doc/_sources/warnings.txt @@ -1,11 +1,15 @@ List of warnings ================ -Warnings produced by Luacheck are categorized using three-digit warning codes. Warning codes can be displayed in CLI output using ``--codes`` CLI option or ``code`` config option. +Warnings produced by Luacheck are categorized using three-digit warning codes. Warning codes can be displayed in CLI output using ``--codes`` CLI option or ``codes`` config option. Errors also have codes starting with zero. ==== ============================================= Code Description ==== ============================================= +011 A syntax error. +021 An invalid inline option. +022 An upaired inline push directive. +023 An upaired inline pop directive. 111 Setting an undefined global variable. 112 Mutating an undefined global variable. 113 Accessing an undefined global variable. diff --git a/doc/cli.html b/doc/cli.html index f4307783..ff75fce2 100644 --- a/doc/cli.html +++ b/doc/cli.html @@ -7,7 +7,7 @@ - Command line interface — luacheck 0.10.0 documentation + Command line interface — luacheck latest documentation @@ -28,7 +28,7 @@ - + @@ -68,13 +68,16 @@
  • Command line interface
  • Configuration file
  • Inline options
  • @@ -127,7 +130,7 @@

    Command line interface

    The output of luacheck consists of separate reports for each checked file and ends with a summary:

    $ luacheck src
    -Checking src/bad_code.lua                         Failure
    +Checking src/bad_code.lua                         5 warnings
     
         src/bad_code.lua:3:16: unused variable helper
         src/bad_code.lua:3:23: unused variable length argument
    @@ -136,11 +139,11 @@ 

    Command line interfaceCommand line interfaceNote that options that may take several arguments, such as --globals, should not be used immediately before positional arguments; given --globals foo bar file.lua, luacheck will consider all foo, bar and file.lua global and then panic as there are no file names left.

    --++ @@ -172,26 +175,29 @@

    Command line interface

    - + - + - + - + - + - - + + + + - + - + - + - + - + - + - + - + - - - - + @@ -256,16 +261,26 @@

    Command line interface

    - + + + + + + + + + + - + - + - + - + - + + + + - - + + - + @@ -323,16 +341,33 @@

    Command line interface

    Option
    -g | --no-global
    -g | --no-global Filter out warnings related to global variables.
    -u | --no-unused
    -u | --no-unused Filter out warnings related to unused variables and values.
    -r | --no-redefined
    -r | --no-redefined Filter out warnings related to redefined variables.
    -a | --no-unused-args
    -a | --no-unused-args Filter out warnings related to unused arguments and loop variables.
    -s | --no-unused-secondaries
    -s | --no-unused-secondaries

    Filter out warnings related to unused variables set together with used ones.

    See Secondary values and variables

    --std <std>

    Set standard globals. <std> must be one of:

    -
      +
    --no-selfFilter out warnings related to implicit self argument.
    --std <std>

    Set standard globals. <std> can be one of:

    + +

    See Sets of standard globals

    --globals [<global>] ...
    --globals [<global>] ... Add custom globals on top of standard ones.
    --read-globals [<global>] ...
    --read-globals [<global>] ... Add read-only globals.
    --new-globals [<global>] ...
    --new-globals [<global>] ... Set custom globals. Removes custom globals added previously.
    --new-read-globals [<global>] ...
    --new-read-globals [<global>] ... Set read-only globals. Removes read-only globals added previously.
    -c | --compat
    -c | --compat Equivalent to --std max.
    -d | --allow-defined
    -d | --allow-defined

    Allow defining globals implicitly by setting them.

    See Implicitly defined globals

    -t | --allow-defined-top
    -t | --allow-defined-top

    Allow defining globals implicitly by setting them in the top level scope.

    See Implicitly defined globals

    -m | --module
    -m | --module

    Limit visibility of implicitly defined globals to their files.

    See Modules

    --no-unused-globalsFilter out warnings related to set but unused global variables.
    --ignore | -i <patt> [<patt>] ... Filter out warnings matching patterns.
    --enable | -o <patt> [<patt>] ...
    --enable | -e <patt> [<patt>] ... Do not filter out warnings matching patterns.
    --only | -o <patt> [<patt>] ...--no-config Do not look up custom configuration file.
    --cache [<cache>]
    --filename <filename>Use another filename in output, for selecting +configuration overrides and for file filtering.
    --exclude-files <glob> [<glob>] ...Do not check files matching these globbing patterns. Recursive globs such as **/*.lua are supported.
    --include-files <glob> [<glob>] ...Do not check files not matching these globbing patterns.
    --cache [<cache>] Path to cache file. (default: .luacheckcache). See Caching
    --no-cache
    --no-cache Do not use cache.
    -j | --jobs
    -j | --jobs Check <jobs> files in parallel. Requires LuaLanes.
    --formatter <formatter>
    --formatter <formatter>

    Use custom formatter. <formatter> must be a module name or one of:

    • TAP - Test Anything Protocol formatter;
    • @@ -275,7 +290,7 @@

      Command line interface

    -q | --quiet
    -q | --quiet

    Suppress report output for files without warnings.

    • -qq - Suppress output of warnings.
    • @@ -283,16 +298,19 @@

      Command line interface

    --codes
    --codes Show warning codes.
    --rangesShow ranges of columns related to warnings.
    --no-color Do not colorize output.
    -v | --versionShow version of luacheck and its dependencies and exit.
    -v | --versionShow version of Luacheck and its dependencies and exit.
    -h | --help
    -h | --help Show help and exit.
    -

    Unless already anchored, patterns matching variable names are anchored at both sides and patterns matching warning codes are anchored at their beginnings. This allows to filter warnings by category (e.g. --only 1 focuses luacheck on global-related warnings).

    +

    Unless already anchored, patterns matching variable names are anchored at both sides and patterns matching warning codes are anchored at their beginnings. This allows one to filter warnings by category (e.g. --only 1 focuses luacheck on global-related warnings).

    +

    +
    +

    Sets of standard globalsΒΆ

    +

    CLI option --stds allows combining built-in sets described above using +. For example, --std max is equivalent to --std=lua51+lua52+lua53. Leading plus sign adds new sets to default one instead of replacing it. For instance, --std +busted is suitable for checking test files that use Busted testing framework. Custom sets of globals can be defined by mutating global variable stds in config. See Custom sets of globals

    FormattersΒΆ

    -

    CLI option --formatter allows selecting a custom formatter for luacheck output. A custom formatter is a Lua module returning a function with three arguments: report as returned by luacheck module (see Report format), array of file names and table of options. Options contain values assigned to quiet, color, limit, codes and formatter options in CLI or config. Formatter function must return a string.

    +

    CLI option --formatter allows selecting a custom formatter for luacheck output. A custom formatter is a Lua module returning a function with three arguments: report as returned by luacheck module (see Report format), array of file names and table of options. Options contain values assigned to quiet, color, limit, codes, ranges and formatter options in CLI or config. Formatter function must return a string.

    CachingΒΆ

    If LuaFileSystem is available, Luacheck can cache results of checking files. On subsequent checks, only files which have changed since the last check will be rechecked, improving run time significantly. Changing options (e.g. defining additional globals) does not invalidate cache. Caching can be enabled by using --cache <cache> option or cache config option. Using --cache without an argument or setting cache config option to true sets .luacheckcache as the cache file. Note that --cache must be used every time luacheck is run, not on the first run only.

    +
    +

    Stable interface for editor plugins and toolsΒΆ

    +

    Command-line interface of Luacheck can change between minor releases. Starting from 0.11.0 version, the following interface is guaranteed at least till 1.0.0 version, and should be used by tools using Luacheck output, e.g. editor plugins.

    +
      +
    • Luacheck should be started from the directory containing the checked file.
    • +
    • File can be passed through stdin using - as argument or using a temporary file. Real filename should be passed using --filename option.
    • +
    • Plain formatter should be used. It outputs one issue (warning or error) per line.
    • +
    • To get precise error location, --ranges option can be used. Each line starts with real filename (passed using --filename), followed by :<line>:<start_column>-<end_column>:, where <line> is line number on which issue occurred and <start_column>-<end_column> is inclusive range of columns of token related to issue. Numbering starts from 1. If --ranges is not used, end column and dash is not printed.
    • +
    • To get warning and error codes, --codes option can be used. For each line, substring between parentheses contains three digit issue code, prefixed with E for errors and W for warnings. Lack of such substring indicates a fatal error (e.g. I/O error).
    • +
    • The rest of the line is warning message.
    • +
    +

    If compatibility with older Luacheck version is desired, output of luacheck --help can be used to get its version. If it contains string 0.<minor>.<patch>, where <minor> is at least 11 and patch is any number, interface described above should be used.

    +
    @@ -373,7 +408,7 @@

    Formatters var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', - VERSION:'0.10.0', + VERSION:'latest', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true diff --git a/doc/config.html b/doc/config.html index 93224db6..51227d21 100644 --- a/doc/config.html +++ b/doc/config.html @@ -7,7 +7,7 @@ - Configuration file — luacheck 0.10.0 documentation + Configuration file — luacheck latest documentation @@ -28,7 +28,7 @@ - + @@ -68,13 +68,16 @@
  • Command line interface
  • Configuration file
  • Inline options
  • @@ -118,15 +121,15 @@

    Configuration fileΒΆ

    -

    By default, luacheck tries to load configuration from .luacheckrc file in the current directory. Path to config can be set using --config option. Config loading can be disabled using --no-config flag.

    -

    Config is simply a Lua script executed by luacheck. It may set various options by assigning to globals.

    +

    luacheck tries to load configuration from .luacheckrc file in the current directory. If not found, it will look for it in the parent directory and so on, going up until it reaches file system root. Path to config can be set using --config option, in which case it will be used during recursive loading. Config loading can be disabled using --no-config flag.

    +

    Config is simply a Lua script executed by luacheck. It may set various options by assigning to globals or by returning a table with option names as keys.

    Config optionsΒΆ

    -+ @@ -155,6 +158,14 @@

    Configuration file1

    + + + + + + + + @@ -175,46 +186,46 @@

    Configuration filetrue

    - - + + + + + + - + - + - + - + - + - + - + - + - - - - @@ -236,13 +247,58 @@

    Configuration fileluacheck ensure that only globals from the portable intersection of Lua 5.1, Lua 5.2, Lua 5.3 and LuaJIT 2.0 are used, as well as disables detection of unused arguments:

    Option
    exclude_filesArray of strings{}
    include_filesArray of strings(Include all files)
    global Boolean true
    stdString or array of strings
    selfBooleantrue
    stdString or set of standard globals "_G"
    globals
    globals Array of strings {}
    new_globals
    new_globals Array of strings (Do not overwrite)
    read_globals
    read_globals Array of strings {}
    new_read_globals
    new_read_globals Array of strings (Do not overwrite)
    compat
    compat Boolean false
    allow_defined
    allow_defined Boolean false
    allow_defined_top
    allow_defined_top Boolean false
    module
    module Boolean false
    unused_globalsBooleantrue
    ignore Array of patterns (see Patterns) {}
    1
     2
    std = "min"
    -ignore = {"211"}
    +ignore = {"212"}
    +
    +
    +
    +
    +

    Custom sets of globalsΒΆ

    +

    std option allows setting a custom standard set of globals using a table. In that table, string keys are globals, and string in array part are read-only globals.

    +

    Additionally, custom sets can be given names by mutating global stds variable. For example, when using LPEG library, it makes sense to access its functions tersely using globals. In that case, the following config allows removing false positives related to global access easily:

    +
    1
    stds.lpeg = require "lpeg"
    +
    +
    +
     1
    + 2
    + 3
    + 4
    + 5
    + 6
    + 7
    + 8
    + 9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    local lpeg = require "lpeg"
    +
    +local function parse1(...)
    +   -- This function only uses lpeg functions as globals.
    +   local _ENV = lpeg
    +   -- luacheck: std lpeg
    +   local digit, space = R "09", S " "
    +   -- ...
    +end
    +
    +local function parse2(...)
    +   -- This function uses lpeg functions as well as standard globals.
    +   local _ENV = setmetatable({}, {__index = function(_, k) return _ENV[k] or lpeg[k] end})
    +   -- luacheck: std +lpeg
    +   local digit, space = R "09", S " "
    +   local number = C(digit^1) / tonumber
    +   -- ...
    +end
     
    -
    -

    Per-prefix overridesΒΆ

    -

    The environment in which luacheck loads the config contains a special global files. When checking a file <path>, luacheck will override options from the main config with entries from files[<path_prefix>], applying entries for shorter prefixes first. This allows to override options for a specific file by setting files[<path>], and for all files in a directory by setting files[<dir>/]. For example, the following config re-enables detection of unused arguments only for files in src/dir, but not for src/dir/myfile.lua:

    +
    +

    Per-file and per-path overridesΒΆ

    +

    The environment in which luacheck loads the config contains a special global files. When checking a file <path>, luacheck will override options from the main config with entries from files[<path>] and files[<parent_path>], applying entries for shorter paths first. For example, the following config re-enables detection of unused arguments only for files in src/dir, but not for src/dir/myfile.lua:

     1
      2
      3
    @@ -253,24 +309,24 @@ 

    Per-prefix overrides

    std = "min"
    -ignore = {"211"}
    +ignore = {"212"}
     
    -files["src/dir/"] = {
    -   enable = {"211"}
    +files["src/dir"] = {
    +   enable = {"212"}
     }
     
     files["src/dir/myfile.lua"] = {
    -   ignore = {"211"}
    +   ignore = {"212"}
     }
     

    Note that files table supports autovivification, so that

    -
    files["myfile.lua"].ignore = {"211"}
    +
    files["myfile.lua"].ignore = {"212"}
     

    and

    files["myfile.lua"] = {
    -   ignore = {"211"}
    +   ignore = {"212"}
     }
     
    @@ -316,7 +372,7 @@

    Per-prefix overrides var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', - VERSION:'0.10.0', + VERSION:'latest', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true diff --git a/doc/genindex.html b/doc/genindex.html index 3197ca0f..6df2fa25 100644 --- a/doc/genindex.html +++ b/doc/genindex.html @@ -8,7 +8,7 @@ - Index — luacheck 0.10.0 documentation + Index — luacheck latest documentation @@ -29,7 +29,7 @@ - + @@ -67,13 +67,16 @@
  • Command line interface
  • Configuration file
  • Inline options
  • @@ -149,7 +152,7 @@

    Index

    @@ -66,13 +66,16 @@
  • Command line interface
  • Configuration file
  • Inline options
  • @@ -154,7 +157,7 @@