From acb6b5109827686a931770e57deabcc39a6ad7d9 Mon Sep 17 00:00:00 2001 From: <> Date: Sun, 21 Apr 2024 16:38:30 +0000 Subject: [PATCH] [skip ci] --- assets/images/social/evaluation.png | Bin 46133 -> 0 bytes customizing/index.html | 21 ++++-- images/inspector/calva-inspector-rainbow.png | Bin 0 -> 62988 bytes images/inspector/inspector-view.png | Bin 249872 -> 829228 bytes inspector/index.html | 68 ++++++++++++++++++- search/search_index.json | 2 +- sitemap.xml.gz | Bin 685 -> 685 bytes 7 files changed, 83 insertions(+), 8 deletions(-) create mode 100644 images/inspector/calva-inspector-rainbow.png diff --git a/assets/images/social/evaluation.png b/assets/images/social/evaluation.png index 0995063170f73f23f800b73014f9e3925663557f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 46133 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 JCC8nv{S!TN=(_*_ diff --git a/customizing/index.html b/customizing/index.html index 74dce0eee..c9ab25b88 100644 --- a/customizing/index.html +++ b/customizing/index.html @@ -2149,23 +2149,32 @@

Customizing CalvaClojure Defaults#

Calva sets some VS Code settings for all Clojure files. Some of these are needed for Calva to function correctly, which should not be tampered with unless you really know what you are doing, and some of them are convenient defaults. If you add a setting to your settings.json and accept the snippet help you get when you type "[clojure]", you will get the Calva defaults pasted:

-
    "[clojure]": {
+
      "[clojure]": {
         "editor.wordSeparators": "\t ()\"':,;~@#$%^&{}[]`",
         "editor.autoClosingBrackets": "always",
-        "editor.autoClosingQuotes": "always",
+        "editor.autoClosingOvertype": "always",
         "editor.autoClosingQuotes": "always",
         "editor.formatOnType": true,
         "editor.autoIndent": "full",
         "editor.formatOnPaste": true,
         "editor.matchBrackets": "never",
-        "editor.renderIndentGuides": false,
-        "editor.parameterHints.enabled": false
-    }
+        "editor.guides.indentation": false,
+        "editor.parameterHints.enabled": false,
+        "editor.unicodeHighlight.allowedCharacters": {
+          " ": true,
+          "꞉": true
+        },
+        "editor.foldingStrategy": "indentation"
+      }
 
-

Note

+

editor.wordSeparators

The above editor.wordSeparators setting establish Clojure word boundaries. E.g - is considered to be part of words. This affects what happens when double-clicking symbols and other things. If you want to include - or something else as a word boundary, just add it to the setting.

+
+

editor.foldingStrategy

+

To use the folding levels provided by clojure-lsp, set this to auto. Though at the time of this writing there is a bug in clojure-lsp making folding stop working with this setting.

+

Pretty Printing#

Calva's pretty printing mode can be configured a bit. See Pretty Printing.

Calva Highlight#

diff --git a/images/inspector/calva-inspector-rainbow.png b/images/inspector/calva-inspector-rainbow.png new file mode 100644 index 0000000000000000000000000000000000000000..162fc10d30b4642fa414fc410795eea02143c8cf GIT binary patch literal 62988 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

mH;orQ zD3T_c(j~S_AXFNT@lE(set-_~dxpG(165Fav_&~X4rT94X#%pk-g+|0Xm5;35J*pB zZQ9xp$IO7uwcSEe*X!!C+HoY?Jrnz7a)k3D1-^LR(^%__EjSqMsPX=-Q~c8}=YA|j zC&!3L!$Thvm;E5T2qkv7zyv`o*Pe!NzrG|eticBG+_|%x;;vr7EB7^PZt;8&AqLZ zxW7KBl0p&kQ}Kh*G$6a{lX3$U#Fmda1i)v*4shvzk8vy5h2obRVcHCl^P^aN_sYJI zMzKp{Eo9rrxy1Xa4PO{RU-GUiTdb*Z< z+EXGgi_A2+9x>r$10lumu4rD#()A7l8s!4!;JB zF0!%s932p%5g?;ThyIjNoM|?lH`bM5uJ;Pu@P@3@jZsSFD85u3bm~s@x8C&RNaxFW zq}MWJM*~+!T(j66*+VXcu=|?d<9zy;@V3x#N}J5HUgitfodS5gzo|)GOnQclzgi@p zzJn-ipz1O{-LPzD!>TLG8=(Y(Ptt0C@VBUyf&p=KRfigc#*0D>$xT}<{ z$^266O+%u{!-qQwXx5{3Gz=!I?emviIx$HyBNT{YuCY}6@;Q;0YJqG`XfW#n$NB#Du-HZyjaHg5@PD` zs!%gX>`jedAS`scMJ8UU5y9_{%&8wINX7+6^y*F+7-!i3Zk(wGWXWG)xUSAbQ z;|=)cUtMUG2sfi^)?}by_N7-4_4BKWf&(?IJBI+#(+cuGieleQLUqm&ScYJbmX`{Y z#wBA6Bl(>u>Z>7c9MlF#-n>2#chJ1-RDQgv@K8x_Z6uZvkuiA&JjdHn~#OyCxEN z@zgIj09Y_{6SF*GVV~>R=Bz~gSLB$ahEo!g;0WUwP>mTH;EnlZbt|@HNKNLm>2-soHH`QL z>t_&;;Ebx|bOL=ZoxfZ+Hr&=56OCj>RyTh2Ske6U1jm!O zwqA_lwi{u|FRnH6`GmFgwx@xA(V2Fqxz!%zFahf}p4TFwR(#S*ukfClSOW54eFJ}v zLoj_i+vyS$ynUn5PxAT8<=3~6sx^&}&bXYb9})s(WV7exp5+*q+`)Uu6~f;T@uTl9 zK;Ez|1zf~csvZRS&g{&fY}t`sO#V5->7ffv$yl|*>{FlD1d~6K*)tex5aV1{&5BAL@863zlWV&ZX|qu2_702hA#b(tKCNkPALaJg zzD~Jnfthq&gb30}JBqYD$4IHPK(gh%|W<5jXivzcf3YGh8~J z{x3?)fiUoi_%aNnxc|Ha{KsPK3#CXwy0rn(Vh3gX{?985UV6@M{}11LS&}fD;(sVf z`2YTcKW(uz$kLzIdKFNMb;J;X6Z??fN65zz^$xr~vruF&!2kQ~04MdV1ESwy5cOG=+X5 z{9zq!;#8ZvjvV%zI(WGiriDP=NNCdm8fx)Itd`QdrqWvjPw~=v*}_XVZqRH9+=)=m6f?`kR?`KXcXLXdo}cC+ZEKfRdma`+A6rgW zP=&If(d>AMgQMk6h2a7vL-ad_Acpq#Wp=X_y9W-l`I2h6YQFDsMRUsEtZKPK+4=yZ zGOLsAcDMnY$SeZrjgq3%MGwF4v)KL^?1*{ z8MMuG=14=L>G0@B-?K22QqOJ1(~l{rB*tWWk~f&5Byt(4Yvy81fQGq}W%F*WaU)z} z`B0xXcQii`K*$7wg)d7@Lyz2sv#tantC1awzp+_ARxpmtm+##e%Y5*!F$v0y`aB9X zqsM^4@q87z4Q6kJ*nBgn-R$|=cN<+`ky>(FB%@qL``b(7wj;N%l$RH%`J4*vk|VV^vp2_wX`2uFpfr$QHztWt0Tm%up)YTinB4hT7*7qU|KJge!IPv57shU9#(4M0nS-EMk zZy9=^MMtj1)M`l=5<9p}3=vpTz`;$68K6JPVjYLNtVSlf=|x%6@7S~Cbc(X|wEZC` z&3E0>!vG)@E87MxjX&Y65WEU0?wZ+SV++%w$1`!PI@OPs=z8xkwAgirb1Dt?)qHel zuu6D63YzgczWxqoHx%qYQf|k;Hr@~^n=F~Ch!dtkV*35xlv!$zhNYETyw`2Rjn97hf*_;PrHWFQw3A}bm7yT1t}DLt-kD`P za=MGZF8PxVGbZQ@-EBdc2KMSFX!mu49dLX}2xmICqGX{%2k74hl zd3MR-77F>xS56MrfITX1y)?g38zf@dq`RuX|HE(dHY^PITP_VZdc5JZKFqLl9ndYR zpWOl|_SsKhUK|IxaM2!#8);9*Di9EqxDPA5fywE;6*R=fF4G;Bp7r!en8|?wSTfv-{bMu2N{KB{DGAUL}P*EJ~G79fsb~M40A?F*GPf0MaK0ou`^`SgR#5x z+!hB>yI3LjrqaVPA?E&cByNi@f$kVbGTpI9G6HsW`qyn|tigf;cM|`lM-tErkBs&R z5*55buiASdJ*p{yPezN#>rqUodhT5h~{zKhU)NE_N~S?RzH6~SIy@S6!+eczD8#aRo&@}m^Vd3 zP~7E#tiZ@z>G9S6)g3_3`Z`(GgK zoXmi#lbPk^9C2)Bd|R^L8Zf~syDW|NeewUX%EE=hLMi)Wr#3p#eB^ZGOhX7m?ti-& zjMzY<3#92C`>1G^=ZCAG7bO(UfG=D%$gfF!?r#Ry>&eAtw=LYfqXWA(;o1HeomGRasvXmffK@l$rn%;W=X!AwkoC$w zYCLlTB7^v|fM-wP)2Sb&=CcB0r)-dNw_cfo#wUf1-KaygwQh9_{tRj_S{K?I^O1!Ay27#WO38BDIz0M>( zqYklNgj%*j8P|1UHfhEWM7n3YXWXNp#OHx>A+Zei)C0v%ri-l;rqN2{2#0$`;1+c9 zz1CmZTc=n22M~aE3~<@sdPUQ{g|?St9A9amHuX+(|Jcdmd5kq}nfRdN(qP1GPP5F3TI)4)O;9xH z$h9fU+pqw*ewJ#B8rj}%nOsF0j(1$!145V`-+x_znBQd=k8qdd^!}Ng8x!i50tpUc zcNc2i#bb(&9?&CHZj(%pKj5Da_Q;lwEgj7O#SQ#f^wP(l|Ej4X??FV!m^kx z48@S_@mco=xsR73+@&gXY4`kB7ZV|`(?-jkqDzugVVWCG&(m zdE*R)A=K0#`=*7jsNBrD|K>Ko>dEeIvM#GjR__4i(qXWX=H?(}bO_nKuO@4wFUh$2 zKtgWvoa(()L?^G(G*#;^shy?WRQ4JHEJVwX|JiFXsA#oOjV*)bJNk^Q^uC&O4w&aw z=|r4ah+(LGnqnwT54ZD@tV~=*4{5E#C$2d5ouTpEp6v%tOJXwd75(49;hn1Ib3FM+ z@AbVfbkLYFHXOPI(pYnwbwE0VBl{H~Zg%7+#4~@A#`vKPNrwB$4|5r3uZsVjwMTJGV$RlDx?a_;>xj)xMR~_zwn|JdZenGmThT3o8fkf_*^8)7!AZlR z(A(EL1Td}7c4f-X4s>$0BgGMpz(cRJWiX}_Ize&2e1h3Zcf9v2j4{*mWEhI7$5d&KzRj*WnbCjd*Lvz13n-? z@)$5n%((`kKwKad4sr4;G5u6pZ#?tzCg;2nM1))?8iJGXwcEbt8qiMFonNv z31Qx+dT0MR=UramI!jR@Y~x$QWa0YCYZwd_qdoP5z56p14EksGqC(HHk&tj7lZQTM z_pQ?*fw8eC3cre2C)~D5_Rq;JT*^JVu{|5TzO=ujLq63xPQS4Ix(niRdqDSt=ebW? zCl8C3AQP;<9$jtO8rq;WI`24ATSz}VXyuggQOEFtW?UK{mt+~RySsiOK(~yfPxqGa z3IY<)Uw{4xZQo((X}}m8<+#~vChZ`2*dc!S3yzkU!U=1 zqfhCEaC3J-vUFaWLI)C)Y)C?l#?@#$v~``hpE{{6>W`qp-iU_p@8 za-JEAf9CD`R|sj~qXt0utlHx3C-%4>mp%U|rAxP$I7L=z9W|g=5IR#M+Kpd7dnK}$ z2o;`z)cyqL->Cw>k@<$A!n5R(Z|-U9b;}@+DP;wco_wv@=+B7=cbYBEUO2HHNnjE$ z3wB+{%wiy@`$)iVsMSKBk*2$&ye*TCu2)0b zQK%ucb&zWze@vbjId~B9%3!wJI-)ip+GUZ<>uB2|`XvP#P+c2n8cFeaFAlWR?hsZ9XahvL!x9Zyqf zkFjB&mVEzhGNfsFU4TJ;AAKtIv^zxhvE`k58xsAvoQ;Dn4;$5zXdZEKwJ4mlPf{6@ zksS@u?J^~(@YLN#42M6~y!=gDeh5~LVfDwB0q*M&+=bC|dQ3YjBkznEYck{n9ehT8 zy|&L2V!cmZwqYXLX6N77dG!09ktgUusMau8dA7Uj_(`xkW(zM}Q`*U4Ty$rlZ9Q4> ztV=lYtbT(#B<5siXM1*U=zO`#CVQ0};@>8DPwv;&yL`@0U>n5~A@Fp*fSkrpoeNV^ zQc8b{?aTW7wW9+gPT=tKqaBa;NYfZ>B|B_4s+r9~si~=l1xCuc>-8;^t_K95g>$%u zS|vB0R|a$ZwlZyFFXx-T8{$)K}^bbK8>#jC;;23x^Iu zLG72gT9=H>&*3jF_J=r)M$zCDWy*ze{p=7u^H+PyyxTQ zm-rQ)h0u^3A5X5&n_28l`sm15qSge@ z_17>*)DUeyvn0;oVeLas2YX)N>Pc5i#tk+zYBSePonNe_j&l&++o81@t<*JjGlL5{ zO)z-EtQzW$lfl74I5l^`RzAU_Q-$8mA#)cVpMBHqts* zi&Hiei}jdzFgWOB@UtP=n~L1tqB)Xn+XF#x0L5%~wzJtNh0UZ-Mr2r|QJUsWJ+JXI z9{Tz&&*qt%^8H6eUJFrdHT7*CMimB*ujc~V0qGMv|Yz&OAG%51moE9Tjg>`2#`LJBqSiIKt@=r{Go z7R7Sp1r$B6Y!0YZMEj~?v7Vl`lnr=rtXoBSU9p|IStV8LuG8VQZ0RMEIA}7$4MEu% zM;D~_q5LPf2^FJ0dMVx(By%El&{9ub=lQihv46a`?0`@Wu`4Vwc0Yp5x=RN|zlz0I zl}vzvLGoqDZPqVezBE3y`}Wb!&1U~vtAO(=!O2Sz6hvG4d_~)id&-Em+vgQ*cCEJ> zpQ=KVVDl<&J~O<{`#aa*pbTN>p}&Jx$yq*R)nmTDsth0MXJ>6*c;K8!|8Vq839|lF z_tt)oXbVk8rzOI0nV!1(eT@fCUXRQYLHSRdUain}AH*AQ9bMJ$_67^J+f7mIM_^h& zrfgztqvB8E@(J6p**$7yH|kuUJ9p-tB)x&4?q!be?XlkgL`d^hg0K4Sah{dChOHeu zvsH50YalR<2G(%vAr?<0K`gl`AY(F5h5z|l-(H+sLvso_B<>s3|FhsH$C&l1bH?!yIE3?2sp2z%S>NeZ!3q-Xm@y^!kuYAf1ZQ> zq$2+~8xdKtiTdQd#|*;-Hiv2jqMNl$q=bcil>_o=L#9r{mG82IsE#$H)y`GmM|6~q z`5@^)oQXazZK1(sUlRm#8|?C!^`wL`>GH@`dM0bXlW<(_Rk2>`lLOwNFV$2>b+{xm zij$8Zl@>VAHCiP7S~TV#APw6UVJ|(9C~ltb-RqoctEb8W(^Y1gRE9acd4Pm zyW+K|1_5@P$`G-2J*0Ut4c^8h1(NCJKH5>8cG=RN=HADH7DO_-(?AF`)WL+(yl1=w zo!}&Wn+aE{I+e*)$+gD3=Q5*wWWB*KW-GVvsbcWXJZ9~Ji?p+P|1?6xl7z&P9K!ob zXIvg>`kQis#p}E&`SsiPH7Qxxkg6IpBX&7IY;5hAdb4AaI9iq>>GN_T3|ospD&u>= zI}pCN<%=&bXj8|bA1AP=rB_d${RaRJl>7 zB@23c!g|Nw>{>rp_|Vv@`=6xitX7yblK5ACerpprnKrd*>kC=ETfJe6q_2nLvb<+7 zV>Aqq$+Kka@k||*CBeHA_6`ol^Sdsywk9uU@Ms`ot>8)FUAA}g#{rI-FXUQ->eg^^ z!>eaVO@PXy)Oi`EA}^T7S=85-?_Fh@(J`UyI5@mKv&)DuY-X3dg$frSXHgwUt9qG- zt)2R8D0X_#YE0rn_~Dz)cq;abqhR9u2}^BEpdsh~7#QoOWAYG9u88pt++nbuhUlQE z=T%C4HuLSF#$i(r)%p!|Ud9Z~Ff-)4Chn?SrB%Xxzp7IIX z-6dyG?2U`XL-p%Hu>~G2WNhg_##RSiIPeghs1#}#F8RpydFL$imYhz&-La|jW6_b= zn$E#bOIQCvE|;LZ5gSTEchQVcl&jUvheu4PaX7u6Ks?j2v3m#L=+CSTRUEw7mr2oJ zPhBn!j2~+dNmpM!52u&;+++v-N!FybEcr|p9UXmFD8Om-^Ds-u@^QKxY50t(z2igy zBEm59(asDmR7V#g*reyCqBDadkv1niNf^s+7-wW$L*zZcfd=1irUc;&L=Qa8ABdNH z6Op;doHdP?KObxLh(7)93`3jXzNbX4_yE_zLc#+EAC2Qz>nkS0DEchE&ZdN@@bzl{ zZ`ojd<^CN9L=AS>7+!-6t8N8se%G7Nknu%UV z9SX5LxD3U=k0oUnX<0dk&ZV+Z+`#a*`*r*E@%tJ{+hI&+cD^@mT_CrML7d%aP~j}B zLa5g_2%%M0CkoxCBMZ7c#@!+Y2G6LklcvWj>sV2V1#{_LIs2sbkU-M2b3VMzr$Abp zt!3kD^u&chL+T2;t#*MKetNO0(UZ_vp32BT={1oq1TqXc$*$vNc^dme zQ-fQ$fSFC|6A*O`)UK~RPhGMy# z4H`)FgL_wasP&Pj)96Azf9ovkR2VqmpT8Y_e<8VjsH~X9cQUR)cyR4()Uun;yXVyV z)j;bGpt|*8yQ^pOEPF{ZEi{9JCNHE_lDF23@}<;To~-MSIJwqpsQMu7jPFw4`33c9u*o6O5av)D z3J8i~gkjAc{TI?x_o-!8C~LCHoB+CT@>Ae>8&6ARGMOIFccs{x13ej3-6%R=kb||d zLsrDnHakkijg6NTCvNw00=@gwK;+(76K16hPX||H=QdjJGALpq_U#X`Q1R#ncli<kf%;>_b z@#pEfLnp))^K+4A##@|@5ErUJ-?3K{M=njfybId^mvj0=TG^>@Jmf_RRM3O~0Z z9(f3HejY3QJFA8uP(W%=qoI)1ZN$5LKSJC;XDuNDVsX2a4A`6qw@80Z)TI>B_6CXx z@5I$2NYBcOj>RHnB6|xVW@3EL_xl%5+h6j{8XRaJDm=J|8)4Ya{^}oml#M|MeDzl} zuDoF0T2sgwx~2gG9D^*4b(H_c_YjOB#>33&h@tyi-%{Ly3n%N|?E{trFY zMqKNP!-G!PnJWKIXX!mI_u^2(f1Lpm=n-Zy@8ws1N>un=6iHb{yWG5>hwT{f%^#5K zJ35y)LAs1(08q>!>%0EZ68mLK(EtejpUgFg4RaZ^mr{!H)5Edws}dq2&(`n+PsTAS zxduXGV#p=@P)7ETR%})tU-@k|glR9QSNMBaCA_VRJpH~IX%vS_oFFd+aWg`W&w6a3 zsIh?R`fpuFioI+L87zp)wp_a*o;ehQ?AP>`Jy@fvwT4(gMHuFyb!22p@cPAo1bz=d zf){=A-ZBzouH=R~?PlkzZ$(F)Ste6xXM;c!?<_v`Y8&1q3VcK{yU z>;YbK&zjX}c{tiZaGz6Nv0J;U+s=kke(syw_oZQuOX(}BPxfma=JJYEwN&ivtt0e2 zL_ajOuau~y!VhKOSFi+@2b}Mn6~dM!k2bPaO}7rn9!Hoac`1+;$!%yE30*W?_WI;h zN~72|KqWH3$Mw-SBF=uNyv=RKqSitkK&a7X$9IK)227zIj7Q?)Qpy>U^Q{4=r>7|i zMPT~{K@z~Z=@|xgS48v(!b2L!!a{PSj$k5|lGvulS*OoqUEL&IZbl&71*7z$`iz5PIGl@RKZzS_T`S2s&_$zb*A=DDm_>2owI0`Esx z53A=W=NObA92y*}6exRGXSrz`&HrJd zYe7<(8-(1WmfP3iNoR=nxw~h6@zMiiN-8Sj@~s_7Wo4Si2#tF8p!_rE#Hlmcjqjl; zF_V=z1hN|Jq46CrIsJ{70ts$856R~!Euh!43$p438=FdX#&J5vGjt?3KHfjC>(1*e z2*iY6MkHK7AnYzG(sHMqn+I*kbMEkZ52VJ?m4_zY8LPM6-p#{w_2tHcuJQbhLx+(K z3|Cs$9$sA`;dM^`{3)4O_IX7alPRw7t8le^n^LYge zc{PgOl^DT23CkmaqPFR{_6xz zeliuv?Z!Pw`bEa}4I&WdNj~}i4X5muhEx{u{mt^6eNomM)%rd)BY=W(*VL#U0P zx|5GOc^rF6-P+1mfMTN45=w8 zzdbX3Hs-WQU$sw0UGvGIvptEO9rOMJJH+C|_`jc=jqh#F-1h8R|CJVvvdM@y9nt`D zRMA|2d%QQ(VcwE@EtYe^%OcvMhyn-tNzPTCL9OszScBXoy7J*}_4t2;#w?A^c9owkZ z0{%|AG81oxc&>bIt@4dwiI+ju5}?wbaZC9fdurwiICr8(y$k1f$JS4H-Or2Uq=Ie_&`?k)B%Q5bAT;jpYZb+h&3By$gY&J?8$9P8+4YkF z{(10frt{3z(fUs|wY;B#qe%H-0iR~VPRKkz+7PKMwUp#|Z@?VhIIcK1BZm|fubuCY zvn$rSbKZC45k5a2f1QglrkE*B=w|V4s`Gebp(`4^{I{|~0Us1yf2%jiE{i`mr#2PJ z@39{@_YC0nVf6KQrym%`R&F{KWu2W(Gu;icL%{TQZ-sjlb6$65$`IsL-(68F)MN&= zQj06>VDBC-u$V;SG&4iASv>O@kV3dbY>rL9lE#T-Rsnx zAp~Jzp;9@V$)6%`Nk9WHJmqS9n`GT_Dx1tC9zuNQR92)X9AYW{GZdNsK(%ld+p|#L z-dq(aho+^zk?nonh|avh{HQIv0^^>P^TFIYZnrpao3!jyg${bqXrX-`6A?iLYK}#9 zsX5~9g>YI(@OaA4dmjX)XTTf+a-4`okEkI8qIrkq_4(dcYOFeVTDw}KLIh(N#6w_2 z-jT!z!{<8>fhYxJ2-^N1=OnhyMwlp^c32c&oO8tQ72 z5)+wi&Sv;020KMcuED{}f;l>u`wQsKP%y(_dn|n~fqyBCOpPU4g)vGJV1z=fAw&co zZSl-m5(0!_fy|%h%=I5&@{nM&;gebgk0qZe_5J&z{X2&5(%P3;kzwNM+_uFjS8N$) zDAWU*rzzCUuMVTb+a%7MQ^9+Idw1IMXxdhUHN->GTkAF&BmGeJc|U9H7NWvMxo3z7 z=!77ZwLi6rpAUIjFU5M|0o(Cl{GM0Cxh4sZt-Qd=_=TU;Sp}9;A|||fjzS&zN-?r> zg(l~c#{{`qZ+WbWvA6YTweHP}yLzD3=$sN63nS9BEnz^o4>6EKZvBkKKbyc-PtmQ1 zvF#oUD^{4RB#SLG6UB4eMAq!wJRB!l?fd*95*H83Tw8ru*}E{hk}lF5s2b^3w)f#^ zsy%p3%SosD1}gk38!pWSPu-Qx!Gf_}G{J+q3pGq|fQlu0ScRMC4-P2ytI@~mF?=NJ zzK9$m$2VeFWqgi477Tv9VM6kQNj;-Ud1hM=bIMT62n-L8qea0Y4OhzgV1uiOGX2dR zt-KL|Q7`qGwwH{cSzl#h_k2AtubtL7bg1prwHXC7VWK1 zeJDS$cDQE@PVR!@_m#zKK!h>;xq4F^(G~$tV)fnUwhS_e|Lk<-szk*y=k7f5OirB? z0THXYZY?cS<~KCB`&0V2_JBy8p``q`Z+W{2$$!ZPV%r8|1TG$Ce37)IjD)ij(1Z)O z``m7!sUsYMx5<`zHZ$ye?yslP>qwxfsX3B!^ci!-PSOky4+q(^YbHmZ!_v0T#*a)i z&c38R9m%N1c49SESkRxZ(RXS*afT&ezy7q#`$nb?@{D;5(aY;!rfN&ouy&sK`oE#$ zINz%waPo?vE$OY-Qgh%Jp-h)c&g&>;J2RNKoG1k3rnlS-&w-yd)3@C6%Q#cx=`vC2 zr8a^i!DX!gZf7{U@qP#{$Z-z0h|+4Ss13W2;i8l&oxU;l*Bk zVEu;4p0_U3j0!f-zLzb%Z#w68LS8U$O%r{Mm z#)hFqK)r0g;Et4=y{<5?RItKeA@ey6Am(?LRzukt-j)4Hk06M`*g$EZp1eZ*Im=uH zJdrb$+eOk3JdTnEtlKlMmwt9N?#)r6E65G?!G%7Ql}7oE@{&WLcjOta6m#wu%#1!x zZaB+$H^dmxpYitf&5lSbEpDw&kz)x6<{egE@G|q?xO}-#4klbO)$<6w_av^NcYk~T zwkZDo+Js>p+mhCOJ5Z|Is~B8$yuWGe^Ji;5zKUc}<|wg}po}T#d&P-`NQwKUo=cP( zwez1s>)8SzmO+r@KRzP#6o@yv4dB5|c<9pTz?`GmjJL_a>svS5=A`O1uNFOqU?$Oc zi2TvNE)ZV#(;VDRg6$LU5m_?lsj@^Ezb4Sk6F#GcphQL_{;3ZkAP0&4HR#(YLmxv7j_rbJy$Fkt?2aE9^n2^S>eh@s?q2i#KcMJ92pT|rQ&}Y0U@?G zcDZp?RF~WKaq3IM^@JkhKAPwHdvR&j{O*JYxCgs#oeGkYr5z{h zL=w_G+SxOxCRB*FcR5E0eiMFB$+6XeMn(tje%b5I_np2xbDPI$=CGvZKAT!Q4rn*a zxl`&nVjv+a$yPN~peE)>S=w^W}=r;LwN_nKOn=_T&yc74mNrCQkdBt1KeBhPpvX@bpTK5IVTZmfMQ-f4>H z1pUUd_UIz=`l2O9RjnP27P1qcNxGee3)NsUUUQY2Z3&3;i$vK!M7bO2JU5{Oj4%5i zX61___YAklbg1mXQn4m|)JjX)3OWUn0aOj=-8hPTBp%JZQs0=z&~N;OL7qVS+Zz{@ zJdJPY_>9Xk%OoEzw|{{a*V2Q3nDY|RALEO-9ABy~IGdL|MY-cQfPK(tkRW+Fn;e2)deGjChqw|nL@n?go#%aN!uN}S=R?cy>P=0W_KJ(t6Eb?TvbVXBv2?(pz9dSwlmo{xC8{I78m0?ti#L7qJXae0qjF1v%H7a zLx$g)K`n)XyF&ErXnU5L`}f(Fg49meMb`BAN!$y!%+r)-@WsE@fuXuN@^IN8;6ufa z(aH^5f_JPl+ZiBouHWqHt?>~nsw#H^{@r9k*+|-0aH63i=H6AyTFk^p_1y=a2$wJT zp7$&1w}|-QMFH_YLACRYg1SIhfK>;x>Hp*IEu*6B+W66#5u{WEL=+?x5NQD^NkKvB zMjE7)?uG#j9+Z$4kdp5176AzX=^muJVQ9`C;(7FW-}iskS!b>D;e61wT+YnB_r7;r zzqqdb%0jKf#Ik-Lmu$eJf02+~^*PE{iC z_BExlA7v5AR(q=`kQK^pT~(}=9uWowR5d)VC|&A%&Aw9=nCgg((P;#cyBsk$O_ zG+EJMW`q{RFfTHj&B@BN(!hmDeTui~>BTh<_euC|-@Z!TjvpjcFEU5mj&a#5&06ly zeSL|<2p+R z8pLz2)49g=?knaSXULITTUgOpa@)e5PP_|jJdN;!X|nVBB<+Ov+M(^?WzI_>G`_Lw z7T~+X#Ld!p44A`*9; z<;5-KBc+_Q=NZ68SbyL0<2yl1teSa^acAT*TcZSewbs$RThsa;btIvCPsZ%8IxK_o zIxMX9S>0W@s3XQ$LW15iX=%*?Rm-mV|`EhlLFDx#j`-*w=#c#XP5Vq_XCNeOdSe ziyPS<&;NfI)=wMg-odxwXAZv#%NLI z<6!R&uZ*M2t$Lz-y}7)pGNxPDU@?gT&3+xy;TnhjUL2wn#)h~*p5#8Gk3MEzbtrXo zu&H%Wv~i`z|6m!JXOntdU6Kh|WY%_C0Z6Kri=z-B+i=+Le|%(bKm>4)eKi5XL9xt! zWttPBB~f0AaHUpER|@fj_B(6oHwOoRtH~l1QJ*XS8vPn+fA36H5p=*(NL5#fcHNeq zW*)vkI)K}N_7(0kRQFY%win8E_zi1m=g8T7&dL(F89sEq3|ZC%;I|R*aVNH#lv7&` z*i3jgHs$4t%}8CH97{{B#vhk;r>F?`rG9l@sbn_p%S5JH8$ZDqQvy7ScY~`&oNBkR zcgB>TWp!}c3|Z&;nn1Fcl~rKjTt&=Oi}FWs{p9mIKH`g=a`O5On@uyOTDLfWid=UO z{rE4)!oTObq8h?R|PE7h;`kfU_HIoe5s&%EBb ze00pBHUu*KMc?@5LziI3v}fK}>nr~J_u=vuRo2S+Rj7j-zbhwTz+~F+I3NbO#EnpX zUk@Ui+#5-;&_7Hw|GrPDc7&p0^x#?Nl@f0DT5_AFL z{+&vY!AFmFou&mW_2N{!T9FAmIc(lFdcLP{-jS+ds@%Y~MEzps1&b7b85>H95Rkc! z)DKyzMS1}ls<{f;`}8UBRjq-2;>uU;%Teo78O)Qd;cR7DT-SlpZQ1Q<-J08QY1Nbt zjRekpjT+5c#$Gkv=VA3}I+v21Er)1{uj?Vl1SYMNK1H({$a znnu1i<4c$cQC=|q&X^E2RNU03b=0>_YV2&e1K1WXS?m!Oj`yZ_ihW6GWZzz@jmn_Ec`mzRUi!K*ZF z8P9EL%e(h(A3y2k8uYrAHC@p})vW`XH`KTIsnj^kgM~4WkrXVKbrU6r?BuE+`CO#i ziOLk&=SH}s784c2pd}@~&sY76b>g4j; z8_jXcY&||2`nq^$aS$BhW>3|*DQwO6XL*)Gt)N0VdyeD=!<;bz0Xn>gF7MZ_ZC-2i z4}zG`(46u3XY|9pS1@p!Kv>_=Q6PUN5)s3c-gl4y#B8nT!~E_njTZHhVx*ztn*Kzz zb{J73EN2g+A_A)P0lONIugTJt!i{ZKzPXYb%Zuh~4!rBHf4Uu(xhSj*=oK;-wvU&9 zO=}|M?er%S6dS9E$+4Wc3d~oC+@MP&mO*%KU1uyT`vVLMk4nHR3jW6iqTLw@56f#X zburqVPdA?wpQ!fyfZasLkgh-1Iko;v^q8*y+nOz@dsGR=^S5KfAQWb+MsF`rT6&0r ze)vNPsS25@J;N^J->?R%&9hBL3u;$}!m2@s>Gc!0l&&ljhkKfooFg{dJ;iAOWyi`R7>nCLW^qJG z+qidewmJM`05B%dYIDf}@9$glzjkE2geCdgN#er#|=2>**Um61aSmrdUG=RNpX z)!v72B;$2>8tr`a1RklLN(lj{C4v^ph47SfzyV*L`1h9s(N#&1P=s|mS1KUuR$dXC zuMgx{=2vVi>%};~b|vAi21@McaIz>Y2N#20hhdD=z1VCd$$ztSMyo@AMd&ng7E(^N zE%dp`({^xan;g-;D+i)S19hh$D$X0(zSsp|Q|%w#{85Z(iitV;fH2@3zONANGLAc4 zBX6-tGPH@K=wFm(+vNhV9IfkgXF!WW0(i^K2oa<4W~v63O29ah!C4ui4&J+~2@Z(~ z&X6An8jV zaea0VS70y9WHe7P8)Ks1?65jA5yS%1{3M*O7#MxTeY)3IcSQAf--iIAam@>HER{wQ z=9!)-9@d5mPpjE#-o8=>ce3st>h5MU%yuOgKNb-Y0~rQp8rdJgeQ5XhuT2zU%vZvV zWTjnPK&Tt3za^^E{s`^?J4f7C^`J0|kB>f-@xUx(>tFi2!=dzg*N2@Bb7TQf_>!Ip z$)NZ7+7y(W&|Y|G8)6UX4H41lO8Q}iWM1x49ECntCVpFt2xsU@I+j-kV1s|R-K#Uf zQnyk%UFJT7S!?e#fXTgsCT>nXUNYAz(8}(gM&(txBMoRVb&hk5m`s4c%lvf4Eny~!E^9>|ji-~JjYQ4w;GJ0xckYzD5CVW5~>S8aLL{iXTtR7&QmRppiJaQ&?h z?$y=XNm(m>E2^cgo0%x8aC?AgeT&mNLy>lodzM+|Z)(JoAr|FN#84^vSPr%?{PzZb zaAP&pV6`*jt;$tPL8=rURsE4`gn3QM9iq;a{IT#3#LFj?^mmUD1jY}%IOJDmPW;GS zl;>{~1!01vP&T3o)Ea`!{$YF)^F5C`li zZ;=b+^3>wiA3xlQei9pxp}}${CV=Pb^XDsnG$|Mi zv<8{Oe{GTtWE%gaeFJb%`SDbqr6`I}I<$1yYOME_$bMrkbIeBO?f=1LWHr_)^#S=FIQZftgNwv6R=5 zT$O=@$21vt$*S<$=ccZ$%h{#EckVO;!uvaaz@2BtRh_m|X}zIN8t>+9(=Enle63vC ziH#N0zG*V`L~6x>azvhv z^JOOZ=+|auD$a#Bg>+la!}kIR(@;<0iK6xja~+pg{$!^gPcQabvv|ivI#Z8&DWHJy zgUQxEy@|UH2G-eKSaJz|jHZ3e)E&y}VS!ttaeQB%uCbr_r{;l!eT=)qQly&cYwP)! zo(#vmOZY0h5IY)pV;W-Sj@k zzY5Bx+RHK(`wtOe`o{;Uy=eve^;D@NRWX{y*aB5ta;#TO^OdIN!}|Wh&Kmu&hhBp_ z!HmqJQz*wS)J<%RnMSq!)<~{UuVh(^k~I3+q`YPh-4fr-`x!#T!>7pWSgPa5iki9L z5C=22QWsWF4M`tpEBJxaUh1H?-~|t6D;*eY!mgo_-xlBV_+fC^)E%SW9%eqvF$&%3 z&m#A|Ij&%>Hs9dL&sIMQ<=Ra)-$cTXj`(6^jL@~=jY`x-Q4cEiw(}9bS5t>x<)|>- za3|R;Q!y%-e`Q9mMK6-ZVP+nRb8#$`lmGTqS~o|rqH*uDFX>taZSF*u!1+L=m|9j) zwkthd)lFVFv=zcC`x8x@Q3!epSjL%U?xt0AFFcf(x4U&uzgc9C;9T5_cvg$SB{w;(&ntdxRb6OJkVGP59c7p>Gcn zAOXzZ^*A>wL8>}(Q^oVM9Vblg0ZyV4sm!)4HfM1>po{v~P~nX==U3fGrfOi%8nktG z2~{xacn?|h6}@@dx)%&GN$QTT4&m)j9VdvUJwh+wB#F-_p?h%fXi9@cK3pse%gM$t zrd9^VZE`hK>~>J@>>8y zA;XJC*K16dY3`^>Zqod2Wvb(g|F?;?r+W29o!fq4K58+|kwf``$foV%{uq@n)r;DI zOra>M1{(5_LQ46^nopL*~PBU!b$7{ZzFiH{{fqRBlQgg4fyL1GPti^l=w^oK1@-;YZ zO2E#2qe9yrZOrpd29ZdtWsrf@!Y3Z;Jd=SB*ylL=nUYeH3)i75;L{l-io?3!K}=>S z0s1*(O&}iQw>u8rA?Cb{?q(l~Tw&ZTZuby<92{~5SAs*6T%|VyH>@QVtA@XB@&Fs! z@3;}zshh!a!6g#AHXz^$cnZ*aYK6VTm6Gt>1VC;K9dMi;()fcIEAHA&+8Gr2WJaeqpQAmQ%w4r)hu0L#4P27U?_N(civxw8OaV4C)hr zdcbls@TOHqnoc_tBoqN30d&+{pizrX(Ml@J6KPY5dd4W-zOp_+`~%ISbT^_s|TY@ zzkz&mlVxAeXab6S_M?~Yhuz#hXH%96^TJArB3NnE@GOuK)^b5csLcOW|5Fi!WpOah zRZkw9`8##*NLJ#1eE)c}EBUFa(fbKQDM(Qe${ld-tPtG6dHh)9S)-QpPmHpO{OYF$ zUzxyG8G#E|NNXr!Q|>Ba2t3>vEk5ZN2ujM?E~07M4~xIZzWjo?8HDCx^fPP(!&SO8 zH#x@dQXV9=_`GU3y!k3M>oY&JzYRR@_c<6l!i)&~z8>=9^$6#TDR-If+ohU`#;SW$ zVCU&2f1nu`^;dOInR)O?3;EC=$j zt6ybBflPTR=|3M+vwt*N*CG&>(35Y9G5YI>RxZgTSf$!}8mGbatD33l=PZyX#i$u8 z0JDHzRbp0&b$flo`YzYQhl9h)PG#U~aM!$Bd{&czNLN}O3UGrPcsm4tdkP#dA1tzo z%onVflbJ|O;|=gG6_2kuY}P6p56VVdc72>}{&_uiGFqZgw7}IHS!bqC`&$6DI%4$7&N$))w6=BwB@mk zr!@3g6BCtcH|r0AgEu|+^x)gLjDLRHW1XG&>B3NS4{~>pXFZ-ri5R*=e#B8Kr~KtY zj?-34;o(K~2aADEaP+q5_Pbh{oV?tso^hHowA|M(GtPvXwZexUjqfBq`ixe|66=3t{xhlO6#J)0Qk zBXo^zrf-dnO(_ACHX*9YEx=CJ+OB>4a|@R((Msa;t&vi>Udc#}2eO-w zN_SVPH~6E8Go7A-WgD(2P^DJ^=dK~Z#i|)K3O)<;V!3cqDAePWguOGKD@rAj1~N>@ z%~o`&=-7)w-7J1t9>+j_1QX%sgaK1;lq*@{HVinLL#Im|shLcvLe86xNn@=W;;QXY#$ zxgxsvSE{IKq@x(}v=sCbhWBe64lDb#b|aZE@&zGRlJ4#cjg13M+^+oV#i6f7V6*j2 zJ-!NKVR`3h613XM%6NSb*o%VqoEQRs1L z_L-4{is4wj=y2hg#uTZ$ZK7;H?-JfK&Hc=*hlt#s1>VQ1BkP7Ey>!%-I2XKMA+&6j$xBY;*<{Q%LFgjvh1`Y8g$<`VoGm?%=q7uK(3QQH|33 zyHTL^^4+Z|?Jrs(D?6Ji+(D6<>1v2QpU1(p>3xd7^yVM!?v~rzL}9!6VjPHpm=nac z)cP836d66!MyXvtj}rDS;P8KJeG}E&=cCeH)0kxN5*4i#7h-$U9~)PEFfS~m3$rD; z-J_-s;_a`|$CY=DdWTda5UV`iY3g;V>;l%(2H&&7t8nQ-y@su;muwwvYNx(cZCN=C zB%`OR{Ef|on1GY#^fdhT(SG(Z#wZeEja5J}zUgrmC!FFVaM+zN7@x;vAVp*{wk*6r zRJ@qLO!mn(Hfq*>u+N7QeQ>>fk5lZ8lshh-Ep zWdL&7jpNUXU#{+z0e2q>b(cF{U_=`eWbOVPCqiI}%BYGXS}@X#RpZM&dDI{Ddfq4Y zrnLjs%z!h7^nz-aZEdBvT#rD4kO+H{MR3loV#Z?UJ5J#Gh#XxebP z?mrD6iE5{hkc4a>zwWKjr?;-#i|O4l7i9dS&F+FS0DwYoIO3kn!r!~^@q!KvXvzxI z;9~!=G$vckkw(hz^(&xgo{V7iQZ!%sZ(o(Ub7A!YaNWwv%1(cDxxdB7ZOfYey^i4K zO={%uzWdSWLiT}V*lQK-i(H=~7XNS?T*YJn-?kXCBTYE2x$V(j_LtiA)_tko?8`rd z(}3CV)}@F)hm(jFd_E@+Qwj5m{*GefGl&v4!|zzwU2qm%%mkujLx-l-Rb2g8Jz-+} z362oQhA}Cqn-Vxia1vXe|Am<;=zXOoE)l0~6sxAzQjhtMpQ?Ea#)}9ad(94J@t4QI zAHbZ#LJAD}iCX6EefzcLI$zCg9`CD*pCGqj3UH-BR ze7dX4(4C+m^L3J|*=~kq(t_&9)yg6~F^Tq%kK_e9w?>HTzdOgH(Eokw4Gu?xWg%n5 z2CW{A2HUw5up8-W!I_5w<)`2iX8CEGGtC#gCP$g8x)(T$jVTHCwtImRUsz8+`8uXo zEq#5k!^6sS<1Xmn@cK`~JWBQ-sv-JF1S4VPQM3|CH#4M6;&aB(IThv+NGmh2L+y~5 zVigz~LS3p!0QqH8lm(ow(C3v#Zy8udw-%-WLoXjw^&tqQrmHkCPhVddG4FKxMhV|r z#%OA5>FP$6v{)=LVG&AGRdDQFC$}Y8fmBS(c&6NZQFxGJ7;_?~N9XGnA06!rWQ8R7 zNH~rUrrV6Li#Yf)sVQM!9Fw}t6r{$ZZdUZ+{@o;u0uwV7be0Wk6t}1Rl>X$0O>ucf z77Aj+5i??`in*Spnen+RP9gMo?vj_!Y?QHj*pEd+Ll)GE1CJOZ#e&z&FB@|^jK4W> zJ~Y?}TUXNHaw)@imyY6nb&$V09*Rxac2ppgftb+s_dvRa+XJCKAUUX|ByImmhZi|9wl;yUoLrP8|8{1YIiOP1 zf3Lf=Pzb^?$xQuGYrY20omuhYik6R{jZMJ=A5(^M`{j~P*$XQLe#Vp_RUwQwTij)< zfdbg->|}n2QWhey-fI*;Xey&AS8R(tlL#f6#U_oLxFa3WyD1D5L&4+J+jUkyYiDyWN}q992Hmby>~jp;G&G$3_Q( zzxEWwfuJo3;kfu3Vsa$0E=o)A7rTMGx%};Z2Zu+pLKb0JBl_SD%D|9UZxFbjv8s(; zV%BVv|7!rprfwf5io9JnFzo8h2us{=t3t0UM-pLZB_poHX=cByq^&FW?E)U`+fop_ zy+*&IuTNrSO$bU&7rDIY^e~r!U+m_KH;7hiwrbj@XMRxt^Giwoj(FmT{&s7%Xg6wDn)D?lsK=81xy0V-}dM4-bA?-oSida*aN|ag-XI zpEFTd%iW3T>H;Qj^z;lqh4CdPQSmr!0uT?9aR0$XZ!}|->ff)AkGYk_V_9E+Dkt&| z(0bLgy(&%*-m@rk(j}! zr5hKi<*m3&Xyr@68&S0qKGHzSw%#?OnBEfm2p)YOfhZ{*W%6u*ie z8MoY}ux z?x8?5@gD<1Gv?}_J-?MKjForXZ#mbM;q4}xlZI>KpEEeU`2{8N5V%Jj{fZYrdw&Of z`=p%BIWyyK4ckgr2o=~WS4GS$WE*Z-Fc1Roq$M?^dcSueFeuVl_G0x;&jmS6KD3sd zBc28~COgN~U!q&erD&@1GJ+H)04{FFp$b#{vr(Xf*o6UUv&7(=uDmg~<6|kX$~k1; z1oy?zn?l@N?D`f$2&x6TV%dac@g>;D7;A7hZP=E*7{FJ_HCfw@cw<8nCg>F$78OPT z!lDY0=j>|G&Ufs|cx?a6mQC}<@n}k%LAjd15$_lQ0agt(eBj(tcLhN6Tk?fz3hZPF zPW=vl&9{sCi-)dFM_Z`f!l{}6R>z1|PU;qd1$|DNLt&u$Sy_}sLD*+U8W;}(B_nVD+XN2>Wp_`NSQV41zgxd)=@gB6JB?@d8g&W(0u%YJR7 z305}TDz99QQQ_1UsE{9A^&|4r0v;aT`U08qr>VZ{*&lJ;RI`V+%!ujNY>grp7>)XZ zp^TA{Q)>Ks5_Snmb9TplahVD{$SZSIj1gj=*GLWA*>Ta&z>|dvDmsRsBrYJ|Q9K0# zHB(7>IwG8jMk=PaM+wqPC~}*HPxzwb;nTCE4Fh7Go$ykeGe!4TZgzE;X;bQYwPmrR za^#dJbZ6SmR8I&oT4V&3=*-@_+WsNR!i*SsSNd+&7F}sASQkHO>g%_mr~{EQJxd) z{CYkvW><*FFSwfhcj5^Rw_a9;st_CRRP)UFcJCIYXAvw5ri{2+10yq)@HBo(9yLvs zf?=btG=B%!5kL@S-^(Zc|3LUWbsYqK`t;mLidS6CqthM}2-*XpyhAKI6ijw^N zPfAWa{G;TA+)2ravHz;Yo(YwJUjI*_@~q^FaYmS*6Fq|bRw|jXm5p9*fMK|lF7NP6Onj9LQ z2w1YV_nz?)?JHhJ$lYmv40KX1$Hjz$igouadacZg2XlDoKu#TurVPwuQ;a~G-H|11 zQR$gBTuxOVD75g;`rzXie7)~M7eHU%ei2wX=zb}rQ(RCExVW^iV4ME2g!`EvDX&@P z`rnBA&07@ZGd|>uPq1+;OK@FO8T*PSL>>ELxcns?l+5}%W{#PiSTSG4b-Tl)sjanl zD?WKNp+)I78>6@Z-!`DAw#FC4svENa;?qHnSLRs_5|>Ub;eCN+A-@Q1SG%p1W~HeY z=MArZr9g?X#Z)Z^%GXuWJ3BF(G*)IaK)^RB&GEh0-2QpG%X!T|+N*!1-Jq78qMVvs zlOJztIYxKmiYmKOLmL#mIhixJzG1&{Vd+iz0qHkdh~NACkUOJl{8LLWGBRJ6D4w z0tCNF@uvrup!fBAYFQbMQ{j7@g5i1ko23Rxdd+^j<&)pr8*MbWuGv7OqIVKzBrZbx z=N{b#N`w?VQ8BgzZ7ji*mUSiZEz}DrzYF|B_tdIJmy4t9AxG15rB*iZvEyHJoA4!S zH*I<~uvJgoZr=`@znne*%dzJnbT@ZC7Rd)XD5LP14jM>%6$JHJ_I4a@;hHRCSZ0y= zT{}}pzubqSMgeQp8A-q!-AYgf2WP^Qr#NV1AJ_A&(F!2Y=khxs-IM=T#@RL_h==xY zv|q}IJv+5Jz?x2!HHa-9@5HJbH$rz78rbhfbrt?eS=}X&Js)c zaP|%PfdZYwC#2T@1*cWthxS+F6rM397H%HbT_c`NEc>>K7_PT{|Ki<3#mobji~mW; z(wSzCQyE0AsWqOjVQx`^8n4F___IC-uU-Mmo&go8=*QJ1Zh;OeDBmsiE0w>~5?YyZ zb-2)3`X-m&Cy?vd?A3(`n@s2s@Q8*i9vgzA7V%c~?BwOD7Ho|4ZHbADt~_u&PJ5lV z;WfgqC6jHsxIZ*{XGRlogDLD0fjhU%O-2ah9vA99de?VNyM(Zujp@xBw>+NfUfkgz z^rWQxaLu#aW{C;h4<42wL3!XdCb6SvC;{0PSpL`0X6@PHdS_W}XM$pm1593=gESAa zDzeMhroGpv{fgRH1~ZC_x#7&Uh_nk9gKE-_R#KA!w81yW#&q|GD53o^*tYfmXGli} z?H2$Joqq-wniD>;QtD96-dp z9{*>dbaIUJ@$GFuEBk{#D?;ZqE!y=InaqmKvf^^H9G7OgriWH?fGsN$o|wwxu>H|P zx$pNK>@2DP)pbL;Y&+$nhiwepqsXvMEHOmb9-rR%>TQzRi)f|E9HviDb9ve97hmo52iu}zc z1#>N#fd%z$wp#64b|GMMiZHcnMNnfXkv}|^BJBsSuK61cpX1F&+pysa8MH#E;uRoP z=V6HbU+U=}QppJY%HdjsUn`%{V+gBz^46quw#_qo{ z)xx%Xi|Uxy^M^IdAYRu_VJd=ck$n4v^4}W9V1N3jtbpa#XV8~j(5Js?anPTFs;svU z7H{ctJdAQv4Xw(T<0bPyl3SWCOsMk>TiB{^aQ4iXo}L921s+1!E-bcPMHP!l?(4u- zSE}|{d!Jw#7!|}w4!^JHM`p`;kd{vk*(V1P44la5Ow$`XfT4EpZOWl}5&mqU_g72T zl^f_k`grN5QuDB>U9T=wFSgAGOFGXIYx5>p&Mpk7f0#PNn)dAwvo%T z|J#szcBBWLpF8#fPVh)HE;i0rN_-s^2o8|gNx&*{eC|6Sn+F%`Z$L;#CLN62+vopLvhnD=M{orq{ib)7WpwTc_Jf}xHpinvHUyCpg zeBhI2g1-KKo(3)0k24GT{BVv|+RW)l--;KlB|MiB!ZRVkjQOVAoe=P;T#Vo->GVox zvgQx62Z?WCg2{^#L2o3zfu%~9MjtuuTIP$S?nvWjWA7Rc&7+s>etl1M%amz~E`)7? z*w#CMIJc)>cQ|qbcCmn8WHnBxSi4^a1I$y9Jbd1&k!{FfXp+*Q7FbfJ?tpHC5|p-bw743Mpd==C0?2tb|K;> zxhoaO5Ovy+41akr(+$K8u?V*_xO}3B#}p_N;p6mAmHsWMD%voMm++bap5OaIp$!UaEKXjs;A%TkrI2cef$AZS{J(o=As!vz zwv5GYzM9eej9(A-7k*T@_Ay!ac!S@|Dds&B7S1|GVFR+(X(S&+!=mu^k_FZBtLKAZ zBZlchR`wGDTTWDk*QW4avA;HEB-(ePUbul(6H4{3asg{Z7K{)Kr=1YwrQCY8PZaYj z&hz^od%4?7D_u=3vEk5dPT0TH-&%m1xt21MdAVu)=E#KB$h22J63?z18gDC-e=qgK z&YM51I5K!$iBwy4?scj?%2+{*cxyM$`VyAIF7)5V&Krzf-O^i6!`LpR{Mykl4(ImX zi+g^G=5JrxI&Qt5VG6nOpxlJiICiO*pLr_?6dLq&AqU*O*)4XV@$qq!C_dx?PSHa} zJaTfHcoDxGQ=IP6-jCRSOWhu^|7>FI|{ktJHX8rOJ zy+%vM0qhrA?nprl{o7 zF9OZ#{jKXH3RWVXKH)#5qsbn~I_Iq~2JpopW$(D#HX zDo&DG*>cm}G+(|*yEzs%BLGS?4iNWY*LeA_ghkOt{@4>1aokJe)O#8knJ6!Tn=kd_ zZex$}iQ{%Z+eyesAw}QJ*jdFeRihMCAnqQ+J=57@1a0&RHch!Dvds8p?zD)!a{oqv z;YDj9HmFBb^Kx{E{XoTz4TJyt>3 zG@}Ju;uAyDHox3_I;z1;9?nj@FVtCjAH~=x*}bE>B|!0G;oHJP#ZM)(Dg$sEf9WVS zda&%PxN9lHfqNEf8|)R(K7?>`MKO;r-fU_&*yu$)kHkLwuJ|R$o00a3*ewk+IXdp* zI+i7nM$fdMX~R|>-FW-ooNQ%+sRS>dS9lNP1;e_zvhtpCMkFfNa>Co(#M&&PFxp`Mb zC4BwYCX$+)mSxfgblu`R{QK<5*#Pl)L1iKBkC?|WU>e@abSd3M@QZ5Q{o=F68vs0z z5;ybt)tO#{?B}zvjQ@25bq5OQUsd=&V@et+$Xy7=)-ecgPmh6m^|2;s_On84_SXCz zy`}y2iKF@=wup}76}ie6lKDsZwq1HtrJRcW#1EgxUC0@d_ORQ)pA`(_QiF1J7)N@t zNPz^MOHa0C)zOLTIRb_n{DM-1-i?8pVL`V=c7E`3ZbSxtp6pL0aL20gJIwiscluZz zrmH%w%T+dY3a-H`433ZNl1)(zSD*5cY($TlX;zx^o8$5|VdEgbFn-C@YC*QI0J+ZVqNkZyqF|j!F00d`20kI7?dX5zp611Cf+5a{ z7qGB-cRIUn;B;p^S3BxICUkwn{KHvYj&-p(!FSmz+s3HB%cPjnF-Sr)`k3@k-wOxK zZt2h36&Go3q&<{C`nx*ZqszIx?&3J}82-s-LjMECa+##*EV0xA6r9oPUzH6E2)GSW z7y}BruQirp)}U!O!e?i%o&-D|_X+=EAfSemaHx=vBs_tK#P~0Ff)OC%bEC;zC}dNH zA2c+|Yu?e>OUYZ2)b;++)7=pLSaZ*}?RlYx-3 zp5BHzY*A1Gpk|ARu2MKz{;CHohp_j8DQ@o?%Y|DE&$i{|&_ERt7DLbY`1UF;zJGMa z@p)Q&FvqfvAf4Q2bL{T@FC#Zf^9F3EWl04b6{7c#P7J=X4Sfp~_DF}v*#d_@gagB) zvie5o0Qz8^dnT>v1P~AmU$;?W zQgvGLOvj;9WNQbi z`yZ|adDSwXBLX@L-{_v7CrUJ zf@t#8I9wJ#6Agb9R*7?#Ri%;G+rw(G$hE=N53jIpk$9z)UYH?JAV(JIs$4SyM=mf< z7a^4oG>-D^#A@s`h&5>En|zH*SAqiaXnY~Ju6{VL8%+T!=_|2|(1|LCBy84M&Gz$i zhX)bbv4V!J5mPNJ;*hW^Vk(*T80Lg-yw&RQB5aHLbf|cU=N|A?y!_tP929n#r0$r%Ur}eEBb0-TBf3;ecgvZX zz8zhYe#gliM?q;{0k>N2gM5B<8Z#_MPWutWL!1yOoVh`wAmYo1ho$bD^0P2mxA6s~ z+nZ~^D!JEaR4U=ADlrk^dZRI2m6qhMWXpY3`Vy4H=ek@zsxUcVZC(!Z52gFr(`q_@ z2xl~E6dw)ey?J29lkX>R4sARv&fo{*rG-~5MtmIvahXMNN1Obig19r-^(74vWUuf2aL$mq``bLNbIq^ra!$S=kIkEnxh5Rq+GEV>xy7>y$?7l3H1Y_ zrlywOt%-eJM*Wt@^PnUgm!%-T=0?`0IiJuVXUSK?NY(JNadvJeR>?j@*F>>grH~{D zIKz{>rlRzj_qsv)@#$j3d=m*Es~KR?NZye&f(rG*QGdXv*as-|w8>YKh&O})H^UsJ z%KU+rG10U@#GK&WARo)NzCwVrB_I15PFHX34{mNs$=7oG*kvB0zoJdvj3FF`8OJj^b5c3QFWg{GR!t~w#eSCuD z05B&&d>#vEC5Z5F{#^|@pPi`32%^vzYm)<}(nH+ZPSz_Rx#P;CuJde*Q(@EzHPQm8 zq*Rdj_IvwdyD`DH^+4@wR4XumB*4W@`bX9%EtvnGk_F2*2tZy(W0d9}-`)gp`;_L| zV_~cj&Ux^UVDnYvJc-nf7iGoBlu|s)lQ0ICF-fi@gM+c88Zv}$lmbs?;Zp$vapn9bm-?`0K z<{>(rVj2}8y~4-%Mn6!L+3Y#$h7mH50CAE?%ta-m4zn;bi(VWkM`pZdLFb(#UwM|U z#0YBAyBTOae*EU7_9cNk>E5q6lCyZ@ImN@W&+4vQik-bBuJm6dZn`Giycy04uN4}o zboS4}@dDnTQwb6f)SIza-J`B23!n|-flNoPlWNB4#~9YMrK}CdIhE{dD|hce`=es0 zoldRc6zXVS;^Xy)qjVEq)MG<&Uk&6D=2`X3pXqXeYgZX?acivxwa%t$7Ai4XCt3b% zR%6E1%nq3aIBm_(lUZ3?P3?FS$fYYu0y!=Qexx-3AB#N&R=-i_q3rjUBa-j{?@ zza^BtIOe|4+P?g8>QI>qn6@{y?caf&0VG0SH}?QFg8~|SBbzhAW15pLFEG#Rm2J&Z zU$}@Ha(SV**+f?$4&)xiT{k#B+g!#H+@1KJ4i&8#ghjI%PLi)k1S~F^xMEiNa7x&$ z*uB++w>V_|g|w@z{RKuHFn|p3ES{5nM781{`OOzWrzwHCJXo2030wsZ>fTM&&8>)A z$-VdvZiBc@lXT&1^ejLqxjvJrR@_uE*^a4~;Ow0y&AckZJa({1a3C zz@o@v^pH*mc2>|wROCACKlOaVMRpER<$Qn_k$Ms1W7k=+s9>Do;{`2mCs={%b!JVv z^uCNj?_oHCnYzpc6!H-dZJO^97#QTz04a%`k$|pbm7YCPtK1~lNV@tEq?F8>3|Kc2 zy}UN`*o=fn>I?QwPadtGlJ9Q(;@lW+H5aoA)CG!ZW6B)n$*u=Q6Jm%pux%7La9`Hn zUd+}*Mq6jgb{F2U_akLwZ|A!zK0k3!h}@ySn5vsQ_F7J9r?-{_^z`j{!U3*j&+LtZ$$c zV?3&6I67u6=|kH9ojTEHA|mfvKk+{SrLb-Z!2h6ZZ{y1p$MS8CxjLyoBU(DPAq&_ z4ngzZNiR}Zyqh(y_%{h(*>Qq3u2St5pSj=+xAj-ZcwU>KRcchopjPx11u{t8OVI{j z?d5}54y8#2(*93rEh`GxdfA;Gp56NAaTU`6fhf0Ia@y7T^+JvLw2HU%YbEhBO${B& z^{s|z5QJ_*LMEcIFMpHNxPFt=Xb1f~ha(`j^knSL1A;7UbpgHD0;8Tz-gjNe`BR|o z-G|1BpN-eZ`&2Jpp3m+>MDj|q`W9Q1RL(+LsXLZYG8L)46XO6ZtjAot;?AqjdNX=0 zjpPy`@uDM_tHmNA>Ur>KE}qjRBNizb$zjQAQDeJTP^tAcAsXKmQHgxIyFT?}X<%Sr zy;oqg%XEYRoV?wfduLT5+=amz=oLG6o~?U}098)g)@jGWlZr&z+0Wm<>kk!enoRpV z*%O?67OFrBKph2Vk#Gw7Jh8L`nd`z2lz4V{S|Iy)dztflTAts99o&9>dmX(5mZx_z zKT$+{`T52dF7!=8|IMpocKJI(M-LwQN=j~hdDS}iw(C3EbxdsCuE>VqW-A3NE2|WP zh-Qjb6DQp|$$AOjk&w5hD{;u~p$7OR3=HDip3>#}-hwM!IZe^!FoarAuo-COvM>HkD$7;1iww#X- zu2KlPL!dCUv?mVp!L%%v<8K`H!iCo+gN}XL+S-mCGZlyxV-&~}1RQh_HUqt^A_ z7O6T^Z}((x^05yI4D8Z;=Bl}Xy$Y%Q47^I=gyu@kCK{$5%n`agKmWe6dRN0PV{age98t-WBn@{hXpf8}B_Ys#(G>V( zph_*4?P4_;D$r7oi}>INyb^!=0XOQ#u&RTt=M^s>WgK)+XWzm`-$BF2IQzUO4(P!J zxziq?v3iIrXU%HNMfFO@m%&_ywxd{d8zRRmTSB)<()o9K>Z<)*_m8Z;TAqC!3VTAB zLO2$lKeMSo7xG1OCZ&=I-Jx4#!58mr+)!`uzK1F_x<}0&m#&7A%pb-(K6#hwbW~A| zh)sZDTa1qpj(vlEiar^i)1Gu?d4yv zinTJ5FR7)w-_prz0+uO7Uu+~rVyyZEa4SN|ZW`wQ(@)T)+t{n~h2Yb34p1{=V-f`; z?A6$QUT`njKcf^c0zPH&e=Yv)tG5@f3f;L|?ftoL?d;!tSHFd?zk4HkM*n@Iy|2IJ zUc6aoQB~z`ZEcnHTqN~4S3%&U0$F$zuyFL0fnwFN+RuM!kmjG?YegRbuYTG2Uib3V z^MA`kHvD*YfvZ3-(HkDvz_j@glvX15vi?}WWV7d1Xg$NG@Y(b97*oW4qG0 zX9<&yfbMhP>@-||!Uv|UOmDGqM|l!yj%WXaXU7w={DV2nH4KBE{1b#{~FdQSS87WC zzxi(Wqt5-dao_J;VHbUHg>%MyL=-h{;xO@H{P$#P`0>~0=1zP1DQorq%7X6cdfnx* zSLWH)JbStP5&Q14C(f<6v<|d(9X^VbtPQ$Yr4}*luRIo=^fXoeY?8&*SNZd z3VrbG|9|5(^Z$RDSMg^(`=^J8azq~-a(UJ6C$ENt(oOxbLgLZ7UPCGMW z$ER0U3(r}uKfCU2Nm%`7^NlYaeLv#*`QBXHnr{~t?kIkqd-3w+$^7C;s~Naj*P1&0pKhCT&E&TT6dP*Qq%2)IAc?Tb<8m_N( z{PtmIy}k7Ay!&A*LK9dm{7+3o1SKQWVQpY)ciqGK>+SoBbe;P9sxuEbgx42uyLRoB z)`wjZ_Wyo-XR3?&qDYh1Vh{ zZ_;4f{A+f)Mg7C07wzg3zkT@m-$vZJJf|0UzW>w1p4+(!g6bvUaNL|NOjY{|vicC$R^w!o}A{ZMIt#pBnO4 z@)S^e>hC|UhV>60y?My3ZzFHLz23f0&UO~R`faTPCtvvbAVtGT7Ou#K=iAQrw{}mz zw&=yHS5lvJPhYKHF?Bsdc>Irrw%?D>|M%hdEt!>NA`e17Jwwi=IZUnE2X4MSm3__C zJNxy9w2$}2<9n>P)$8xty}P}1Uhv)>Of_1HkCF0_fQ2!zCjKX%wz>3e`0XXy3_#%N L>gTe~DWM4fr9=kc literal 0 HcmV?d00001 diff --git a/images/inspector/inspector-view.png b/images/inspector/inspector-view.png index 2209bb8781edc624b5c4a281e9ba42584830341e..533ab1a5381972bff52a22b3bc39173a0d0077b5 100644 GIT binary patch literal 829228 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 z z5`D(aOk}Ww&%10^ptcI`2Bzta5IIFLn9zaM%4u0mJ0}-qTkxB#2)wHt7bUbgj4N)P zr3C3bs~m~Bqfg{4qpj?AXm|y`IZ=Fj8Fmv)Mp3`YaN_`VD5#OSjbvrrUIZOxJ``;C3P_4d6?U)Gabv*6==Yngv{q)PCgk-?O}@R$BC3ke zM$Bv8L<)ENrP%}?tDcVVu<%;%JiGq%0D1--P6nvXugqb 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�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 z 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≥v?v+JDpWnBera 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 z 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�tSZ`l?pJ>&iYSlPc}pMiXhV^&W-zkg+m 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%0A|4|v%j$nQrDOL%#ptF@cz%QKoV z?X@0#dQdvr(3yGNr&+A>u2vLLw$v&$R1k38)zDYc)(c!v-3r}mAfL|`Me;{oyrcJKtacC+Q$>~FtrTN0?Aa3T|o zp)Rw9`svx$p6{S`93aQi6*n3$bYfF7!R-B{PG$5Z4H*>-h9$cZ%@&4Qwm|b-jL_|a zV>%i7)AG+6gDnp<+0aZ*{PO$nXZioMUv#{p$Q|0g+8wG#0bAoX>c3suj#xXRDKSMe zPjb1!X@WM)E6u)q4UD4Y^?;SWW}kIC5~HDr%Wu&fa7zSqP-Z}UUM?+s_R>5xg!;kc zxvseifd2!UnmN>MeKQQz=B33O1tUZ%C7hzN%sB{#mmy3F2B=$IE=`poR*FF4#~Mu% z(QjOzDbS6z<+{fg^02SPU<3RpP1FV?{nbO1lT5JIAxBvrVo$M#a6&b9`B6Skj+n$S zYWj_?@1AQ-U`gO#Wl;%FL#8$cILweBp@D9@+~He)N!+>jggjRH!u;ygfV_nQD(QYi zdp+UP#8gVVTKIxn7D==)Qo#WGRWAEmpyS!q#pjF7u;hq5XtZYAxj&6150mc{kk0k} zlq3w&H$+;?u!Ja$c3pC}uws}_S_HzV<~omih{C9*n~o3f@R~WZ$Ztv34@Oe>GR z9nGD2ffI}^IYh*1loWo&bUDrs*;BIl=jYF(8DiypdlSut5v|~+-?&zzSj!R|eN(v~ za`7RP?S{v*U#8C@TYYcG(ZYSkE_p>w31mr~>`^beJA$}B@2l`c6F|ncL=Zv~*z{%e z=NE7*ojYM}PKQt@C%bR3q1W-sq6NPfk(T|8?2W>o=vT^|(AL`PHPbsQI0 z6!JmF07(bLUs%DGB@ohdhok*w0KRHhXsNsaIad30xya@(J?!5*+$tPA02{#tR~={n zPxi6D3(P8@17zPVhRFdf$}CktQak+a@f58LX#G`l4<|cYX_swBe_lvq6piDMkmcU~ z5}VySWWcw5L6k~txfri zB&HG2Fmi72KK%Ar{eAvk%|Z&lA}7o^4Jm$YHF^BP8C@Xv3FiR{NVps0=Qu)tHG>cf z3?(=0QcoSWp+M{HwawHtXy$MRPa{0(PwEGfiY%h`DqL$8rS9napeZCw3f_;3`5%*h zdbE*p{YA`S5=C-nyTsC7yWgFncpQ(gGf?XFsLcwV4NY%CDYZj(Nves_A1`F#Elo|F z+0zu?BXaGr8mfus`h9hO!?V$*xtt$Al3a-2aza7bS1ROL^c+TF1sg6hBHrYY1C}{9 z(Wwy3|2k*lPrf0j_Z51~YApR=MzkH493iwYjatlVZbG2iQg_K=$l2-4|9M&%{K_UK zB$i;*pjj}Pq3HQ9I6EH%oZHf-L@3aa#-pa2k+l>zuUprg2Q47%X+ZgDC%lR* z@azLBhl~+CDBubb!h(d+?+zR`SKyvopvgwAdn}t}!4&yksW?lZTduigA%|cv6h!oS zJC;&Y2)O3>K~_9%AFML`KRBz@#3;42_>QI9x=gjk=$M(HwRMLvS5uNT-uLv zh{ohwGslaF?8Bl^DyL?Y*g?1BWkM!R_t5F~U92%k)gt27gcM+K(lamU>xF*3qbdM{ zKGrUNh((*|jl}NWJiVKo88hkpgs)^G`<`Eo`glq^hD zAb&J1dw(LkczQ!18g#L{S4jk$Wv5-P<##a`l~hH%7kv5Ih~136nSmNzpliWOIzen` z4<;}cysm19@YiFu!0+b~;8D+f43`+nbwG&V5MX(am!bIo=OqS%SM3O>c>qmj;E;(P zFfk+YH2@guy=tHUt%77NZoTNf1&E_qBL&isl3~+U6yU>MWl6}Q%O83`t31*;xU;9! z%f~@fOZ93_a=SDATAzYbOf%n%xt{?%<%ESoLJ>8P$*R+2I&!UksY&80JxKb| zHIGdi37Q(wt5KP;98Hukc0b6<1I%;iL~4*E6P_Mc54@+VcZ7w2LoIL&t8Dom;6cbA z%)iI!C$lNsfGL1f9hA4*r=sw@iR9&w`JP2$6aPDcMpjbXKkylA-s!kKJMdJl`Q@zr zRjp|Ik0v&$Zw{|)k(rfCP`}Jb!a4O|qGQ_aL9zSVnd_i0I@#l-7(^5rYh;v?4)k$= z7)Hk78HcrX%uKkMqYud04e;^gxApl$m_E+qIx_@n@PA3Z;K?UCdwSTj#U|z5s5xL} zHEJy~U~*y?PaA^|B?ey8>*;`V{t252XwEK|8~l9!v5ri)&A0L;{lr62TxbW%hN&kR z%mjZGwRQJ@gji9SD!+flkpFl+{69ieR~>-7e;PZc=|%u*<%897l@#Xq6|<%H0dXe# z{n@{7v3B+-0Cfd|gH-*++N{ltr}gf);#ndU`+vfRuV^Z7KDGzm+TDplHvb847aZA-Cc;mde#Z;#89!S??~dmLk|U-lNfEI} z#ruDx#<$2QqJoYJ&>DH>!1w1@}r4`w1P?kY16{E08kmB`)qviPM|S#C-u6I{x7j1KBBiZF|Nlx0&y#B z*m5@D>0NM_Fv9IY{mD=>P@0DH#jJ2@{I$}n()B0zl3Xlp^anSvS%l8uUKW53O?+?u zA1{$kEijF)JKOCLJ@r9Pb+v2jiRra5zen`Uc3ubXty*m8|8&lyJZ7q}eqsJf#FfVx z=yQHf#bVs{HE-npxi;xW?(mSE*YdB=2g_KZ^W11{;V%;LQz?-;-DKQQLMq-3P>uQ4 zmQKdL1MfJ}9cmv7bsicA94!bE>4>g17L*DPPob#;3SAn$Q`Jd^p%$}701j1jC=eWb z1ouEAVT0QnS}Y=BKv_72B53+*wC1mHG+Uzjei@pK=j~S%xz{6R)84PSvrYi!GTBYg zER<{9g*l(1T&=c<5!U*Kp*d9$r3RVs{N)*OsTF&aYb027x&vSq8av&XGw`d&VuJ!p0oUqhh=(vBIMVuf zGMW%KkiABGnV1F{RrH4D%rAj zqu#K5xWZ@En97?f$nGiw_zqUu9dE@4rjBm0sw!=6VIMFnt4$}m(4QNPQ;@We`v0k;NryrH z`8Ge9g(WGIHA6&#X|H8)a_hK-;zHxxJ|;^#O39(=HLK0ZsQD8L*;4yRH9`)kL4y*Q zFKaZ9XiGe{?UmzQ_y01Hh)+QkC1Xzqa5FZnS+DmG3z^DC6H|0SyhDZ~1M}6I`L5aE zU)i7Jo7}cg6bbLcPCj7naqbQ);~mv%*3!OC$H7pn-c`WQ^}6A)DpK%TD?h>0K0iA6 z`rzD;yN6-v={Nb94FXxnm3B9vBI%hov<^o!IU2w$0mHP0!{bePsr{bLG*R~!iF~79 z?D8mrZ2>~1y6g-2bx*niCEr8>PStg6h7#Ie_^Q9E-rJ&pJ7G;_lf`Q@kDgRC>-U;PGX&>-LwO=e-Fqy zw^YU$7>sHj+M@433x-@}W3-ZH>ftMK6`MWf$ZHh3TJWTZITO}wWYBB$V=JQ zQffpa;1fPp8nOwfR0Iw~dy=rAnl*ptD`5Mt-W|=wd8bg6SLOQkFybSmnS_>dwp^Kl zSj07_Xfb%o{4O8~p~-iyjC%%lPI{^qXI!`6<7EGGXK0o+>7WY;R?Y?sLla0rg=RdR z1^i-Ar#)iKDIgaG(f5LJBfuOrk@r!C+$6KbRxG$`xN<~(?3Cg>6H8WO98F@Hp zX9wrG0S^2u?imS%oj<6X6o=v&qZ=Ga&H|C4@xr+Qsxy2>wykCnR-n4}ZwWI}h~)9~ z0X>uwOr|uz3q6e)?ZVsV5AJt3Nnn4c)~;--GN)_5R2!w1uT-j)qEb|SS!M8#w02%5 zE{#Bj`%XzRsoGLo7uU2W(nLhVnM~C0lK*6_Ic23bWcBr(Osl=XeFOmmy;jNm_3e^V zaTA+SOQ!GL>12A^lH{`!jNP8aKgh9vx5i-2^=2numBOFBnvEwy9+TS)QwNJTB!>_z z<$!an#NOj@>xvXiYT0ODUqImGr>u4ZGg^^EEp#)oMqLjGy*RO z^K9ZqVQ+u45Nff`hbm3XWnNEISow)FARo_^-F<)D4h}H4=$|Z>-6%Y4cr>54r1&5B zwpgn&IM&bu)*}MY^MqN<(zmgjJNFuMiU*$=%Vf8nOOfCG=wZK6TyWbJa!LFY3#;&R z=8U+@nWze(#8;;;Op6r_w#NQ&y|jc% zZ!_qDo1XYJdHh~S(I0D?dgq}~Q`7D$Spl=_wD-95$Hg9C6`4#s(%vV{Sh9+FOivef zeQgX=lrr%`=pY__h}>z9$*P*w1^9t&~z#r@JV;5|PXz zmJeWCbO+mPjM7=tMGtLoS%>D1=0l3OU!>z6svNP8Fij1#P=exG`&fUYEnF2^?EzUM z^dOed4B9DRQrFtgrcRbFYBBv+jDK#J`A)N}zrIbl_?_l4dqdhcQLHMnpfhowrA&^E+1W3-g=!dMvbsr@>$`(21(u95Ep-9$!f@;Q` zN4c`)r}D15$Ks8t;1C6qZx%V(7n(D6qF}DP4o_AZTtY5)1}(IZD-RU)>(zV^T%mWn zN}U%5<81ZibRF_$`y`zp^_LmNA~z=XKpzw-55oXiDP#PNTsj8*>@h2 z-ZuAKZuUGYvhn^$1f$Gi{A*BtD<7*GcNibhGYTdDltTo$qJ)KqjwzlQa(eT=67 zbud_Wt^A{V8}X4^R0pJfe-7hpN(}9%y!2=IpM75?gcfJDg%-UZWb{5Ce~dh?sn0aq zaGg2W5{*BLNpnAj4{59pfUNeto77!6uUS@~XBIw5;qyD;{mg3NTW(#U=~-qh*>kQ3)#Tr z7v+xR&dHMixb6ZX($xRGV}UDQgHf@b4`&b_xThkK|KlBS!VqHG9-u?w7cgqFmZvg} zM~=3Eik9PY$OtE1nzbn!0eaa$yR!vHq(UCwcG+~c=L`eg3z}PHxd!PD@Gs- zZbn(=AOge4cB9hOxe{aL1^!Yt)0-mA>EIwfGQgIK+oRvht~+Eo0>Zm_kqATKUT_ZL zlIR~!;+nEu-4#01@xN&T$XUsP7APm{(<5?GXmefCUvPAnP|GuExWnp@_zCe?G$I{W zYZNVDH`0iwdD3?`lB9xaG8erLbhmZruo_k~?Twn4kjenrp02}+1)u~}|+G&UmsszCzE zYlb2Bhri&_(De3}K-je>8cA}{n;ALiXtU?_PS_bbw^qKX{k=O_gn}Z7cj}%+z3Q@k zj#a)mgaXzJfNB%5`<=Z*TW(aROYR>{vrIhbl|lhA8|I-YzCL^2$O?*{@%JqeUV`Wl z(1@i+7Q%3#>9qK(k}vRt!u)4*qx3*$t0IFx-bFPE4%7hAPooe7Zu5C|O~g+p5fq;@ zCu5iROeH)2IuAg{*ZaBxO=M&)nQ1VZL*|QxDi36fZkyOla;e4p7mdMrBzxe=!q%hx(KxQd1=G4L zO$NVJHM9$9O~c-%g=dF$CQK#><@0$t%my+jGHc{0QlL#JVy+zcgf6eOAL(hv0Q{2*hJ2}r zxNh$WU9fJCdmi~`US_s$-8i*U7?}YubxM^q321G9c{zG&k13S7DYA{wud!7oU^PO! zNyGHaq;VAdTPq>pw)30YW~!J3Q&}TKzppZ|8;$oQ7jPwbsqttG0?w@eZA_XAQIrBh z#ab$*d?a8?oht6SZa%mqOm>Xcdy|Gje05tE4bpd#Iig36(bP6=m`}LvFJ3_)1m*=KrPk6yP zz>VZ{b6PsMQC;OVL48A!=^Iz1S@#V{9iR{{BJoe4p`;f*Am?=f4omglsJB;;`pr?$^<^J)QYb&d--a7MFB{X*c2#hK#LsPiPj z&cc=(!cG^Pxjc0EORF-xkgT%WR4butV#9tdtAQAC!tjrZg?-IEk1*ZDi2w8!WL9)7T1i}fnA z$9bz6OYl*{GbZl!VCWYd^&36+8D@W^TAyB=)(@-yxAche8$G)nZ3y@au3LPV_>sHN zH_%D+L3nxQ7Le8|kd5WkYIOx}f3HVk;J+EE_!0645oki>@{Mvt!wvUWk%RhjpiXZI zh0S8kM+hec+|s@Nr<&3bjL(JPo?fBc36?VysW4ikv@nBO~ z7$ABby|`+-P`4GJJAZ;wrul=Ay2a~&x^x5alz`0u#SIK5;zFeyaOKa8FmQ3yp>j%TWJ!FR0_tnZDb-F%3e zQnRB-WxCioJ#TTh|NeiI%AxJ7f`VE z&0)Ug3#a+8b#=@wmq@c`{vTXAJpw=jQ?*{l6r+DG!6W@R-|U9ZqV>&^YrTky7s41w zF_l+6zn+pwGnm90etUB*oGMVvd2cQA-UADM9HpXD7wVLGa6Q|P(ZOmbL|-&PLhZO1 z!|EWZay8`z`f{ZgQlu_)bh7W+(F67PomTj*c)zCIoEkV);AS`2FQV9L#CFDh5ZW<~ z+r4OLs|s8X+dsZe%|DI}b;8*;_F*SnVXJ||tiZF}sMA4h_8(gx7S)@-;az7$Iufbx zX9O(2zdF3wiKK0}E3QO`E9zYmv`)mS-yRdiu9VX5{9gqQi2a`7=p>=V&mE#Ps40l(ZLWjAU7^l@b@(c`62eSZ|-DzsQ)HOi(1`kEHK zDs7${hq%3sp>`DG6Nz^RKmOr&KhQfJ+kOV0*_}trd9ON(vSu*ZNcue8iPgL=vgo-S zlBTsDt$23wlJQsq3wxGLgFke*gs|_U4m7rNASVrA|JMM7ln+U~xV`e<6JPvazCkIb z3pYe*jgk|*-QgkiMv1G1;<@U3630Aif4qoVU{zDf8~h$eF47?DCX30fU3k#YQi^i3 zsM1IJz#u=!4azX28zUEzi=xA%;#XOWXeS3P)E}LG4*I}C?{l0W#=U!HTF?3vXY_Pc zKXl0P&_C?%rqiZv;Qa_=7;v4~uS#9iVOAvm^(`oRkK+YM^eDW#rU(j?o$c2T@9=Db1TTNHSpNvF1>pqcEpVL={eNNkO zuCFw?>=3>ZumFcivs;rsZeh{b%f?e$#bwXXtn-*fz1<yV5E;>Eb^c0$pL59T9hh2Bnt2s#O?X{Am#k0l2y)cpvv|nqBzugV!*3 zg-5N%jLhI~tQ*hL*Qq8_TwlI&*TaT`lldtUBoTyN)~Uk7m{?wQvMYuRsXI18Bz>&uL@43FZ+li_0>ik3pa$nz^LaQTw` z7tfFf^&K?9n}l=}@!G=u2%=QfYs@H+n{x?h4^hS${{1u1P^Jn{77u_}RPIR`x`Or8 z31VJCX@D)*x!84vn@}|m{K%;M&SVq)9%!l5TU|1r!-Z2=vwuI(SmA|o>NuX2V}`& zr-%_JzE$JE<{O4Q?()2Q@(SJHb$gs7m_(JfZxK!w@x=M7EbPbhjB{s!P9bCNXTG?h zEjYTu2+UKr!7<1+{%aI2Us*8q#d*JG2ejG4&)zqL`}Z*l+V0P-N`O%>>tCau3N))3 z1&_6){(aCMV3vInnU<^(NsC|nXhD`mQe$TT8xcq(RFSWWq9&#l5kqCt{11|2Xn_+24bjIUjYdu?^hykVDZs5}+=yt~FDaXu z&5GIIL7Mu3=pbsNEq_X=I|*}Z6DK4!%s3B4Ce7>^4sqaEFr#`SxB&Jbb|VjwOzoX= z8NpJ^5%$~t5#CebwV=aomwF6=Q^S-x`}~*i0HFPDBm?)lZKgCl=l?O( zg(kwFE|dy5F7uNM2=borW&EvKI+^-fDPlb~SUBtL1|z<4TX!>)C6VGWMHlAE)G@&f z>zsG^O)MBHRFf+|+qn1_Z`9&PF>|E6i>El0jtQop{b2c}#p%D9;iFL_jlg&7RAgdK zD+=wW{FzoWzLz>2Hug8JD9$yy7p{4bWR`2lZ(OjJcP;Zja*goN+ zAO-wtbD@e+E_bRKLPCORpPkTEg$VxwNU4EHtAGW{B2eenf z+e3Gwzf{0MS5(JT`eLXzKjB*+Ma899`v>j_DMMUeQk|}@K72@Kjj+AU@6#njLMHDx zH;0_f?aS>X-_&Ti@V)n_>p`}*udVv^l}b(4C2*scn9HG)Ch!aF5WzcA3R#Yu4%NeE zlYI2RrgAfyuM{J9fneQ zIBREn!)}AA4MPj4F|CXk&K4WeL++AuY@O>SDdh21STt=mvdw(+{+Q9fa^}nY_?t%) zcaj4HA_r&fi|}u3HGi~`G*55b>;Rn;<3CnXN;F#=@qcsP){gby&0cTJB1C_|z^i8b z^hamAULLS0UL{hN-avM25hixv4eW*dr0FnEs&2K76HT z(5W)_5u@O<#t~mWJNWebJa6ytBXBYh6Wn7o2p9AdlK}<_x_?kl*Ba$BwCXz!b)3NZ zfy>0xoJX52H{NN%ost=rWS)69jq}V=Rt12x&qDy8j%?{^;J_V*kTqgv-BA3o)*al6A_l>;v5czMT8 z5VT)0bV*ftSy~(5@O%bj2SD*AaLWyy4#y0*`+z?W6&DPakLB3VYi1RaXl*)}lZ1j3 z@Y(+U7_c|$kZ;op)!GwHkilv3=L295$lX6?w4jKgK%A@+Bf!q=pCbaSozwre2^;Sb zexqMPD1oCB5MQ>mrXLJ_{f>Vwf`AC!oF?r3bJUqw-x$`>!8u7vpH8XaC79Q3cUVhS z5Xytto*NR_MkZ+6DF1$O#ZoajvA7$k_vWj1YdZHNs%RNy4F^1L8vVm_Y4RCVA+Co# zJPu>&B4{0ANOkfJ*7&9b@5Kv!JY|#ih-v`KBz* z@+-*muvtHkBPNc5=vtccJtRNl^QM-j(<7oY9z*f(KN8`=XUi_f;_F(7M(R`@1N`at zKYG5H^;^T|Gqn3bJR)xp?&#(AFsvNDWvq`9P|af7==?J^oGa-_K@p5+)ebt-XT}`b zeG-j>c|hdrd=K(K9x$$8fAvdI#1jF1qBvP?WNEOi`Zuokk9$T^722Ffr^+jRakEsv zzR*Ytl^M%`paq`Hy}5Y)k9r>LGO@KdUi~LjySSm8MKfD#$#q;u%k`C1LAj z;$n;6q3sIYRp&3i$HN!(xuWU(*Qe*yGDCi;IkpVVne$Ja5xyLVA>IT)t?i`znPNBj%k zfYDT`syqo)KOFA}q9JW2lqZ4p8=MWMeXq@1k-=2tTNXBl2cugfP_gE}ewmJkn^6m}Rj@z|!+8 zEadGvulNwu#Pwdz5)f@4Dx+9Yc$0Yx&%DO7x-)h~?E&=-=fL5S-j|kBET0NpQ05DH z6pEIkd@hN5FY9=SzP7bAMACLKgAFK5qNR^&gR))z;t$9WtV&38D_7SOZMVCB2JSD{ zE<2>NS3-k}-MDjXX%?Q9cA-G6s*Yv5Vs$#;i%kt1nzavSt)MaE?s}mj4I;J;yD$v~ z2OU$Baw!S-Vr8y1w3!5Kpjmaj?e$1JTw2&eJf@yCX2?tBapdMeGB3`&Ld#4Wd4w{;ELYgBzjUrAHi>^)Lwsoi0Bbp+Y#w3 z8dl8wSJPqr2FQ=oBlHCqz%U+OFaOgxVTR2${9V4_$9c3N=T#vfJu4>Wmz8Scvi3Dl z|6v%rb*84>Xk6RR|6?b{!H;ZdcjTWY&4DsvWc(8D(0;9bdwLCXeLy?QN{Upu8Kj;8 zYrz;OFl6Wmn`2AQCD9&L|E5#Pz}39j6-N*x3PpG)3m{1xF$2n%8$PE4ww3ZgA?Ao; z^L)ngzF5{MHyvMuMNp0PweQo07xBMQbR4vU89>MZ2nORt87wM31_kxk%Drw(3=sp4K| zZ_=ty^~oN20b8Sf1(GYgMZhE!KQQRJ4iTU>p|NrULVk{+kkOhHH6TaI()^RIHja_^zH5g8i_5+`^;YBSR~+fT z2El5+3p9CHuow^BfpRGO)S#NLdipma33%hINPbK@<-kB;#&EWfFljO0gn5vAprFfJ zpGCjX_4vmk2d&z{hSKuo-(J04*?40&(a-mRyCcb`8bd!V2ASxNrN6{hKq}z%#5b1e zohB~D2#P4|_)D4p4Uqohex#hnvz{z~uC=uZLS1)+N`Uq3A{ei{c*0Bld0VuImWrp% zTUr>%#w^EYj`M58`Ju=jbp@f^bOX1 zq=w3;?J&4=jK7Wl9xkQ%lgvxa7%*=|J5IK$V=m+JSn_<)MyMuxW2A~xX4H<@fmZx2 z#L`EVN$v%Dqn{dY5?+s>w)uU*`ZKhTujUJ=PKxFEJ z4Ji$o{DO#Qzrx+J+Z{Q5!m=z-w_ogHkib*=dzlCt6Q7W4sHho%Ogmjr`DDTG&B4^2 zhjqarG`rJi*;fwgb}8tzS<{VuxRt_boqlulk+f#3sUE_02F*)oy7ma)D~WL zvbTRUvG`e#3}}g%S-rASc1Z03OgF0Yp%ljwvNdy7Pp)x3Z!CT|zJY20n-@+_WhMnM zP{OerD0?V3yWimb!jv`4`SpHYN=(FGKa&!)8=N88c^~JwSrqB*< z9gIi(Yp1+(EK7CTOZ8p>?+&AT<5ZUilQ5aD$IOhq4m8 z5WE!grEx(m0ec93hV2bJBhK%X7?v~D*)#*j^6|2>C=C zW~HJU3hbJsKwW;9AvW>noq_R}_+XclQ0Lh`bJXhnnsa6yS9X7{g!;C8sYAf!eEB5w zBBmoI5o#Ag3@DkY{?J`C6(i8rxG5vN+#kRhM< zWKBR@?t_@G6*T$#$0`M?}Qs&dv>w{SDy92t?0+{@oY*Oi7(t zdQ>MLOX6V)afz&mtgKyMA6u>#R#`2rR_+b7Mt&MaNJHps-`CA(p(~OxsgPwAWA@jc zbfURrXO4!_YnuHt5VE&c%Jj$3RG!`DHHoCRsj%PZ(db79Q||rBF$4Z0sLMwRg8Ma=c}wb1Xp`nvKDYKnH%Pk9TC+n;`fMFG*?9Th&_Fg*7%w* zplY_MEZXZFwQNpz@c}>UcQKd6D9Zb&1RUHPdosmO%^vn)xcxDMZzJMY3)Q5)O!^0P zfsLA+$!FKQv%a$KePT2i;3B&SF@gkU20q>@ML!@ zO^CIx`c4`=Vb|{(zBBLrdM}gS{EhR_-X0ao0=yOg7l;2CMasCZgFU6RE}AjV@ks_q5qihmkF=vtAL}jk`1YaQ@;9z}ZtLQ%KFx|DIC=dN z$IQvIZ+e>^x7_NF+%(HXeK{ffM~OD zmZLrLFh8K*m!s5Hf*Tq@O{dA@TU9(l1ys<1({6Tbk@Z4evTkfho*Z=xie*NN%F?@5 zEw!$*BhN0^>)nDysI?XqzSxc5B~0S|9_pAcU-0tfdxuo(xFG$bs7T0yqUZ)o8?bI-sm>)<|7xD#fRAXb&#b$1ux5}Cv z2jNnmxI)5V_{jp!-#%6MpQ}7gm%G1@wDC6580R38JTxESIQF`e6zFY&n>#Z901NAP zMHC&D^#`|m_`^HtHY5GJBOl`DdLN>JXmY}XM|mEfI)u*R%xo4jWm4vK8h#1cn}*r4 z;><0GrxRR(oQiY~{R9=U&--k5&dcrTMh|G3z^bAB-tVl)*lgEG$gY3gbz6lF%qC#&gPW%*bWurci z45Z|=>kv~osqoAY$=r%X^b9omsG>L%P08QNzWZwpe|+LcWqw`sED?xXv*-4tZ0iL! zgV{T}1$DA^u_gtYmn7PxANh$UrS>X55f^;6@{KKv`;84F;Ey#@T4;WsGZaH4SmvXSA>L>{d%$ZckIKqeAtB4r<;tlsuOr`(!_i=$A#1cJ*Q~vs1KWxx(U-+W$fZP5=}>};oVTQn z1VqS%)xX<*<;kFAmP{&8LwAB$3fP*l(Nc;Np_%z^ri)(katPM<-}BoXHs*N;@1lBE zPtb&$a_^vJ>26D3pvVaL-9Et|&o`phIjkLA?!Mq4OUPzt!v%tkjQ&UtXPd1)g;9DM zbrZ-e)B#<{osYG}8${s+9(k&AcI{s^DKUKdR2;_2PN+5)en`l6>z;#DCMIr+&3??K z6$ds0Ub-sFFmF@>$!~<=eAqWWeq<&ClZ0Ax$tuG>I|3(rs-MPQo|6$(4tcy$Sc2DS zeBGYB`=IWA{j(-0tN&d`P~R{Xg{6ynY-5p%J&N=stu|(3&A|!FbgA%inDzFF`Gn&v z?B87ozTy$`_EknS`}A-B*Fpp=DiuaS_ZOR;!QNcaD5(N&7=j+Bwr^^?=|e_kLg_gI zUleGZtTV*g5>jM_?)NS10|FB`@N#}6X^eff*eykSBl+u6l~5Cfx zp}726PFM3LKxpXjyyg6n7Yv@vPDJ5(95IG}Bg(IogXCQBo<%k9{&>gv;lOR+4I6Js zk(pPARQkZ}S{q{fx>!}9lqC1{x7~!r^Y6b}&$-YqQ9_CO1`78weZAbSyto;%@?wT9ky@kpvrkon=D=T}h_{iXaE!DOQ&5R3VU6~l9xX#b zq}7vU0Kf2e#2*q0@15#ddm;ed5e~OcA7om~G8si7VY`Y{D1Q`=Wq=yGF)$gOg6bqj z9L$ft3&`7H0m-?=k`&y#!`IqQdM`! zH@A<#V{1FflG}O#m059{jQT`Jtd{j7d43H5Q<5vFg@l-iSz>ys@zDU#TO<>W$D90Y65gg{&07V-xbu!qG-TSo%w+Q1 zrS1%DyNNHs&VIS}ihV5{A!7+}rh;LE+!?RH?F55y8wi`ndbKhkvxRYEUFMeoG02UT zVZYjSh`3Y`Gs0ZUk&7_xI2KrV>|nu%V4z#Dmmn&wfpItU5`ovVo_b$hkVT-y{W-B4 zDMBv;$r1ce5mqoBhqTxSh<47^M=q+>;avSXr%eW^6-Z8H`whttw5o;J35N* z+d}1tVB5z9`0q1pZ6fy3DZ-utco5RXJV^?rh-deo_Zw8YzSX2oraUu3|DKn(r+sy^ zfqZiO4OV3KWngM0XV4~EQU&Uu54-qMh(Wp*%a`@Wk+$)6qsfF_Odj#jRmG!K zP!In!mU_{>pmB7OLfY&n!9O0ToghB-+$7zxAS{ler14~ch+EGim+c|z11?v~+al~^ z+&%qtFJ?vZDV3%EO`+X*&0}-q@6^Z0g{!cSgnY>CJ7;*)=XQF}91QrV%OGVhLaQB? zioeF2cKP06iCks*>aQr)l7Rs}BaPz+jZ%_FY$|X6#{=uRCO-_X^m~TH%oZ9YYsp_- zDz{N-^+N%72aoigifJ;xVh~fN@2-W97%V0 z0q=Rad%cq#$FD>tlO@0_(e2a|OD-5xYx$!SKzfaTlxsUo8#qMWF|fLK!3|^yw!)AC z;!T+Tb&igc!FX4PM2%5@B`<5z8f%ttzk5}P+BI9)MG0-}4lC6&g_E*zrVXUcl;VX< zZnMUdu)G|MouF#Cav0zPp#;Vgaxh-O5rRcdmf+=S3_*l1zkYo1wi;{V74SP)O1UZ# zWq=kVzuFRw)sGx=AxL{!CuZ~`=jTl>$cw7h47ad;V7P!P62$l2sgz-gDz~o~I(?4iQ>|rewP!b@ z2`GHN4N#exXS_o)O1o^1lT_$k??T%n49Id)P}Hf5cOOR>SsfutuiYV4 zEknEefQxuM>+4E*6CAamT5X46HDjMIGa2k+X2F|P{>$j)+4mYz=B>HOq5hn_EQW@H zl9N*^bZ5ETwQ%NnWanod?>{&g2%!m*Bw^<+KkPlxP7F}*k(@`#(uzvE7-08T@FJ>w z?nQvRSkPi`Bc%rI`4l@P6^u=P3L6cNYL1K`_Nz*O&k|}YQqx_d0bE%}%Jg%BKsY2IrpuGa>#bZ+8K4+)Aq#|q1U8yS~E^QnYGNE3|jr!#4zRRlZ z2xHG>j*Clj@_3bwOf|v5R%{zOTh^1$MWl86vhuE|g3QlSN=rRGxZS@_*`}X{#A2h; zuD53z_$Uin7Y=5Uv_$i?amru|i^dfehUpcJ{W^aJ_N7Z}*kbr9fP*CXO(?_-uO=Pe zCGzmm*IV?_$5TR=KB2eX_BvrCv8Wo{&g-yHGreUGVH}GW(9S&K2Wc7CMp}tJZ z=;FhZ9ujXUD1}~Q2F1UeN24aFuQET*7z=U=yNut7vE5OMK>lth zMA9}m@DBI#V|R9GVOU0@@dB0Pd!*+xpYY~iWedSQ=xQiOMmS}kk9~?F%Rw~XCs3S$ z`JQvyvf&53L#+i#d9#P$fW-pGiUMO23{j{_QQSd;4*L09*)?W|@CEHS^e{nc9bb@RM)W7NaO7_uG z$_0Z;0?3M6{?qs2;f$S6?ilyq8xL}pqK(2yH6njWuV3% zWjY{`#|vEhgN~lpbu|V(4=e_gMmpa8Svpm8fiZX7%;9f*7e8zRiX2U6%Jc_Xx^{`- z+^188>F2Ly$TBY-wM&jbb&ATj!~QKOqcOc@oI$t#=-8f`BV-tIMVJ^L{SWq@ckfr0 z@X)!#g89{dyz2HuwrNTb$t?l`|JF+b)IADTTxJW>0*jtKK?E|?&38$b+}kOd;b{fL_!d?MZbF@t%bh7%?)f(fJYPr3;XyvGFiyiAA@Qj$ z{(PZ`WPhg=Nb_nWy)+HAJNa=h8vZ5_23DOCeG#p{|TQ5=t;&dm`_crAT53 zDazL*5>UwiC7I`Uf2aM@lVqj$yDqpPuTc{}JlGGJBb;_tEdtZrp+Y>-FBlRwk0Rv7Ry5gi9p$nPGdevdO`hs6NF z)@6wSa*^+xm!mzzoepz#v@BZn0S&RD^aWD+7(p+KN3By~yk&p7D+zJv7uwjE&G~pF zh!Y`T%Sm8FM8S3+rzkEVq<`D;E6_c94t4vKR+AMf<;@VmsPXjaixX5q+&No-x*JN` zjE-f9lIr8M+QL(FC`guK3IG{@;~D#S%HrC>->ksr;r^Bx?Kycm4x=O9%Kr0VBDrs0 z%xy4@#plQdjSQq$Ex=_|A~@o{(5-7kf*kOe!ef7wDfF@{9jgYb+dG_`H#u&wr%sKo z4N8+`xA`hxv$G41#ZSGt9()ZP&d0@tLlZ%O zmFw4gDiSxmEGS3>3}{(`>XHG+KV{fK%%ewW8PA{v)5-M zu)w-wRDS<5g9TM&1s9TEoff=vjD4f^gBWqB@WE8QLHdHBeB@yJe8MTQ(DOHg<$|i@({PzUiQC*+v z>@6#sH~>+Kxyi|XHBo8QFh7qcd>ve+g4uc_g*)#{3)l&O!W?RP2j@vsFxIh7Es1aH z29!%DiviZyZ12>YAbYI$%PpU0gm%Z-0Q7+?)3J)SAf%tSLKI(900;7M`DXP=O!PK0 zG{<9FDvr|9IGXGBbc=&i8b#qE=GD+#%K?`sSH8UCNsG1DXikgz*fL(uMi$0X*T=_0 zcrNez^hpupS_R5Q5hAvAX?QTWnPAW}tPS-^qbLqVuF7V{bBYREV7*+{%!xY_8~v5>|mY1wkayQWjOAfj(`4UcSNFlX$=59^g2qQPDh? z-mxjuX{M^XsV{gvd?e_dtCiiM?>iuJ(Hbq?9}XQcSzk(nqmPREGOG4dJf{s2WZV>s z5=g9oiu=RsVPU%Ej`U3wz97<6$?6<^%r)OrlGA$Idc_;*y@o=j-*zPMCnnBB;r;0O zPrCYd)_PA5x(Br3pH-PDlTxF^seB7al6wjTIPI??w>3M%@M$%Kk2wv_%Qj6ecgf-x z&c=V+5b)tt3CEc7fTr?UB5)RpST44;r>UX1ZjflsP`tI=XdqCXHci1Auw$l9%=>n0|NOr6=D_ zUVSs}i3!emyM^>KmHM$9i|*3im5!IWp+LR%5t~=)K0sjAXgc-sWVeSu(%cRaDBq3? zqX{(%vDHuCppLHi2b2?D&S|>TOZRI+Locd=cqM8XnBHR0kqdC!m?W0(=4iz)Q871( z^iT21iCuJ9M3^SeB%2{un{D>Xc~pqj70n&&pyw|tI4)a_=tdYO()Y|hph z>}A0H@_;imo0i0V4FP@8TfICS0V)$m-4$bIzEcrW8ynS*@g8g;lnKk%7mbUPpR&3} zY-!Pwmr)*8sVT_!eR$J1x~)1szK9l%C?7++3GFA{8_Ko7!rla3j6r1-ozpQXsr3}( zMvg}zY(Dw76vs}uM-#Y^sAq!sQD?$0zaPDAhp|AvQ7a#cEz}Pe&wW?_%|a$Prm}@# zs|Witvv&-RZ(D3ueaqD2BlykUT9i4UM#nzjtG43p$)Z@+QaS1`N5io# zhj(Iwdm{*wVq|mlOq`zAh5PLu(|t}JcfKa*M+5b z5VsBOi%xFW{W2RHuTx^r=$+Y~HOgFH0WDk*a6-{3zTC0k+%3HXpp*W_WyI6ZLvE zN`U(Fju@3-ds{+x``y(@l8cU4q~W4?2nvqT2A}_ZkCHmYm{Qnk4Fp>&Fa{#;XcufK z*+Xt%b$9e>vD#x@Psg>H4QdrPr=mPIIn?Tt^9%OBq3v($vgcYTbD;~3wudIE+$Zi8CHhiN zXuCB8*o$6RDleIcLg}bEkoihQI&XlqhpwzkcVqBD*VuzD*qvELv=iCWh35E$8SX-& zKwK&ZoQ)pd<>V3@bAh{o6KZ$J-4WD8eX{&y`-WOhvQraC*M2!Hpah|y($dIrSv1W5 zvei*^XeEZ6zX!w5%<>4J6gYjepS4Q~4|`g_XslPklff4(m2trjz^9Z&_qf_ib0eKh z3WL`Y`N@fN{ca2D=H#`*KFNe>zf&?t>_Y;X-D`@<+30{LwgS*EXDZ16ab|R7!qD6w z!uD?{92?YW8Gfj-IAnk(p><%#`M7j!YKrU?C65~v=_O&-Jp&ogX* z>L64`<@5V|faRg@%0g9TwsEh7y0$SG%zq+1tyhYmsGG7wPmg8w14Q=~5{=aRQ8yOLoJPSiXAdta_ZPObWTDGP>H0NLxrxrp?_tZ(-_KuI+v6}~b{ zu+a1VzFwZs<7_XKiOlLH#T%bp(HMd>W25CO~DmRt|Hpjapf5hJ}0*MNAp@i>t#b`6+< z$0mLf!RL1n7)We{k?3z31Y}lex{dZVzrX(ji2cbhuuVWRW51ZcuB~Z(N!K_;!5m{V z*o<(>@l+VkYOPukNyN)oyEla|&kuU_u}eFLdU`8`mN$w~H$-!NxQA}c?a;01@}OXj z7MoG-{`DA>w--G$37cIpm1RQwr?~If#m`-FKyUzC=I1ATU_Cjtn8XmW@_BW=Yg(OD z?zd7#14R@*(nu_VW4#U(L$c3uEL z*|kOb_;5p+s5IX}$MlfM(YIfK_ax&-n~cc{WW8Rh(9O*hSwS!0MS~o$ZoKw+I7N&p z&qmaWaR}~jWLXbhuEG}fM5145YDD7o>t&74%Pd2$ey8;P7|L!JaWI zA`=M2FKg@+%tRif3dMjwJTnVqUwM}vJ)OQNTwHf702>nOvj`K>{)>;u6Tse8fHaekWR!4NjFZ8Y>;Ed+# zFAY;Kln6#@O^2IMb5s*!;u<|(%ypQ*kO#2heaBh{>Rco3;MvhK%UJOa%`HSDscQ8` z=ONB&Q7p(u3JeV?BSF|ph|v*t-kQq$mErqv^)b(LvlA_Cf(>dyEQJi3tD+buu7iYhaoWV&p z*B=#TrP>PA{nK!rxtsr#Kirykp#ce!k9~mq;Zr5=X@CsbG)fb7duxm#gTM<_{W6Q# zumZL4iBfGe%&~Y(A=@2hHVZ3Yxip<)O9aac>Ca~RtSo>BvqAGr9!l>(r~rLJ&1rG% zJ*j!#J|Lc@re^*fm02zy-xJznFehKu`G)bG11bn|z;D`~nx{2N2Jg+o{QQgw)@)Oy z-TrCtrw>l54cew{3EG2&T|j;bM+DR6i&PPPVl?Mxw35f2jFdXVuXUUOzoveZ=gpIA znU`>KG{OiQ>_*a|7qVOE_o%{EH18?NJ*+v#_U3z?$Qi+WM#`wMPnG6R9*j^E_d;Iw z%T15m%em85nXt;jceUZ}h^P7T*tVBJ1?#hZiFGGCb*rS%Vz1*OA2YADeB;<(MWBrd zGQOe;*&9O3iFwe=vG{IHwQHLiY#{%iBS>AT6@p}Jjmk&>FNdM~B*FAa7&Rrakmp`y~kH8DX!Sq3W_ z8$9XB~&N+@S_^?%g5vF)>T>C zQ}`b|0ihNSSXLgEZ}4V~Lx|#~c43f)G!}4z#9~I6uzV8(Lna}txrk%p6r=nhssneQ z0YWj~3_{0eWo`|2&$krV0FB@+P7g^z0TI9SBIXeu9)#2VK-%50GY+#pFu8O**dC-J zi~WHU2-_>|15nDGB}-ID`9d3qy49S4W?;Zi+jU=QIaclWICMhj2Gwfb)rzgVU8HFU z9M+%6!rV$7PO#rBQrdUH@~M&^0`0tokY0lL7>Wa_+0c?tovh<{Y9FN@pa?usw#f# zytU)WJao2dm2(;8?Qmr0XPd&E#O+t?aL5H*`prZQdR#DZA87+S zDl@J+yVa25pfW=XCSUi1Pu9yfkUB%U4b-mpfp%W!H*q?|e3@#hk)da|$s0j2j63}k zC}xTbhVq>$D|wbf79w>g#$6qXh%(QZKO{@J#+Pik&qnhDAdD1qtN_xB*KmBQsg9tl z3d?DNs!(xvGUy>FnbQ`qo(NEe((WqRr5$TP6+%S4`bY3%woLsh=z$(EdclgYbECe!`XDmFO^`vxCT zeEx`&t?Ml2dY>O~V1@QzYvj%(>eiW_)JlbE8d$moj>{;9E(|#Q{&E3_^JS53R0bN? zv!lEmk+ePb)&@?DVEfUz#GE|Mmz6R~@7bfjir3R;eP@b#bAw`&(R^0OM3r250+qqT z(yhVzNyFMEkrR_BEX@Q1S2*ZkC<#2Z4*)1RAwU2CqkfxGamLcYdQT9L#*TUGg-s>N zhiKT-vp|O9v7lX{+x`Xd&>`MBUtYqO>+)_N*r<8!&TE*<-)^jzda)v z7PKx;+tW7W!)XEKZ#u7hvs-vpJ8V0udO=1%RCab6e&vYh@#anskjZjc&veo zwX%qfP|;v(u(gd#YJrO}S&V0YOtN)c{NZXf-iFpP8eX~&sIorm*n5kn>8$Q}x2!%J zR=DzDZxPz`U7YY8#}&|HZNRd-b}wZ}JZjM@Js06`7_+sKro$!LfMTnSYcCIjDs-=uTb;y)S7pN3v%Z29k$ z$g4;Z9ubY?No8`$Qy@Hxj^ItjHP5LZ{{jT*f8;W0E z#=A>Aq0L5}Zpq@3Uk^K!*cKZ_yGuxE)*#S`w zf>%K6NLo-QBW;`c~8dmgS;XW zeLrkg&M}^B94G3l`0)N-%U7s#(uIgu31kS9@S4+5(UZklme7=vU|r3g^qY<8WvP7x zyE<|K@iQSBchx3#5VaH~#%|#J&BmRP@}kYV#_@!l)c5;8tg$RmYbfXX62^m<+~5mE z3)_0@-q}3v#FBU30=;k|}iMfx58uiU1>Qjsnf&eQW#G`h~-g>h4~;YAqbaViVId71XfpDljqH|F!| z;jGtt|Fdfo^tHP-ujP0>qjAh`3qOxH`BHA|%TS@<$+2}$rkD$NbRNKx>dAbLH0G?8 zXagrp+P2Rs&*vi>tiQW7Nl1~`?4_P2CZcR{>wG3b?75p6bV&JH9}#R#=b3vDVOqc& zqou=B-{Vf+Z6<&p+L*izolCs94`S4q@a(DLQ~#HQMY6F@aU&#Jbe!MeFY_=jnR>_mpU{;4x)*8a^tmL zYrhQC1&5CYqw_}ZB(~17zy``Iv|tm-jzG`Ego~}2*(N<@gb{e$* zZjNow@!iOxC(9eh)8RnKkLX)OqR7>wWEL{rg)RIh#-z4XZrn?ncgk)?Lky{7t@X*# z-RWu`F6^fQO(xqi_T&|tEE*U(=cLRN@}uunq?QJvuJ(y5TJrj#Q^akuoJWj^UK|K+VS!@Z7txSR1}VE%oB32C?XMM0~w(A!Y9&kvGCM=dJ*5 zLcyR}ey9LSbYQ$bad$gOih06Of&hNPj+nK2jF@z5_W-=fSJkj%Y8wx2*T=aw2<y4S~F&4Rgsct5N+}xCX2?Xm#D@}qa?4rLyl*eQ5rFE zRAF+#BA!8?#xqd_KC7L@%b&>q-%&6aO+v4^AS(E;^Lm4pH`BZ z>hb)OcKy|obpYKL=j3rfVsKxwOMD0@NDY7G7iptTxx=J>Bol}ze*$y8z&r_#DXA|lqPLkWEEFZHXr=qy4`JPru4ImBMW zDy(=sg0f8Lr^$QinF`(eNKYO|Y+;$>iYnJwPtUiuJ}HI_7N%G_7`CF!{vdB8Rz;2B z4x3^Vd)F2&kv&+u8hI6lT*h#%=XC^P)@$cjkTd|BzPJo4{_;$W&}Z#o^9auaat7Dt zjVEBb5-&s(L5k}0^BXoRMc}el_RnLckZC5Ozz@3{eG)9ft82qOMO}Q3IyNaQLP40% zsqAFPm{3pJ9!|NIzBMNYyy5Q0rHG*73iDJ*6XI|4ydXW&YlqpCd`X`gC;(@{qK71S z@iowwB&Dm2K#2=0!HW!R&WQSsn)T>xM@i%a99jpltlcq?FxVOp*MY10*nPIvo}m>| z7<;_@Zl@B-dl5h^x>l6=F=b3CBp1r#XbP}m0#jjUr&VzJ7Si{0F36BQaegLp1MIRU zr*5w5c7d>>SI>)10_#vpL;F%3D-8u+bYneVx}+xTYI`|hfiH5)pK0r8AYeazZ|Ar= zcvr48(*`%y9=Y18MA1n$)!w;cx|>9OA|$>3&WQjh(D<6D-^NzVlDW$QkBN)8lLg@g zMf`F(f(ikx9OY`rd$ED%PfB zDOJ`jrRwn+5x{S(I&8YQ*e5tSmA#w{j&c6k7u({ zesO)ib_bA4+tU8sLS@(x%v@P+73=h5QBcc7;@#r1^w6+lC@JDK!{d9pxuu>lSgMc{>rLMRA`}m6( zf#WaA7IpX^b>ZI~vXFc@8xI?s{_s&l3Oy_Fx4a8}7wgoxY4x~SZ4b_3-_$zh-oh$r z1&B&32?sCvxhr?_i@QPDoC~bJPrLNz8lnliTj4hb{vnptf|QH*irGwT?>chDy9Xcq zf_*cRZLQl(3}DyC$E_N}y&y~*S~wHe`5b#6>PY}*$-)J(XxlZaghrJ?d&q8LzpieD z{tY37b6}gE9=f}ANGzZi@gKtdZ>~OYJ}1hEgpl*G=lvrV|2plru#L(TZ|dk-%gta1 zvRGe*Jgz>~akq=ok?*rC2N*0~!h3rD@wr#3!0TM`lKO9gqSPQJS7E`Zan5@j$8fQq4Ri$otqknmKPOYg!TI|Azh36r7|&?zSGZvP z65F2=|DS6L3>a7-ehx!JW1|iU?{{47vJE2%*7g-5Wi-lw`;GOD8TWLjjApL`O!Nl4 z?ImtT5vR{&ZN*}dqm{?ugoCFMEhAkqnXApWb3Rnfe*vN8ok|q}FyQ*?X`0Xz=rvy3 zUo9FzDN?mD=c#H@MQi@x7?#6{ah0)SOBTlz=>ON3|DPA=6vw4sxk5_qj%29wa9yNt zYVoDXr$6P-r(X~~|8VAi1=(frJzrD9B2rzF|LcbWv6a`tQS}cQ#^S}bfOh$)>n?q< z^(b32`akaKuYg(tTy;1hhdM2U;DSPW{<+{>{8{YBQ)qY2 zE@n_!>6oJ+3gx6nV{ z;qOcM`vXf2xJ6j}#!GttdGo*KN&e@*1mt1y4BC9H$Y_3OE1ipYF>oGY?qHGm0#_XD z+4lE47`*|!6m#)&Zo9YF_4?Ax{lG5L->tI$qhJ5$oA~S0g=63t+GN_!j z5F$0&&Ty<_d%mn%(SGGzG132&+u&>=-yrM6K9g3Vxv5vW9Kfwr9{$s^T;y|jEzG#a zgs7S?k18377Yqo<_B{ID8Qs*FYibC3K$THQxS8x$8!$90^sF_A+=p=C7aq;f8)Uhz1>g z(OF5OUBx)mMvF5QZtj61wGM(_BG9p1NwDMU*HCrX9nNCe*!3G)*4Tvvq%I>RPTSi! zZhbzhvqi@^UKa}=oEPuMo_-uII&Gg@r$(3_&5h@|xeK~y39wo|`b3cO)@Vv!GHH+H zT?yJRE`8v#=h2$cpE%qVU#F7HAuu?em?<~Fpbo=G%;0A6d}I?2kLmsO>6Py-1y{TG z4(3#q8r=XuX7>sy?T;d7;Vx3hLPsND!k&GbWHT+Hb4bj!X587Xo_sT(jL!FHXPJ37 z^e-Fyx4r+z2mPxi1?c?NTFk$%#DuyNPr;mgM{GbbKU`a*amHZ%T2>wv%o1 zlk30o!WSCKGy%UvzyBxn0>?yJ!eg&P4qZ89dHdA|kx9RyJHFJfr3UTsfuK7C6~5K& zAb>4Ty4C!NgvTD_k40KsAKfm)8?_W`-enVpFNGm*B z&*lar=e`RCC4aEKI|!Vr>vpJlrcPcuTaHRC6%BXVQf!&8J$kfkynVjw)yiC`@~H?% zGa6s8CHZ*0CtR7{-_PUXv>@5S;YD#n2IG$6Zo_3D%>LxgsCd3ie4WE za4j43nj_oyi2q-a>fbKszo#V1xQ0&#E=kj{ox)$QF;BcYT0sRymEto*UwuLaAURnK z_3XM5~n3PeSioCkMq;ZDBEYZR_gA-hbpXw zP>vNe_GSR7=aGKv8b@~{pqUu7`BK$txkma)R6I;1SSnfqj5bzg6kDmk-h;evSYC~% zI!U}Q#h84n+-M+3SQ@hVHQIo5G>ey7M~Q6r*$dhHix7eI$40aF4fZ3lKlGZ75WT2r zsEf-SDs(hG-+gq|wP_vRIFi%76LBIHeOJoMK6?rr0HiI@REYCyrpQ^h9NNiYd#ih{ z{9wYK^_QkB9z&sPmbDc=`#p7Nw1GL@#smvY&5tBzk|j}=`2WihPzdn(sh#DfWK|h< z1f*!OH@QE3ZRs!AA5`-Y?`4>-H*NEO!n9DxMn4|c{lK*i5I=Oz36+cdOi>74WxCA) z^~ienP3=MhqZVK>#eZ82Z{I;hhN!f6(i!@gidQvNF_YtuOm6p?XEatW=9KCpRaihK zACmO=NQ@w>kT>?(d87AvMICZoUQi6w9`zY+^l1Q=oG+oE1F3qM!?jSg*OshRr~!vY zUNz8_jS^tfWH2;X25;Ubm=95qdtu$*UNF+UiK7^}FC?-Hosu7F?P(|wI^c((bijL| zDy8_2=j~4gu*Bk0|Jk<>Kx+Q2w$J{b)I2Z;cOaDwzRqDB_t^_Y1f1^h@ZVu{^%359 z=heR93DzEATlW7Na00U>VH;t=Z%$5=N=0Rl)zdGr$d|$kA_+cACtc~JH{;z>kF&@| zNS@xCmBn8brxVujDP}h5j4w7in2_K{AV2DSM*Dq45&OG2pDPaOs=2>tsW!da{Vblx z7_G$Dvax#0yeXjzx_htGE?5Iwpx-%hbZ%T)?a#phSNAwTAKLz??}$$ zxRQz(2xR<0oYoVaKulj7Or(q9#Hn0vdC`qPE;Uf{IXipAbx;TiaaDQFC`d3%$QJ~J ztarRq#zVi(Z$&75q$v-?E-w#ti^D}^d8dl3VW8$LP-w(TGKJ{mb4$4=g`tHOg)2a~ zYeE!s-sJIc>-sv9OnziJlKEnN;MWE=IjjUIJB!KLWZ7b=#a$^xgErRoCHD8)UKGyH zY%)6>8mF5LxOkowp;Pq3tYA8~gE=QmaW2F5cfH%D^QxW6&BJ=+C~JaYXB0&G*##d6 zX6=K{J+6LjNXul=ymugTd9ObfY|)Ad{&vI!r92(alise`E6lKMwYE^2TCKyf0lHQM z25mApb2X;n1Nc*VwmK;-BWJOmWAT-FiLc$`RjjN*Y==zL0jVM;H63>s!S6Tvdsg9* z;XG9`MMh_zZvewbJ(Qa#ILF2i``@6#->F$=Y?(+9!Y|{MgWbT-;^@Qz=-l@6 zw;OIt(O#O3zJ@3SLR3Dt*Rb0$2f6j-0I_ZjK(_3v(m9aGR$B`W&%PyP7i1qfIh=aG z2(Ux_*`4TqY}^H`{2HTifM;C$0x}!WAbf|%B@p?##s!=?XW7Kl7nK3S!1XA8zJEE5 zR_#2<8GD#l#3f*QM5WxKDc33dwzDaVd3~8=)a&IeQ1;Sm^qeF-mixDKW@xbp9O628 z;~{uRzNw7^8)a2FXed}X%NPnY!Yh6K>mBr$+Vxn9ypB>oZY_{X| zmdhKG1L4YD?zF~cT)8TCt2-v)8zEY%MB>}=&a9SPx?~7Mo8ugA>f}WBT%)|Fa8VZS$9DHE7?tAq^f} zrdfg@BqT(IusdPS$VArQ-Pkd_op)QNUWqW2TqQyeZR_s@@)6MtK zjkiAFRlD^dP1-G70&Ae_;!*(d+i)fnUBAbBBGBd_Jb;;u3m`qCPgW0XN72h@bjn3p zEelhjrH`WM)#0*94IQcr-Y=IqF((hJuGDOXAfqX^xGmG= z!MWAGNS3=}F>FB?$>0o(Bh)FxzH76JNlJ)tQ*ifJse+rMnivRBKM>L<|tHPq)^w6)l(&$wS^ugc9!iF zyLe6M>daLe8!to=DNoI69i;3cI4Te9BDwCv!8(^}@AdSSX(2+q0jaxUQtSy0X1V?T zUoFYAl@(5L2w=kwKMZTQ?)r=wrH6``9dCGp3{JXYd|WGO81~S-3sGhbY79UL5$WOX zaylW>i2m*-694@nc(G9&j9_~q-%i`&whQNCF)~pz&z>?UwtXwIzVDqwAkCiMk5V{U zi-uw^6+^0>sU&=O%rO;nTuP+R4y2|T3%zSN^sdatzJk+l`mYfI@70ohH&_|GvU^EpH zfkSO$8IyCzc%3i-B(T4{b1qo+02LOjeOZRRX0NRT`YMg@jQ{a2K<&v5IzO7n01>d? zS6Dp-2D92;3N$^f<$CNU8hW5)O>)}K+GB9qzg@c%FN+_-6a}b0lGL>44j9M{gnq~a zns}FG81)Ope&j=(E<->wqYLvXblVMCuBH6}J-M%WUi7DA49dEAco4y{aQE3&gRl#+ zP7TbIOg1RXc)tAkr>l2*GT(89C8dhzePeoQeLU`-(LQL-nUJmAY|vv1`n-<77h-CA zx<@2y^V_e9sXyRF0^%OSo^YElM%1Bk#6cpLKPr^fELq0?ag(yHDwRu_Bn%j^i~lS^ zkmEJl_X7TK2O$`4lY+ikiS~>0abFTeS1)lzt7vnJy~Ly9^jSB+lo6EuE*tG1{#}9p zJ@=K>TT%yo-kq9D=?GH9XC4I-DBC1@{En+G`YBvLFc=zK4|chlXL0>y(lE0>{X82j zluX<;zbTnKAUb}ZP!Q&H-8lHW|2Y|c#k99mau!%&I;wVO{cCggz;4MCWs^Zu)H2q2 zVrHw>cyP0;?>(l&yq6*=uikHR!WJzUUc-57SOq#e@h+sZB!dNB^h4oH?mIV%lTjV& zx9`491XJC$geDq|dx(GJciAEV#*IB?)hCvH_d4BjR?8}DHigo1??Sdjs`G5Jg?+zy z@-(O8e%?QSCJ*p8*WiVenq8JVKLU{QRHTcq}=!rUQ|9iks!c}f5B{xz&k;nF_1{@2|-sh9UISSC<^>gX!>pDl1?ER z&Su&cC3l=UU9j2|kfY62pFf4>9$*Y-aDm&O=?KrKH!LqT08HyRQ}dALDb$&SxSKK; z-|sK>ct8-sAc|c=uRAz%OsYUJj2#q|jwL`{4fdc|k{*{n@I3>4@lnx!hef?jwdIuq zvvz0~3e0D(g7_WDAgn<$VLv93f%5qpR3nvbHvKF?7bICDUUpQ2apyq}YR`Z~U`YJy z3)xPl5PcMG4ommrl~9vV(EPzmHu{qSL9d3rC>Z+r6+!PDuOtR3g=&P=Vv2B;+yIPI zoiu)azc(J2^7+`W8QYW7&KQc|sHb)^Q9j7lUU<}G8jufA8v;{^(cM=_$WW^{$2lU@ zx_7Jf-tJb5m7n5_51`|$go06NI?G-cM$nUWDo-K<{tn7}Muix|X8RVJxh5L1xKhMv zWUi`}+l$3UO7!jsPB+y&myk%&`}V@Pq# z>)~h_H~M2j15t)#6KAtt97iBXt1RO>Eb?o!A8uiJZ?p4N76=WvrRf$bej;w5?36A1 zVY+>qQCLO>9tn);DtYQ-)};{iN~U4dsm{THFfS^e@sFIDMeohd8aZn1De*b>Rf+r<_xrvA9iL+p14LDkeFTtL#(*tkbtxb&NN8cjg{U4!*;#ms908k)3q z{Vtn}Wv(|e8|HiR)1&J5`mz+`yX5FXjZ^M_YRINQI3TkORbRP=A?-NEW7(ohb{H$q zE=9eB3pjU*B1_OVWweM2*y2F<=lDX~!FW2isH9cbySy(jQNsX&>gZIMs~y(s&i=*Xg6twdGYk{^rt1kwPp$fy75`VqX;?);{6 z3&AaB-`WGV*HgN-qwtY~2kw*ZhpDmh)Ic*S>Q%ZZxIatA!usKr5r&o(QhB@Chl?X$BC0Ihv;vD*tZW$R zt-NRjzO)f|LCO`XsUKh0BDxJ{aqxWnRfgh-bDit-x-x+DjiK6@idf`~Sd4mj0sGnZ zk7rq=$mo!J=0FnnBNXs%>JFP(xnn$49Yd4=)scvDEXB(jd)>xv|40I~fDo8)6Ic;^ z*sxISh&Jb*lMNcwFw14{lbitbU972_@%`tA)K2SwnhQ3f;J7MZsMm|?pov<_Ht7bF z3!5)ASc%WDTVr$Gtuuykrzl2E0Je3n=fFuncM#3h$!HDWmJ z>9N+gy|PK1O*R8LqO3^mR0}50NI8(d9*8N$ZXQO$RA@ zKS|y_JjA#l;YK+1la{JB0o1JPs`n>M$pZxk*_P-&VNE|uRJnm4S?{|%=f-kb*`bwy9W=KW9?s7m5j=(1EmT#lNWZn%NKU>=>e-#H&cR|je$ zUE~+(T^7T(fM%4R6I_yHC&b(~2r7A!dHU7Fg821>i2^mgfOmQ1g1t-$Vvz~TaVLr>Z^?O?HS>TdgksU-M_he*_ z%~~(raFspd*9H{6*M-~g2P|^>CsYgMB3(hzink?FvjZ_O&~yq$;d4zni(@@0^O1|d zOKtX`ilWiXm)lC|#{;$NuR?y=v7Hjmw?wa37zvKCHC<>`rM-aGe-Vc{FT31j@Zxyk zShqQzB%;QywO`eJQEDk_yYq5fhJ*Zw^GW&n;iqGLwx@xc&^{jhqTrK9v9Vgt76SdR zK12(3HZKI!hak2oxR($9ueAVJ5xHSQPn{$MA%1eM25+I^GBxYtu_X++%CMEn;HNi` zD@#OSRoC=qWhY5oQJ24*V+N}gGY zFEu%Ty8>i#N+0c(-6J0t&|pe)s6A_2yblxRAItSw*}nC}&o3&~e!2~Ge+{h4y;KC< zu=-qV@EjWt2W|+5s4_r3_LpEi+=N-n&mIpM=Q#7Ou*MCKB*uO>QtPC$5_&Y7zD)*_ zgIx4-RlJ?O`YxyZW z+2%^wS8!J{!Ue#@f875g>a4?}YNK{PbcYCnbR!_8APqyvAl=-LlBlelxXfQMPdH*9Sb^4d%`BOt` zhie@gLCsVysyTPdZyZuuNCHK@1?Rd{Z`3R6rGFE_BJr6qJ@V3-2PPc4|G9G1(RA`H z5$CbI(W3i{bAnX#aRdfdV~`JCR-KgPVF^gVNncWJF^A{^@K_Za^c5DZx*rpq_>}B5 zb}M0-3LGT4i;e4PEIe^nAWiN5HK?7REW}RaK2LHs*`81eZ?gX)k5ocJaQlo*GgW$-cIUA2o8e+_R`IYgJX05I zdl1cfPF__pnwHK-nsaMuzEX)?Vmdh)Q-I(>iv(d1k1A4lj=+*eOcs&Z##l>#8a4Kl{UqA$j? zvgrE^i2R;@Y)xS^veXMbF+ck&zk|>=O#$D}$b0zIpC~`&c6W2`+;gQiU~4Mim!1vnH0F?;zXnoW1dhSgE+F64-S$ zBK>#Avu##BV|=lXFc5x35`SR%7@(IHlJWUoqy!sghdcQ%4-wEF3li~`c*_S41W5eb+$^|geIz9Nm6PtnuG>WyHPpt z<8p|v`T)i2dl>Kk4wGwDjK&d>DK@(N0p~L~c%a9(*ReR{sVyo7&%Pj{Ca6q9tQWBM zw-wEsF6l6M-tWz%IVo?DqfqEimEf0ZpimG$>f@D>FH&Y5tp|oS0VBVV2Y#pqmTj=C z&#SfG*LUxBEww-D_NH$wxRqBD8jW#Pd>1`v;`Ls1xj25!s3k-fy6J^akYT!}Y_2N< zu%V1npFb)0#b?k32U6A_R`88nsh=BdkFnSAaFaM61i-gg)$akx06{uN2t~-_K^pWH zSWtz8SSC&jt1f~7gbRGhxB0?aiTAt4BkO_p>mxv3v45XIcuhWyk?r$HGQ}SzPB*F8 z;64BCm1RNkuGnl_B;ZA3*z9c4EH{v`veof$y6yVZl%eq0(_xyxFbdbM+zE2pVr@U* zE&o`z-y2Q2kP}my#1JV>OXX7IL+yONg_P8a zkCg&Z8I!c8wHRI@)$DI`grq5vBc;e2LznGUO$`+9&E;OaN-mRsr>YoXZQy)xiBCcn z;7z?4Ijb$vv~m&IvUGoYi{Rg?_>&ZgX`8y;4846z$|3Rd=4JGnqN?uR2_C=GHsMOc zcSe~UcTVBpbc;e?kM&}+IqQI*su`}TR`4OS?K|p&gh6$5b#sVfah_D0lPk6vhww`B zF>kHBfmor!-vZeN6-y&wEc-``Y}chfyQSZUxVByK2^2o{^!NIY3l$|9T7VG_s*9}{yQs{ULDjs6nZog=hr~2?ofke*p4RfmZ z1>pz7W()^_>?sEM`|twy z`Gf1_q2t_otCCg!wYo=!+An3am)&HKzWFuNEu0>o-+=TwTYgcR z_5;IUS|(=X6JlK1awcde$zIHO2)=lESBvk&{r}d%gVE@pS8)$tD?>*;Fbp zzyO0re@V+kPAKQh?~Yx>dHiq*vXg7Ozxj<{WW-yUwlj*DW1Vm$v6w?IaF!}6`k=2# zv!97U5|8Q??vgub6N4Ml;l?*B9Pqk#1g!Ot;Qw8z!aVSAy{e zyh4xBrANUfXF2qY{AHyM3C(^rQ9Cl>DpL5;M?8LdG!+2NuAdW=R2_U%eylx9&hdo5 ze@ic+*$Z$j24<{q`X|l(0T2=>*s|%%6W`4!1sX@X$h&=mNWL?F@viSj%N5w{seDFN zhW7ud=&zVrKP1XgVwW2V#Wr^RC2kr`D4R$0`n?@2*{|Bk^su-JT*Hh8|MElk;(m=t zq1Y|;85WV|jHIf@(Q1i%d~NXF64Dbf1(AM^e>!I*3D*07;@pG+nw8BKz;-|Rt znRYg7!^I~%_W)^))54AS*XTv(iX)h^gXIq&J%=FxZx1crfp^x#JCECJsrG3Otnqu@ zMy`W1A@WfpHUI#0?J!2TLsfSGrkyF>?U7YBdLw?VPJWNodl9V3(ISeKxk1Eih$hT( zCytH1MJi(Q8F*`Om+D}oS8LZXtQOHplv4i?A+ho5)_>9dA-(Lw8Qiz&%Pqx{6cd`1 z3cT2)_tV6@s63(f0v^jNcmRqEqueEL>xcp^4|oFgtKBWaNa_W@YkrFd_wx6di zq!E2v;lrc8ur|gQX3ndpc53X~= zBPx^3;%NnX*>r-=zZ&3ZrS<90zn;+B%bfESjSGfT!0CtRYEzXJ#+{ha#Dx<#;GRfr zYH<*K=C*eP<=IS`0Ya@q(z9dHw(Io2*4|9`wOS4(-@+5Xj|Zor%2U4$!1bu0^KaPV z+7xgnOcAsp6%v!4p9VN+0=Nk9&2fOE_3EQIJ{18h?psbtB1i^k@@rsj0U!)idb&|3 zmLUcLBoU9xJv#BB@4a>O7z724$h(kl->|*q1(~Vby&J!-%U{X`Fat???ofAQOY0(z zH`z)65P2#xFdf098;*lq&x7NK%;sLCdY~Ub^XoiIQ)cg1ct#ZWZf>+s(7g5UXn^8} z=macb37R%|svJB6pI*}anofwmD1Rm3n@!pb(a z801colAxcAKFa1Vi;Qts?x#@~ZV@Xl>GDVxkkssVxx_7ChxPylDx)r^ugJq|eETIm zDoLp{yuX;Aj58UGa&~T&@_!^qQhu^p>KhxMN-QEdPU|TyHOD201Jh2=4tA-Q2uT4e z>8tTir;CBvj^|aF{w8xm(@jhavG!j^**uR@RWT#T&c9|IO#$)TL(SX#*1GLrF$9UdvJS@0dQqTws1VK09$mm)} zHX0K4q-?bYjSL{!0ES$gMNh&W3O*X%?ssCF(ww;g-5GjQDA^WIABYZ{q5OAYEO>T>l&Vzhm*FBP? z#BW%|G^~1jsGdC?A71QQjJ!&10s$s6Vxx>9Rh~3nYz{NGU($I=x)W}>jyBebi@b!? z70FN7Vx1)~qkJoi@1v{B=)k@4JLQ<)_|OoO^R9}YKWKUGHCVkvbaOOvynKh)r{+pf z`2*3_~|;Pcka1TVzM%cnOriZ z-#~e_)MOEt%&IK(L%SYXvZK{MnKW%OWblK4-Ab%!+XbIydW&C}u>{g^=mah;wzlb+ zPCau1vc%I-3bAz#FKAmz&@pg(AYJ$Rb(HG>U9`>MoazZvUN6_ONN|SPElROm?9l=) zkSxxq0M=|95vGj!FUX%?-x#n(ZJQ%@^^^;nLf!nqkn4~Z{{iKW3Wj@X1w@Xsl7@N* zne2K2Kn~pvI2T0V^r!)***`=V*3`fbt!!407IugnCom17q>0vMbXAu3#cg;90t7>e z_g0@kJ16SS`-m<8UM6IF8G;}tlXr#kItbv!s7AAcK0qvw( z{hmu89e=#o^tb!gY_tcyMaLwcSh?|x24+uYGoO@%KMgKl!2ymX_jz=@T2(^b-1wh{Ag z^?a&`u|$w{Z3@W4cbuqWuf02}b!jS|tu$fSKZ5p1zyfEfPzOxB$K7P5+lj~v)T8aR3|~sw1&k+B%@-+-HR0^ zd85_q7CUf3<9)yt1wYdiiKj1d(ii$VFyvA&Y5}#mUS+ww_E=_YeBoT2gPWTzSx5;; zLY@$j)}RG655M*nC0VUxAfK-`7|enTvWQcWo72pl|^EjKzIvO2x! z-!OVzng`BeuCSD)n>wBTZD0{xS~CR)+?{O~+Ldq3Fsc+U*BD$iiu7LhC??bMqLfIC z!TDp2WRw7LLn6;8SBJ@cBRMQR7vSAujz;Z^xGd|8IrbheucZx~h7$axokym5d)ICh z{qGjM5!4@>N!#&xCb^JTkZ4J@Q%4p31hBqhavEMjcXk1rO~&jO;NoJjXNOAwt9oYP zqX+K9KVprG<%Ml1#T=3euEr<(x#ig$%JA~cEK?T13kjq7CKO@c_atV*Y!Q&|;;=1CUGgE@Ege`G`#rnE|LTvGq zi}|x(AeZ?Y(n=~ghNU5;8p3G}GS7PGLmYUZj(%tQWna1B1^0of)W%WKnvv_WWZ#KA zSu|#7nft}=3v$T}Xrk0s9;|Daw=69*)X^5h%yINhf^eY=p!O{`LBmTTM zw6TTCIe|jx5)*@Ouy%$ePZ)m!(+Z-m|K9}8tLm5a;->sTv1|e9Y8@V0}4q0waeuL#A417sCnq^#SqQyg%jZav@KDN^(&@#ls)qm4h6j zA1%mzp2SI*0^dXV|8_tO2Krw9;P$-;lQN)XJ~}Su{pPS>QjbNOnb;D@W^L^^KJJNU zd_CNVkMmPjP4=WTmsk7OYxGoDNFm;!`Wo0YJm1gASGMADJbXzH>0Pk?6K}tqOJ*WB z(B#AqGJa3m`uX-dya7? zeuM_VGX`Tz^$uHU7(+6zL3T9zkmwIDPZw$93^DF@OkZwAaAl_mq`(U82(2xzG8Odf zrW}g_+acEUqlfAH-lF1zr749XGSEf=YJ*3b`&}OI_o?4_ZK@ATj~EKlKaoJ~}O^t1FY`DYC1pHq231&oFJjG*ime z7Uy`&G_SFtq38}KKYDl}xScq zU_TJfeAtzd`v&=G|8j~*9KD&qI%$H;46^ijAn2BInKnUl{aF5?@jD=60&)`9r#x1S4f^gx8f{>Q>SRoYV?pn!0v_V zA=%2OA-oNLm>#l{LGw|<^NSj--}qxNBs=hJV^WKkJ(-rg>26P6In!x+n3{r5dZpn@ z3;~0zeBnD%(YGN!KytSV>+uKA?xxHj6&exxZ%e<805xzwh1cKF{x9=12@eQATTUxnm)FC2x%Jz$b_&hf`N^x^a3tfq=JRqfJ}i zDeO3;T1#p~E|UG{eJ-Zvj$m2-bh1w|5OXwL3hnsyM<*98wI`-UBbaFxX*#5M6q=HH zG0Hzl?l)Kv4GoH-S>jxWl^wSa-xc%P>GStaH8DAl#%>`02(zI=oE?nF$HgLE6pYgu zYQFgzb^h>YUX}m4V)-56ZkSETX>RNZ8Xqqn@>;k%K1b%w(3=rWuyfCEeT$i81Pb-W z7EO);u8uUkllNg{iQRYz$%(4!LM@ba_pUKkpeL;T^9}|_`#aa01*gho7rskP>oEoU z=N1i-%GO)kBV^Z+-#jUU^3V;r?*lh2qB;KXkroX~EY}T3Z^2}WqQ-N5tFH%CdgLd| z4UDUS&?wEH%46dWc13-o%K=J8tqBI9mY}j6NMXRE8}c46LA)LJs?x z~=Jr;hJnsV}#vDIM-c*r_qX&)`tDukkb&=2nOO~7tomrE5_cL-E|MC8`*dLz zQu^rp^`hnAgO5`IXll9K!7w>bA7Xc8Q9Lv=*PPk<)S%&aZ@aFct)S-$EghyEiTe5T zEZ4_q&sS1!hk)^2OIy#uQ8=`|8asF6_I#(%;`-R>9PpkY!v5gw%~ENWUt3dxL7wMS zi$cv$892HKAoB7pNHpb(HYo1Nn^T4WAV=Jl3s8w=5YBFW_Bs>|8ClfNvRm(>k|R=D zjja-;?Yy6sUe^!7;W9Kn|Lf-#&qI_a<0TY*!($Ii<#YVr@H94A=*T}BodS=%D(<^t z6{qVb!K=xO&isNB>7T;Q=I+`FW<%sjDrBs!iOh0rP8Km+&Adlh!K6Yjb#uNi&lJI7 zZGo!#namONMs%#6r}zvW*zTS9>~tL6(LL&tk>nrq0y_olFLYPjro{JkRH`660v{UDwf{#&~RJ(;4dp7+Tb(Z@0tU&_ZLnrjYOc7G^> zD+UkrIKm1;6~>>RmN^oI z>yMe&pxJ($f)CB=c^0BezhZ2O{oEsnp3w_mClHS@>T2~^|{t6&GRt-L2MjVO! zQS68NVjcOEQ?*VdLE5Y>$;_Pnz4MX!V^$ffGv1|oWRXhvH^lqnb7D2J!-zbQBvKG4)qqA7Xs8kS>UU79*_Ol9?(9LEwU|l+(l}$OsbovFi?k0jY$w6#ax4-!zWtIl}Rt@ zug>UU6))kogZa2FbE&uwYt5Ao#WDm2?FyiKRE{}jF}j@VW0hq;tY0|L3FLKf==s+Z z7089HLhqGrH{)yfaP^E6w9&Z11kOn1PQhpppLO*f4Vm*RSWu_IC~CL7Rar6jAsDCi zh;`AgacWn@&K9@KpjU*^uLSa#rD5-%AXqPm_pOM8Jt<6AgqU7Bh)RbV)`oY0z%P)6 zYhaNuqJ86qs3{wtM`-mi<(fn~BFL0Z<#gYFYLiZbJnm=tX+w8vHBs4!u&!OfY%v`K zLJ`@yME2JkDJhHWC>Vzfjykj=4xpebLoPE*Y1NxBDPS;H%7Pk1k20ll9G;^ELyf>r zswJKyl#yUWFUF@Qwxjury_VFL=*n~bRSO`Y@)r#U^aFv2AJerQ4ZeVFnIe*pU~*-1 zAHV19VGuJ?KlpQUlL!6hs-SwmbtS*%PI_Z629p%{)Q{uL;Gz;5gTh&YSgzaT^CDr^ zM;+o1x28B@YtUs_!8)ipk$)e0rJ~++b;!QUXDY3T&@~df(H3pm^WZ(S`2lO^(_m|{ z()hIVpZ?X435bQGSpGNy`;Q%FB%&n}LEK}?RQaqs-Lbd0BqX8rl)P~%VMXv;8!CKB0L7M(9-8L@rqge>nBR~rT+i;ve$VO8siXtFMg~Xl zzt5LOQ*Aad;#fqa7~dHcy=1hVM38PKA55^1Dq?Gk*1`?1nkIon{@~gxf%c2n9drbJ zfd3R=Nc&(W@q{-Wq`Mi@Ia4TKp^X4b_k-Jg)Y)HsR25on^)*EFkwz=+wOSv+!XMKf zdvV_pS$RlR;%e64t&04AwWPwlX>igUETTJGk7sbnHGTt)SbeG$!ucIBJVXz%yZ?7EB zV<3f7m<63sf1!0}NSq8N)67orJ2|Sy+qVn8IEZGQy>DxH`b-Sw5^-ohyS%$pG?dvD zFu4t%L+!O2Jn%CUHgJ{q=fHt=9W;M=?8$ku*RJ;ZC7*v49$&2d?(F(x1A>RK$MIq= zQ4BJ>O+5R*ha93V!o%=v9BhB;_(SCqdjA--D*-9|BY8+^sxTe3$S8# zF4;vMy&8HQzOvC@@rLV%-1#pM)lq$7A~r>c!=@g5|ca3=4cI#ui@qOE7MPAc%{fX}6L z>uE*Ll^E7V62i93M4<-?qh3z*sVsMX{;F0{vQBTZN5Es;`Pw}epZC1A@OwAr;W*6; zSyw6t%En?lcO=+U`#a5h%}bZIn&Yf$*y)UZb^jrMff&TEiyztTR;sSDSelIKm7Sec z4o)@lahy#q+cz%zxV{`PzwV;?eVIt{)U*$t!{pH*ljOqgJt3>HlT1=|g|s}0*asjw zgho1BNFrQs^Xy=zd9Qv6u%3v&R;>hoXG&<)756EU*Bxa+;ZFt2j%t~!qrfYnTwd%3 zf%842qT=V94f%eZ#fFaF_nu$bpYryn^9C~zwM$E&9x=y;% zpvE#;0dkgGcKU?q4W-+kuc)&kdnHvWB=>8B={vr5%I}|Lj}4P_OLU$*EXFld8Uj}o zrZNn+qd0TcOiWmM{v=~LxDSUbb&-sZ2RZ}$Ve!#Ex*0k#{5}{^YEP|Ac zx=hYZ&APpLeRT1`NPwZh+6Qu_?PE4`{X(@-sP*Au!}s|Q)qgO7Wv)V?g3!2G^txOG z!fDfqyz_V6tOKdQdSheJW;TmN&u9a2?Z2<$r!T3zcJCVnt}nc&f4|Q#eNr(TcSXWB zO|FDo_g&Om`wB@2T8344;dq!*_JyRmjj4|Buc=nrKWB4y#9Rzzrd55Opq^Jr5$P=W zJRRaxuYY@?@e@Pcb!5aWN_e^#2|}*OWB&F zY=&~YDM&u0nmbAY;oF-EWD4aEt|M|n{T0>vcIQ{;DC^%)zzY*J!}C5GSm>NTrKiLF zHuOhVnz!Cfq-_%(he`jXDh+s8i_+2H?8u z(uaG8dd%zJ3adV{g_AikW4gzO^XfdehgQBd@b(gQ=AK??3lq+y!YjCHf!FpKuC>8WGGWos?*ka2F(``%>>=4y$ zLvdu*|6_cAPPjf{UJ#YyZK=wytQ+O9Glr5a$K4&D(z*}T*NRy7+M_cK>9iCA>u7Jv zf|`GM7K!$po|NgwDS#V)I8Y$tH@YRA<+>)0q*={R0Ly2vu^*AhU|k47oB!&#r#G(0 z`JJ;mA5X_eEk$GdFMql*R|3BrEwe@lJBruXCeD6s;U4?t*8lEruP5I%1eYQsI}}e# zJ}|CuLa9Eyr@Yt&A8@O(7S{bQf&={v3IUeu6+n>q5w$T@_!sLT0F3%4%<$@y#DIv5uPh2-ft?EPd}dBuhu@- znkD^-0#f&umdLhVd(bRa;8fM|3RC>fDCeuXl4-Sj@!sY#S{$_wp}^Qm9lx&63}(X{ zmCkKB!k-$vA3&mqwbvmW!7rZiX$5~pYGsMWhrcS+a$yq9mKqb@&!C$qJihH6YjZ+A zS!t~fpu0#JnMD1P?>kE>s?pwpDFw!CbYMyGWy)M5YvY01V87g+#9N0_A;)m#JDQHa z`b@`)+$j+xt^7u+i9RpgP{jMq(tE0unIks2m-a4OK{gb$<2g+QMO;bG8$B^d-JhrG&(T6Eo(kS~QC@u0dm|E<4dO^pg1~GN zaaVf*Hly5jeX>3$q1_SN0^i38tI11!{Y79dVkINiWH+r>F5p^^nF!oje;6)IwjXVm zbD`9&3)%?B@AE$PsILFz*>pte^1Ql;nRe{Jk;#pJs&uv!aJBvUiOGR&_oRJ9Kwts! zk`U(je1)@bQ2T9oy&h4(;~id4x!}ifNe?SeXqn8{NHJ7o0a^z3Hhv2v`1qD}%{OK( zuF)7ck-zg-E}BDsH{g()|Ir=jG0g7-n-Z;@cNSF}i_1mI#T94}#CscZ2zB|pjrES< zoG6B|*|4$bcUge-rSp5}@s~YuE7s+j75{&ifnNQw@%RJ(m7m3fm>+6kQR+v#N|#N_ zt>dDyc}4Ph7XMoRSz(F+W z(uvoaC9?_1ut$B|lk#Kvy{;BJ4GEXaRJZdJS^(Xs5L(z4fBq-x77kna$U5`lgvJUz z34g62LOPx+w28ywz~M8GRzA4*Q!JCL>-QI(A)(R`hzsY>gZF{(o+O;3jI8_(yszhE zV7du8-Mq{mE%jt;?-U?OSOXg#{Rba+cwviEz(GWbfgzYZU?XHsf%a&O*4X1KD6* z=8BY`C=^+uNJsWs#3fQ-H|$ZZ@ussjNjebQPZlqS_u2E&1CwJytu6DnPny7;d3{Oh z0;i^$zy**Gdbxzn)*1VBND*j81!xPFicymk%@kq*Mf$FnQr57xsIY8AmEaUQMEft$ z>PaN4(HLA}f3>lXC}HTcAB7h%db@u5JgUEn!Y@x7r-KZbL3;f#J&LS`c1(h?WN+k- z57z@5Q2Crp2H&)a=QQ-#c!buO?;7J(P4-6C>y)W6d-K*us`W8E46TN%S*_FBW;x#3?5QQjGJ^@_B(BC4_mG4=@xpqR~|6kA-)N* zV}Z~(k}9IlE_gmxYbd&ZI?VgqdPXiO2dQ++r#-jzI2^O@CG+HJI7i$%qs?poOwlFT z%<}BEYD&kCZF@*)*xv?IBt2X;+jLyg(5+^v$RjKNYwJPwY}?O)LH7EM6DI2{#b_&7 zwTE+JKeExidTzGze_pT{=(DpL1gaNn&m1P3)lOr{ft0V-1;g-~sVCG=2(60MId==< z)-3*qaznlO#&6WJ^0#HwB7^ zQTjsM&Lm8Vx2bcrX;1t1O`!q>+ZT+FkKNN#(={3O_7djG$5~ru&jKWQAY==)52n%_ zF?X=C%IUPSowql+AYNGund$MlY9@5{NMJo}W*N_Ukx8Y+;}U9IgHE~4OjsI`H{~1Y z-h^1vFAmH194zXkF}D3P{GF&MlL%Rea$9oLNA|yDTyn_LvhM^gif5f&j`!}1%z(1d z#CWzK+2;N7XY*Urx$n({qF-ZFG((4*xbWWIJ5`mzA!5bzSP8U#z#`OJRn9C1zS8|d z3yYn`qG*fhn&QIZ>A8!VLw&ppfiia1wqb+td-7lz)oA1M&y`ngP@qr)h2JSvM%E(w zm&=~o1P~%B2Sa4t^vYjq4IcZ!ZMNaL3@_1=aWGDj+)gCt5KWYi2l&SiOjiA9Gg>32 zc;YB1O5>-had+PbFr5p_RFO=14iU((`AI=C%c5%b3r1gS6c%@eEl@pP|KM}~4ihKm z_o5Gk*QjA{z5_e~{=z6I68BI3Lc;PZGtC;|dU zk-ZPmz@)~&)v}Y+u>tY3ECGWZQU%YoK|?wzB{~EaT3deAg+OEkZUkHLrk8uk89Yy- z-hYFNG>WB4B|U5`!*?0hrs|!y`^+8@_Pk$Tu!AegT{uF;Ao;--v=(sS$VHmjB3>MvH*LuvgKq zn+)%+;xA7tpif?*-!{Z!%x|)MWjrPoa9>Rw3{&og&2lf@fmUgYu=;k#+5_`m9f<|h zp_1dzhVeN@rfBSEc@Zl)8jq2R9j)40_}i$0rg~WZ`ccovW-+ayLwgxVx_t>8ry&ASkVca z4Uf_h;hs9}x}}TFsFwx$m_!d2r=p^| zlhMOErNgZAp#{vlx^V9A2+wcGA*?-Qw9b zb5T>k4u9LDm5R8|muN#WHsbcT3d9@Yez&Y1@LpWkv%)%0UN^g)Ya~>U{*(yd^?QxL zLknBWzo}w?ZS1{I+9ujFc!7x>PRWIscDSULz&xgm76y6%Q9BVrX(g-=*D!%gS)_a0 z+ZgkA`sRBp6E%7QXZnB0?u`3v2h^)lg>on_!^ebIZSp!N9Tr3yTvHSdSM3+fZPrIF zS%b);GWiL2-3CwiiP9SQ+9W;^^S-hpv=0F-<2RPwPMir|@2x~6{ym4iTbBuU53%F` z_xiGXPiVfn6MZxG7En7pALkG$F4ay2(DS2xJ%;~I)K8?q;U4!j3A(sm7=9zQyg0M3#ZZ8B`du`KzN&m|OL0(`LeK(#^OBVw4fr-h`^slhge-9HWTIKu1;2s zI7ZF*WwKycmPTZ2Z+nq{Z0x%5&E_V5H3J#AMM6L6!zsp+jj@X=KpBg*$o`0?jR7u{dR?eqWPsVJ?4Yk5d7@A#(qFJJvrRDRr^xID-0iO`xgoC(K>%p{27=Dp*I9M!L(W}8ya z$ga##JU{kTsn_Wd=3iPwfPI1FWCyD<(ds@C#8DSI;$1Bk@%NqdOK6vg*8N|_1rdpY zU*L()1i_5M$ZOP`b((A8&iVKQhK}((_E=i|SCza`ne-u~sy*8&tJ&D1+Fh37POeuw zxC#X)-OZEGKR#1=xsz5$O^(Pr++7b`kLXG@&Co9`2luR6{p$a(4`&^OigexJCn`{7 zJ{=WnAEgVZD%^Q5cxdC!UjAyWsV&;rUvj=~$j^|gb39%)@i82AQi8%#xvCN$7Qw4| zz`o)WDv#ziEsYZk_}aUR;)8mpJE#tq_m6pK6OMq#{l89pSRrvf+{YdXkwQ4>Byjs# z_LBb=qg_8M2RMQo@6>)e@t1u?fmmPG=%Il8xry` zHGNknnrMbf5%vD{g4jpJUaEzi%748$KkC(4;Z*D{8aoV{J(;btHNb7RE%y>V!$EZr z^gA5$^lWP|@wc?=$vzWx33DuCVUe0DpCCMiPq_>!U0gtKSzlHWt@sP#u2!b4c70JB zE2OYECi$*yy)y?yHx2iY@&#eUBnWbXdyf!ThQ77m&@Cst&!xLDUt4RRYBH1MQA-(x z(%a0JBn{hPe7wu2>y1*QEHD~nQ#?Af_k{y9*QlKg5Cz5F5jsKF&62RsVT2`X+x+VD zwW#SwA(JxGkwr{U=i>AIDDu->QQ$k-Sy4!D2K8G{JMDyL<{r$`*?FaMUe63Vy|)PX zMI?eARsH;UW^igTzVzc)_Mw=z8g{#*H`x!YjyS(zeQGWv22GY8X`Q7wducA3I_h|% z|7!BjY*RngWtJGYfO&~lfi>^(N;4}36;YFQZB}=PAGmjIh6)HvgM|{#)-@jBoBGwx*oC+5OfIxenK!j2zAWzzU`LA1m^|_3wxtEC-FW_hJ(3Q-?=T zV%XF*(%Tu^Td6y0dy|7R#dDoF3QZ#^S#hIuZTRqME|=RJ4vOS|9sv*5CI9xW5t`;3DV*PA zye;1_NjXa>q5MIMG_+L#@Nr~%uK_B8kQ6#S3O3VRD8mrj5=I~atYp=K(X7wV0M|?> zdH{AGUagz3#fRjqpX*}a+8!!UI=`)^2_VYzhS{w98y;&jA8}8&M&5%Z3%W+pc}e3P|#Rn47=%GBl&%Se^j)I3`<)X)td0P76^-BO{xxjWy%L(lVur7{uXOpO6&L65J@c zM>#VbUn#j-P}cp`add4t@CMmG{PIzD9KCOzhxV3>vWX~m(?ZITQZh_0emHK`lI#~p zenqrAJ@=H!mI8i^JScuC@P&T#-&hYXYwwliazWJ;@Q8vBhNL<>gORiWZXrGSlrmV? z2BpgMwaflYu8;2njcVuq;%PgDRc1`MiWnUFE-0G@Q3+{cSEt7VVV_y^<6-p01k1N@ zSXY6vni%LklvQFEl(#VZVmHhi#9v0(`~6dnr@FoTo8BJ_m==PJbP zUFKLO-OGcKvtp^W3inTSiOiafhaJM_<8&K|9!2mcz}5oiqxu;Biibb9=x8=b(BOp1 zw@T*uaF-{lK^cKH;Z!}tIGVk@(%HdXs zSx)*Oj;hV4MzD*d)->w80J-V zvYK@L`h>zqBmvYq)jz4*!-=Dq3qg$1?^pHe$p3ikS?^}hWkC5tbflpB<@qN)O}!7U zg#MYW*-xp>3jEd*%{@!?D}o+JMIyrWfN@2$?0Ti;slc@D{>e`)uw=XS0p&c3OwF)q zbp7tt4}{&9YupCW3CxF{SI2fvQr-8UiP_>g*Ij%D;=P%(r(`Aw?xe-*YGHa&-{TC^ z@VLT4uiWxYW;XzTP^weYHbn#`(nFz`p)%p`g{6Q6ewS}ymh($QbmF)S(|kukW`#df zP9%Y(IWI<3%Y3PF;O#Tcxi!8@7kpnIdA)O{vl}NCXG3oNO7EVl%Ve2Nx-%L_4V5zc zBjo1yZKu`El!H`fUOVbbyd|(I_WXJ=oxoLNZB>*oe)GhC)R#m6x(398ZNFkToP-z* zN!<~i^)4Krz)6sBsVlp?>>79c9RFSIy>kO-r@qr4`L7fTJMyMvE*_oC1qrufr?&QI zJaQ#?Q^8aby^o*0&wGPV23`zm3@~bH7=CNj8^u|Uw3xwt8VNY!#b8jplgo9F8TVc^ zyS3^!p@WK`=4&c%YG5J;9SAaIG`Wc$Mjwf5e*p~fRzOSpF1zy6$=*zOlaxjU+^3%@ zv2`1w|1c@Ar>!k$4oO4*4{dK5RaM)y4Fl3CEl3H{CDNO2B&E9qq`Ra$BsSgM4bmOb z-JR0i-QV(x`?}xjecmyiKc9aXjvZ_5bIvt;9!L13eqV=H43)E~nt>I;K63zb2ARBL z=QxJVZCe;ik*rxm316tHhu1oV6ivvXHyEhowz$_EhGy&M-X9g%#CzDr8!EtJP7G)S zKsBcEHp;HLrw&%nzrARmN{B|ts_=_>!JK0Xk`UnO5HEZyvhy^H4b;YwH{3qE!A*C!kyLd-ftE&0TX?&_Q zo?5U=9AMa`-&bz(nzWs^d?1@PzH2E7KOiX!91(36?l-=ze5$;^hruKtIy`JG2sGml z*R$JVsPzzDlh6R~@9(gYh>5YPXr-R$us#Ri+uw_zzDoB#RTD=`Nv76d_;lPoevt8U z85TpM@5rpnBgNu5CdbO*u)ty?^zzOZED=HC@pWwcHFvdda2l8|D1X^#o-l)-1C6vM zCmTXMLdy#x2w1p^J}K1z7r8dmt5q7DOGde_&psaW3%-HSEQzSZKkc-E)S8F#*CgD% z8;nQb-zHz9P?5J|o?I00+JQ)c$xIP zMq^AiQ3i^+>L|_<+6ZD}u~07GsM~FvUZwY{SMO0dwb|a0TCARjH%Xs){DX)0ItY<2 zg)amnc=T(T7kKztRg}64=VO>@=VtouSkHW(gZoddu?qYBO_r)S8+}X}J!|C2Y=^Xx zsk&+=SSxSv8gz!kWpWP|nY^%I(P48m&e-Bj?TaX^@g2kK7mu0n=@r1Fku5wqKOzn! zRFSN~Da4E1x7g304;+J(`Xxr6(o`Kv^Dptw-Gx97r+mdADt>jooDNiKx%wV<#j?B6 zyfsa%jEyWv*uyV0)fGT%zdl#QLh#;nC|wik!<3ddnIDp5AQwy21(Fsg6cD93uaCUC zcX>8_OJ=8uH3!7))N3-|`4_%5!zwAtqz6-YXepPuVA>Br0f{S9A0$zw zGSL86>*;5C;IfA@R^jyhaf+$Uri?i>%`h)^f}=hin-1%Bh90L3%-t{17IGHYcC(?R zjh^9a+|dFd5&bl^+DwA$H11|GbTW~+&m&co;RSZnhjB`Vpatq=#(twE%so}kD(r$h zN5s$ru8B24+O9~gWMhN!INSLZ-=_9(RIhvOruSM9M_1@?dJFGuaURcMe<>HKlbHhb z&H1Ys$koY_E6J%3C22N9OQ~?XuiW3!dE@1TKbxIdDtN9y5JDzGvI#BW>=n7P-e0~V zh~djw(AQF3hZ?FBz^IrHHD z1raZC$Jq8E`r77`mX`eMaGD!VPah96t$Dp@U^<}%og?VgSgjxL707gc`M`T&HPvWq zA;8_@ry)%#cdb*oO2YAjc5jv%kf|^6$nbPO#9>z%U;juS>d7phYdWU>HiZ5ww{By2 zD+8KPi-&UG!Dr*@@+3=+7ER&s_WS0lL8(M;wFI%H?Bru^@r2V$G97!5eSyx+>=2=(Bn4_UyHxmq79`dDqYb=KGAXUg6Nhi>yE){^k~giN8r z^0$K@#maq;J%=+>{KMLOAp&3BqrDOn+u9Dop+Gb$FzOh$**uNhbbY8*6Klq}{Y}#3uRq}kqvgzEJ`Ld-}E(Z=jhBC5qNt;Lhj%)m+V6b-KjUG)|QzS(QurlBOqS#t7?7Jj~O=KQiP3xaI2OW;7n0pD;zEAPXm`zjrKG( z$+KzLLs0d0+W^vt%N*44cxF>O+O^VW{J8QIP6;w-#X@^HZj~}+q$1Te`WBb76c;wS z08?!=Ei(<&#KpnRPoZ0&O0phi2a;sSN~OeCB4z?8QHr>Rd{dW>&N*9HZ2UkH&9fw`g7biGGR9qn)>%O#in&?!2LD# zerJ-NvleZIg)DfkvqT>zSQy+qe8aAXQ8eGk1pq=sUt6k)07D*i_*S2NzNn+M_?pffrl`l>S{%Gz4(6WIv>6A`Oh%~GwFwYq_PxDt7k1}RrE2^ z^$`@}y=u?No#qOUr{HGgKI{-Uh@bkiDG~hVu4ld^?T2r1WpMav@A(w(%-!1+i;oV>6ID)+7Abp;TZd+gGaOJflcN^=VDK?umC-nAz;_LV zsdIH&sM4NCneFJi@G9c;zi5*<`$r#b^c5`7*irvP8_gRECK6a6qeQSct1& zckkBMW7{TNrxA+p=^V-7`Isvj*~y=5^|nIaB2R=(X&t5xTeoF7Ze)Y-B1mxxfOBTA zc@;R}KuZ32qvgY95o7|PGY2&>n~r@PC(aq#PAo?$lM+FFqJtRE3~pBe%$|2S)6K86 z--a&;YpPo^)P_A5<9V*>$5 z&=+KvVC9ldaz+WiQ;aO1FQw-jY3bx?#Uhp(o96_NYMXJa8q=$i{O2ywC6;b!?fUliD=~jEBTOaA zf;3-5dnsaeHVaEVR2<0bSGz$F)kqx3Yw-3%Sd6F^=9Uj`VJl8C0Vlkqi=WYGq$|~( zE;Zd2FdEM;6HC?+%xCHp1x!=flZVTuY=B7S(Rm&v*?rHSeS|Pajck&Z86mgJcOq6ezeOzWlVHiW- zFiE3Dx?;TvdTkI7+D0l(T{6!lcmY?{V1N5a6Av1wJy_cl*SS2n!Q=rp@y0^u$qyJ;t^ zRZop5i6RXlaq))q!EcYNiUd=jzaubcMrOa6{SpIUj6=Lv%#f}=3ftw{vx?TYqE~(U$h9HBw$RWN0d_ci<=&=*}q z`;-qRQP70Fq4=F(@N0@7UjZ>8YgvJxW38UAWx0;Q*b#{4s}0c~4L*2W`T2B`)?Ci& zxOeYEM?sZ1ksurhR|y58<@ZSQKFJ|Dg&~`md%jx}w$tnufiayflg{o9V{S;+y8(*Y zlNLIQZ3Ole&Sl4bP;LN2-TN|(O+>e{41EC7zCgIpR%Xw6`|{I5)4?jl!G6ZZRtT==saVPeFwG4N$-+;bBYz-!hIX>!_r|*sF*?A4j1SLJUCdeDU*uOGe?$Wk5nB>+_ zA|I=2YgrpIM!3`s^y$Z#T)$V^Y_)y_dF-?n66Tl?er|=I9!eQe41nS1BUHA^1V$hR zs|#HaRd|#f#|uNqRdM)Cu|QP1Z-f&Q2XlnGnR*6Z5K&YmVmsxqNR#J)GqLGhl z-DB6z6I3$X$NMmnI~i!wY#rwE_^XTtb!JCUr!N1T{voLcppE*f&iy0TWO>C$Vz_ve z$<;xLbD}J~Kz;&QsKy15H9SO^)=Z0qoaX zwfthS$8Q#219@;JCdz4>{)?og1y4e>4e znkW}PaZ)}Oxp0`optwhiZuf&JZMSUN__p@RYD=z#-Aj&p#}U(y4h(yOaT?r~Z}%ka z#}hr@$#r|>W2EbK)qBd!T01K2;`iJNjv#Jf;}|8Z%WFb8dq*Zt7H>Xfe75*=bX+^x z@l)@o>hET3xH!m7chE*fi1pg9HoFL1 zXmlO0(?)ovQF{>Lmqq89leEf(5O)hwGN--~^2pw2hp3r~FVUUwxKt!o#V!!f+P7~) zC=qlgw1vwJahw^(KGa!#zG?I)P>NrK5LC2UnLeawS=igM;{(yiOUfR;^oI&sTwLP) zkZwV3fjOKD&4O=N2(+RT5SuEV8G6%+=72ci%f&w2sB&TkfvFxRZdr>$3&GxmoFKv3 z?V5;cRuKGq90jE#@^zWt3ViJGY+~&%ZFZ;4^2(wGw00tSUG)G^o0ke?1pvOvV*SzA zPPa>3ZU{V&vm4|HWNrQfO8H;;kTZ6fHu^k%g*pgwc=0svNMaw<#0ovus>__an!7)x zv~CnZmyZx(n?$vhnw?k=4RAezl7baWEF7h7>0YT+v0G_>3Y0nYiaGM~weSZvy&eu^ zqG}f=2R*EGVt@JNLAA@I+YG`}?_RZQ!fZAgKfYXkX*eu()}8+03uXLKzn8VJnEaB< zLek=zh`ZUy4pi$JvOluTOmcBvqmlH)4|Nju zEnE?D_GzEK5!e?Wt#f1eoSv6kXq*dDY_dS>c&xytytc@$XtR%C2&}Dj&8D*nu7*~T z>k8iM%t?0OKWb!NwbAM^d#}`U_;q;0YSF~E@u5jQ9}_$Z)`3e1k#2lsNY#SmmJk!G z!s$jrb!??p$O9^0QVAJqdSl~boPQR;jK99U=|EJa{oEpoQuMhHBUe1qr`B>sDq9SX zSf<3x_B%V4Zc9sMmaE0)NOT}Ri@7-7$FDiAH^<}bM~h9fuTQq(pb#+0v)C*aF-C+o z`yvZ%d|{!Tq`?^qKsY6k&w8_&@;jW`T^hHe|9c+J3;UJ;yWn#f-PPW5r@gVqXc~IT zAsjLRP0EpM(txiWWX6}g+Y0I;2;%VDmFx#bZP%Zkxl@`Dw&J6boXVzJdJlCj>BBxc8fwDol*XR zA44X`o!C=9f9~1rIJZV7n)iOsR=xzfpGqQ>W0P`1SnJZug!l0N1IRB_5K~?1FXD# zh{C~G-zV}uNq>rZpUGkKdCMtDjO$0nef#;{&i?qBtmCOE zhbe13r+n}eyBL8=g^A>Do^|!+U+jmskJ!e`W>kiKa$al6w!NUF7L^=J-IhC*}2@fe?Ih95=x~2l(gFeg+s|nLclA_56p7 z^Y3?%#872SC={=?dfcQ%q^WfSj@o#0CEGMM{jaz3+QBHgm^vg7izJ!mz^RY`T_Wu-w{_~DZ zVQ(wM&77|dA0=_c-1~UL(2t-1Hk>JGJV%sE+U z&2`sM8IOTnhCd~P`$J@9G!Yy|^aI*PIVN?{gRS|Cy($Sa^tkn{PFEFE@w2JFNrrc7 z5TlZiLHHkC5fKBfpL`7}Z7BZ{>mQ_g{P1#K0==(oNx!}M*DHYBNwMG=mm1f_!lb^n zZr!Btx(Q>Lq5gTG-i%7#0B)aLb5}pL^3tt6V0jWd?j@&v!haK9rl>$zXVHI?3&bJ5 zJIv)ML>d%5`U%!tZMx_1gl)*9hv9Ijp;z*$2nCe!@h@de@mXU1w=!=2R>sXJyTJeJ z-u`b!!1M~JEzdTIxYI0DdhHdqC}tc-cnRw#S($k6+;IBaOXjoyZ9W!9 z`^(0hG}b-<;2}LfL)Un9wMwna^)CVZBP~gQOjc<2ZhidUG^zi?4f&bFK!8ZGnvIcc z6~%Os95?UDVz}A#K095_KWfk@G&TQfgu<|AVQ$8~z9Hsq&c~uwm^@mn)3S=ZITZ)4 zgK`I`)SIP^8)J;~k$-(Z|7(DBTK_fD$nrk~U;jnH`kx#A<6~|!h`XojVXy3{oxStU zzr`wKZvC`-$`}t65F1R~SpemiIZBuFmk(!Tzq7IS^~r2`;ZHAEg8bLv{}TC44V{&+ zg!Qi%{_mp)u1bP6wk87q1e7io@{PQf%PSok@Z=L+}L$JZ2KI zARnK>9lYNj`S&A=3p~5yB0uXv|C{Umz6qTKD8Qt3$Z!B_4hRUApFdRJ5O?IUq6Pko z0nfSscpOo;*24aEsQ>Q+JVO*0>kV&2Cgz&}_-d&Q2c~`(oLl|leffV2DiYWh1O$cV zQ#hdYe;)l0DDB@w#^s;-QT`W#`s1^wYBYdo;kinI2bJ=DJ&@$Bc)};o{9m@MJrjTm z2gL-k|1VVW&oAz#B>~J8`o{!K!ufF~RZ5uu9|SNlj^1mI0Lpt^SZrmtzfY2m3jB;H zICfw``~mI!`yk=J@0N%PU{8lzKP&rR3j-1mhFH~xftVOGr;iIjQZIBihKdh+bL;D} zV(a;@ukoS;OvdhamuANQtrn%XK~0R0Z*Eh8>x6nyFV~)2)!Qsz-Bo7mM~p%M!tVEd z3wZJ;xVx?`)PJii8rJV!2=Pd=$>iDcz3kh_cYhk^^d=}Z%&uHE=PEVA?OIxPPee2|%BWPWUQmcA%6=K48JW zW#9%vkl$mcC)yW!9YL4MkDNn1XWtnAc544w(EHQ-eZ&3%MQAjfChc^*lqW|f1_(r# zgB=h^R-oh9hx%S(WQF)9gTD#8|H|N(lz-X55^hk6i{mjH4&Ur?)Qvv^wLXeQdTmn?GIjI{`>98~s)q3)UDB%29=K z>86qaA@!dT!QF)(waAyd(`EzAdLH6$wIjlf3dXY2#yUTO%9lmWMjuphEM|_n%-eWDxF~WFWFrMETRwys?X3 z{P$TxNqUcB+e;--F)5X5FJ_tpoPfF5k~m`*JKOB@sq;6TfoLpd3&Md%7ovZN&_}@= zh?3;?Skeg~9sqQfHJIJb41Mb~?3;&xCc|xL8-rH}*`k>zA)Aqd05y0y^$Fe&sMv*P zS;1hiDQ~M?7=@dPyg`wRky5E@DuZI9jcljNwpxT_3g66Min~#?d8G7vFl`52=C3p6&imtLUbU=!TGyJsK-% zzj%YgKq2kLR=H2bMka~l8q#DSK(7vnH1L&!>w>e(~fQfl7ouy%U z@qx3tEy3m(FGT1L!eW~80>@6~XJwJPUp?)V8(+3&r(ZSLT>Xmb4wY$In2K&<+TAU3 z(Okubp{aX`K36hjc-M0Q$2LBE5x5&!jz<0|JsNTLRusgN)iTMYG9HYcI-DevUPs4z z>s(9c%1BV{#DMoH{6stcIO5a9R?L=DSxQ!6hn`%xU*SiEBsbb?8d*@3_P858vx~GTaw2j=|rX z?zvC@t{2i16%o&OUGBdR@U;*2?syd?xkQXO*m@>3(HI>gg*gBQrYeD!c`OwjW7ow zs-286ncN+*(7|W@g5?Wl7~H%2?QZaklHEN#X3EG%3LbM$PC`X93rFHnK_fcVL8QV# z{4Ymy0@-3=h|>As-hsb6v_GJJ=Cr5WT~JHJP*vWDAmL76oH>)e@7+NJ!R9#QKnmb6 zs0%7D-kq>DS|5j+;KCA0%b!94J_Xtb>aMsthl*((pWgFPyh$aLygqe4co&`Q^K!}F zRvrp&xqJ#$B!W!fT{K13TiGY$mtn5z{X;{Sn>F9k<>7%87(#_E3~GG^a`Joe>f0%p z;@YbBL6Xi~^KXRWI+r9<|scn;OVS>cN<| z9xTu|Zrx}qvGaJQQlp5VS{<)nZ%&)t?@X{N5Dvmr<5Aka2RWR)BW!X{m&lh9&Fy-* zw9%h5k*ieQ@ z(1f!|yMiZE9td%9#-M!t(3OpAwK^`xbd7@RzB`cZ)fR3CXK$ZBD!$e!_sNDRBu`v$ zm$`QAZlaS?a2D?JWIEaYsv_M(Re7+#n>WnXAPd0qknb>-+glq{vA@`3UU1ohJ!&{M zW39V{{m>g6!z&IqpJ1r~26wv&I zJ4l3*act0On>y(%iJEqzE1L*>H}oWCe>v{bw#A(E? z(<&;f-6E${n#PmpsvPF5I_A;`l0OdJ;KIeF&U7~jiOlNBAhHV`RTj74DN~SBkTtQ3 z%@TFrNu0SUPZdqhd-URkRa zFpr;1wg1X?|NTc(o@8j|<=PGFoyXa2+A-fZ61}9RI;+WoNWjMDC-7`$^>wbv!@y9+k=iR#vS2ovyH;imglg)8UwZFQY zA;S!-i{K)D^jD%>Ue>sOK;!}-=Vs7#w|+>#!lyZ{Lm}kvrC!s;g@dqJCPwmzn1oh^ z*Py#NN^B8|5;;@VIF%`gL7$E;4CA+!*`JLtqnhVx{GnSfQ;8AAm`45XTq5VsBdzcy z$I#m;y_om|;>Jye+0>nW_EyeiJMi0TXw1Y}*gv|`*7T){_&CRfT?4g_JYrr$8W{{8 zeCaZ687Od`phYIIR^w-PLd{brkU5DI444t|*!oakR`&a7$6tI{&bf3f6S%tU>;mE2M^5D(!O70|O z__zinm-QbG>K7Oa81*b-FnP+0=G;&b$11`h7D4dsD3JU% zTZxibOq!}|5{cfwPzySUb~*SVEXVyq$e|c~tRd}j>=iADF|FqS#y%=L9}Y!sLwU7O zwsQpI$q6;Nqm7X&)Z|pp(*%gz4z-IM>+nl#%UHaP?o4|Cu))g{Z43+2nbg|+VUeAL zJUvIdqAclJfX zvUkM#Nt1T_p$Uz+P$EDv2IMF;pT{FEZ)ty~2aF<5*i5W&OJZ}u9vLgC)FSF)|0)W$ zLfXnA61f;q+Ou}qCSAssNrQ5<%6@6hCI4a$Ex%=JP z+Kpa&)CQp}k0w}FgEU1Wy-;bgipy@ax+)%b>I&JUG?3*PIv?l0ktf#5q&;jf&>@Gp zX|^wow&scW=k#^wgVW_&rz;}yJB*e~SK&?#{8<#&PCFQTXz>+`9vg%hVog3@Hkqeb z)29z<0%ES~ww(WS>hvoIN)M<{(kuM?4Ca)IZ3#}u~;PJ_19 z83;t;#bf1~0Z0sl%a=6pgvztqh0%e9UW8(-dGnvhl zUYkru_aE&}Cb9t5Yf*Ka5brJhGKqre!SpW)1SbjMLOe<7y+%yo5JA_4nRvT}oil}^ z7VFZ)2kIqBPZ~A;VuSDfw#6EzC1)B?ewQy!bjYDODVItAjxGFZ$W@-8pO z^eCpM2&XKpS@iW#Aew@+;o=>ZW)a8vRvMw`lty*TINX1y<$tBexL6Sx*+r`bHu^={ zEg-Enk5o~+eN%GD2wuR!_8n30-sGMT=S0s8k8F=5nk?9L2gh#0%iBYPo*xygI}1K?gwmV3hT*ywP<#9X3EG|DmEX6)t}OHj3L zH^+q7jG76`-gy09gArKK6m>;G`<`V>To|gJ93_g+u+^d4ENI zS~hT(_)norFdquc-}`kqS)t*)2gQwGIcTkOZ*DyMr%Oh|`F8Y^PU9&;E&L25jO~sd zjDbRvhrYaLU5R>Y0uk>AS(HNlULenhhwJ6KJl~QGCL)8)m5L1@y=}5~e_f^}i8GXm z%a{gt9@OCcI~7~P0yftCm^C@qkn;mkx##Wr6s`dLAw>p<-O;!~;wAj#%^|u#%r_Zi zUKIoYdS~)YdOMRAv4+0X_8k8S_X%wcYcp;Dsjb0zaO+^|>-5*+qE)QE zPc6Z3PX=pn$}-7Xw@EST7;&`d?l@!BrLgIh|NESotTkS(;~nk7zFl&+GUeiT5&0+^!4?7AEjXAv+yI zCRJ&tR5^LKZou(P0a{h{;+G`kqYqLsFXZFG_|u2IZU9lBxA*Hj+MMSR!I5{#afE0xXJAO)qt1)pv_(OwE|7D~2h|u>4J2 zo_}Kj5FSYkzWpcK`&W7ikEz80%3>oT4Vjvr%#+R6sI#0XK+m2VA2-2kQHcb6zobJa z+6cvQSA1(5R}#z>FEDxh3dvTp<}1n;<7a+}i8dWRsBZ;g04@oia>V$53NQRrpWBIcRj&?A zr-~fjPNEZV{78p=;T)?b(nQk1-&Jikz#E9@hhPR1fcOC&{SigrFASOBRuEpKtP8q zK(dZEB-kGluip@fqmD>ssCvn6X@@0T(}u(45}v7mg7$m>5R9zXlNASb)R0Chg1FG)+2)4~`5uQ>QQQ)V((+ph$VsODt}7zr3;9|ZH14OEona#msuBQk zZXR~Yu?_P$B51L-b;1T?5YfKt<2vvhRC_Fg7Oqx3ZQZ+VJ1sWaBgtY|Oyt!ZZ^zyx zu{$wnHMk}2BjWbrvzp0Q8;@_+{(J?8sInSqoA}?D4E8j-NcMiN_I1b0(s1_YT?qTL zb>${J9JsCT$CzYWePXz*JgDoMB1lR4V5QXuMsrU5&E^jGqJ1tdZB~I`=QNQv13(bm zvzpE}i# z`!a#bMR8%a%v*bT?c+ib-7f_{sP}}&85UDFA~tF75sXEI$h0nHH5@11n0UM9igL-n z1#_laENND;Od@`W!%qDs&TdQ5g1h?Z9VvpUz3$x?MJ`EDpzDIG^g%{8v)!m3C4(h0 zP*SfUu1Nf~8+2=RW_|B8Ze6TgWdBCknU*bfOA@XwcY%ij<9fNpjm{#OT|CZ-s4e*m zr35vk7{H<3fj3s6d68ad9cE>~>_zPmlmd|K?w_;$6>j|NPdg_}PImU$RX|0jIb`cn zi(N8+JKqlmkC^OEs{>)OtqbD4``&}AgFLLfzJuv3OO4x~#nVM39)~O2$Zh-xvW~^Q zBBhrn0U0qHZFb z$U>bnNfzgTD_lYb^uPt%5O;-NGBiG(*kCm6)dWM@gg7BcIco4|ym?#OeR(rSY+kEeB7;k_Ja^k1GBtxv zD)O!^(8<`|wW6HwwD6ZmPBYQMl(?Qn6_Z@Seyhitm?tZ9N(24Dwb~(>-oTFR@#HhB z!Z6zo%_6XJ`H5`s8YqE{60c?tiaCt|@U=txXNdoEs@RS=rvgl}2B0ruAJ*%RlQueU z00e&5tVmPzfaah7nIIAuM62&x zFb$iAH?g+Q?8%~Cy;40F0S1p%9ERq8Bf`hr_#d5r^IH4AwrNPT?{i2%R){R)u zu3kpCNZu&wSoP7+sSvqZHJqP5_3qYwb9mbcaFhKz_3n} zsZ4KHF33~K6%+E_**43arTmmWy}gDZmpu%5H`tQ%{Z@e$d55OJ&W=&#)`V|7Q(k&WB_7X|2^4OcZ`UbWHBi^$#+OXa z*O=dw>W|$>TtpkUGKA3S z63^hXR)d9x`dw~!HO#hXE4qqizy zp7L1p?ntg0qwy(AwYb^F7ET$wXFv9G#iW+k=;ME@**`iLi2x{^>2Oo`$kHFd7PgBGO2Sk&eUONw!^;~^`3`b8kQfYG_-K*h4_3z~_*<<`Z7_aN*aPTv z91Ov5jOz;GeS*Cu^R^i_RX7+~^-uw+c zRA~@LWS&^%j|a*a0a@Etq0vU^g5r{zez~B?k4loIMFB@xqf&viH7Ks=hsfG9z~TJ4~5ssu!g$$a}LC@u_rxiLh-nzBIl<nxQR#v?5su1rQ8YW7seKP{S$ zM+z6d&yhShgtk@D6jdE`d%Esym>TiEH65+0l?p39sH8v)Jx!$|ikbaljK1g%7 zad0^sVa*G)_^mO1by-W`5ofUfPI;m-Q%=oA=~g1jl6Dr=OWz)|yXH=Gn-z~wQg;dp4dY3Iq$z}4La)HHt|?6>`uFnl!u zqtlq%jUP7m&_Vb#$=|E*w~4U|7c}D@FWQRWPg{)gaEzG#XI-0tfBz}@=g~6P*~XWu z?cs41)eA%v1oX0EV%>FU9FY1eTm?fqd&Ry5+Dpm9BYjiP9;LRTu}C`3XEvA66w%}v z`thRJb6-dE?}W*9#_#-nXaZl`w6Ngz)m*(@d!}07l4P-%qKX=eEUROFewrP#?_ck} zJx;blHkk|}^8*(umr;*{$-5YdnMbG z#v)f99<`9cZp?B%xF#7V_0JBxCVRi>uU7I?KmZ=~nWTDm<$?L^ zbryS>PD^OJ7sQz}Ju*X~{Le{RMjFK;)7^{q6|H*rgMfKn&gkD4(f!VE?+>0@C9)!R zYqeq2ZgEG#ScoKv^s{>(Ov`G4AgJ9^%R&dMOylnzD>-=X?nJEnIBxgtkyJ77sl(5| z>ZUAj^7}KxZlKChGR0Y;L=utoH zoJ7*mR6JBrOx?B0M>}C6C$7u-ZqE*Ru5wg&JfbV33n)@&6&yzrcE7069jLjCtBa;M z9n)+htmu`m_O)aBJI_5 zC7D`~xz>B)`|lT=lGdNQqtyHk_BT$nRQNDnJX>aux>)%{#^yz*UW)Y`I^UcL?5Y-a z;}$Hs7oSY(?!LC1MoLKPS#LL4`+nmXXrWDA2w z=+NQ8!rfhH)vR)U7cv|8C<_}J4`qX&T=J{v=gkQDJN4#b3VI^7U1M|<+<)xqe>wIs zX_EfqS7Lr6XMFF`J*{3`X|2+3d9S-~+n&FMfE$@WWu!=i*m2*r3XD(g3G2x8%P6Nw z$--X8ejZO5i(D}22I>V@IVEpUOeS+XYi?%n&<Y#7&|&UnkCk}!9!f9iUKtM4hc)JCdt8Gu7v_R?7g3&P`Ss` zbV2t1qx<2Eh3K$|ltfACuFfQiFc)osIv@VXs~<*qT8xOw><)TH$dN zwor&IttBms^QBqVk4hFLb6tSPRQ4Uodal6cR~q}NV8-d%{j&gTZ)qGF>I6&>(cv;q z!$iJPu?CNFatj8UPb?e>A5I8(-{;vx`K|Q1Ytg5@`vmBsO|UwOK}*%IO&HUOLpd{N z1r2Xur#ruH8H=Ei1j1nKcH*mI{Kibq7IZ;&2V!ni1d&>nLc@l_F*%2W5;lsTCB>2w zdtkNUDg){Y*Zz*%Tp9A3B!PO9g_WdkF`*4(;c6&Z4CouprpYgi_Na<$dFp%4s?Zbg zk(6rPioSd5`7EXWUtxG3Jpm?0$>7Z>wA421cdEHBC$}W_hxdaLn+)n|TEWvBd4;~# z9;3EGsRsQD8M6t}qCO%*nL!cOw*7rF^{!_>*fe^Q-JanjW>uhPBN18g@@q%BuhlwP zIJdLu>{&+r?Gpc|pm9!+q`&MbaJ3LcIVf2N1)r@8Q%6VYO9+@IPL&66;y?e28Kzt5Oyy* z(gCPX}rDihn{Zo?#O5PRwIY^Wxnc$*a1^mBpzjGL+#ObeMbE%EV`}N-<>L~ zkW?z}LrMS*c)G9XCo=U@4KBVWm#LzT6!SfZd5~3cIj_ih7fi-B)&b@Sb`Z1QG1DF@ z%S$(5>ERlQp`#?(F9=uf7X2Hb{@y%)c}$pOGjM zl1%M>K3XP8QN_4iM&cjCbuH4BG56jsW;}8??|O&4f<%qwad*kuzo^|cfy=cP9l7v> zsh}5Ms>N_!)@Im}B??Zr zEK*M3Fvm>txcEM-(Po8r?|GdVYObT0u~no}wjN6rUn|yo1&haKwcx{OG&FdxgNW^= zL>1dkqmLjA2dL)(?G1Wgn0wJ)Q;#1dbDUGb^u`{Y+ z9Qx_{)#=@Kr?4wNk-+F)(rY?D|4~soflSRJ4N9yIR!I5p4yo>sZ?^?_Gv1(byPy{Y zff6gXM(>_r;hd6W;|GuQ|H~WwH%B@`7midsdQ?dr#GK$@m|>8dYJtf~d3%C!|MB|T zw(+~eyV78^0vAOHVTsbBnT%@MVozM2H$V}1g^)}KZemT&z0nkn+7uGMAktT|g5RS) zRyZ%Ql49`TD-dGMlFBv{FUzSEtD@*2;gGKIDJ-?Yz^ASYKb??*h2V9UFqZvjnHhZAiw(#%j_K1HuTH{pVIej_8-Lcn@%| zKdRYgBIDo$16{HVR+3oAb@)}`kgZBgwaj!gvcC9)|NRQ^YC`~sP>mx)NB2m9-z*kI z`dw2~NC@iw`VgA4*GMzz>4hqp1 zzedNp0^U#BqUZrLBfH1&=aPF^Hw%G2{X{0X_-3W@&-EWa%}r-?R%$U4{j^qL=IfnS zSzaq`wL|c&C76csGH39{{>$Ep_tI{K}N7k-wAY@`cD$) zzbB9Y>2>Ws_Sh%}0$wbd{$I?E@zQPw9er(vwD4d!36LyHY=hOERREYOxv2 z&^5KR!Up@*NgDj05BdlYiTk8exD1wW&ns88tgRJG6bJGVKh~bk>y;OZoeZ>8DsGn-1gyWaFNGSD_G zzkB;uNKP&g^50k}{g77(cm^TN;a$HsLwQPj-zU&?V_xn|tJ^Qk(Shjqn9`?S<|7(m zdwRC!BlGk`U{V)|HDwCl*BE?Gi-d$(NXgy9Q}L)gxNrWO()#b&__K*=UQ>XW>q~N@ zZZPreot--8=2SG|w<e@9!nL+nx8lbU$%-KGP8?!-*|MseRvSf!?pVJFaE`` z1)=~iQkSfq=%0rOMC(6F!f$e|j(fV+Y(jfD<+ZuR1|QR_+*f1IrQ-~K9Shywd?>>a z=<)r&WVPD$v!yRPR+J?zT#~R9&P}UpIn_t}^>L;+VM-O6rj~ps9rXvI zPJb4d|84v~GYlZZpPO*~z6ogs0>+7!C->4UH{L(5(v1a{xMXuf;GZA=FUtiiuf+sI zs^#nduP6UEK>nY`{hsPoy?-kmva!PTc(bPAAKX8($?+;LXna;R9^j=fAcsaK1R({C)Gkey&Rb%-kYuXc5!@%!vH;tG_3S zFcKvK6VG%cSD;U`(*d9cOTkwsz@C6^Xc1`ZUge!-qebffCrlp`0^f73+baC?zJHJS zAM7$I1jJ-!)&%E5W)=!~UK*g2iBkXK_iArw!u$SXXd+-}*L_=!|F@yteh=M|L{bv( z54LrgRol;BuT$BNpI_=b__W*c&&l-)gHqi$A)zlF{pT(JxiWvdI^IGe?V01}1|Ti1 z3OgmmQuVHVbo}Ky+&q~S`oWMfIACuYll`^f-B!1_+5Y*wx?ccf$rWNB`G2|9>rd$) zBhochs>bD9%}zp=sH(TF54Pc)&WYL8$vU+?CU9bK|4D9nvlF)q^sz&Xb^R{{>pz!x zorFktA~P#6kPQFf-h*^VHg`Zkv@eC$)!%VB)gKIA3R_0|H$YDKEIG7WznN7#j`L)m~69{N26o`d`(b++_ z^KQ10+3^95j@I8^zHeP`yyM2fxsuZZ8W5c2Iv^`k7^!c8kEz5G;1POLj0Gpa0AA!S_` z!VKW(FyQ9OI&M_wAfk?`mLY%tKcaU;f**KPp!(u)XUOCQ`CxlH6sWr)dbd@ew66KD z*Y-T>vpmt)_q-r_`8;V$<~HEi)|*MX5^l`VArwO5upwVY8@$&jyZMwEVPS*&x3R8Omxf#nWj_TLy zfv2@SVYauh2~)3PVmZxv*@2;%I6Fl?mfAfRD?wu1$Q;>-U3mnn{T=rOj)>i?Ef2HP zp7gbVPR}XtZRr>2YVw$|eMQYHSFi_eE$+@j^twCp%i7DAYB~rRBK*mK_6L6UpK}bB zaay*kFz4n3^>JcZ+Wgew$pfLzPeAJ@0V7o`X}YfHYI9496)N=KJVkdpF16Z`BrMsH>ehQ z8*`}m7C+Vwd*@;0vM-W?EbKxO?I1a&JV!!f%HndR9C7aPkz~i5sagGn6d&HSbVT51 z%2Yk?140(}lwVU5ZXBJOZc>;Y--}O|Xt9olXc%^I%;pV`CA-Z}n;4`#r4cP8-@=z% z%YY!Zjs2Fw3T_;X1k%IsVz~IXy$0F~PLOquJuhdhpCmR&e{YC(D+stj2L~$|y80$# z2A|EN2UsMxQ{0`NJt)A;tLhRE#pLYWdr?Tm{r5N7%K(nlFeB@S>sNGgMW_aD?#M5y zhVp`{s@PU*&0u?DY4MHBBcCdPS8M{fg_r-xCf z#=K|fa5Gt08TpLn!r71EEL+h42fUoEoP9vo27+8WLEE>FQ z^#G$ce(k$k$jMCi9eMg>wL9Og7`7Ry_{?`&nqoXt7av5f z{mP%w$j|=55cNUA7O#=gs`jPv1xlL75J>=D9kcDyU}tu21|5Im}nq&S?Y6wE(R zNesORQ}+nTusd%0q4|bh1d9X|%RaAx!p?_;(D$M98)ZhwHB%*q{{y+bM843`y}E%#&!GZ(%D-e+^jdV zQrq|Cvp*++kdC!>n?O604)skH1TK_d8@!Pc7 zp_j;#-V0Dx)96@$lt65NrD0#*wIyp1pM*+DxVPtU^qu!u+GY_Z!F4ug2;kuoHrO*} z55~afaAFAGCl5ZIYLOrj4)bZ2e7#PP=T;T)=?mtl+;}j5@W7XM8Q@FM}pGr{z z&nGPVk3d5bd)IXPzFILL)AH8x3^Cx5dD6n2h3UJKekX_X7eku?zgc0|bZy=pPlv^d zwTfS}oHa=c2J+`Cq{5UPrl>g5}xmz3fmyt?Ow=MZJ)35SZlVp4Up6ElBojqo$xR@E5{jlU(zm? z|6w(JkRSw@5+>t;;M|e0lAj4tt~At;C0Y&W85u;m!i-v_0!HX`@9+8yYA$MNaDU!z zK(Y+{A(}q>kkD7yO6d(yBBcTmmCoTEI4k!>=$R4)v@o3MXf+_=pwAZuj5Qu1o9AAE z#AfplLmS*&dJsA82L>V=A~a>mZ<^btOQF=8@H0r%ERVDc>E9?)zc%eSaiJyt-Okh3kTQ6s`NBGl_COSp;~k9Q}N%yY1=P)(G#>^M6?=+c$VGtnvyqt<=8W%f3&Vw1c zX`Y6&R~#>bKP{gg+*S^a#Nui3e0+T;Dy2j%>y)?f7HdQrDhJOT*IsU`PGP2_$fUe6 zQji8(=d{%Ppp8Fi;E8IeW;?&$E;{;H#p=-_7!;33<}wHFvi)r4(8^h_dtOx^n&^$ zrBVUdK(v?-L${zL>jJQQBMdW05b*G>_*N01kc4Xs$#Xe;~!-pc2E7r%(v<1Dy_cc%F<~&Q5^j=7Ze^aZmZT8%J)B zZ6_kh$2AsiLE!085xl!eK^CjU423ERR+31#=ReA~u~D}2?$W;20#8_J}>A0Ad5$r zQCNelJ?_dqTFvcZC)Mg7!Kg}Ni*iR?aR00t;kF*(QR2|~(2j$bWAP-0J| z(r9LxXnq#&dZV7e18q9HuDy$&?EY{Uq@N%r9UM?A^nFJkR=6^lJ*j|I{QhNMjJWTM zQXyQ%Rt7r;7Z7E+yD|8^@6e|F6XyO+UF6*@{TmU*`&F||Y?JxE;cRp&)v!kVC}73& z+b1r$SnymaG`iT}sd?AXaxj@y2J%Eh!3T#ODHD-)&qHHgolCm~?)~v6#rmO8i^e0D zQzMOkB)oHh=40RqPdL>n8;{hSDa9gYgEx#k2p7!zX_0C-Flm<>HO6_>K*xxJM#NXN>H-X@rPal9^3{WUwa@H_Shg} zu-xLoKT7QkPxcm@1v00ICE_5c9NBI5v+eoOdVwcsFv3%8m^UMBz6vM~E z@O%nmTgM7y&eZW2{A-C5v;3_c@AP=O2~Y*GCbJrNAzLA!nEY<#joNOD3+dyi1*^uG z=5BG~3t@PC-s8L3^ok37>(W$H?UJOKiRy|A&#Q;|whg*s*+ax%ODD)k204I`laf{y@2xUB~*(*pMcf-9APdy@#5>2GL;`rbRbFU zhxWJ@V=JBg6`0*cvtOm23tH+=q2jg*AU`lgvX(3$K?o=afa300NVzX@5Eh*`9OAH@ zzG{zSK%{4m+}FHe9zmR#N^^)JuFK2N%cr+*AX6(kIA9IjckT#|7QHeV&tZ z@#H-_3UrvWLNL!S3yp9aerOkOmcct&(oVfWaSi8x3Pp{cgYe0#+0R$m$6mYP?~r`o z^WdV~z^1I-YINx=*`#OYyo-L;VM^lx4jMV?=%WQGHh`1r(D3hq`?nVtw#uzeoof1l zer}FTF$EK_4ZpAi;f;;C>+SIX)3i6EgevSX@zZ2eV;28IYrjf0HRE1?So)sKhWiP` z>=Xn9B$J*f@|Qa?DDOH^Lv z<4qUIicg!&!a2jo3pIvXIbE#NmZouin&sffiJ6=&nQJ7o+o1|Y-e7gxxm>Fe7CEQY z3G<7#|FYa*_wIp>hJ`ZAkH$d6jGFPXG}<3*4Ukv%TtUD77>DP9ULY;0DTaBkAY*|( z5vfp&UmF{G?DqFiK*vxcq4NU;9Vi$W5}j5gK0kSXAcaZDG()atH~++D=Avg)WYXPI zxwsoR*>$Cl1%zGa2&jIwCeyl@hPoZ0O*YA zca#lFt;XILF^2Nn;_xDY{Vh>jE(bAySTbZx{obh8y_+sEBnmCes+VGBb|YvY@Ahk% zJL|3*w-KBm>&)3Q+*pk4^!cU2;5NqaUPVW2y*|s8Dv@-^SqiJ9PvgAFaF)5irdS82 zCTWHw>|p@4M?cWCX9%*9xW;Cz?zWTV!0PhB%t)$8_hlt;ze2g9H%>Uzl{?rL=8WAB zBi>r%uuty&$x^Mrot=^4Hy3{}saYW)mC=K*8$Is0SZl#dTQ;)VIjpotE18<7mI+HXbY35S`oSW$^_ zcsot4KNv8l`_|7|(huGB%p2{ULC(idJQi(@n^4bR$YV-}ZT582}nFbbTz84&oy3!#ooy4&U z*+$LC#C@lm?$^g#NNEhbyYBRg^-N?pSG@dmvi7HD$LMJW7mc~$wjp4vJ59Nrp^K<8 z?F<9AHJCypN%feVF_py^CYRgvuE7!!SL)g_7&zg5)k-@&w_kb0A1+;wefdu)-`h$Z zMB(_7(Tc7T=Y(C%beBlvG3>r9Zd?_`o5gLYHh557;&Q$oh$3U#E{Lq_l)t--eChh$ z@?)CX`S_`eeHz_|A6{kb!)rJKsjeD((Vm2pb7@uiu8w6f)A2*q{oDr15!SjWD z{HgJx{PU{8p#SCTF+_yFG<=r}OZ(H0ctj(!Y?FpVY;L_oN&J-t<#L>K%z>;D0~{8Q zwDG3V1Y}NaO?Qk{n9Czt#SrjD*;@K@C&q4^0jrGp#QAfst&^Rir^Za?)>54{&~TpY z>jPVSLCrq9-Xx#XE%}9@#_pnAs@cT(WmgyAC$hyA3J=bygO-`@kp)tPp1~LeD8_$I z6jWqyCxZ!wI^$F^)heSg@4j$+oE-&xXwhu~E<4$4BWb|E5k=+dbp+xz0?U5|O_m7IHT{poocD2fEAY!@*E-Tyk=EQoZA#%(|MMBUZ~6StEL1s9dAc1}gm$Bac{DDhMd zWDH#BwcMHWa!bH{fvgY(*@ZPmUlV00dB#XHwZDrU$Ta8;FN-dAkYDQiXp8ULh}hhkVWUDA;m`K z?f8@EexpkhH3FL~AC+a#M?f#P6aIUYgj+x^A`S=D9I_Ev#L{=q$9yPO#@;gx|^KZ}WxKUgs5UCc~ z_@Rk1Gd>d!jC8u}sisT?NP$B;FAjUExgfY~?V*uLw|c)A~-j0i)hfhb(~fbLj91EPC(6(Q1@1GN?&-Vx8j-3q zA6bXkwyMkDwls+zsiJUV-eteKnE4gOjU>bAy;qmz7=ir-=5-HMzgdBNOf=H=KGs;#8je-s9w+N{Dm?i~zz_pJh7^G1j zyUWzwknu+WwnyA=Jqe(D2HovrN06eGak_of=Vr_}@Mf-2HZpFDTPt2?z?sXCWHsqq z{xTB6w$f&&pl)m9?~uocWK_agK!igTKh8(QIARrji46Xnc0sV*8X$UOO(gM7W}8-4 zQaNX=mJd{_M+z|wk5_>D{k^poFNt3a3b|}1aa73J8+7ogs_#LY8^spbV}j~cwykMc zwKDvnrf({rcV79={WzAqVI%}Nk(W=xh@HcaJwsc0rbmYF;dt`iJxKP}(5*eSK=n|P zTcvs)tK%Y_dEBm|r7+aE7umKPJ%Z+i6fNhKS-Bd%G3CB}Q0%QaotC=E<_x$_7^Zli z^sFZHm8WGh(11zWJfx(ztw8f#2?CXC)lrgEJubFIO{;ps^Z>Mxr*iQU%nG{??k|`^ zVLAN1mn)brapbf|?mYXh$!#_afC?x>b769SytJmc$^3>Fs3@y@W3%i9_hpaARkE||FIOTOAg zz3G#g9*y8#gf0L%v5G}t4twYBBnN=RrOc!F6IN;yh}8LK0IR)^pO68dnZAOAhidV5 z;9Sm$v5Vqp7&+BeTs;E}H@PZrPJZ-9QnCG3W)4!EFQ2`ywO%1F;T56We*4D)z<{WQ z#amHm5|fj;$QIv0{M3kYLV&Ng|D>R|urI2&5!8vqg=CN@5-K)(>v&@VZAT>rF>q+F z>}~b#Wu~07zlPcWx5TFo`esUz7vQY`&R(>(s)r??5|qu`pQ(sNWYYYzJ3NZf5KBMD zZlOxI%b{oS3#Z=qLO|uKYIBP7*x5N_b|FT~5$?IjA53pBXs2?2dGK>8;%wVVPfzdm zE`BX+SC;}s1A@)<`ZXM$_`CpSxd~E2K$Q+iL}cUB^0a_)3wHy(geqLt=h6`vOFonG zkrbmrkY8uVE{&3>Qe&E)(fp7gc{rqs(mSF`ePLFZ^w z>NX@liKy03>N+`kUmNN8{SqdtcefL|4s{X-nCB9{^M?j5WiWp z`$cne!9ML;C2rnb=9(my0D%LnQ6M7S{4=^gHb9 zj-bWZ@v0bohgyJ8n`F#&OwQvr)aGw6i8d*28Rsjp7I?qemRV|)4H@cmp_cX)oz(W!6l_C!}wf4@zow>-kA&z7bl zn10V!&oxT0LNc_U1Dd(VzU|{q^sw2(32-c<+Pcid;Eb~QIrmJ%uS`N=I2a`e7Prr- z*_?Bo`MVZC6!}#0M{%_UFjfmhdvU{s?r;>Oyde$>rcVaXp?9%6gFdP8t9Bfg+tyuG#o-)S&A`)Jbd|K!I?gzCu`@V_K#IiS+$hGt|P6&eq0L1Y6OJ^WwQRSqxoa-P_Z8kGW zpI2i(r+0<3Gw_L}%4S0V`+f__3>6Tab>YZ`gFpO(zUK9S_%5}dptuZWveL>leMWOM zR~(^?Gs7efA&Sar=DSvvS5G1oZdl{3sa<4gy;2YMefVZxWS9I~5rO>iwFZ!HHdh#= zor7U6@333ak>W*|^{hZD5iIf4^d%&4m-@o#t5~3xz_FNsIBMkxGMg75UHldn!s`cj^I}gd!UK9nz_0;U$^S(0PZIzO!+MPG58yZp+bq*VKP7ZhmFb10l zGshJR7b5-!hU)S2=&w?;wUVZWb`HX=ZqDn}#cT>d@D|$x=Q*Sis;JMe8R>YzHFx}Y z0cKjI3PL;J2um&hqeKlD{@|C2(4pqX^_Wq_0|Z5Xh5O;kBhiQ5&5cnc%*x_0ERD`j zuA}0hGMMX7)4^fo43dVi7N+t%Q#SeR7k}il7E}?g4;Yl&{hvxLtq6-EW9`1iV}=!+ z-R;qBtxer`BURKOnYr$CFUMW&Oa`8De4XvQxNr=UV=z{xP#og3ZQbDA?yE&|iKhtO zV4>=Fh}hAy(~u#`^#h;!Gj_}{LCWXKd>C+Z(l zkUVDlWKci33_iaqyDr>G7$+c_>Ry3W2v)wXxo2W03 ztdF8JhYnF6^1E8P;-4#v8KZWcrEPy~3lK^=yk#NVNaAREEM6+g4eVIVP~Laixzu|+ zkJV>UJ4x@WGmy>AlJqJv;!A1y?%1$a7KQ9-U zmfOyJ>Ccgum+ug4&r){+H5$L2_-*#YoDFAWWYllDBN26)59JK0*lz98WZ71KPd?yb zs6FS-mOLe{3SV6#DW$vV5%fV(br`t+HVV+QT~$ee7FdT^0mgHWKQDTyxSO6oJg<5$ z>aqWkvxwP1Weba{E9ql$M)ma8;x+E`HZV{)06o}+!^lXekj2kd**~b& zt;@&rXr_8kfMY`9c<`lk+|iWfl$bhU`f~U+lI;{{la2Ao#i|ht+y#7tQH4J5q=OBpW zK7DBV+*aasat=!dA7XSW?cA$l4zh_B{CTF_gU2iFn`uWO`%2{f=#Of4TH5m?O2H2W zkAPy3vvm2eyoEm7@hIlmxn}`7{Y(N-sim!lVif8V$ zyR`}Ft&yz*Px_emC0`jL$bFxx_y>}^^-6MaP<(1D^Wa$BBJT&hITBEE^~MK)`5Ve; zv(kF^EE9VJKa<0vCPQi-Chqr9gC)PT5+Np^uqu`NXYV?A#_%x&~9jePIc)Yyu4_;YZbA^I~2Jglouv<*ZLJ5{DA*w_?Efr6L{Ip-E z&z9T(YzLxwHb?%^utI%I`S3pafcn?CWP$P84gzb(iIew5DEE!sUC$ixh1m zVhvb;d^iMBw`xrJMpt5)9~+xQQThR98AxRtgM0+_xbVyXmE5$m>ruoQ@by@N?>e|1 z9mua&my1KBLiDvFxYgh_-Rmb%mPEc5v#sB%iR6j^5$8SfdSRj88QK^SE|zX9IzdngMdt#3N;tt1`VI-BGt1pm720-b9Rbn$?#W#&^r>F`zmSq?)e&D_(I5sU%;<4hz&&@ zw}_rtDXWfFp;*e+=Fze^8Lad5+Xg&~iuA%UU&q($Wq)NF&;1h}8J^$hb<@GAS5py# z91`_0yOJqxuwde3Py({?OZ>W_Z8WuYAyEi&+=sI{ekl=W(hdGB|2S*nMG~73Q@}jw zr_w2mM7HUD5@A#_TV-96)4Yp@%@xH{i$A}zC?;jb9w5j z=&Ew0{%5z$Qq9WwC3GQSi7^Gc@i6$Uuo;o59ofR(lhoGF?R<}lS{}3sDp2)J^1KUA zI?DoAZd}OfQ>kTE7#G~p(V7yCug4}2V3u(4?pLig-tsT4swWq-$DwbwTbNFzi<~B> zSCC7xJHi*0E|jA}tz3-okzv;Tr<=z;wxKTgo+Wrv9r!2naK}}OD9Md+vd`|{g zLWVsI3aO!Du>;Tx!N&ZP=)v>Hn}SLa%$r^!*Fb{m0_|0G<065QwaVZ+H)y$i?K~M!C7_$6)(Cl~uq5FqI7?8VV<-H4 zeD3bHR9Y!_a}6#ykv!w9u{;hlrZ@z{yGtNY#fxV@n5{|3pxjfxrE?Qpx8Lk?^*LZS zlyY{ddPBZh8nol?qrE;&qH``gO;z0Dh$bT#YwmB#^~IQ672~cEjAjrubX*79?1+rw z!P}X+g?F1$0kHiI^X5aCV=!tCMcf=Be`{3XHL_|AmH!i?-pC*!Ie4NwFy}P@>in+2{ zX|_`2l*%KrHE5No9bdzdQMr8z#^|s`N zjdJ%{S8rzyPiL$BB;WdtBh?Kbi0Xxp!!bl{$M5sZ1=g^M41ECZp_;G#MU07TK1T3Y znlNIuFX9_jbuWmTS3H3v-)`17vyd>wEmBH(9z%leBu#2m-*M!k((ZX=n-EAT>ka`rpYHn0bhJ}DwQj(#6s%|1%o>Qt8y7J2xRFqLv znLk}?NQXWuj|w#4((8Oq>&b!^r_X*)>--{Om+WDKtx;Ocd{`)xW9_GugLF2q*y&}% zM{(J*^9{oo{{sf!^m87~?ycx&!U|YC1cdmh*uvQeMw^hVSLfd-^pI8r3*& zj$@Hh4VYtlS@Q#~g?|kt$6K#v_AV<0{8&gbi_9#H@Ui-;l+eH}-;fhJbOsF?qFZUd z;lengh&z<`sEhKaF9h2eMEXer2^P_81xg{7H7$1H65)z<`!T|VR6vzre|XH#Y1%7> z@%$Yfw+@$S;Nw+&9YA+*ed_zJQ+}D?jHV~D=TqgfA_tH!ZdvsBbyBC^^J9pv8DWw5 zlHV0KJQ+T3q!rZ+qkUgsr~fwV#^R)WP-%PEJ%G1aj-v~eUweF&j17m$et{YkqIZ z_vL~?$rKjNr(q<#y_v}bMe*?vCij|5`fCho*1y74dHacqjR`O@nJ6N9j4L0LzZ~CDby~9c=U`du_S0^S*`A-fq(6P& z(EY_b?h#&;4)~U5Ug4m!M@r%kKrNSO1sd%N%+@FKiclEtUp+l&55=?_-^1BhY2@+y zZ_RfY>Wzjz9udqp51VmOF4uzI;IArm>j0^~>5j4MH}hoj4|jnvH(F^+D(4E}E|G&L zBjZ%B6lt_k>kOLaH1MudZh0AQ#?BCF8w>3EUUyB@Zy8tOsewp`z${6QLTN;v1I#0Zq zr@SWDT)D-%7xIUFCt^gr5_0v-89be7E3xPK+Pp_|xOj_H0*kJlMh<7KX%Y-JiYLp< zj2jQuFoR}5?oqe3K`)W!p0N-AjHmF-@|DrjL0_M4-$;!dBH54@W3JE>%HUIT(0cs* zucHiAXX|kmj?(Vmi3UN?5c2ybm!UO4rpw>LvQViE`Pf5w!+dx|0}DbJhsX9kUNLO( zzJ#}cVq<^Ne1aZu3kP@(^IK0)I2Wgs&mP4s7^=ElwjGsPx8<75WoXx%5P2NFvlo9C zxf~@bJrb^Yqd%P?$#+?r@8*?vr|oR_4ss4u>wNg$PpL6yPy$QR@ zoZgDN$*{i)eS!qFdYZL$TeRj)9kUvJ>75(NMAgAER&uhBaNaY+$ZTwFpeIPkr|}a; zNNi?RfVEkeKvt*a+p20&MXR$bvO@D5y{L0`eM`irB1GY#O)bz!>qzpTe04s6am=MX zZbZwp;VRZTnG3^{m5DAiq~`r?Cm#%_XELptA~~d3v$*ZQkE_s?KMqq<^KnV2|6oxG z{IyBo-AxD@j;7-?n^pE`e)|r-JD`T@d~q;ruokar5T>2Dv#SC$u`EVLW7&8a0CP>N z%^srA7cNrR^%tUvBFhSEufFcc=dpIEZnRKtM^NxvlCiA6A0`;_TbDA=5Y;IC?e5aH z+DI*9huq^7sKdY`mzn@IsnEpB8H>L{Us7bL7Ji4zAStHTUV$m_cS`HdL*Gql3I=o;dIDQGzmuw~BUDsX&0U_ZeQ$L%(lm3C*0Ny5G7(5P zA=n(K9ZqT+`Bj#dT#^~j>Ch?URatR4El9!mTvp~-taIUjF^HLYQMZSa4N>7hFwVO? zox{=0m>aF-R^z}otJ9R_h?ONe7RT4w(oB5a!d=7FiLVthah`AA0#IUO->+XZ#;&|} zzn&#b2jX0weyeHC+1lF)-U>VnzRJC(suh!~&1sw%A<(RWNWxO|NIPxuz_sG8>u|7T zhM8$X@+eS%TalogEA)xR5*u=@eR~HmTBvHvgkEPjSWCFA&4cnW0o(>h7q5gtg@iY_#HmVy)i<)G1!$C@P${cR`OXn^D zSS0rh*E;}l5?;&$i;Th8H4Z?&!BiauHy!?3h^=qTShPs&vE)9+tI>H|JPL)J$fGQW zMV!gpZ#^+1SVm0hWWW+~EJZebX1Ke1nYzE@C;nnt{!P+S$7Qa-(m*D;c!CudkZxhx z(80pI%)U53H&J4YXGUB+-}LOJ)ZcdBa_X9D8=^EF_X}3CPw%0YN}gF3m}NhTqxEK} zP7pJ`%uN_n7@xI@ISd=cP-vm1aFRm|81%{LUo9f;7AB7Tn6;y+%pRa^MQanz%VFuc zA$CV%j>s7fPNRHjnyXvsy(+02z8*{b6aMo1LO80avb0IbNxNn64G>rQtFeuQ|u0Lwq8Ak0_Ar{l%|2AcwT6}PM}p$!1I_zf*NXkt9OJW zhAj%gVOcJ^Z*q3kw^$?3)pz@$t~Njqku2RM^^JV!{?lV_k5L44PY13m(PqtgxGg4b zkk6W*S5vd7Lj--r%yDpKp$pHNhb7|kVo@_)zI(oaC~DW5^YaFb!Tk#mU|o0UA1a3sv1oh)3hz6ZR{;Gv0LG-I~I1Kt4+#fX4PLJ~?@DLS;S%919EqO~tpeY_vsbuHw^HTwV_ zUu;`UUld*nv!oB>{FQGBQR|s6Al&DVqoVP*FqOv*-skZVh*w&&B_r&QI137L?U2l0 z)VD4c#A+Mi~+xplQ}zTxpe zwGr?`KoTzP>NE!sTK_A;K6ei=Tl)9?uLDZ=j@!tz$oV`kkk_gUbo;|8Ck@8W@}~-$ zimz|Jt=K&8r{*VN57q#>HB3YaGj$#;gg)FCZIk_eaDV@T#)ewC-{VTo zw~^(}U%eVtEl(Afgq6F4Bqhw(1zSejaf=p^Oo;~Zcp`Dhsg)cL})=wb2H~!fP85A%+_x8 zx5n;YS)&8HHMX*@-NDz@Gh9-3GvZc76mE^p(5LqrnBNkPrjks$HJ@%1j7<@{zp8ef zzuA}@F^-QUQy`+a4lV_{JYeV692y~@0l0>|-!g;3GjX8Tf#4 zZv3mEG8rm(1&c~2|MG$)ei-*5C2}T@;11G!6c?dC^RO>TjJ~k;JZE_kXEEmZ`&i-I zI0Y>`mp8j<35JG5rCzQKk`^tBr=A+iB}L|S@ogo<{0=}j(rP0_!xfNi9SafvdyDj${DXeWP)F>W8Rd?7%@ZG@bA5;Fuvl zdo14FnqSoN&6}8k@j#RsMPwu(t0zFLZlu-lgR`rNtC0ZNzwhU{0AA@oB}c);I@7Xg~58Cg&n9Y%A0wgzn(^nai+P!Fw5$60ShmK&PGIf zJj6Yr`I|cO4d7>wDeF!yEiZgs4Uv55`?MyB5?|dit-BFhg1rn5o%>ORBN~8-s9d7d zRT$O1%X9;ShjPVd-Ls~6@4M#l)y?$#@yDq)uDaLl36o8k+h0r4rMQZJZ#u-S8v}1< z{&6e(RuqgzlDsoqiGevU{n%P)G(}d^tnWdw+Y)~yIH$!8N=4DEfC|S{{1&oytc_iO z`pLy`ts1#$j(4F2k10=rswE71es;!&h+TEWbWJQg3*hN$J`-k`eLOjulo+$vKYc!E z_}&nj;#Os!2FASeZn`aWxgmrKBC_zn6tbwePwXVYGlf&YM+Tt17a&E6Zsxz9U<4-= zK6V}1ArQIeetDe{3FUOAM$T_+#8+GDW@)k?li^sZ;63QXf*}K|pUB%0X6>sK46%j^$2F?ynN82z-IKh5!7c8&F+9D8;Zp+>_~dHhh;T0IRZNzB3x zW}~{cpBpZP0R8~ebfAeQpdz-S67y_ofytz<7D8Kg@)jiIx;@f)x}+D-^L9TB2!~t; zok;$9g4<_4qB)i&_|?Y1R-D?!e8gVyAkVZzFV-)laGrIakn|M{!+e(+~6uj_U75rUJ_fbePXYzt;y8S+0MItY%L@$z=z1P8(R?{61e# zr&bu)>iwj`LxeKjiC>k?YjIm%V(Be=;jzkZa2sDkLwFKrA=|Bn5@x*rH9M`;#15dG zn)0B`-Msi2Q;_>e2G0nh#!7Oe$q>^*@FA*D)3qR0)_yE=5UAD#ow?56aFWxRhydGG zLTy!rF&$XhB&a0X08h8RbRB8GGyamcEX!_je4?gH)t2iU`W(`85Bt=Nrx}-`nn(%x zHTPJ>_h~-jLON=ml@Wa@UJCDz*ifM-l!&+;3xBT6C&#*7Z_#l zL7#eoDZP$0(onVf0vq!z;_e!?FW(N_G)by-TTD^I%~1HcV}c@InKu7)w?dWF7#1NU zrY`Gu{N+u#xBqmOVe}h}H=GzokA2MXh=*1gT|F3X5Uqxw*>BVR!@S1QeRF zvA$A$0$LwoBbj`Q_7Z07TiE(o6$9m{dehCB6=!)s@fVzeY7*eh%CAO;Rb}y4xbwMu z2nnA4a~sDLB!>{PSfOBlDAu>hRtGmyH1=UCT;5s&BBDKhuMbckh&Ud6b`hE{C-Oi# zxrpqN2iK3`WjLG9YLD_9R_zdl@|rH^M6gkSVd2bcZd2-~jz7TX0rUc~y%c#l2+E651$33?LcPb41f% zkZK7@aI_3>um8N8(g5gXu_{T5nQGpOofZ+m%z($c3oc1XX(h6f=>$PXnhxKjZK_8c z07=CrQCm$;oloh;<)(q3v$i9;Jv)!*_dc*4@f;Xe{4Og+e2bdpf^mB9bGhst!*O2n z!Y06ue)u9+X+$sp-vb*2S?;kYjX&EeSJkJdh@QloQM(_0W5G}o9k}yWf5Kj!C^{$D z5=RM#%oBObDJdv+q?=h;%_66!nO%8)_CA!~6+S|Ta;^d3hK13pPc^#u{RDlENuG(_ z&!CmRTW^&e?W249Dn#Hf1tknf^V^I7GBp0FN_9bae((B~d-zTMY5nDR zK;67)lMc-P^GlS9h*vlVMZGoxE@S?X^tgj8+HZi~^r0(y-*7W{LACY%&%(UI;tH^C zBtaP|-Xx>teuWEMW+|vhpW~zpIsrd~AC`jkA zTCp#1G-7Ys?7uLdw(G7oqlPa%0WcCd~o-i z+5i;J`O!xl29hpcvz@IAY9$2?WTk!>1cz2c2DMTIg6)Ke< z+iN>$vU>JnpFJ(iH?rHvQgDrU$cXN|Wd94WVfpDw^{!a*s8)e+A=5)g*w;_by1&?; z4=5dncxoNUe!POiYLgdAkN>KDb`LClCLSPopG=LwkA=-msZeEUcSFD_eTNQ^wjAvG zw^yRRF-f1bDXXpw_PG77wNTwmWr}l8RKnXFu|Bx92MycZH7BZ54jjto6C7=)oY zmqDQ@AZ68|!uHLPhmnx&-AYqp^*KUP0h5GKv8+J*%n$>Ysr0DT z+2h7uh1EZ?BOXdNk@j12U5sLlYSqjqy2)R}z^_GQnP7ehbqT8_PhXSERm<&&C(oPa+Lgh`;y46ZgR$z9Pb>8Rl_ttSB zBrX!ylK_aCOx7rAeH4VuYe5ua7hbt&S;6%J|}68=H%^ zQf>D-^_4OjmU=!bSV(Q^BRH7T3cB_xh170Owjjt!ep)Fd0|6^G)ka;FFd5(j35bpc zf;F=<9?~AAw?I4%!G2pq$t+tDkpatdf^d*?s6Z1XB~QeF^#CM}pfmqf2zsCHR!a?(NpWk8)J zDz2)Djq@rW6xOqIO&NU%s)~uzw*)FH7qU+1AvpS1@DQLynt} zS5*0N2SQAzJ(HmeGq2Jee*!z6z1+WbFb0zj6u<5UhA{j=3kBWFn{*=xGCO`C^o-Zw zb%TqStphtDcwm|yy=`_w9j=MN``tW$Vol=aBNt1B+xc{OilS+e4gHsRX+i#TLq(R; z``)amA>bpDL-sOroTG@+W<6s*I`yZ2?z{J08e81H$a{{WRHqI(+uLlrPAK;;?|R2H z)Xz|>0A=1*YHpI}kI94@WlJFsI7eT}^H5`%{lH@6Hr0&WGgB zMcs6dzOQgvzO73GuAvbtg99wvWTtdVU~Qvu4XJiYrUnEE+4IVR6!RKuFfFNgDrRSA zXQ5VE{p#yY`O7QROQ`DBu-;uh+2~y$L##;mT!qbiCL>rae;LnDfFVQWILZ!No+JROIqiLL<0kcm=o#^H9RY0y*gw<+t>C`Oe-EDZds32%|HyBb=+9&~i zUCN`dtT*1cheDK=N{lpsHs|Jf?!4;oM50W?0XGMNq`&b_#5G6YtiD=yKkwFN6HJvP z8$;NJcvcqsi&*p~ZO4?)d?!~u4yJ(gwKdtEw% zqA0P*xxEpva#k1}20yY;G-Xhi#eBNP*O#hYI_dox_nGlI{K7Srr>rjP*daL)wj#2* z><+g2C;2p9!Ilci&%(2%!6E)lm{aj$k$v;)E%uh_Bi)-*uOjqTv7YNovaJZQR_lk) zyW+~2-KJ6rBGdO_Jzd?3wWgr`oN%I30h|>Hf8hkX6swP`IkGw*vcaL*DjHZAO+);o zQJFbBJe~ZxyokKEfvI!OW%l#AMk+CjdAY+s)IQ+}xq>ly0qehv;p={5gdK3pCQWaY z$;SGsFU=M@m7r7_A)a=Ji{CYZOwc-KdqEjj+!Dqi317p~#z`B>LA{hqU!k5Ta#GBK zV#W-YS;qS(M^kMylPQRb!l+xcl?K?MQF~1DDuGeK9iwnkizZ>vFp zh@YrEC~%0fA?XRXS$E-QZJ*>6TyCrA6Qy}}Rlw{-eor-7H6=zGK6ir`H|p**jN>2j zkFTUs9m6$VQ+jMNzK%a#s5A*_hU?bP!p4(pzm3p%ee_AGauzc?T}g*KZLqp@FGP!! zsaAPbgZ*|q;E@@g!;g+S1`5HUe)G(`Dz;PIoOuO3k)uDB2BGL_)iH^s5SEMJaq^b) zx~X${@V!!&R~g?_{S+L5r_zBFQ6OV(iWm`cJpT3;+LvwHtaI4z;FLW;=T)W*&UD-E zldd&g7I^gO2n!p=bPYeEq)CR&${IaM5g#v^++fCfrTTpG}T55;=S=o*d zs9XU!aMdvHj!t)K-hUDICCtx2Db2fZCs5O@XgAjf+-etNJm&`42d`lLpX$qZazsOd zk4UHohz3S&-cTKQhf_v(VELZv zCVBbv&cBaBYwBRkJ+|jykeIdWkxxgLY%6Y-i+#^C3bGzXC0?)tj^|6Tr+-8joMt&<1XRuGb8lG2p5X%-| zZA1C)+mCP(>a#pwB$8!ITF_e&F!ptC#ZSP66`))T$3Mk#G!Z<7YUyr87R|+oUC+&4 zC$b-bQ2Hh7(!+bHXF&nroVsiz4~>n3wX&tAx=`TO>T^}g)>HXol;gjRs)nd$Ew=7!Ua4}~< zzh3Vk=UlRStO$~p#0{;V+ur}i2GiH_Iww~ip9_b0KeoWb$#t@jUY5ASVF z`Mp+}P+av2l!{)zmWOZBxlD~lsR5#bO(eKzPf6>bsH%<(YkPA+JjenqylGCxy@q|3u5f*20lqP=DUeO?rZ%vfg z#Nz8Q9x^vwxsN2mc(LLzNz+dxD+xd|;z`lgk?+W?7OJ==Zs41p%(Zm&U|IotroUI+ zEJz1LT>eN`KS*qcl(QtmfWBmNY4uWliBmU}FIFkO25+o*V73_VD-QdXLJcY1pWFRo zyY)1R%aco;{rWfN2tSMbUR$=CzF~`3Ug7OUn8!g&ei>UrGEu@XOp@8)v?#NrF|oeU zUXDO28rReaOifM- z6N8>sNE&7Yyl6VUE>5#v4{;Q2^FzOmHj2=?=vj!yAexs@B!r>gf7KnN3WmNIAb zR$m)k3Gz$6C@DXRU;&|X_I;{X{hMcyJ(@f-NYMrRVGGG~@#e6pydL^kUl@(6IR;>o zp-{*Wzop+kYzjS+kvWBr>;EmrctZA-*xz2zI$pr{?lX)hiB@U)rm1eEGP|f-Kb-98 zz$KksHl!FnMLg=pH_w;DVdSi~F|{i9FB@L#CSz>?%|m#i#%Q6*jN$Io>1DrcLaTz} z?0qvEmT=+1%%yu?<-t=-rktHTthD1@Xq)+^JE>Ua3;llC!~3`C0s#)UGak6(Jt5!cgmI$S*Iv zk80zAM93$U0|TnZ(My}}8HdU`w8Q`eooLKgCL0VYx)f#v^*``?`RpTTZ*(>VaJ0?w zAw_V{>5gL}J@RF?#(T^&un>76YI6-7AmaxPM@x`!?Cvuj$!hacn5~ zD^1>J7&4nnF1wPG^>>n%0iIaZ#Dq>rk9MbF!~52cBS<`MR}0xG+6N0o3P0gcq+gi~ z#sj9`PSLZ6y3swlB;P@EGw;&=yji^3bde*p)aIg@mxPbVisNA{AaT27h{rC1&Howk zN%Is>6)ALz*-ZcK)cFnYDV1B>vRdvQN)YC;V#p06&?I_lRY{M$ zTl5h|6OTlOm=o%C#ooYJ+1>fR&w7lby*-h~hSt63nNuc}BbmeLRR`yyKTuXs$?Sct z!kr=rFPTf}a8+ zYMv>)ZDY{Okh*26^w(ZK$SVipW_a1#wtAhHdtzA*D+Zd{S}UOhp^T?;`WOzY7K_N> znXEKBm<}T@9Q{S(doVd`V?qn#B>tU&N;xGJ$7)R-+%0^5P}m$Y2*1@U#-c#3&w4}i z)?!|Ny(J2_Rv7qu#uF9a+5ENlYKDjOe2UF2S9h{C75kZDByccHWzdruArw8EaTmvC zClmy45i5F%`SZ3QexUV9fyRy5p6b$vhwPFxh;r7T7OGC$%N}U1#_|w!iV67T%{LDy zwXP}QDp)BPNTM=po@KXEv|vn)KhJgbABm{0#F;BgZLXj^C9kEc1 zVx*r+P3Z(9@V}T^*70aow_>Urm6tLjbe1_DXxsi(Y-C0%>-ACsd-qM=H%dvD6nTal z4cNb5?K&ctiD}oi$^DcdoD+L<&aCV#y1TboBA!{B|4M`(|F9(AXW+ z;5J$bdR%qocZ@-8eWy=Y0846$y@BSO+6%Z^8lJA?j!Ar_pY{w1VZ&Z+033;Dq zs2hCC9d93V?$|L*xu1D1dj1s0CLIH$c!AIytNS-2j1sOk?eaLP!+2<1^=N{}eS+4~ zL6A$NGxD&nJYMaIwsEl{2?ajQ)V{3?sWp$(t!EYLUtV4lMv}O(!Qsyk*lhRBqT^y> z1~z|AHr-DRdVp+2$rE_$>mXLK-8FJry1Y&?vNm-e4(xDQ%M$%98%XI%ttjQ*N$9QO zc-Ki%t6BDfqe`-~vKLTB(W|w+ahO3as9+;Haaw$9P#jlahsGsK% zCQ~D9$@%Uj2~PEu5LIZc=$CLaU#uz~?l%WLQlo*NKmU?GIG}d|*$&{SdIg~}esi|Q zPD@AxTbHdFp;og=PHAhwafB zl6%|BG{Z>PUFLbo-Zvz!J!xe~Av38MA-WeUru=h)Ja{wPn;;}j|KNOw?^Hb z6!1jNqy}l)!@xtPZZOk$H&4)K{LBt+Y{<~)(wgY+X(HnEZ?$KKikCGn?a?mu$#zq0 zc;neS4_iQn&stP4TlX5whMo)Y?F+V+VI$L$XR&@4Db^x+ECzN2=G+}Jd*71AjS*~h zS0#gP&?Y;wcVERJvUWj6NsW1j%~(HHJJ-cX4`3oH_pEB6&{j5zQRFDYuK3JaGN~;g zwdG5+(7Bqo|E?`|T@dHS337OMB)`D{_~4}TIU2E%tIWEqE8bx*bCy)!5h0X;#7)wy ziwSQeCVy@8lZ&DBg{8$<^dZfr7aC}&__D>bb7=e8U@dN3&+OWFzFMn`x7o#;-quB+ z0>Y1Gf1ZheL__LD!=t+19NGJ0yL)b$8#N%$DjT)$^3Og$ArEq*TO%#Nu+<5-5VG@FYwD^ zg9fsr^5waj*KD8dZ>m|~*Wdc#;gAu6sxg!_JfyM#r7Bo|l*5sd{DOsl&%PE&#bHZp z){978o_d+-^=r9YWr>zGUj;O9G8b%ZzJK;SP&`*ujo3L8`vsC1^DkHFC$u36+YA>b zGN52n%WA5fOdRvg&hr$_Mp7mOS%4eLQSfL1xHinMu%MRKs-x1slBR?5`U$Z&=Kh5~ z?c?m2>4IsS8l&qBrrNqZQnb`>|jhosmksGop3JaV(zXT44IcF?7kI)~TzvptrP zZ#e1KtcwlPLQCX9do?9VF1928dKxon(t{&#i9u0BdY)JG^>MfAaoW`nyaz>p^E}b= zF(V6vdbSFT_UOpE0K_5LmgMOcgpKV!@BHR0c)UMf=-rLN;o}%NW2b(;LCT=*e z+1GJr@Xw{kmGdEVJw57MAV4PLdLQzF#2HXyKM?3>pq=>tcx;b08jcw4>sdW}l$smQ z+5=9qxxqyU9W=#sv!`*p*XQxcaXkmRjBZAanS+PAB?G#f-OADRV4d_;q52&c0ir3Y zRaaX)l7@Q(jAg(*qp=aL_0x;n+Qq-L0RDj3|B`6`kLvcmSb*leKbC3wzf}6a`VtZ1 z;Yq`J`MsXI5#e84U-zGKI|(}EY?8U(PKjJwZ$H(^t(LU;0IKUmyTua>)%O&^R0{cm z%z*q)s0p#-ND?=K=}b9;aJWDsvpzLGueEWEC-Tp}IHYbW{vT(F1rMZz`^c-6Z zv8CyVdA)#2l%mf1tOaXSR^46w5I~p~!H^er;nm0irt?aR@5=tPttk)oJ^M1a)^%J){cjm2Za94hm8O%&+nW-nx2daD*4 zZ3Yju^JY%XY{jbc9oOVBdXf$s5sJUV1~4kD*j%ewRv>&Len^tHE7>h+=b;qIC&hem zuw#&;bTEpJ60;UQq;@9lN}5`G|~U!pA5xK87N=kKOx3Z)bD{yd92vCH#W5XOY3ymW}G z6B-9#!q&1Dt()vSefB`>IPck|hl`xGC!;JTQwN?wKK!-Jq66ANvK)$4!A}WUO<*5x zEzkinXCKfc3i<_ca2**n7Y4-cpAs&Jzr+MT(s~d_Gu!>sBgaZxC$OHdZO1|LCXQT z4-C1Ud$*$5QB+|nB+^}Q)^oSPTI~bS;ZwQ19p4uxlM>hUa41jeo4V6f?X5~pDmaGa zxlPZ-n3jC%7*m1q9>>mt${#4p9o1@#=L_~Vf^;>T-zbwAv4HBmEXq;$UUcTg;4nyS zK?14$s5?_ZQ+2;nA z*;Bmh@Ahe)CCCb-cw91g_-1)0Yn=G9$26DJ|*$cK#S&et&$as)y2e&l%Sjd`Pq20f1|H#3hFE8WBz7eBz_b&uw4`27#z@J}uw)ItU<$!nSHvh@GJlhC^pv(!3P7OCBzwje9Q?WBx1eu)cXjjv!RnVUX^|@eBoUpoe zm9Hlp3raFvD&c!^2lbq+cEi#%%*O4qD!G}xAzuz}Axh+5PQs^6SFtNc?HUU66J#={ z`s0iZ*5WUxIg)xAvliAjd!BC1CKf z{WnmPAkIrf)8T13nwYr;HS(_gu>m&edzCb3JL> z#dQEUCmQ}ydsi^fO#{QR!n5gF02Zv7irarzMn{{$FY0!nV}mM@TS1xO;!uErE|WAT z)K6<(_a0iGEdI1uYA7q);aT1gJ9>gK$jVmAr1j&??q3qu@Y26a-+P%J+w>b%u`L)y z7NzBU2+pISP<>Ks%pgac51xAQiLrjz(@sJ_U;uIhf~xoYf0q*e!+9e4m5VExcKm&K zIE$BB5Z?XiBAG}yxf?u)0$8@9_b(Cb7+B-SU7hlmv=J#ikkIM=kfa=m8Rd%@YbrAu zplYR^T=!RdU>al|vr?}Y``yM>w;ef<2#`D)XVNg(^)C7fket%wH_?b@HSBJiw ziAEMHe_{1XAzyW{;WoP|%IU$7yQo`c=d?!@*7gxY+Jf4&nO!Qq@}x$&F!GF3ZnmIp6{C~;>``{0)fKV;Lyu4pGUrD0+o(=3*}x{FY+GMn+u`oVFc(DS1^ zQ@b^9PZb6zuHlevo_b|XvrM-h$0yhQ2kJ%Pk}>}Ge_&{sr?^N!$j;Ct3}PtwThSp#6NW3uM9nKyTVqez@5g6~C`v~rq@xBhiQEz~Wd$Db z&FE1Szj^Y@s3RqjTTuv9WEg3)YL(^MH%{Xc(1;yW`#gF@1)K_OqBLv@pL*^)XQ+<2Vz?_NuzvCkS7*U z?iZ<}(>k8HOAC1;gfz(T-K5)Bj@=RgpyZKQ4sOx;Z<)}vHx8!YnN^a5w(7W`nwT=) z!q*vnV_3WrLyJKCypP4x>Vd+**)`L-_-YmtG;%|J97WyUK}+l{?Ss`TrSoA)iH7%Sqi3MQVxGRU$uuQ)l>ylk}H^X;P z*(Stce~Qwlf-C0|D8XrZ1py<&BFFM^4(<$qc1Bq2w5XGtljli)&9jQprc&1fbVDO0 z=IJee56RT=pFRY9@X~afsOZ(;qxB6Z;`K7;rAhMuSZ3Jh;~9~67j9)qoH+xRsMoLy(%K^VutXM6b4$WzJ((3y7)K}Vi2mXVKS)i`G0D1>oQ`_A<#6#03 z6Cs3?=2~&y&oTPFBX#mb8`B9C`KNf^%=h7bgDZD3U4RRlxDEIJ>M0A$Kx~rR*CBZ# z^C~EaL>vJ{xSlAhJh<<++rD+hH1_^jQW0I;3f7-lgyNQ% ziwE(2U+I>Ygu{{h6Ui$>2Yj7z$@#v7HiLaBD=WWtyUTaR6`%&q{Tb4OdWtdk#e}(f zOv^wrUKNIRiN4TuGC@$yk#2Hb@GnulD2D>{?`NHtOe^^!{ShBbgbNR;1Zl+&fkN}3 zwsEW<`#9ia@LJr79j2vJmb5UHWKYAxy*+3kYRR`2>Xk!s`9whL{6TQ%N_-)!0)eU` z_>q$5OAy;=Oob}0lw~6}YV?f8g0V8Gm}S7W)2rSZ-q?u_zgSu--Gy?MXSMO=rb%M6 zRb%@S@%adFSjjD_N$JT|KJ~bVu0GZXlo?hPO_Zm6YH04wmT%K4o2)u$$gEs!Q>kaM z0huLNplD#6&_B;4Mq^a0w=*3Q@S57&BYF((hH8!890GN9BCVG2s8Gl8@G<3>h?~{(n`)5jWYO&fQSQljq_N4N8Hy8 z^_wIkFqYtP?ma_LiTD?SB@@S*FfnxYxLK2f>+8)Bw<&qs(?LHD%5(h## zzb7Uq$Hxg8&R3vaAT2jl053%)>*l|+$*QZO|CTPPZYhm#h`mw_Yl3KTf%WW@L0MY+ z+N}Fz?e3S#YUHU&9@;uj^9;-?zu%Wl?E_h@Kp#aK79+@E*c-oTNwsqdb*W=ahHNay zp)7I#%aY{aHfADuD9ffL0r%(8BDQ!HCG=uwbV+Ns>)UtU3?z2VT~vrP!D59cyM5hK z&Z^(0cF0uiZx=Fwc551C2t|>QcBIt7=P`0?PC!c~fzcTG#HmT3aV@{#3iIvw7!5%c zKg~&ErEnePdVcysDm{b$&aPnpD>)G@SrsoQS#;y&Xp8PM)TaWvv`1RDC!XvtO9XuG zmDC2IXww)BzcTz3VbXQbVexpqK0AN-TQ%cy)0{+z1IY&AW z8h3IFXK|WPvFdWuaU%Kmk5VSJ8t@G_2f!J94Jw2|T&+7BcS!vkgklsKS+cTli<~AX zs3fVZ@BV&R?+gZuySHVl`y$f&;qlHJ>4D3c?F}J4!Ht3u&rI*`{}`e^t6hoxudXsM z5VFhT;3)9Z>RdWtzcc}qt3YGD+}z(d#s{&p#8%O(LK+&U=9qa=+d^-FyvYfr?qE`F zrDSO+OenH4lelQ^qasaYFrTXRlMM93*f15E7h+xY;e8%6CD9z!%Q3iQnbBfhObekE z)ivg70Q=ouMb?Fwe+EB(=U5EWJJ>%SonO2DcXw15f(zp0pwI^izZ!_fazO(O>gMLR z3u^|DFROuUI>w)=i;UBe=aCFUs8K~mae=!%i8mLg=0=I$Yc0|_Z%f#o-H^%tpG&+H z<~Za(rWdYmEUFdvTw6eS(|RH0o2BO1c7zyNKNZ8nkIdkQC)tLV`h5yK#skM(9>V_} zc!B!veb%NJ2*yz5_uUW^2q+n8Fb&* z_^rcMZC$R_d8agfy#i8!LM)`80bduKC7#8BgHT3+$ST2tddJ`=6=X-)E(=l0!}lke z=h-*iDUpG9eVQN3dVJKUptS6R6bu5aQH7vs5peb(k&VC*hmy}Ej?rp?Slr~E(%)&;4P8h2ad751Mo|8PktzuTE{{2>&G7;vHEm zO!6%zB*VFyGs+9LohVo~CC|N$?P54mIUQiGeMGR-nLk=d3pzaYS+LpKy!6;_=Q-KN zftt(~>93)PSZ%9C?0>Fa|3oSljZ5+N3U$0M`>E=6f9hvB^eLT0EagJAJNg*z;_+Qx z!`pY%EeeTX{pWhU?rbVcg7v6(9b(DI5ohat0r%&4hd)%8mn=F2()G}Q<1UQ{uK(Vu zf%4u!z}Xq!+4hZx{l9wp#KeH_u~xM?RyHUi{CK`1$1Q;#xIr6ne{Rsaa+Z$4`FW>i zV!@C9$5sL*a6qtMI4Fit@vBNMx(<0L8clrPUT+9SqcfN`{KW~;YQ24OXjUriDJ+i? z#M|Jo(xgvww%%e^0zL2d&KsE*mdM-7opU-X33Pcer4QNR>~n9m!oUXObLt+iII`j* zY(x8xDed z1{HjSU1G)H@E$hk*%(s1>+JfIouK2ci!>RCM5P$CxV?~HmzCh+IC&T;q2EMlxd{uv zW}U*cxa=G~hNP&!WRdCH(Z`QcRLA@lJeTTeu9kH8JRsjMtHM^bapO2Y_lOpFZ%5Kg zTJ}gsin$@QdZ2^?WR%Wd{7{Q^P;PT9x>sDe!^z9pht*Wwm9BG`A-1yU9M?P-JFYI4 z{~;v*Q+$5$j)WeV0JbC;5&-w81cvS7vsLv2Or{1ovrfR5*W#blBG)3|qWhme0uct1 zxOjq5e9E9urKVh3&uXo;Gnfqa;^mRK46iA?4tzy(%9A^yW2U+_cB)Cly8R?aE_b-k zbP&jm>oKoXEvvE zpJ?RIxD|m8+7hjM*}8a6S!g`PCnLc(@sdpx?(p4gzWA3G3%tI&b6vG_F@WI68pQ~D zw@BuV_-l`$ERak6;NX*pLWv;QzgR{D1R-FP8TJp?$0EV>T+u$B%rXw43+|+*Y1FVFitEANV|d zmD+x&?p-CA-Vn9tN@wV#REk7iuKzj>ekD>N-h5CP^jsliAx9aK0zr*8uBOA%j`nSPt- zXeRii!}d^+2mKew4LMA+;=AJF&CTHULW5BO?`oqoB?@2`mEfq=8?7aVJsD;Z;!!&-PF9Sqs&=V7#!uS$U*@En;eVI%x7T2@v%nA+=j1S#@SDM)PTD`2QSG7cjz0c~tdC@UaIrT%s;;jlq_5VLV_&=Oq*1lh3>3Ll} zGWjc8F*-iASc7>S&zE`yL7-2~O?0q$XqiU@&%b`9bBSdkV4++Sze|82f~Gt!nZ)g9AFQH-sVm zOq~(^e678z8LQ%8a)Q*2T)p9O%AwW$8GUyuUv!X#3aOul958SBnFNyA+ze4wd8W9z z6!p9D9Ef8buZGQWd!tkv-Mzxdtb*d-AhY4JC0l*cOA9z6_TJHkM zJ-upQZbZzRoj{o*)7=Y=8JpX_OSneQyPl=$l2TaE(m#}Z`z2% zb^o18dQ)J5p1Bh_FvMbc%az{WI7PuB20}d zRV;aEy)vWsYxA#iABvo>SY#*Xce8ek+YRl_8qd{aC9I-nTWDYPq$Swt)B8HQ(4w_o z&B>5E1WAT;JS&TvFJ%(3 zJazU=qmgtBTV7GZp(xT?!^4g4PoLNrGJ^W=g}_%WfRyN!gC>cCKkb$_Y)^EMkQ7EX zx7nONqMobE_EZtcl3Qr;;Zkh*Br0b}?0diAyYO9_RhkOGy<=7Ix69?s_f^V_>M=e9 zzOdh%|N8g+57GQjoO@r05)RdWd+w=#@NU>j_^w)^B@kh`3e=&UCBRnX2hYEcCohDx zE*{qZoKLJ1zZ#%%eKZ*TL?OKn^Yb{x8O+Y&M#z@zOjXz@w7S;vWvbw_ zVx{M2d!5p~l`>(h*D&!=jB$@d#AVa07YHVs4fbDT+G+^yomGt4Ub0IN&_7aq6*;!P znB(<8g2|N%KCBzkERDgQOr=vb@7Y|QyEkKsOrscsNqGuQj5zrqIjHV=s(@h>amJox zb5q={04KVc*Fl>igEAea?g5F)m#A>=FJkjHryS#1FOzTH{+F$J?o8VcOCA>kekf$a zJDe6&aFU%y+Al2%uk%GE&4TtQKBb2Cm&rCw!Nx>2{~fyz~6s3_j1F zI$ZNe+3k`VNz6%Bo++P^^%P7sxugTP+N?ly!u2m?1_$SCc`q!W?(ois zAfJ}!!%p!Few5%B&Vx0(??@AI=Q~K?PhXZRKPxZL*w5%FB2OTbTno=fmXqbRrKsp` zWtKBpjXN+l=L12r)ANrE(f>CaBGN+(Co$QbL3w$3J;HXHsa8}^Om-&(0prpS*2)L{ zuiFxlV_bT!4;H_t|I)yxXIs(AYpCP|mP~#AQFO!3_@_Q!cWYBhh5$51%M~4rA&ZEg$YJ33vG;E^AZUF%& zva@DKSY@WC5@~_#A&Ugd%w}tcT;cL?5BAf!qw74eUxs1DCi|q}Joki%hsb>*r$2A1 zQ|A;7j`UW%zzSyj5`AI|EP9LY+@o0XaFZdmpz6z5lk(-7k`H){f6+c0tqMxvWPchc z{D})+VBSP2B(>h*@wp8Lb@B|8YK;JNp+GozuoTuNm8X@ z%aS6IG*4~YFS(Vyf&YiGw+xDF(YA#XLJ};vySoH;NE&x{3oeb*xFx~e-GVy=cL?t8 z9^Bpit?YZwy?ej!yLDcw|8y1AmFhKn%9vx00cF$|uLp-w*ctSO_w<2NGSJ=el|7E- zw3OXcHga!*uls6o!szGYfND8*4KyB9qIKb*dtI(OqIAAyc<;4S@iM%IQTb2D?$;P12sPobHN-!z+V~b*~3bw zi@MI>2CY*!v-*8kMdMaOMMJGi7kn<)q>liSb9>3!lk|XcX11ny$MivmKC4DiHSvwG zq)oTGe=62$n|D5k!~NV=eh{^Kt^Z-UGfs`^ue{}VS&G@$_BNaAE-y3ed`NEJ(VubF z5=e?Uy1qK8*lry%A1(12mX9$ThC|)1LU$X-uDD+kvdOtsF#AR1e>{)9bch_>TuwDq&XVFvd2n**v`Xg!h&8|C8_jdvaV0|Af9;4=YHoQvo%e zEtU`-zTD(wEGCAeO9{Z6ry2#j$@1eWUW6X-r&IsWpDKepQawSW(MJ03~u8c@X>QjC1`^hFLG|LbaU-_ooaq~;qw9RC!yJZn9e zNrQ0Zk69BXpwH);?zD-}cS=A+HIl*y3x!Jct5ON;^uDyPk5;X+OMN=0(USY3&m3W? zR&M(W)QdWquznvyj8Lu&byZ3Gy&||u?e|jWCj@#W>{18QD8^`G6UG=%zimV1vLiv{PT9iW z8BzE5l$23wo$s&d6xptRk9@c+(i1PvlOH(p#-C^U zq{xEGlkAMoXGr$QViMD#VtuNa&D*R-dF z$eIK8j10+d34$&r7XYj*IGa75_dG#QS2ve?FV|npoVOY^@wAvgjZPxe$#!bF4)s(%F8 zKi;eb0|u>(y0r+*hFx7-g9)dOH^-peTS6}{bK8fJG~1fFzMt5CF!_0vOu`#y8EPDy z6>#%kj^zI)*L^z`BCdobpm~HW`^#iLHyHz_lrER2p98VTYs;B%ITX5Bfy&=8BU9TM z?9WBaX`B4jCVEahi4(`*w(C;|CR>f+}SgW2a~JdxKCx`1Ky+*|ta@nP3IX||2tLjJ9vB1H_SFErb9K15p3SL;G( z+d3iKi5%)rU%A~l>wc@fNv$k8BJy3>p+aTx6<$i)m27bPxd(@xsUlG;4HX)Jo)0s z!bsFc0Y-ptu|CVZUn+f2Q&Tjpq{sPgI!y6%KgFbn#}hwB^q2yZKRXgqIhLBWCd&s0 zu@^IexV1ZH!+2t;m8{BEm9tp?qx%1A3jP}eL2Q5=h^oZ}L{KC8%F0T;#~x}x+4ZTT zG2kZhdP?w?8_zB2p$aJAHpc1cf5+B-y@rYcEJK=&aEyjhMNoM>cJ=V@M%n0#P#PcK zh7gM}ia^e9?x*WLFZ>mh7?F&jXf7zlT2;AgG*()@0w%#DYv&_i%_RP$`XEKpMqCzk zm_x$lR?9htBpdoe@T&L>(&`1#^OE;ej@5j1A#;n9tA?uaF>Pw=OJ7d9Y;;$+pMh6@ z6m1z(^h1wmb-`u}jPg+AJJ{wH+p}@B*pwRW_(EV$|8?kb$5JCN7?)-f@{U9{N0~~> zEwn^ikw>KHs1bcANTBl0Mq&Gd;?)YK3FCerGg5RlaEx9`v{y2*($NVTFQRyXsKiO1SZ3;?$3qHz9cAR@bx@c@ zN~~@BHb|_cAbbXoLQbP$028+n9q|qygUivh9tg3ftTMNNF7m zAT`k3Qi@rpYv`iQce6eUnO<5NqU#_BXOISoZinJ7Hh_n@O^p=GGDNu5Ha%;8r)l%B zQal;zPn;IZL8H1lQr0-s+4*8|;(|WXWY+EW9jr-{OdcRDY0k10Nis%*ey0`}H%bdO zR|iCzq;PxOl3i;2G;oEWl4YH{DVTC>Ir@nUTcr}YR@|a z7_TeE)v$|yB&~nEK?(he*_ez^QKs8)K0bbyW(&DA1xl^9C6Kko{=3xHU%5*DeNg!( zF8v4Ez1XA+Tynh_EcOKaHZ50vu9VTq8D!-#ERvWECAvKAV{DHmS*rn zL(w2la#BV^lYf_kvf&;-%62|Gxg^VEDFm*}z@4%<{+fac`fK6!^7Z73MHJdN5pd3; z?5-ja{v=x=nPtcn3zBM38CjPI6pz)k5Ck`ZQ2dRZerxpF)$|%AHE>B`YP$BP z79$4-eH^)yQXPj@pE``t9k%s&ahfM{yr;i)oiRyjbKK&)XJ=x#xNa`U>U6eQ&9d5K zQ*HVKvBDvrtklyBX(?r!@W0D6@L@7`w-@GXc8?L!tI22>vsKW&2ix>ez{3?G{{tr$gsx=B}?=1IC`Sdb>pW?NBOP!{X3F@!SG0ESA7}?n<*6* zy{^eoBTdzImRilq_y$u|EwRe|t9dK=0E>Fa!1E4bkbc{P1MH*Uk8#yXisM|ba2SHZ zr^M+1KQ30-l~!2MCKmHTab2axHtJ2jAT^0Di}bz^m5Ipji)UAxb@@-UDT)zf%F{3Y zvOxPExbE+XY8@pK)Jrj#KqeZBU2lKK!pq}!iwiKi8(x*cUDdaNK@v!9A6(r286%>^ zl`sTVz!=)mEjdu^4p7MaHMzF7!!?UFG=FEv zZ_dgRp=W$?6e^A~L0C}Go|JJCFr^Q4e6TkNtE2?=HeAtW*6YD>kNhUc(+@Y!oF4=x zQ@fja_^OGYf&_KP(0`62$6~~GH5uL)aXi6=@w~_}ZjKTyZ2U%i@a^9pxY92lC0s^= zo0keoy)b!nkl7Z3L!!sq(^U?TurDKf&kHthM1C7xl_L;ZEdV+FN%+BTKXSb+|D^ny z73-i7N<7(NHD2YO5!2Nkl6vN@w|8i!U~c*vC~Q7txfU{r!9;yFzD-vh z!{>EAHxQi_j~e(0@yc5ou6 zQYRX2C-(mrhW59#5?Bvyw7V}N75{5+5FW6?6NxC(F`mP7f?N)Xm}X{oqyc+SSPY%5 zousA=Q{%rwae*b!q&{QJI{u;5DtX_VyW}#U4X%PITrNaWlI9(j=~POC&}o$V^Q16G z+N*vLyEodUd?bw|bynQ8iP0JnB`F!TX+6A7O2gpUe>iG&!efZH`Q=W6J&_;Aa6mkX zb+$|ic`UTluO7Omo#gv!o2QV!Bj!Z((%Yu2=mo!`b@30Li~gv znpawrOngjzgylz`T#8iv2LF{l+IBVm=D zfkubuD&^j33Pj_S!-C1P-*5Ym-r_GcfPZBHl$ck%JpNS&1Hk?3_j=l?jps60iq84P z?+KlMUk@O+!wN(G;^eONsH^C9?~G>XPgjb#Jl)qUt4;S(Vd8SyFf0Nx%6h@%N5?}S zI(aQXE6D<567>Shr&l0m5Qiz}f)N@D3$%2SiOu{p=!_G(=Ow-wE zBlDk0#{XZxT`b*IqGrZ_B>X@LVp4d57z(){+G%h<{LTKBREc&g43i!gW)`RO%41(l z`44=XNP=E_Zcz`9kBpPieB4nlvF z0mphkO*%wWciahRxXAQarBKm%(d&rEH%RR!lIVL_TC0eKH|(vmSL?NO8_7Pw!qTtu z?8X+HoE$grSBtMjDc#boS71yA7;asnU@FBGEFj-l>%R5Nt&O)wrwv=_-07#CZkM%6 zU<6wuBsR;Yx4NAn0ANrBt`p}Uff4;YJji~){xHVpBzC)b&bDFEvaDcghqe0lKM)}I z`=Fj@ZFgz7xpY3%%pYJ{#GHLMH-x0{W(wMVC5Oyx0guyojH-|Bw>K7?A%>UO%tuc7 z)w?BhW1|w?T?GIstRt?H$)a{2(f(B^Dh1pMbX!k?@#LPHrU?)q*Y}2q_Lz)x@3WED z&}$b};lO|w!B&EXRwQl9`p*Wp88iBn^OSB>!`>h&AznRhcj=iZG814IHuyM$QN;{) z5sVSAdUy_3WKSNbjPwnk5_f#<>2gEaTA1%4n}lHIl!c{9xY|Z=NtnszX=Zb%-t=jE z8Y^SY?xUR#DQ+8ChsuqWBB(T43{FcXJlw({Gh6a|#NQJA{{#=fL#DBY3)>aR>M4j+0Gl7eBwRPiuD zy*aHFKifRX8ho`rkB&QSQKq_{s;AEmCco~a^F&1g;ziu&MYVzp*F?$p`=G4Oudh}Q zr}XNuv&R_xxC1b+x7FS{te*|4nY9?iXv?{{;IJJr-I|V=SH_l2JCIVJW=i0sT|PL_ zK%Jw%4*EGWMCgO|-ii2hjbAu~kRT4XR_qCJwV$ts;xi8H;H7!r(ou3^w6Dixz*YO& za?0uRGVj`gI)Y5ohsdka;QXn^s7Tw19tV~Z)}W{D2pkxDvz#0xIhl@T#13XTBI}0- zyTK^#1X2tBdQXC$=Q)WPHOo^9fGCkOtj`F^d6K?;U~6tRl=!v=)P#>0H?7H4h8^Vn z3Qbmkse~ThLv2Y%HAzc#Md~p0CgXQ6!vu@vh@-{ewH7Uyo7PS2hQ}YO*2A#!#gB=0 zqPuei7cZZ(_$0|uQ~BxvCP&kkj*E@c^WU(UhCTRiPupPWYK#w;>$R5xyw|tm9K=(X zkc=%j#kNEVK3fMGJ~&4nU1k>d!=3~Ek`Hu1EUwoTe-Zlu>BXf1;B7p#-x-+jG3Zdp zU?n#uVBK{Lt@#6DEexwn*kyQBWsHmK&2g#iurxTX6t^*XVZz<4H~H?oHCui=%{!TT z_5D53?l!Q;QM@=^&tFEmH-XAkW9O_^}V)$7$i2$ z%mRZ%)b9N5!bZ_p{u^urf?3$&uNY)jdKH{N3!bgvceu|%2PJdLrjt_8swv@DYVi9&G7 zl9$l+T3thcli_7x#-a?~AwUDC%n0wh*hz2aq9seo@RqL#hipj}7}pHN^wNg$4n$7x z<9<))gMuw6p#V+>%9YaIT^Xy55cGbnjk^+Ikz)*b%u z_ouu}Q6lqzm;!rT%q#m&0}ADug>YeOA5*L7%<96>8G!80d!%h;3dGI%V=mx4g&e=P ztJW`01$jeY!Sp+L%e&$_T|{E_g{IR&}K3!O(1uLX@f zO$mFiU_7gzd6S>Sx0c+xMr^kLDM;3^FsR2|r{ms}-|T+%bo6qM-*Nj?7hz9T@5sVF z=k%;vjD5W2`MJ~mD4pW7jkHZSMuJ~BErq~8p4~rY6x6^<#~t0XrhKIJ#j2A{rfOY2 z?{KX;YlEpkg+Fv9N1*qFTK*RjxA#peBmXZEyMKR1VAo%)4xzjuY6VGH61<5me$RdA z>!au1ERDTNj7W}__24?|EBmD;_ui}zSiVS5#`hRPsYb0ZUeE7R-W~sH`t3}@IHbMH zRVl;R>|(KpFaCxihyeaQ5A{f>&a6%ELRErH4^tuw4kl*_>7d1ko{yn3k=a#+VHe=E z5c0$6lUr#hON3sFs2GZBqi5@3LF5Y3UjuKbab?*4wYb%}bRyGW!Ak)x#o6O9o)I3e zTD%JS6Xh&DRi~UOHosJSArpFhquO}0!K0<3a$$UNuTLGIywkq%<8)??;_f!sw!xcj z&E8z*fup>`_gh*iV}!6SIhS-2M+{}(Bqw=(BLNum%gQd%hfeMo@t?qcKdQ;>ExZE3 zQ|s|k#hcq2DV?XEEPB<7{M8TE^+DMLD)Q7juy1%a#zxv0?&V(x5j@Cget?57p-c`) zeMQG1sntNL4#9RDR(t5uIZmN`c!r7 z6UnY;7Xvob*>%y-4oS3UsHVKg@pl2(*hx1PH+)JX-**L!aK*X6>FI(WVr2s#>Plvc z3J7$1*^(;3#<8w+E3=dS*U=+C`kyAiYaKGU8r+$YJEac@LQA)LW+!hNi9&t`~Iiwz@P8m z*AB|?OA}|o5%7n`HJ&)0(CJNvnPj`K_&yS&S#QMke*l3T%} z3$>%Sv+iW0JtUzgY*`&mBs7k+j0p;r;*&Cp%qBo#sK>-6e;Z?++G8jb^+3Qqm3ulG z$mGkr(aFncd-W)>RPQ4C96k&Zwg?8X%%;=uae)t^jSc@8TR*6OLhqMkq z)Qe=f1;GEdi7~E@V!ov^Xe1 zdzZ~kZYT(m$*>xf`5XIS_fty7H16*JLkpWR@c1=c)G^v1*2~etmzx$tt}oQ8kzB0c z=XFIR_xrXMF7L-x`P8t0|BLVUx6TQs{J)672!Dvd>qYVr4^5P@2&Oh6Fg27?w?)}3O+wBy*peMN@g?vXuU3cCKjU(4L7i-PNCGEENZnqNZ0iF*~RwYEw2;Fagzs8*@Hl1j-Y4a*j zpJ&0RW_P<=e+y{x2C7n@EuBK>DL#kO6L|vrGRohDOyTAvbMFn6UKi z6XHpa-1+_;X#e{#{I{oPoBAnsu45cHF)nZ5sm#vaKwqBo0l06{n6!r0tPCrw~tZ_c1*rFqop<@NOa(1s&Z8aPh&> z>CNzdQUPCx`m&^Od-A+{zRgxOiLC%c`=zHxjoI)=Pf%$0KR`Wf8J4C9_TE05g$1Z8<*}Ys34+~G&f`(w6lW0 zeb4`xFaGBZDGIo+d=uHDC)+oWJ6)M1ZI@|v5MVr9NhrD8dmPmsnmp+f$ zdV72OWu?Q97>n&lsfEH&VUb_}mUz>Sybun>q*@&IdCL=zTF_+XSxj4W>xcmMpo9X*~K{!5B`? zfQ+@-%_l-j>wd->P% z6M>r-!ovm;NP2vE#nA&Qt)CXF-U@aseAwPaGZ44MdHTCtX_xlTa#*0>f1SPUQ*O*Q~q?bjXuI!_}R8l9M%D2MY9K^ z{+PjLKwU!(IC~zIl(U66$!fVL(sz7PD^?H^@SX^MSWYwlEhqRVq1yKufVjN3&W#VB zZuD;N?j)QSz9QgA=S{*BOa^gmXAbOf&s3=~ap&!`NskVv&R5QFAzHHFWccF#$w0W8 zgo*zTspbn5%J;7j$kY1*gTxO^?Bs`Px9@TbZ zk|8pxY9G)Sz-!h~ONL?JG6;GYFJB@?bj6z-om@@Ww8Jtb!W?qk=RPcT6|xi~4!KBR5M%i~Cr>od9vF zO#gJb;?@9L+GKcm*wVUZ z)kgun%{FVdChB@}taCxhG1^bk@Ff$ZIOMf?s^4IfLO}Y70-k{Em&hi=KN`UQ?F}(H zEH)egH^h-zv5uJy;I4AfD?_9U%)F$y2g+R!oIozon8m8}?LmfO!vR$X&0p5C3e$T~Ib*4J#^aks(*3x7;bm!W+LZtLes? zB}qrSwx~~IeAC5xz>X{|ru$%~OeDbRXeeclPtDH>eWk`LjYoBHdngWGLWFA`a4Ack zS_D4lL)*i%I|P}eLc+3C4r?Ss?4j05rpt#+6!0vilrgG0X??v<1%50^;Q zS+m{t5*as=0Vkig4*4iS(AhD95xw!x^?X{w4!>CdQKXy=gVL>InJ4Z_taHJ0M>g zA&`f~1Tx#6^7fm}TFlGuS~HXaiD7bcpssgOfKsue`l8%q@d0s9UNp!`9)4P7U>@dK?^r6n9Lf!Om-zGw9E*<`yl)rM_)b3Nbh^5zem`RF$cxyYJt?N2@8R#1h zq?OFqp!&{Q_gO}Znfi(aU%-Snu1e@j8;b56mX}pz5`rSA)k(HlkAC{o>Pux%-v6cOa8{5Mvn!UG)vmV#KQ)pFa z_r85}4Mwjvxv~fVfi4dE%iCTUM+-@#^;#`3-uef8-H|`ltP>6bvG zJT0?Wa95L=I!tWEq|-Ruas(=FQLi|K&iwg-GCawrRf=XM3z>#ljjp{kz6NxDi;K7? zEGAufyNWUm)F(RQ^>YBGt@pV8=!E?0^?!H;x{&HCRy39?{^NDMY_d<-57Keu>aQGAZL z&U{)E+zt&na2tu zYgQn;PYlxXmD8BWkQZ!WV`7SibX|4pj@WMxNmwn^#H^V&5Ma_({@6QOtgD>Q2JNPB zSZTW591|E{+;GD0Jjb1u%r)8QX?^Cq5Uh=c?E)DqrLE;jBgF@*F!_{pFf(v|uF9syc6$Vwho|v*w=~Yq{AoPp z&4sG2miknmelqt^!$cWiCnVU7gpBJ4U*-Ck;k^5UP2{=^3qRU31=-^wxxc4;6=>rU4pgcz844_J zBhWj#G=T*YX}NYo)^#BaL7eZy%?VmtURAy}<{`(+CK^rnmIvm=g&QH!2T<>=iz+kK ze+W7tDs2g0!w{tPPS7xX-ZlGW79lU^4kf=TkVzg;VnfqRKpB)XSD}6ueHn$!?eFVu z-|T!7e$B?^s7D9c^tU?OEFcJ^_?$h#5rUtFQtQ@#zE$+Qb4n>T-HhBl9Dkw{JtFRH z&|&{^yU+XmvB{vZU+zfw@Bk5^#8w4q&{*~x}W_Ncm8>eFN+El zV)Q&dtYw3!`7ZvtCY?`%zH^1oiW$>T2LmL;F&Vid$;@y#t`vZ`tM*g&&X_yAOHa0di zl!gk2A4u3t9sGeq^D8l%(om^`h!y8t&zsE6@1Ox0VhhiWMM&%o3!y*F_<%U_=fpf>v>RV7dHAN z96^Slx2y;}X6!*i^yu0=5&?gao7*8k9%R(4m+uef)B^6fh6}rdKfQwf4=-X#7-EQH z?3bE01sH-4hs4U&as>t2uHmPHhdXi^wR^<;s2cEw1jy>&_q~=P(*yVt){0J6n~EVs z6j~yoeIVf#)2i;2Y!>S7;%pA#8rDu#x+mo_MZe=f3=NG9HUK9ouyPZXk+qJNjHHSb8#a9o=X9cJS@4xO)3VN#46NT9l2>Z?@` zB$V=V_cdUOpf6)%r-0@RQLntcF9I>Na3{{}7>fCZ`-PyBAgTz{JL*xhWvsrJkM0{40IjCfiG>FLfh zJuCr`cF3OghCl1y9lSh?l`huC1>~)01EQBahEL;KbQ=@**_`h=IXQ7Ob-1zUM;@%Y zU}!W);^-1C=VQh?z(LYAeR{iOwOlt^H2{f2SbeqKi#c;Cg9`&40uS1mhnVOj^ z6Lb(22;}R3YKqc9jK(QKm}E+8#ZAlOEt?518u3>VfE3~+%1reCkU|(=yFeg}asgUC zK;JWll1W(i^*$Vy!jtu3Jl{%?jFW`8irk4F6`8sNkCPIUVIkHnKStccs_~4Jj(_}jz-nIC7t@yc&H#*(SIK%D|@5GkGdZOtp$e^-WGvN5#aFU z#Y+=~agLo}H8NAkI9k=W3pSF6@0+u7c@`7$=HtQ@=OAQMn z(C;|(rSWoFq3CMQGs1q;+k(RwDzmxP?bAh=PZw|n-3g}^uxR;(8;k6kwa(7TX7Grx z7pcZQ0Ax%5Fb6m(af=aQr zMhXGbH3=jXD<2@q{HIpt)i-LgA7l^@vFB%v-I=3Bg&AhtTIp9Hu{T&S7zAjvJOdG< zAj;LDso?JL4seX>p?ba9E6=5$g~;3j**GsUc>zerTCIs`sTQ>2Y`|^$L>h-j%|uyM zhpHGGBL6r{K+ez)6n^2U@Ip>r5w7eHtfe2c_?<4zR9xEEbh*hZNIQZHm_~@GKpx@P z9MYK6DL%PQhbTPn(CI|!W=o=mD>yr57_^E=rKCL7rK$i-1@gS42RW~0d*8x6i$)Ut zlEkHuuGR8$%*`?G(u&tvQFbjV%xcpA!(|e3vww?gwvm`yF%{~gmWva3Y>ZerT-q=* zGc$I0RF0ttW5m2u^8_BT%yOP|Q6-fII7&_BR>7wJ57P}W{&c|r3JD7$kSE6An(&NygOf&PpZuxf=@&( zlI>9pgNh*+x|GRYLAFz2%2?ao@rK;pQdzpNcfF@)EuAF0GllG?oC;T=%Tn8)-*_J< zpnLPN#r;~oX{L1A;P9!;(8WbhgpXOrx4MiHq*?Wwfe2nYoj+!)MmLk|bGe|iv-6%x z)Wyr~lXLP%ujZ0+&i6^?=e>lPhEZ7}=2rkPAa%GFER_DtYaX49IZxn6H~OswwUV31 z+nS8WRV(>TMElf0(Aee$CZqD(lBb8uOm0$0LunocrQI@ssVNoy`lOXY!XNeH`d4sqo zIPHRd87Kk2&!d>HlLz!0U5E0Z0AL3A(I07{!isWwi#=4ay+3l*xB1TB=*-#Ke`9ur zN@3)tRiRob*3P^Bo=>g2#&9^b;n{3QSH78$-|domq*O3|`%74cIidT)qX~MB` zqG8l>DFyvnID&*y?Lu9mm!}6N&zoURdvzcIEP$i&CbYmVX$ms{gaV%QyVx;q3m!XL zX>nJs{_;7=WDm(VJidVV!++`$fHs0S6FCwjmfa89HS;BFL;_|P|C2448uFUJ$?1 z?TXzX(QQWcPlw;47|LN3N&``iLFCUll5xSZf%5T|7u!Rbz&>yAV=}&MOef}SiRy4c z+@$HKq#d^V+CTi|@`?(f0L0*)3r3zL}1{5FItsQOwO&?zdu zfyWfWY50xFrEYPw5Ya$*42R8?iIg{WIzgt((p%xFZ@`*LQWzWRB07|@fnoUf9K z6+4EXCk|lw#5!)#j1pMg-WSE8!a99-vXO3ttWvGYKIYeA?gLR|GBE(RrlHqXUAdHiZ zGVUwlO3;xWUuYqlY>0ZLiMbvWqw`w)kQkpE}>+3#!FEX-L#r=cf&;7I3fHx+s)etfvY_Wd` zn``PJ#wh0GpK9-&`?9+Z)O%xm{IVo&heX#}{f?Mry^S84c_$lgK3aDq!wuw_fBm_= z_>K?gvDakZlezLJfm%b+-*5Z;kfO{zf-qLa*RE#s!*GhnSiD z8pk&{92SFM%k;tz?*oSVSf75LOsBlVtYo5vRXQnT>SCr~3Kms23X?&1e+uU(Op(pY zGvsOjV?8oaQ$Gfn4E3HLyGX$Ey3H=1jR6kaTWrmPsRmZhi>DhF^QpclHlUPSahUVx z6JV_rscWB$`o1%XaL&7aLK2jpJ+&<#`W0E>y=J|e^HuCNO{ zi+Xv;SaR;k_<~Z)1K5XGo8DMkEEGg(#2i{xWg|~lzV8_Ke$?L#QkEm{3!^@&9IFjG z9Wtf$TK{=LH&YTtNQ-p1DmR?M#(bc47Th~qj+&R=B3e1iRmyE|qmj~C*5aO9AN^p! zG1NDuS!XWP7VOYr5^9drFO@Gn+9~vWb|}{7#Vno&o|Ody|tWC_L%F<$7)i7AIO()yEUPwTkKPZV`X* z2&3>kAgMFGbtEooQ7+OE4t%z+8zeUaA0y*&M7d1M+qpT;<6}ZQYH}A za@E|Qs&*zu)&nr;yS8gs$;pMy8GCAxd3vzjAP7*z$Z{~~BkIxnJ75W%mM0oNF-ghI zb;*p8QhYfREbsiNso|77HVv8b4&8~31f<>VDsc7V5Iv8>jrwC6o5?#U;#dFwFDKMU zLIM?=@Ff_K+G5ZI_cTy=Y$5+jH)#&+z1nn|OcCRIr3y)B)+9p)OzxISlyZ3|BD=EP zz+90!N{Bre$HWv;Ii|m|)KCpMGmxb5jXC0h{J>=g5Ab19VW5$UPTDrmYt}=qif~&K z;cd{#{vTSKpm85ovrWtg-znGx@sqb1n5FXyFLrW{gr{u@o zM!{HAi*{uI1IHhLH~c47>7PX@%hkb5uF!j=0ng{`zpx9*jqz>(y#N@c6Rb)0h#Kgu zjsxh%E+&gwq>ndk9R5|RU7T*9rd1J`wfHp>-_ektrE#6*01YBp{3kH8c9F8w{`~pT zAd2?I`+gI4x>PNKC-8J8$nRIQ%&68g%_B6r!FM&^gnFy$Hu%%7PCc-MwY>HQZHPS;;;;O^z zxsM))Y9NHUT1gxgrU%yYJP%sh5gceKBme0FDLXZ5cAccWTUf1Bp<9n!w45!|i4pW4 zdkzGhH28?5(GQqxuvbPR8_?c#K(`m_KHalKc;hQjJ>m#ac8z8Dl0zUjr$6M^a+60x zO1HO<8M`|dz`tfV#)q)_m`1 zPwiUwtxND-eC|n6C<~t0MpAC*L=orSr)TaDg6}k#J@J>D996cl=rw{QRST(ZkSuj% zsIIM;i%gG*9o_WYTuv}sB64=@!B$DzSNI%B^`516f@E$S`D#ptx;f>_ zap^XU_wit|_(z_*3-!aJ(FOc^9sUr+Ohe&=h?*LfzcvZKsg7@eMN`o_e~SaN%?SQJ z9;5m!-G*7C>Mpi|7Crrg`RSKrHoL6uETEfON}LJF?d}mFeG$(rK^Cy!=b*jeakrO^ zB7IvCxEgJjhPv)3heAhde3{NGa55F-h0CK%Bbw$L=y6q~a_*9WY;1~nb89(z;ImMG z=Dc1t#w@b{i3NnC&e2XP=0oxf4!a-L@2Vic(KN}UcQ$#7)l-#G_Ak_2YFD_mOa^V~ zhx=)|M#xz+^4v*6mPD1L_^a1wP=$Q_ySB6Ol!fHYy?*lZ{TIU%hFTpq?1M@dPz}4| z#k1%iy__uZ(v^Bxzx@6*5J}?m_N|o zqc}_Sl680&tZ1LXwvPncvEnX($*BgtP1AQfH$&fxTeQf#oR&ifO6xqvBq-nTiVe-LW8=1j`2RJv_RraI&I!U%(ARLp);yKY>s}zCC^q_? znslc-HNr);7sb&{i$0@t1V`YpMfSQnY(=jrPfJ&H>X{59>!uFGG8B77m2T=`tl+-) zx{6asl%bHDuk4HJcD8&J!FFeCOP8;pDkia00$y$XiKFI+M${zxCI0XH#NlgK!YMjvb5 z1R}1uIbh!ob6y$)P9$sU%ihnA+*|!oofbHg(jp#JdN2lfe(ui`@#a(Y%wbOlOs=IP zi5y|?5V3!lRGErmN>n^igUYl}F+QL`;a?A!(eAHZba(uM-RLbo(pVVxk2q%PKpRE5 z2~VGQun{pq9QqQ7JX>ihQ(DK>`f>t4K0&;;WnBu>X%)fUk@27;{Jp80e?mHRaw;oE z@Wx8c8)dj1B0F$~ZpTkc$j;#EqcWhe2&_(ot5tjauBfuO$z_sbTYIMW0Nx?*cgG2(aLrqBYKP$J6r*-PBREa?gACdF!1Z+xqT z1cCY!w_+|3X1LX6LxvHf%_dc6tnBXaJ3G?X1|yjA^&ih32>2h$_cT$;76K4gmt=%E zZ^r4i0Xb|=u=TxHhyA(qe(9o^Fi2uK7?Wkc=J+$sWKIG%Ky1hzn*VTOvyn2Uz{9fc;^hepMrh{R#hvvA2whYwNN= z6M_>wK#;;+gS!NGCpaXy6WlFmAQTQkD@frI+#v~4NO1Sy?(Xm8>wEj{i{)9 zP@J=6?X~8bb8ed{?mMv!pzr9q)5*TwH3Flk@guTuq1ei<9qyqi^ zJzqG2HxO_?c*trs1o8WRu5(;sH4qfvdYPb&5CTTL0i&L)F0p5uDK0+SB8IPl?@MA+ zISqXqWg-^}9Gsfq+fg(9&w=)03-oijR}68Jqz8O4_iRCDAdhSNu_kQKdRfQ^2E05|g3c zpzYH4;6!!L^@SQID!0Sgi5&yH?A78gUT25jMP2&=+krj)J7d(+w^)mn4Ng{{EJiRTDjeQjD{W7C}5S47Vs!ThkRk*fd!c+`KPtP-^v6#~Aj8k^i-j?j(R?Etz!m zKipoHD^P*tRPe9my%1=l3V398RS4k=mSO{Xu;?vGY`0m$)k7r&I}%$jTRm94qZr{x z+&N`Eao1ku*pb|vh9GZuzw=a*2#}t5iR0Y76cJl(?0XH3{8fI$dUFX0(0eXXhW`UR zh8);FraC);HA&X|H9H>kn@S)SRUrn>BD>6XvRtOk|A8amdj{bd;P6??>b`;zwBk0KP~gGX5!kiK-kfsB&|=VD$rohi zAXjMpkip@&AIh}0y8U`@`>SXEnd|*F=WM_#1`Aq~t@h<))tj@oXNd(Z?Jc1nfG?3^;BpGB-a^=T+)Y~g0? z9-22YGIG`Ml+5BbMQlWl*}iYTk+(RUuMED}TVxTwQ-Sa(6`9mT+hm(oy%0Iuj9hg# za9j#gE3o0u<8{w{t;64=RS2(Dz7**T*cYt*;9N@|o^qwSBFPl>4+J6-HC4Y(5o
  • %Zh_3`7UDf&L@dJB%-DiNsCb0)rD(w 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⁡wHZPHn(Q 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

    WjN+K{-U=0GZtXC+y8hVitx%X7K4OS!;7FCafO1 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�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

    ;gl-eJ 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 diff --git a/inspector/index.html b/inspector/index.html index e9d72d584..42345ee45 100644 --- a/inspector/index.html +++ b/inspector/index.html @@ -727,6 +727,21 @@ + + @@ -1944,6 +1959,21 @@ + + @@ -1991,7 +2021,43 @@

      CommandsConfiguration#

      -

      There is only one setting for the inspector: calva.autoOpenInspector controls wether the view is revealed as part of connecting the REPL to Calva. It defaults to false.

      +

      The settings for the inspector are:

      +
        +
      • calva.autoOpenInspector: controls wether the view is revealed as part of connecting the REPL to Calva. It defaults to false.
      • +
      • calva.enableInspectorRainbow: when enabled, the inspector items representing collection types will be colored using the theme colors used by VS Code to color bracket pair levels.
      • +
      +

      calva.enableInspectorRainbow example#

      +

      Depending on your theme, enabling the inspector rainbow can make some items not display at all. This is because not all themes provide all (or any) bracket level colorings. You can define the missing ones, or all, levels in your settings JSON file. Here's an example harmonizing the levels coloring with the default Calva Highlight rainbow (included in the example for easy comparison):

      +
        "workbench.colorCustomizations": {
      +    "[GitHub Light Default]": {
      +      "editorBracketHighlight.foreground1": "#000",
      +    },
      +    "[GitHub Dark Default]": {
      +      "editorBracketHighlight.foreground1": "#cccccc",
      +    },
      +    "editorBracketHighlight.foreground2": "#0098e6",
      +    "editorBracketHighlight.foreground3": "#e16d6d",
      +    "editorBracketHighlight.foreground4": "#3fa455",
      +    "editorBracketHighlight.foreground5": "#c968e6",
      +    "editorBracketHighlight.foreground6": "#999",
      +    "terminal.ansiRed": "#ff7a5a",
      +  },
      +  "calva.highlight.bracketColors": [
      +    [
      +      "#000",
      +      "#ccc"
      +    ],
      +    "#0098e6",
      +    "#e16d6d",
      +    "#3fa455",
      +    "#c968e6",
      +    "#999",
      +    "#ce7e00"
      +  ],
      +
      +

      This is the setting used for the screenshot above. Here's a rainbow-only screenshot:

      +

      A Calva Inspector Rainbow

      +

      Note that with the Calva Highlight rainbow colors, we use a tuple for light and dark theme colors. The VS Code theme color settings do not allow this, so if you need different colors for light and dark themes, you need to specify the exact theme. We do this in the example, since the default Calva Highlight rainbow needs different light/dark colors for the top level brackets.

      diff --git a/search/search_index.json b/search/search_index.json index d7425f6a8..8b33aae85 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-\\._]","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome!","text":"

      Calva is an integrated, REPL powered, development environment for enjoyable and productive Clojure and ClojureScript programming in Visual Studio Code. It is feature rich and turnkey. A lot of effort has been put into making Calva a good choice if you are new to Clojure. Calva is open source and free to use.

      "},{"location":"#getting-started","title":"Getting Started","text":"

      Let's start a REPL!. \ud83d\ude80 Also see Get Started with Clojure

      "},{"location":"#how-to-contribute-to-calva","title":"How to Contribute to Calva?","text":"

      I'm glad you asked! Please see How to Contribute and The Tao of Calva

      "},{"location":"#calva-patrons","title":"Calva Patrons","text":"The right kind of different"},{"location":"#calva-gold-sponsors","title":"Calva Gold Sponsors \u2665\ufe0f","text":"Scale your growth on mobile MAKE. DO. SHIP.

      Please see this statement from Cognitect about the importance of supporting open source developers.

      See Sponsors for information about sponsoring Calva.

      If your Company benefits from Calva's existence and you see it as an important in the Clojure and ClojureScript ecosystem. please consider sponsoring!

      "},{"location":"#features","title":"Features","text":"

      Calva includes inline code evaluation, structural editing, code formatting, code navigation, a debugger, linting, syntax highlighting, Clojure aware rainbow brackets, a test runner, refactoring support, and more.

      "},{"location":"#have-questions-and-feedback-need-help","title":"Have Questions and Feedback? Need Help?","text":"

      Easiest way is to chat with us and other Calva users. Please join the #calva channel on the Clojurians Slack. If you haven't joined that slack workspace, you can get an invite here.

      If you're a beginner to Clojure(Script), the #beginners channel of the Clojurians Slack is very active and helpful.

      "},{"location":"#please-star-the-calva-repo","title":"Please star the Calva repo!","text":"

      Happy coding!

      "},{"location":"api/","title":"The Calva Extension API","text":"

      Calva exposes an API for use from other VS Code extensions (such as Joyride). The API is in an experimental state, while we are figuring out what is a good shape for this API. It is also rather small, and will grow to expose more of Calva's functionality.

      ","boost":7},{"location":"api/#accessing","title":"Accessing","text":"

      To access the API the Calva extension needs to be activated. The API is exposed under the v1 key on the extension's exports, and split up into submodules, like repl, and ranges.

      When using Joyride you can use its unique require API, for which one of the benefits is better lookup IDE support. When using the API from regular ClojureScript, you'll pick it up from the Calva extension instance. (Which you can do from Joyride as well, but why would you?). Here is how you access the API, with an example of usage as a bonus:

      JoyrideClojureScriptJavaScript
      (ns ... (:require [\"ext://betterthantomorrow.calva$v1\" :as calva]))\n;; OR\n(require '[\"ext://betterthantomorrow.calva$v1\" :as calva])\n\n(calva/repl.currentSessionKey) => \"cljs\" ; or \"clj\", depending\n
      (def calvaExt (vscode/extensions.getExtension \"betterthantomorrow.calva\"))\n\n(def calva (-> calvaExt\n             .-exports\n             .-v1\n             (js->clj :keywordize-keys true)))\n\n((get-in calva [:repl :currentSessionKey])) => \"cljs\" ; or \"clj\", depending\n
      const calvaExt = vscode.extensions.getExtension(\"betterthantomorrow.calva\");\n\nconst calva = calvaExt.exports.v1;\n\nconst sessionKey = calva.repl.currentSessionKey()\n
      ","boost":7},{"location":"api/#repl","title":"repl","text":"

      The repl module provides access to Calva's REPL connection.

      ","boost":7},{"location":"api/#replcurrentsessionkey","title":"repl.currentSessionKey()","text":"

      Use repl.currentSessionKey() find out which REPL/session Calva's REPL is currently connected to (depends on the active file). Returns either \"clj\", or \"cljs\", or nil if no REPL is connected.

      JoyrideClojureScriptJavaScript
      (def session-key (calva/repl.currentSessionKey))\n
      (def session-key ((get-in [:repl :currentSessionKey] calvaApi)))\n
      const sessionKey = calva.repl.currentSessionKey()\n
      ","boost":7},{"location":"api/#replevaluatecode","title":"repl.evaluateCode()","text":"

      This function lets you evaluate Clojure code through Calva's nREPL connection. Calling it returns a promise that resolves to a Result object. It's signature looks like so (TypeScript):

      export async function evaluateCode(\n  sessionKey: 'clj' | 'cljs' | 'cljc' | undefined,\n  code: string,\n  ns = 'user',\n  output?: {\n    stdout: (m: string) => void;\n    stderr: (m: string) => void;\n  },\n  opts = {}\n): Promise<Result>;\n

      Where Result is:

      type Result = {\n  result: string;\n  ns: string;\n  output: string;\n  errorOutput: string;\n};\n

      As you can see, the required arguments to the function are sessionKey and code. sessionKey should be \"clj\", \"cljs\", \"cljc\", or undefined depending on which of Calva's REPL sessions/connections that should be used. It will depend on your project, and how you connect to it, which session keys are valid. Use cljc to request whatever REPL session \"cljc\" files are connected to. Use undefined to use the current REPL connection Calva would use (depends on which file is active).

      An example:

      JoyrideClojureScriptJavaScript
      (-> (p/let [evaluation (calva/repl.evaluateCode \"clj\" \"(+ 2 40)\")]\n      (println (.-result evaluation)))\n    (p/catch (fn [e]\n               (println \"Evaluation error:\" e))))\n
      (def evaluate (get-in [:repl :evaluateCode] calvaApi))\n(-> (p/let [evaluation (evaluate \"clj\" \"(+ 2 40)\")]\n      (println (.-result evaluation)))\n    (p/catch (fn [e]\n               (println \"Evaluation error:\" e))))\n
      try {\n  const evaluation = await calvaApi.repl.evaluateCode(\"clj\", \"(+ 2 40)\");\n  console.log(evaluation.result);\n} catch (e) {\n  console.error(\"Evaluation error:\", e);\n}\n
      ","boost":7},{"location":"api/#handling-output","title":"Handling Output","text":"

      The output member on the Result object will have any output produced during evaluation. (The errorOutput member should contain error output produced, but currently some Calva bug makes this not work.) By default the stdout and stderr output is not printed anywhere.

      If you want to do something with either regular output or error output during, or after, evaluation, you'll need to provide the output argument to evaluateCode(). (The stderr callback function works, so this is the only way to get at any error output, until the above mentioned Calva bug is fixed.)

      An example:

      JoyrideClojureScriptJavaScript
      (def oc (joyride.core/output-channel)) ;; Assuming Joyride is used\n(def evaluate (fn [code]\n                (calva/repl.evaluateCode\n                 \"clj\"\n                 code\n                 \"user\"\n                 #js {:stdout #(.append oc %)\n                      :stderr #(.append oc (str \"Error: \" %))})))\n\n(-> (p/let [evaluation (evaluate \"(println :foo) (+ 2 40)\")]\n      (.appendLine oc (str \"=> \" (.-result evaluation))))\n    (p/catch (fn [e]\n               (.appendLine oc (str \"Evaluation error: \" e)))))\n
      (def oc (joyride.core/output-channel)) ;; Assuming Joyride is used\n(def evaluate (fn [code]\n                ((get-in [:repl :evaluateCode] calvaApi)\n                 \"clj\"\n                 code\n                 \"user\"\n                 #js {:stdout #(.append oc %)\n                      :stderr #(.append oc (str \"Error: \" %))})))\n\n(-> (p/let [evaluation (evaluate \"(println :foo) (+ 2 40)\")]\n      (.appendLine oc (str \"=> \" (.-result evaluation))))\n    (p/catch (fn [e]\n               (.appendLine oc (str \"Evaluation error: \" e)))))\n
      const evaluate = (code) =>\n  calvaApi.repl.evaluateCode(\"clj\", code, \"user\", {\n    stdout: (s) => {\n      console.log(s);\n    },\n    stderr: (s) => {\n      console.error(s);\n    },\n  });\n\ntry {\n  const evaluation = await evaluate(\"(println :foo) (+ 2 40)\");\n  console.log(\"=>\", evaluation.result);\n} catch (e) {\n  console.error(\"Evaluation error:\", e);\n}\n
      ","boost":7},{"location":"api/#ranges","title":"ranges","text":"

      The ranges module contains functions for retreiving vscode.Ranges and text for pieces of interest in a Clojure document.

      All functions in this module have the following TypeScript signature:

      (editor = vscode.window.activeTextEditor, position = editor?.selection?.active) => [vscode.Range, string];\n

      I.e. they expect a vscode.TextEditor \u2013 defaulting to the currently active editor \u2013 and a vscode.Position \u2013 defaulting to the current active position in the editor (or the first active position if multiple selections/positions exist, and will return a tuple with the range, and the text for the piece of interest requested.

      Custom REPL Commands

      The ranges function have corresponding REPL Snippets/Commands substitution variables. It is the same implementation functions used in both cases.

      The functions available are:

      ","boost":7},{"location":"api/#rangescurrentform","title":"ranges.currentForm()","text":"

      Retrieves information about the current form, as determined from the editor and position.

      Corresponding REPL Snippet variable: $current-form.

      See also about Calva's Current Form on YouTube.

      ","boost":7},{"location":"api/#rangescurrentenclosingform","title":"ranges.currentEnclosingForm()","text":"

      The list/vector/etcetera form comtaining the current form.

      Corresponding REPL Snippet variable: $enclosing-form.

      ","boost":7},{"location":"api/#rangescurrenttoplevelform","title":"ranges.currentTopLevelForm()","text":"

      The current top level form. Outside (comment ...) (Rich comments) forms this is most often ((def ...), (defgn ...), etcetera. Inside Rich comments it will be the current immediate child to the (comment ...) form.

      Corresponding REPL Snippet variable: $top-level-form.

      ","boost":7},{"location":"api/#rangescurrentfunction","title":"ranges.currentFunction()","text":"

      The current function, i.e. the form in \u201dcall position\u201d of the closest enclosing list.

      Corresponding REPL Snippet variable: $current-fn.

      ","boost":7},{"location":"api/#rangescurrenttopleveldef","title":"ranges.currentTopLevelDef()","text":"

      The symbol being defined by the current top level form. NB: Will stupidly assume it is the second form. I.e. it does not check that it is an actual definition, and will often return nonsense if used in Rich comments.

      Corresponding REPL Snippet variable: $top-level-defined-symbol.

      ","boost":7},{"location":"api/#example-rangescurrenttoplevelform","title":"Example: ranges.currentTopLevelForm()","text":"JoyrideClojureScriptJavaScript
      (let [[range text] (calva/ranges.currentTopLevelForm)]\n  ...)\n
      (let [[range text] ((get-in [:ranges :currentTopLevelForm]))]\n  ...)\n
      const [range, text] = ranges.currentTopLevelForm();\n
      ","boost":7},{"location":"api/#editor","title":"editor","text":"

      The editor module has facilites (well, a facility, so far) for editing Clojure documents.

      ","boost":7},{"location":"api/#editorreplace","title":"editor.replace()","text":"

      With editor.replace() you can replace a range in a Clojure editor with new text. The arguments are:

      • editor, a vscode.TextEditor
      • range, a vscode.Range
      • newText, a string
      JoyrideJavaScript
      (-> (p/let [top-level-form-range (first (calva/ranges.currentTopLevelForm))\n            _ (calva/editor.replace vscode/window.activeTextEditor top-level-form-range \"Some new text\")]\n      (println \"Text replaced!\"))\n    (p/catch (fn [e]\n               (println \"Error replacing text:\" e))))\n
      const topLevelRange = calvaApi.ranges.currentTopLevelForm();\ncalva.editor.replace(topLevelRange, \"Some new text\")\n  .then((_) => console.log(\"Text replaced!\"))\n  .catch((e) => console.log(\"Error replacing text:\", e));\n
      ","boost":7},{"location":"api/#document","title":"document","text":"

      The document module provides access to the Clojure/Calva aspects of VS Code TextDocuments.

      ","boost":7},{"location":"api/#documentgetnamespacedocument-vscodetextdocument-string","title":"document.getNamespace(document?: vscode.TextDocument): string","text":"

      document.getNamespace() returns the namespace of a document.

      • document, a vscode.TextDocument (defaults to the current active document)

      Example usage. To evaluate some code in the namespace of the current document:

      JoyrideJavaScript
      (calva/repl.evaluateCode \"clj\" \"(+ 1 2 39)\" (calva/document.getNamespace))\n
      calva.repl.evaluateCode(\"clj\",  \"(+ 1 2 39)\", calva.document.getNamespace());\n
      ","boost":7},{"location":"api/#documentgetnamespaceandnsformdocument-vscodetextdocument-ns-string-nsform-string","title":"document.getNamespaceAndNsForm(document?: vscode.TextDocument): [ns: string, nsForm: string]","text":"

      document.getNamespaceAndNsForm() returns the namespace and the ns form of a document as a tuple.

      • document, a vscode.TextDocument (defaults to the current active document)

      Example usage. To evaluate the ns form of the current document:

      JoyrideJavaScript
      (calva/repl.evaluateCode \"clj\" (second (calva/document.getNamespaceAndNsForm)))\n
      calva.repl.evaluateCode(\"clj\", calva.document.getNamespaceAndNsForm()[1]);\n
      ","boost":7},{"location":"api/#pprint","title":"pprint","text":"

      The pprint module lets you pretty print Clojure code/data using Calva's pretty printing engine (which in turn uses zprint).

      ","boost":7},{"location":"api/#pprintprettyprint","title":"pprint.prettyPrint()","text":"

      Use pprint.prettyPrint() to pretty print some Clojure data using your Calva pretty printing options. It accepts these arguments:

      • text, a string with the text to pretty print
      • options, a JavaScript object with pretty printing options, this is optional and will default to the current settings.

      The function is synchronous and returns the prettified text.

      JoyrideJavaScript
      (println (calva/pprint.prettyPrint \"Some text\")))\n
      console.log(calvaApi.pprint.prettyPrint();\n
      ","boost":7},{"location":"api/#pprintprettyprintingoptions","title":"pprint.prettyPrintingOptions()","text":"

      Use to get the current pretty printint options:

      ","boost":7},{"location":"api/#vscode","title":"vscode","text":"

      In the its vscode submodule, Calva exposes access to things from its own vscode module instance. It gets important in some situations.

      ","boost":7},{"location":"api/#vscoderegisterdocumentsymbolprovider","title":"vscode.registerDocumentSymbolProvider()","text":"

      This is the [vscode.languages](https://code.visualstudio.com/api/references/vscode-api#languages).registerDocumentSymbolProvider() function from the Calva extension. Use it if you want to provide symbols for Clojure files together with the ones that Calva provides. (If you use the vscode.languages.registerDocumentSymbolProvider() function from your extension (or Joyride) you will provide a separate group.)

      JoyrideClojureScriptJavaScript
      (-> (joyride/extension-context)\n  .-subscriptions\n  (.push (calva/vscode.registerDocumentSymbolProvider ...)))\n
      (-> yourExtensionContext\n  .-subscriptions\n  (.push ((get-in calva [:vscode :registerDocumentSymbolProvider]) ...)))\n
      yourExtensionContext.subscriptions.push(calva.vscode.registerDocumentSymbolProvider(...));\n

      Deprecation candidate

      VS Code is still creating a separate group, just with the same name as Calva's, so this API is not good for anything, and we will probably remove it.

      ","boost":7},{"location":"api/#feedback-welcome","title":"Feedback Welcome","text":"

      Please let us know how you fare using this API. Either in the #calva or #joyride channels on Slack or via the issues/discussions sections on the repositories. (Whichever seems to apply best.)

      ","boost":7},{"location":"async-out/","title":"Viewing Async Output While Working On Node Projects with shadow-cljs","text":"

      When working on NodeJS projects with shadow-cljs and Calva, async output does not always appear in the Calva output window. To work around this problem, follow these steps:

      1. Run the command \"Calva: Copy Jack-in Command Line to Clipboard\", then paste the command in a terminal and run it.
      2. Wait for the message shadow-cljs - nREPL server started on port <some-port>
      3. Issue the command Calva: Connect to a running REPL server in your project, ctrl+alt+c ctrl+alt+c. For project type select shadow-cljs, accept the proposed localhost:<some-port>, and for build select node-repl.
      4. Load a file from your project with the command ctrl+alt+c Enter. Evaluating forms in Calva will show results in the output window. Synchronous stdout output will be printed in both the output window and in the terminal where you started the repl. Some asynchronous output may show up in the output window, but all will appear in the terminal.

      If you use an integrated VSCode terminal to start shadow-cljs, all stdout will appear in the Calva window with your code. Alternatively, you can use an external terminal, which is especially nice when using a second monitor.

      For a discussion of this problem and other connection options, see issue #1468.

      "},{"location":"babashka/","title":"Using Calva with Babashka","text":"

      Since Babashka can be started such that it is an nREPL server, Calva can connect to it and a lot of the features will work.

      Calva can also start Babashka and connect its REPL for you, using the Jack-in command.

      Don't expect complete support

      Babashka's nREPL server is still a bit limited compared to a full cider-nrepl enhanced \"regular\" Clojure nREPL server. Things like function signatures, and more do not work.

      This might of course improve in the future, especially if you provide some PRs towards the Babashka nREPL.

      ","boost":5},{"location":"clj-java-decompiler/","title":"Decompiling and disassembly made easy","text":"

      If you need some piece of Clojure code to execute as fast as possible you will often benefit from examining the code generated by the Clojure compiler from your code. There is a really easy to use tool for that: clj-java-decompiler. You can make the use of this tool super convenient with Calva custom command snippets.

      "},{"location":"clj-java-decompiler/#prerequisites","title":"Prerequisites","text":"

      Add com.clojure-goes-fast/clj-java-decompiler as a dependency to the project.

      "},{"location":"clj-java-decompiler/#the-custom-snippets","title":"The custom snippets","text":"

      You can add some Calva custom commands configuration to be able to decompile or disassemble any Clojure code in your editor with a keyboard shortcut. Here's an example configuration:

          \"calva.customREPLCommandSnippets\": [\n        {\n            \"name\": \"Decompile current top level form\",\n            \"key\": \"d\",\n            \"snippet\": \"(require '[clj-java-decompiler.core :refer [decompile]]) (spit \\\"decompiled-$top-level-defined-symbol.java\\\" (with-out-str (decompile $top-level-form)))\"\n        },\n        {\n            \"name\": \"Decompile current form\",\n            \"snippet\": \"(require '[clj-java-decompiler.core :refer [decompile]]) (spit \\\"decompiled.java\\\" (with-out-str (decompile $current-form)))\"\n        },\n        {\n            \"name\": \"Disassemble current top level form\",\n            \"key\": \"b\",\n            \"snippet\": \"(require '[clj-java-decompiler.core :refer [disassemble]]) (spit \\\"bytecode-$top-level-defined-symbol.class\\\" (with-out-str (disassemble $top-level-form)))\"\n        },\n        {\n            \"name\": \"Disassemble current current form\",\n            \"snippet\": \"(require '[clj-java-decompiler.core :refer [disassemble]]) (spit \\\"bytecode.class\\\" (with-out-str (disassemble $current-form)))\"\n        }\n    ],\n

      Now, with the cursor anywhere in a top level defined function, you can spit out a file with the Java code generated for that function by pressing ctrl+alt+space d. For the byte code, press ctrl+alt+space b. The files will be generated in the same folder as the Clojure file and be named decompiled-<function name>.java and bytecode-<function name>.class, respectively.

      To decompile or disassemble the current form (or selection) press ctrl+alt+space space and pick the desired command from the quick pick menu that pops up. You can add key to these too if you want even quicker access, of course. The filenames for the results will here be named without any function name suffix, because there is often no function name that can be used.

      See this video for a demo.

      "},{"location":"clojure-lsp/","title":"Clojure-lsp","text":"

      Calva uses a mix of static and dynamic analysis to power the experience. A lot of the static abilities come from clojure-lsp. This enables you to check something up in a project, with a lot of navigational and contextual support, without starting a REPL for it. (And once you do start a REPL you'll get even more capabilities, enabled by the dynamic analysis.)

      Which clojure-lsp does Calva use?

      Calva defaults to using the latest clojure-lsp released. To use a different version of clojure-lsp, see the configuration section. Calva does not use the clojure-lsp installed on your system, unless you set the path for clojure-lsp to the installed binary in your settings. You can see what version is being used by running the Clojure-lsp Server Info command, which will also show the version of clj-kondo that's being used as well as other info.

      "},{"location":"clojure-lsp/#the-lsp-server-lifecycle","title":"The LSP server lifecycle","text":"

      By default you won't need to install/setup anything as Calva handles that for you by automatically downloading the latest clojure-lsp binary. It can take a while for clojure-lsp to start, especially the first time opening a new project, as clojure-lsp (via clj-kondo) indexes the project files.

      Calva is able to automatically start the clojure-lsp server for you and can be configured to start the server under various different conditions. These behaviours can be configured through the calva.enableClojureLspOnStart setting, which takes the following options:

      • \"always-use-first-workspace-root\"
      • \"when-workspace-opened-use-workspace-root\"
      • \"when-file-opened-use-furthest-project\"
      • \"never\"
      "},{"location":"clojure-lsp/#always-use-first-workspace-root-default","title":"\"always-use-first-workspace-root\" [default]","text":"

      When set to \"always-use-first-workspace-root\" Calva will attempt to start the clojure-lsp in the root of the first workspace folder if it is a valid clojure project. If it is not a valid clojure project it will fall back to starting the fallback server.

      This is the default auto-start behaviour.

      "},{"location":"clojure-lsp/#when-workspace-opened-use-workspace-root","title":"\"when-workspace-opened-use-workspace-root\"","text":"

      When set to \"when-workspace-opened-use-workspace-root\" Calva will start the clojure-lsp in the root of all opened vscode workspaces. All Clojure files in a workspace will be serviced by the clojure-lsp server running in that workspace. This behavior requires that you are opening workspaces with a valid Clojure project in the root (the directory must contain a deps.edn, project.clj or shadow-cljs.edn file).

      "},{"location":"clojure-lsp/#when-file-opened-use-furthest-project","title":"\"when-file-opened-use-furthest-project\"","text":"

      When set to \"when-file-opened-use-furthest-project\" Calva will attempt to start the clojure-lsp server whenever a Clojure file is opened. The LSP server will be started in the outermost valid Clojure project or will fall back to starting in the workspace root if no valid Clojure project can be found. A directory is considered a Clojure project if it contains typical Clojure project files such as a deps.edn, project.clj, or shadow-cljs.edn file. When working in a mono-repo style project or in a multi-workspace VS Code configuration you may have multiple LSP servers running, one for each independent Clojure project opened.

      Opening files that do not belong to a workspace folder

      When opening files that do not belong to any of the workspace folders currently open then Calva will fallback to starting the fallback clojure-lsp server

      "},{"location":"clojure-lsp/#never","title":"\"never\"","text":"

      When set to \"never\" Calva will never attempt to automatically start the clojure-lsp server. In this case you are responsible for manually starting the server. More advanced users might want to do this in order to have more control over which projects have a clojure-lsp server running for them. To manually start the clojure-lsp server you can run the calva.clojureLsp.start or the calva.clojureLsp.manage command and pick the project root. You can also click the clojure-lsp status bar icon to open the Management Menu.

      Additionally Calva has commands for:

      • Inspecting the clojure-lsp server information
      • Read the clojure-lsp server log
      • Stopping any running clojure-lsp processes
      • Starting clojure-lsp
      • Restarting any running clojure-lsp processes
      • Downloading the configured clojure-lsp version

      Note that the download command will download the configured clojure-lsp version regardless if it is already installed or not. This can be useful when some earlier download has failed resulting in that clojure-lsp can't be started. NB: It will not download anything if calva.clojureLspPath is set to something non-blank.

      "},{"location":"clojure-lsp/#fallback-server","title":"Fallback Server","text":"

      As a fallback behaviour Calva may start a clojure-lsp server in a temporary directory and use this to service lsp requests for clojure files that do not belong to a valid clojure project. This will show up in the management menu looking something like:

      Any files that are handled by this server will have limited classpath analysis and lsp features. It is therefore recommended to setup your project as a clojure project (by creating a deps.edn file in the root, for example).

      "},{"location":"clojure-lsp/#status-bar","title":"Status bar","text":"

      In the status bar Calva will show an indicator with the clojure-lsp status. This status will track the currently open project, showing the status (stopped, starting or active) for the relevant clojure-lsp server.

      You can click on the status-bar item to open the clojure-lsp management menu which will look as follows:

      The menu shows which clojure-lsp servers are active and which are stopped. Selecting a project will allow you to start/stop/restart the server for that project.

      "},{"location":"clojure-lsp/#ignoring-lsp-cache-files","title":"Ignoring LSP cache files","text":"

      Clojure-lsp stores its project analysis information in your project. Git users can add these lines to their project root directory .gitignore:

      .lsp/.cache/\n.lsp/sqlite.*.db\n
      "},{"location":"clojure-lsp/#configuration","title":"Configuration","text":"

      For information about how to configure clojure-lsp, see the settings page of the clojure-lsp docs.

      "},{"location":"clojure-lsp/#changing-the-version-of-clojure-lsp-used-by-calva","title":"Changing the Version of Clojure-lsp Used by Calva","text":"

      By default, Calva will use the latest released clojure-lsp. You can change the version of clojure-lsp used by Calva by setting the calva.clojureLspVersion property to a version of clojure-lsp found in its GitHub releases. This can be helpful if you're debugging an issue with clojure-lsp or you want to try out a feature of a new release that Calva does not yet use. However, you must remember to reset this setting in order for Calva to automatically use newer versions of clojure-lsp that are released with new versions of Calva.

      Example:

      \"calva.clojureLspVersion\": \"2021.04.07-16.34.10\"\n

      Special \u201dversion\u201d values

      Apart from the actual versions you can use two special values for this setting:

      • latest: Will download and use the latest stable build of clojure-lsp, when one becomes available. This is the default
      • nightly: Will always download and use the latest nightly build, whether there is a new version available or not.
      "},{"location":"clojure-lsp/#using-a-custom-clojure-lsp","title":"Using a Custom Clojure-lsp","text":"

      You can set a path to a custom clojure-lsp to be used by Calva by configuring the calva.clojureLspPath setting. This should be an absolute path to a native binary or JAR file.

      Example:

      \"calva.clojureLspPath\": \"/usr/local/bin/clojure-lsp\"\n

      Will override any calva.clojureLspVersion setting

      When calva.clojureLspPath is set, the binary at the path will be used uncoditionally, and the calva.clojureLspVersion setting will be ignored.

      "},{"location":"clojure-lsp/#extra-commands","title":"Extra commands","text":"

      clojure-lsp provides many useful [commands], and Calva has configuration for most of them. The clojure-lsp team works fast and sometimes Calva might miss some command. And Calva's configuration only really work for clojure-lsp commands that take no argument, or where it makes sense to prompt for the argument. Therefore Calva provides a generic command id, clojure-lsp.command which can be used with keyboard shortcuts and that allow for providing arguments that way. (The command can be used from Joyride too, of course.)

      When using the command, provide the args as an tuple of [command-name, arguments], where arguments is an array of any arguments after file-uri, row, col which are common for all clojure-lsp extra commands and are provided automatically by Calva, based on active text editor and where the cursor is. It can look like so when binding a shortcut for extract-function:

          {\n        \"key\": \"ctrl+alt+r f\",\n        \"command\": \"clojure-lsp.command\",\n        \"args\": [\"extract-function\", [\"new-function\"]]\n    },\n

      Note that even though extract-function takes only one argument, you should still provide it via an array.

      "},{"location":"clojure-lsp/#troubleshooting","title":"Troubleshooting","text":""},{"location":"clojure-lsp/#viewing-the-logs-between-the-client-and-server","title":"Viewing the Logs Between the Client and Server","text":"

      If something doesn't seem to be working correctly, and you suspect the issue is related to clojure-lsp, a good place to start investigating is the request and response logs between the LSP client and server. In your settings, set clojure.trace.server to verbose, then in the VS Code output tab, select the Clojure Language Client output channel.

      It may be helpful to clear the output channel, then perform the action with which you're experiencing a problem, then read through the log for clues or paste the logs into a related issue in the Calva repo.

      "},{"location":"clojure-lsp/#server-info-command","title":"Server Info Command","text":"

      You can run the Clojure-lsp Server Info command to get information about the running clojure-lsp server, such as the version the server being used, the version of clj-kondo it's using, and more. This info is printed to the \"Calva says\" output channel.

      "},{"location":"clojure-lsp/#opening-the-server-log-file","title":"Opening the Server Log File","text":"

      You can open the clojure-lsp log file by running the command Calva Diagnostics: Open Clojure-lsp Log File. The log file will only be opened with this command if the clojure-lsp server is running and has finished initializing. If you need to open the file when the server is failing to run or initialize, see the clojure-lsp docs for information on the file location.

      "},{"location":"clojure-lsp/#server-initialization-failed","title":"Server initialization failed","text":"

      If clojure-lsp fails to start with \u201cServer initialization failed\u201d messages, it could be because the path to your project contains non-ASCII characters, or that the system PATH variable has been corrupted. (Or something else, of course.)

      See this issue for some findings about it: Issue #2251: Server initialization failed error

      "},{"location":"clojure-lsp/#related","title":"Related","text":"

      See also:

      • Connecting the REPL
      • Refactoring
      "},{"location":"clojuredart/","title":"Using Calva with ClojureDart","text":"

      Since ClojureDart is Clojure, Calva just works with it. Calva is also automatically configured to make VS COde treat .cljd files as a Clojure code.

      ","boost":4},{"location":"clojuredart/#dart-clojure-conversion","title":"Dart->Clojure Conversion","text":"

      Similar to when using ClojureScript you will often find examples for Dart and Flutter written in, you guessed it, Dart. And then you will often wish there was a converter, because manually transpiling can be a bit tedious and error prone. Luckily you are in the Clojure community, and such a converter is provided:

      • DartClojure

      There are several ways you can leverage this converter, and since you are using Calva, a very convenient way is available. There is a command Calva: Convert Dart code to Clojure/ClojureDart. This command takes whatever text is selected and uses DartClojure to convert it. Lacking a selection, the command will use the whole file.

      The workflow demoed in the video is something like so:

      1. Open a new untitled file/tab
      2. Paste your Dart/Flutter code in this file (VS Code will probably automatically figure out that it is Dart code, even if that doesn't matter for the converter.)
      3. Run Calva: Convert Dart code to Clojure/ClojureDart
      4. An, untitled, Clojure tab will open with the converted code in it.

      NB: The conversion will not always work. DartCLojure is work in progress. See the project repo for limitations and scope. Often when conversion, the error message will give you a clue to what is problematic. Try adjust your code selection and you will probably be able to get at least some help from the converter.

      Speaking of WIP...

      ","boost":4},{"location":"clojuredart/#work-in-progress","title":"Work in Progress","text":"

      ClojureDart is very new and being super actively developed. Some feature are still missing. Like a REPL. Once that is added we will also add ClojureDart jack-in and connect support to Calva.

      ","boost":4},{"location":"clojuredart/#happy-clojuredart-hacking","title":"Happy ClojureDart Hacking!","text":"

      Please feel welcome to the #clojuredart and #calva channel at the Clojurians Slack for questions, suggestions and support.

      ","boost":4},{"location":"clojuredocs/","title":"ClojureDocs integration","text":"

      clojuredocs.org is the goto place #1 for finding out more about Clojure core(-ish) functions, macros, etcetera. It contains the doc strings from the functions and adds crowd sourced examples of usage and see alsos. You can surf for quite long on that site without getting bored. \ud83d\ude04

      You can surf ClojureDocs in Calva

      Calva integrates this information in two ways:

      1. Commands for requesting the ClojureDocs information for a symbol under the cursor:
        • Print clojuredocs.org examples to Rich Comment, default keybinding: ctrl+alt+r d
        • Print clojuredocs.org examples to OutputWindow, ctrl+alt+o d
      2. ClojureDocs information is included in the symbol lookup hovers, where each example has two buttons:
        • To Rich Comment
        • To Output Window

      That means that if you just want to glance at the examples, you look in the hover. And when you want to bring the examples to the REPL to play with them, you can do so very easily.

      ClojureScript support

      ClojureDocs information is available both for Clojure and ClojureScript files. However, clojuredocs.org only keeps info for Clojure. Thus: All information Calva shows about a symbol will be about the Clojure respresentation of that symbol. (The symbol might not even exist in ClojureScript.)

      ","boost":4},{"location":"clojuredocs/#clojuredocs-repl-surfing","title":"ClojureDocs REPL Surfing","text":"

      Since the ClojureDocs information includes see-alsos, you can go for super interactive ClojureDocs surfing right in the file you are editing. Say you have this function:

      (defn trim-text\n  \"Returns text without surrounding whitespace if not empty, otherwise nil\"\n  [text]\n  (let [trimmed-text (clojure.string/trim text)]\n    (when-not (empty? trimmed-text)\n      trimmed-text)))\n

      Then you hover on when-not and scroll down a bit in the hover:

      That first example would be interesting to play with, right? Click To Rich Comment and you will get:

      (defn trim-text\n  \"Returns text without surrounding whitespace if not empty, otherwise nil\"\n  [text]\n  (let [trimmed-text (clojure.string/trim text)]\n    (when-not (empty? trimmed-text)\n      trimmed-text)))\n\n(comment\n  ;; = when-not - Example 1 = \n\n  ;; build tuples over sets with the same cardinality \n  (map\n   #(when-not (= %2 %3) [%1 %2 %3])\n   (iterate inc 0)   ; a lazy list of indices\n   [:a :b :c]\n   [:a :a :a])\n  ;;=> (nil [1 :b :a] [2 :c :a])\n\n  ;; See also:\n  when\n  when-let\n  if\n  )\n

      There you can evaluate the (map ...) form using alt+enter, modify it and evaluate again. You can also hover over map, iterate, or any of the \u201dSee also:\u201d symbols to find more fun examples to play with. And so on and so forth.

      See these two tweets for some videos of early versions of this functionality:

      • Rich Comments surfing ClojureDocs Examples
      • Clojuredocs in #Calva WIP 2: Hover examples -> RFC

      Please retweet!

      ","boost":4},{"location":"clojuredocs/#quirks","title":"Quirks","text":"

      Some of the ClojureDocs entries have text that is not really Clojure code, and sometimes even structural errors. This can break the structural integrity of your Clojure file. If you run into trouble trying to heal things, you can always use Undo until the Rich Comment is gone.

      ","boost":4},{"location":"commands-top10/","title":"The Top 10 Calva Commands","text":"

      There are not all that many Calva commands. You can learn them all if you like, but here are the most important ones to know about for effective Clojure/ClojureScript coding:

      • Grow/expand selection: ctrl+w (shift+alt+right on Windows and Linux)
      • Load/Evaluate Current File and its Requires/Dependencies: alt+ctrl+c enter, evaluates the namespace code in the active editor tab. This also loads any required namespaces, and generally gives Calva what it needs to work.
      • Evaluate current form: ctrl+enter finds the form from the cursor position, evaluates it and displays the result inline. Hit esc to dismiss the results display.
      • Evaluate current top-level form: alt+enter: inline evaluate the current top-level form. This also works inside (comment) forms. Use it to (re)define vars and then inside comment forms you can verify that they do what you want them to do.
      • Dismiss the display of results: escape: (VIM Extension users should read Using Calva with the VIM Extension).

      There are also two commands for bringing over the current form and the current top level form over to the repl window:

      • ctrl+alt+c ctrl+alt+e (ctrl+alt+c ctrl+alt+v on Windows): to paste the current form in the REPL window.
      • ctrl+alt+c ctrl+alt+space: to paste the current top-level form in this window

      You can also switch the name space of the output/repl window to that of the current file: alt+ctrl+c alt+n

      • Toggle pretty printing of results on and off: ctrl+alt+c p. It's on by default. There is a status bar button showing the status and that also can be used to toggle the setting.
      "},{"location":"commands-top10/#some-more-commands-to-try","title":"Some More Commands to Try","text":"
      • Code evaluation
        • Evaluate code and add as comment: ctrl+alt+c c (current form), ctrl+alt+c ctrl+space (current top level form)
        • Evaluate code and replace it in the editor, inline: ctrl+alt+c r
      • Integrated REPLs
        • Send current editor form to the REPL window: ctrl+alt+c ctrl+alt+e (ctrl+alt+c ctrl+alt+v on Windows)
        • Send current editor top level form to the REPL window: ctrl+alt+c ctrl+alt+space
      • Run tests and mark failures and errors in the Problems pane
        • Run namespace tests: ctrl+alt+c t
        • Run all tests: ctrl+alt+c shift+t
        • Run current test: ctrl+alt+c ctrl+alt+t
        • Rerun previously failing tests: ctrl+alt+c ctrl+t
        • Caveat: Right now the tests are reported only when all are run, making it painful to run all tests in larger projects. I'll fix it. Promise!
      • Select current form: ctrl+alt+c s.
      • Run custom commands, i.e. code snippets, at will: ctrl+alt+c .

      See also:

      • Code Evaluation Tips
      • Finding Calva Commands and Shortcuts
      "},{"location":"connect-sequences/","title":"REPL Jack-in and Connect Sequences","text":"

      Many projects grow out of the template phase and call for custom developer workflows involving application start commands, customized REPLs, and what have you. Even some templates add this kind of complexity. To make Jack-in usable for a broader set of projects, Calva has a setting keyed calva.replConnectSequences which lets you configure one ore more connect sequences.

      NB: Connect sequence configuration affects Calva's Jack-in menu in the following ways:

      1. With no sequence configured, Calva will prompt for the built-in sequences it has that seems to match your project.
      2. When any number of connection sequences are configured, Calva will prompt for your custom sequences, as well as the built-in sequences. Whether built-in or custom, only sequences relevant to your project will be included in the prompt.
      ","boost":6},{"location":"connect-sequences/#settings-for-adding-custom-sequences","title":"Settings for adding Custom Sequences","text":"

      A connect sequence configures the following:

      • name: (required) This will show up in the Jack-in quick-pick menu when you start Jack-in (see above).
      • projectType: (required) This is either \"Leiningen\u201d, \"deps.edn\", \"shadow-cljs\", \"lein-shadow\", \"Gradle\", \u201dgeneric\u201d, or \"custom\".
      • autoSelectForJackIn: A boolean. If true, this sequence will be automatically selected at Jack-in, suppressing the Project Type. Use together with projectRootPath to also suppress the Project Root menu. Add usage of menuSelections to go for a prompt-less REPL Jack-in. If you have more than one sequence with autoSelectForJackIn set to true, the first one will be used.
      • autoSelectForConnect: A boolean. If true, this sequence will be automatically selected at Connect, suppressing the Project Type menu. Use together with projectRootPath to also suppress the Project Root menu. If you have more than one sequence with autoSelectForConnect set to true, the first one will be used.
      • projectRootPath: An array of path segments leading to the root of the project to which this connect sequence corresponds. Use together with autoSelectForJackIn/autoSelectForConnect to suppress the Project Root menu. The path can be absolute or relative to the workspace root. If there are several Workspace Folders, the workspace root is the path of the first folder, so relative paths will only work for this first folder.
      • nReplPortFile: An array of path segments with the project root-relative path to the nREPL port file for this connect sequence. E.g. For shadow-cljs this would be [\".shadow-cljs\", \"nrepl.port\"].
      • afterCLJReplJackInCode: Code to evaluate in the CLJ REPL once it has been created. You can use either a string or an array of strings. If you use an array, the strings will be joined with a newline character to form the resulting code.
      • customJackInCommandLine: A string with a command line that should be used to launch the REPL. See Custom Command Line, below.
      • cljsType: This can be either \"Figwheel Main\", \"shadow-cljs\", \"ClojureScript built-in for browser\", \"ClojureScript built-in for node\", \"lein-figwheel\", \"none\", or a dictionary configuring a custom type. If set to \"none\", Calva will skip connecting a ClojureScript repl. A custom type has the following fields:
        • dependsOn: (required) Calva will use this to determine which dependencies it will add when starting the project (Jacking in). This can be either \"Figwheel Main\", \"shadow-cljs\", \"ClojureScript built-in for browser\", \"ClojureScript built-in for node\", \"lein-figwheel\", or \u201dUser provided\u201d. If it is \"User provided\", then you need to provide the dependencies in the project or launch with an alias (deps.edn), profile (Leiningen), or build (shadow-cljs) that provides the dependencies needed.
        • isStarted: Boolean. For CLJS REPLs that Calva does not need to start, set this to true. (If you base your custom cljs repl on a shadow-cljs workflow, for instance.)
        • startCode: Clojure code to be evaluated to create and/or start your custom CLJS REPL.
        • isReadyToStartRegExp: A regular expression which, when matched in the stdout from the startCode evaluation, will make Calva continue with connecting the REPL, and to prompt the user to start the application. If omitted and there is startCode Calva will continue when that code is evaluated.
        • openUrlRegExp: A regular expression, matched against the stdout of cljsType evaluations, for extracting the URL with which the app can be started. The expression should have a capturing group named url. E.g. \"Open URL: (?\\<url>S+)\"
        • shouldOpenUrl: Choose if Calva should automatically open the URL for you or not.
        • connectCode: (required) Clojure code to be evaluated to convert the REPL to a CLJS REPL that Calva can use to connect to the application. (For some setups this could also conditionally start the CLJS REPL. If so: startCode should be omitted.)
        • isConnectedRegExp: (required) A regular expression which, when matched in the stdout from the connectCode evaluation, will tell Calva that the application is connected. The default is To quit, type: :cljs/quit and you should leave it at that unless you know it won't work.
        • printThisLineRegExp: regular expression which, when matched in the stdout from any code evaluations in the cljsType, will make the matched text be printed to the Output window.
        • buildsRequired: Boolean. If the repl type requires that builds are started in order to connect to them, set this to true.
      • menuSelections: a dictionary with pre-filled-in selections for the Jack-in and Connect prompts, making Calva not prompt for that particular selection:
        • leinProfiles: At Jack-in to a Leiningen project, use these profiles to launch the repl.
        • leinAlias: At Jack-in to a Leiningen project, launch with this alias. Set to null to launch with Calva's default task (a headless repl), w/o prompting.
        • cljAliases: At Jack-in to a deps.edn project, use these aliases to launch the repl.
        • cljsLaunchBuilds: The cljs builds to start/watch at Jack-in/connect.
        • cljsDefaultBuild: Which cljs build to attach to at the initial connect.
      • jackInEnv: An object with environment variables that will be merged with the global calva.jackInEnv and then applied to the Jack-in process. The merge is very similar to how Clojure's merge works. So for any common keys between the global setting and this one, the ones from this setting will win.

      The Calva built-in sequences also use this format, check them out to get a clearer picture of how these settings work.

      Force the project type menu to show

      The convenience of autoSelectForJackIn/Connect can be an inconvenience when you want to use another project type/sequence for a project. For this reason, the calva.connect and calva.jackIn can be provided with an option disableAutoSelect, which forces the project root and project type menus to show. See Options for the Connect Command and Options for the Jack-in Command for more on this.

      Path segments

      projectRootPath and nReplPortFile both take an array of path segments. This is to make the paths work cross-platform. If you can't be bothered splitting up the path in segments, put the whole path in the first segment, though please note that if you use Windows path separators, these will not work for users with Linux or macOS.

      ","boost":6},{"location":"connect-sequences/#custom-command-line","title":"Custom Command Line","text":"

      Custom command lines are there to bridge the gap to those situations where standard Jack-in command lines don't reach. Like:

      1. You want to provide command line options to a supported tool, which Jack-in does not provide
      2. Your project has some script through which it is started
      3. The REPL is provided by some tool that Calva does not know of
      4. Any other reason...

      A custom command line is executed from same directory as the REPL project root (See projectRootPath, above), and can be as simple as my-repl-jack-in-command. You can use a relative or absolute path to your command line.

      If your custom command line starts a REPL of a project type that is not \u201dknown\u201d/built-in to Calva, use custom as the projectType for the connect sequence.

      ","boost":6},{"location":"connect-sequences/#custom-command-line-substitutionsplaceholdersenvironment-variables","title":"Custom Command Line Substitutions/Placeholders/Environment variables","text":"

      You can use placeholders in your command line, and Calva will substitute them before executing the command. All these placeholders will also be provided to your script via environment variables with the same names (except dashes will be underscores in the env variable names):

      nREPL dependency versions:

      • JACK-IN-NREPL-VERSION
      • JACK-IN-CIDER-NREPL-VERSION
      • JACK-IN-CIDER-PIGGIEBACK-VERSION

      Paths:

      • JACK-IN-PROJECT-ROOT-PATH: (See projectRootPath, above)
      • JACK-IN-NREPL-PORT-FILE: The path of the nREPL port file (see nReplPortFile above)

      Depending on the project type Calva will also look for these placeholders:

      • JACK-IN-CLJ-MIDDLEWARE: The nREPL middleware to be used for the Clojure REPL
      • JACK-IN-CLJS-MIDDLEWARE: The nREPL middleware to be used for the ClojureScript REPL
      • JACK-IN-LEIN-PROFILES: For Leiningen projects, the profiles selected by the user
      • JACK-IN-LEIN-LAUNCH-ALIAS: For Leiningen projects, the launch alias selected by the user
      • JACK-IN-CLI-ALIASES: For deps.edn projects, the aliases selected by the user
      • JACK-IN-CLJS-LAUNCH-BUILDS: For ClojureScript REPLs that configures builds, the builds selected by the user
      • JACK-IN-NREPL-PORT: For some project types (currently nbb and Babashka) Calva provided the TCP port they should use.
      ","boost":6},{"location":"connect-sequences/#example-custom-jack-in-command-lines","title":"Example Custom Jack-in Command lines","text":"","boost":6},{"location":"connect-sequences/#start-a-babashka-repl-via-wsl","title":"Start a Babashka REPL via WSL","text":"

      Calva has a built-in jack-in sequence for starting a Babashka REPL and connect to it. It works as long as the bb process is on the same host as VS Code/Calva is running. So if you want it to run in WSL, but VS Code is running on your computer you need to start bb slightly differently. These settings in your VS Code settings file will give you a jack-in option that works for this:

        \"calva.replConnectSequences\": [\n    {\n        \"name\": \"Bashbabka (WSL)\",\n        \"projectType\": \"custom\",\n        \"customJackInCommandLine\": \"bash -c 'bb --nrepl-server JACK-IN-NREPL-PORT'\",\n    },\n  ],\n

      If you place it in your user settings you will have access to it from any workspace.

      ","boost":6},{"location":"connect-sequences/#an-exampleskeleton-script","title":"An example/skeleton script","text":"

      This script doesn't actually start a REPL, it's provided more for giving you an idea about what it could look like, and as a starting point for your real scripts:

      #!/usr/bin/env bb\n\n(require '[clojure.string :as str])\n\n(defn parse-args [args]\n  (loop [args args\n         parsed {}]\n    (if (empty? args)\n      parsed\n      (let [[flag value & rest-args] args]\n        (case flag\n          \"--aliases\" (recur rest-args (assoc parsed :aliases value))\n          \"--cider-nrepl-version\" (recur rest-args (assoc parsed :cider-nrepl-version value))\n          (do (println \"Unknown parameter:\" flag) (System/exit 1)))))))\n\n(defn process-args [args]\n  (let [aliases (str/split (:aliases args) #\",\")\n        cider-nrepl-version (:cider-nrepl-version args)\n        project-root-path (System/getenv \"JACK_IN_PROJECT_ROOT_PATH\")]\n    (println \"Aliases:\")\n    (doseq [alias aliases]\n      (println alias))\n    (println \"CIDER nREPL version:\" cider-nrepl-version)\n    (println \"JACK_IN_PROJECT_ROOT_PATH:\" project-root-path)))\n\n(def parsed-args (parse-args *command-line-args*))\n\n(when (= *file* (System/getProperty \"babashka.file\"))\n  (process-args parsed-args))\n

      It's written in Babashka to encourage you to write your shell scripts in a civilized language. \ud83d\ude00 See the article Changing my mind: Converting a script from bash to Babashka for a small success-story about this mindset. See also bash2bb.

      The script reads JACK-IN-CLJS-LAUNCH-BUILDS and JACK-IN-CIDER-NREPL-VERSION from the command line, and JACK_IN_PROJECT_ROOT_PATH from the environment. It could be configured for use in a custom connect sequence like this:

          \"customJackInCommandLine\": \"../../custom-jack-in.bb --aliases JACK-IN-CLJS-LAUNCH-BUILDS --cider-nrepl-version JACK-IN-CIDER-NREPL-VERSION\",\n

      Note how in this case the REPL is started two directories \u201ddown\u201d from the workspace root where the script resides.

      ","boost":6},{"location":"connect-sequences/#example-sequences","title":"Example Sequences","text":"

      Whether you just want to speed up your workflow or encode some workflow/mechanics into it, it's often the case that you can create a custom sequence that helps.

      ","boost":6},{"location":"connect-sequences/#minimal-menus-with-full-stack-shadow-cljs-repls","title":"Minimal menus with full stack shadow-cljs REPLs","text":"

      Minimize the amount of selecting from the Jack-in/Connect menu when working with a full-stack shadow-cljs + deps/lein project:

          {\n      \"name\": \"backend + frontend\",\n      \"projectType\": \"shadow-cljs\",\n      \"cljsType\": \"shadow-cljs\",\n      \"menuSelections\": {\n        \"cljsLaunchBuilds\": [\n          \":app\",\n          \":test\",\n        ],\n        \"cljsDefaultBuild\": \":app\"\n      }\n    }\n

      See shadow-cljs + Clojure with Calva: The basics for how Calva and nREPL work with ClojureScript.

      ","boost":6},{"location":"connect-sequences/#polylith","title":"Polylith","text":"

      This is the connect sequences used in the Polylith Real World App. The (start) sequence lets you jack-in to the project, and starts the Real World App without any prompts. The (connect) sequence can be used if you prefer to start the REPL manually, and want to connect without prompts.

          \"calva.replConnectSequences\": [\n        {\n            \"projectType\": \"deps.edn\",\n            \"afterCLJReplJackInCode\": \"(require '[dev.server] :reload) (in-ns 'dev.server) (start! 6003)\",\n            \"name\": \"Polylith RealWorld Server REPL (start)\",\n            \"autoSelectForJackIn\": true,\n            \"projectRootPath\": [\".\"],\n            \"cljsType\": \"none\",\n            \"menuSelections\": {\n                \"cljAliases\": [\"dev\", \"test\"]\n            }\n        },\n        {\n            \"projectType\": \"deps.edn\",\n            \"name\": \"Polylith RealWorld Server REPL (connect)\",\n            \"autoSelectForConnect\": true,\n            \"projectRootPath\": [\".\"],\n            \"cljsType\": \"none\",\n        }\n    ],\n    \"calva.autoConnectRepl\": true,\n

      The calva.autoConnectRepl, when set to true, makes Calva, at project open, look for the nRepl port file and automatically connect the repl if the file exists. Therefore, you can leave the app running when you close the project in VS Code, and Calva will reconnect when you open the project again. (Alternatively, maybe you just need to reload the VS Code window and not lose the REPL state.)

      ","boost":6},{"location":"connect-sequences/#minimal-menus-with-full-stack-depsedn-and-figwheel-main-repls","title":"Minimal menus with full stack deps.edn and Figwheel Main REPLs","text":"

      Setting for a full-stack application. It starts the backend server when the CLJ REPL has started. Then proceeds to create a custom CLJS REPL (calling in to the application code for this). And then connects to it.

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Example Sequence\",\n            \"projectType\": \"Clojure-CLI\",\n            \"afterCLJReplJackInCode\": \"(go)\",\n            \"cljsType\": {\n                \"startCode\": \"(do (require '[cljs-test.main :refer :all])(start-nrepl+fig))\",\n                \"isReadyToStartRegExp\": \"Prompt will show\",\n                \"connectCode\": \"(do (use 'cljs-test.main) (cljs-repl))\",\n                \"isConnectedRegExp\": \"To quit, type: :cljs/quit\",\n                \"printThisLineRegExp\": \"\\\\[Figwheel\\\\] Starting Server at.*\"\n            }\n        }\n    ]\n}\n
      ","boost":6},{"location":"connect-sequences/#juxt-edge","title":"JUXT Edge","text":"

      Here is an example from the JUXT Edge project template. It adds two sequences, one for when only the Clojure REPL should be launched and one for when the customized Edge cljs repl should also be connected. The Edge backend + frontend sequence specifies that the web app should be opened by Calva, making cljs repl connection more stable, and also adds menuSelections to skip the launch aliases prompt.

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Edge backend only\",\n            \"projectType\": \"deps.edn\"\n        },\n        {\n            \"name\": \"Edge backend + frontend\",\n            \"projectType\": \"deps.edn\",\n            \"cljsType\": {\n                \"dependsOn\": \"Figwheel Main\",\n                \"startCode\": \"(do (require 'dev-extras) (dev-extras/go) (println \\\"Edge Figwheel Main started\\\") ((resolve 'dev-extras/cljs-repl)))\",\n                \"isReadyToStartRegExp\": \"Edge Figwheel Main started\",\n                \"openUrlRegExp\": \"Website listening on: (?<url>\\\\S+)\",\n                \"printThisLineRegExp\": \"\\\\[Edge\\\\]\",\n                \"shouldOpenUrl\": true,\n                \"connectCode\": \"(do (require 'dev-extras) ((resolve 'dev-extras/cljs-repl)))\",\n                \"isConnectedRegExp\": \"To quit, type: :cljs/quit\",\n                \"buildsRequired\": false\n            },\n            \"menuSelections\": {\n                \"cljAliases\": [\n                    \"dev\",\n                    \"build\",\n                    \"dev/build\"\n                ],\n            }\n        }\n    ]\n}\n
      ","boost":6},{"location":"connect-sequences/#plain-depsedn","title":"Plain deps.edn","text":"

      A deps.edn sequence that does not promote the ClojureScript repl at all (leaving it a Clojure REPL), and leaves that up to you to do interactively. (Could be useful while you are developing a custom cljs repl.) The example is for when adapting a Figwheel Main repl.

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Do not promote to cljs\",\n            \"projectType\": \"deps.edn\",\n            \"cljsType\": {\n                \"dependsOn\": \"Figwheel Main\",\n                \"connectCode\": \"\\\"Don't promote me bro!\\\"\",\n                \"isConnectedRegExp\": \"Don't promote me bro!\"\n            }\n        }\n    ]\n}\n
      ","boost":6},{"location":"connect/","title":"Connect Calva to Your Project","text":"

      When connected to your project's REPL Calva lets you evaluate code, supporting Interactive Programming. The REPL connection is also used to provide IDE functionality through the dynamic knowledge about the project that the REPL enables. The REPL communication depends on that your project has an nREPL server running, and that the cider-nrepl middleware is enabled.

      For the easiest way to provide your project with these dependencies, the recommended way to connect is to use the so called Jack-in command.

      ","boost":7},{"location":"connect/#jack-in-let-calva-start-the-repl-for-you","title":"Jack-in: Let Calva Start the REPL For You","text":"

      This way Calva can make sure it is started with the dependencies needed for a working Clojure and/or ClojureScript session. This is often referred to as Jack in (because that is what it is called in CIDER).

      Jack-in supports both CLJ and for CLJS, and has built-in configurations for Leiningen, deps.edn, shadow-cljs, Gradle projects, as well as for the CLJS repl types: Figwheel Main, lein-figwheel (legacy Figwheel), shadow-cljs, and ClojureScript built-ins for both browser and node.js. Using jack-in provides your development environment with all the dependencies you need for Calva to work.

      It works like so:

      1. Open your project in VS Code.
      2. Issue the command Start a Project REPL and Connect: ctrl+alt+c ctrl+alt+j.
      3. Answer the quick-pick prompts telling Calva about project types and what profiles to start. (See the Jack-in Project Types and Profiles wiki page for more info if needed.)

      See also: Workspace Layouts

      About project roots

      You must have a project file, such as project.clj for Leiningen, or deps.edn for deps.edn, or shadow-cljs.edn for shadow-cljs, or settings.gradle/settings.gradle.kts for Gradle in the directory opened in VS Code in order for jack-in to work. If, after adding the project file, you experience an error during jack-in that says something could not be located, make sure you have the correct dependencies in your project file. For example, when using the Figwheel Main project type, you should have com.bhauman/figwheel-main in your project dependencies.

      See also below, regarding multiple projects in a workspace

      ","boost":7},{"location":"connect/#aliases-profiles-builds","title":"Aliases, Profiles, Builds","text":"

      When Jack-in starts it will depend on the project type, and whether ClojureScript is involved or not, and if it is, what kind of ClojureScript project, what will happen next. Calva will analyze the project files and will then give you prompts with selections based on what is found there.

      You will need some basic knowledge about the project and the project type terminologies to answer the prompts.

      There are ways to tell Calva the answers to these prompts beforehand, so that Jack-in can be a zero-prompting command. Read on.

      ","boost":7},{"location":"connect/#customizing-jack-in","title":"Customizing Jack-in","text":"

      The main mechanism for customizing your Jack-in, including automating menu selections, and custom CLJS REPL types is Custom Connect Sequences. See also Customizing Jack-in and Connect

      ","boost":7},{"location":"connect/#connecting-without-jack-in","title":"Connecting Without Jack-in","text":"

      If, for whatever reasons, you can't use Jack-in with your project (possibly because the REPL is started as part of some other job) all is not lost. Old fashioned Connect to a running REPL is still there for you. For all features to work in Calva while connecting to a running REPL, your environment needs to have REPL related dependencies set up.

      However, just as before it can be tricky to get the dependencies right. Consider using Jack in to inform yourself on how to start your REPL to Calva's satisfaction. When you use Jack in, Calva starts a VS Code task for it and the command line used is displayed in the terminal pane used to handle the task. Reading that command line tells you what dependencies are needed for your project.

      Even better: Copying that command line gives you the command to start the REPL with the correct dependencies.

      All this said, I still recommend you challenge the conclusion that you can't use Jack-in.

      Copy the Jack-in command line

      There is a Calva command for copying the Jack-in command line to the clipboard. It will copy the command line including commands to change to the current REPL project root, avoiding hard-to-detect errors when starting the REPL in the wrong directory.

      The Generic Project Type

      A reason to use the connect to a running REPL way, can be that Calva does not have a built in connect sequence/project type for the particular REPL you want to connect to. Maybe it is something like Lingy which doesn't yet have a built in Calva connect sequence. As long as there is an nREPL server to connect to, you can Connect with Calva, using the Generic connect sequence/project type. (You can also create a connect sequence with a custom command line, and use Jack-in anyway.)

      See also Customizing Jack-in and Connect

      ","boost":7},{"location":"connect/#starting-the-repl-from-application-code","title":"Starting the REPL from application code?","text":"

      If your project is setup so that the REPL server is started by the application code, you will need to get the cider-nrepl middleware in place. See the cider-nrepl docs about embedding nREPL in your application.

      ","boost":7},{"location":"connect/#auto-select-project-type-and-project-root","title":"Auto-select Project Type and Project Root","text":"

      You can make both Jack-in and Connect stop prompting you for project type and project root path in projects where you always want to use the same. See Connect Sequences.

      ","boost":7},{"location":"connect/#monorepos-multiple-clojure-projects-in-one-workspace","title":"Monorepos / multiple Clojure projects in one workspace","text":"

      If the workspace is a monorepo, Polylith repo or just a repository with more than one Clojure project, Calva will start the connect sequence with prompting for which project to start/connect to.

      ","boost":7},{"location":"connect/#shadow-cljs","title":"shadow-cljs","text":"

      Please see the shadow-cljs page.

      ","boost":7},{"location":"connect/#troubleshooting","title":"Troubleshooting","text":"","boost":7},{"location":"connect/#jack-in-and-main-opts","title":"Jack-in and :main-opts","text":"

      When Calva starts the project REPL and connects to it (a.k.a. Jack-in), this is done by starting an nREPL server. For deps.edn projects this by default means that Calva will add -m ... with options that starts the server.

      However: If you choose an alias at Jack-in that specifies :main-opts, it will make the Clojure CLI to add main opts and Calva will then not override these by adding -m ... to the command line. This means that an alias that specify :main-opts must result in an nREPL server being started, or else Calva won't have a server to connect to. Calva won't further analyze this, but will just warn you at Jack-in.

      If you don't know if an alias starts an nREPL server or not, by all means, try it, if you have reasons for using that alias. You will notice if Jack-in works or not. If it doesn't work, you will need to run without that alias, or fix what happens when that alias is used so that an nREPL server is started. See https://nrepl.org/nrepl/usage/server.html about ways to do this.

      ","boost":7},{"location":"connect/#command-not-found-errors-when-jacking-in","title":"Command Not Found Errors When Jacking In","text":"

      If you get command not found error when Calva tries to start your project, and you know you have the command installed, it's probably because VS Code starts from an environment where the command is not on the $PATH. It can look like so:

      lein update-in :dependencies conj '[nrepl,\"0.8.3\"]' -- update-in :plugins conj '[cider/cider-nrepl,\"0.25.8\"]' -- update-in '[:repl-options,:nrepl-middleware]' conj '[\"cider.nrepl/cider-middleware\"]' -- repl :headless\n/bin/sh: lein: command not found\nJack-in process exited. Status: 127\n

      The fix is to always start VS Code from the command line:

      $ code\n

      You might need to first run the Shell Command: Install code command in PATH.

      This will also make sure your REPL has access to the environment you probably expect it to have access to. See below.

      ","boost":7},{"location":"connect/#go-to-definition-not-working-for-java-definitions","title":"Go to Definition Not Working for Java Definitions","text":"

      On some systems, the Java source may not be installed along with the JDK. The source must be present on your system in order to navigate to Java definitions. See this comment for more details.

      ","boost":7},{"location":"connect/#environment-variables-are-not-readable-from-repl","title":"Environment Variables Are Not Readable From REPL","text":"

      If you've added environment variables in your OS, such as in your ~/.bashrc file (Linux), in order for them to be read in a REPL created by Calva's jackin command, VS Code must be started from a shell where the environment variables are defined. For example, if you can open a bash terminal and run echo $SOME_VAR and see the value there, then open VS Code from that terminal with code <project path>.

      ","boost":7},{"location":"connect/#viewing-the-communication-between-nrepl-and-calva","title":"Viewing the Communication Between nREPL and Calva","text":"

      It may be helpful to view the messages sent between nREPL and Calva when troubleshooting an issue related to the REPL. See how to do that here.

      ","boost":7},{"location":"contribute/","title":"Contribute to Calva","text":"

      There are many ways to contribute:

      • Become a sponsor
      • Give us feedback:
      • File issues
      • Talk to us via the #calva channel at the Clojurians Slack (use the latter link to grab an invite)
      • Provide PRs, see the Calva wiki about How to Hack on Calva
      • Give us feedback, preferably via that #calva channel
      • Cheer us on. (Same channel)
      • Help us test things like reported issues, new features, etcetera. See Testing VSIX Packages and Smoke Testing
      • Make tutorials, write blog articles, spread the word
      • Star the Calva repository
      • Help us help beginners with Calva and Clojure, on Slack as well as IRL and wherever.

      Be creative!

      "},{"location":"contribute/#please-star-the-calva-repo","title":"Please star the Calva repo!","text":"

      Happy Coding! \u2764\ufe0f

      "},{"location":"custom-commands/","title":"Custom REPL Commands","text":"

      Calva supports configuration of custom command snippets that you can evaluate in the REPL at will. This is useful if your workflow has you repeatedly evaluating a particular piece of code. There are two ways to use these:

      1. You can use the setting calva.customREPLCommandSnippets to configure it. Then either bind keyboard shortcuts to them or use the command Run Custom REPL Command to access it. The command will give you a menu with the snippets you have configured.
      2. You can bind a keyboard shortcut directly to a custom command snippet by inlining it in the shortcut definition. See Binding Keyboard Shortcuts

      Joyride

      For some use cases you might be better served by/want to combine these with using the VS Code Extension API, and that of Calva, or any other extension, through Joyride.

      The calva.customREPLCommandSnippets is an array of objects with the following fields (required fields in bold):

      • name: The name of the snippet as it will appear in the picker menu
      • snippet: The code that will be evaluated
      • key: A key can be used to reference the snippet from Run Custom REPL Command keyboard shortcut arguments. It will also be used in the quick-pick menu.
      • ns: A namespace to evaluate the command in. If omitted the command will be executed in the namespace of the current editor.
      • repl: Which repl session to use for the evaluation. Either \"clj\" or \"cljs\". Omit if you want to use the session of the current editor.
      • evaluationSendCodeToOutputWindow: (default true) Whether the evaluated code should be echoed to the Output/REPL window.

      There are also substitutions available, which will take elements from the current state of Calva and splice them in to the text of your command before executing it. They are

      • $line: Current line number in editor
      • $column: Current column number in editor
      • $file: Full name of the current file edited
      • $file-text: The text of the current file edited
      • $ns: The namespace used for evaluating the command
      • $editor-ns: The namespace of the editor from which the command was run
      • $selection: The currently selected text
      • $current-form: The text of the current form
      • $current-pair: The text of the current pair if in a binding, otherwise empty string
      • $enclosing-form: The text of the current enclosing form
      • $top-level-form The text of the current top level form
      • $current-fn: The sexpr/form at call position in the current list, e.g. str with (defn foo [] (str \"foo\" \"bar|\"))
      • $top-level-defined-symbol: The second symbol of the top level form, e.g. foo with (defn foo [] (str \"foo\" \"bar|\"))
      • $head: The text between the start of the current list to the cursor
      • $tail: The text between the cursor and the end of the current list
      ","boost":4},{"location":"custom-commands/#user-and-workspace-settings","title":"User and Workspace Settings","text":"

      Settings from your User (global) level and the workspace are merged.

      With these User settings:

          \"calva.customREPLCommandSnippets\": [\n        {\n            \"name\": \"Call Current Form\",\n            \"key\": \"c\",\n            \"snippet\": \"($current-form)\"\n        },\n        {\n            \"name\": \"Call Current Top Level Form\",\n            \"key\": \"t\",\n            \"snippet\": \"($top-level-form)\"\n        },\n        {\n            \"name\": \"CLJ Test Top Level Defined Symbol\",\n            \"repl\": \"clj\",\n            \"snippet\": \"(clojure.test/test-var #'$top-level-defined-symbol)\"\n        },\n        {\n            \"name\": \"CLJS Test Top Level Defined Symbol\",\n            \"repl\": \"cljs\",\n            \"snippet\": \"(cljs.test/test-var #'$top-level-defined-symbol)\",\n            \"key\": \"tab\"\n        }\n    ],\n

      And these Workspace settings:

          \"calva.customREPLCommandSnippets\": [\n        {\n            \"name\": \"Remount CLJS App\",\n            \"key\": \"r\",\n            \"repl\": \"cljs\",\n            \"ns\": \"example.app\",\n            \"snippet\": \"(start)\"\n        }\n    ],\n

      Issuing Run Custom REPL Command will then render this VS Code menu:

      The default keyboard shortcut for the command is ctrl+alt+space space. (Beware: on MacOS it may conflict with the default shortuct for Input Sources - Select next source in Input menu.)

      ","boost":4},{"location":"custom-commands/#binding-keyboard-shortcuts","title":"Binding Keyboard Shortcuts","text":"

      There are four ways to bind shortcuts to custom commands:

      1. Use a predefined key shortcut. These are predefined as ctrl+alt+space <something>, where <something> is one of:
        • The digits 0 through 9
        • The English letters a through z
        • Arrow keys right, left, up, or down
        • One of tab, backspace, ,, ., or -
      2. Bind calva.runCustomREPLCommand to a shortcut with whatever code you want to evaluate in the args slot. You have access to the substitution variables here as well.
      3. Bind calva.runCustomREPLCommand to a keyboard shortcut referencing the key of one of your calva.customREPLCommandSnippets. (If not using any of the keys mentioned in 1.)
      4. Bind calva.runCustomREPLCommand to a shortcut with a customREPLCommandSnippets in the args slot. You have access to the substitution variables here as well.

      Here's an example shortcut entry for the 4th option:

          {\n        \"key\": \"ctrl+cmd+u alt+enter\",\n        \"command\": \"calva.runCustomREPLCommand\",\n        \"args\": {\n            \"ns\": \"user\",\n            \"snippet\": \"$current-form\",\n        }\n    },\n

      This would evaluate the current form in the user namespace. Please note that this Custom REPL Command will not show up in the custom commands menu mentioned above.

      ","boost":4},{"location":"custom-commands/#custom-repl-hover-snippets","title":"Custom REPL Hover Snippets","text":"

      Calva supports custom snippets that will display their result inside the tooltip. They will only work when connected to a repl, since they eval code in it. This is mostly useful for tooling authors that want to integrate with calva. Be careful with these, since they will be executed anytime Calva displays a tooltip. So they should be fast and probably not have any side effects.

      The hover snippets accept the same inputs as the Custom REPL Commands, except for the hotkey:

          \"calva.customREPLHoverSnippets\": [\n        {\n            \"name\": \"eval text on hover\",\n            \"repl\": \"clj\",\n            \"ns\": \"example.app\",\n            \"snippet\": \"(str \\\"$hover-text\\\")\"\n        }\n    ]\n

      With this setting anything the mouse is over will also be shown inside its tooltip. There are now also hover- versions of most substitutions. Those currently only work inside the hover snippets.

      ","boost":4},{"location":"custom-commands/#configedn","title":"config.edn","text":"

      :customREPLCommandSnippets and :customREPLHoverSnippets can be also be configured in your user config at .config/calva/config.edn realative to your system home directory, or .calva/config.edn relative to the workspace root. Three things to note about this:

      1. None of these two configs get synced through VS Code Settings Sync.
      2. Changes to workspace .calva/config.edn will be automatically noticed by Calva, and refresh the config. This will not happen with the user config file.
      3. Internally in Calva, the settings are keyed on the snippet :name entry, and if you change the name, the old entry won't be removed until the VS Code window is reloaded.

      As for 2.: There is a command Calva: Refresh REPL snippets from User config.edn.

      There is also a command to open the User config.edn, for convenience: Calva: Open REPL snippets User config.edn. This command creates the file if it doesn't previously exist.

      ","boost":4},{"location":"custom-commands/#snippets-inside-deps","title":"Snippets Inside Deps","text":"

      A new experimental feature lets library authors ship snippets inside their jar files. These accept the same options as above but should be placed in \"resources/calva.exports/config.edn\" inside the jar.

      {:customREPLCommandSnippets\n [{:name \"edn test\"\n   :key \"a\"\n   :snippet ($current-form)}]\n :customREPLHoverSnippets\n [{:name \"edn hover\"\n   :snippet (str \"$hover-tex\")}\n  {:name \"edn hover show val\"\n   :snippet (str \"### EDN show val\\n```clojure\\n\" (pr-str (eval (symbol (str \"$ns\" \"/\" \"$hover-top-level-defined-symbol\")))) \"\\n```\")}]}\n
      ","boost":4},{"location":"customizing-jack-in-and-connect/","title":"Customize Jack-in and Connect","text":"

      Since Jack-in and connect both are about connecting the REPL, and only differ in how the REPL is started, many settings and configuration points are shared between the two concepts. A major customization point is Custom Connect Sequences, which are relevant for both Jack-in and Standalone Connect scenarios.

      This page lists some more Jack-in and Connect configuration options.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#auto-evaluate-code-on-connect","title":"Auto-evaluate Code on Connect","text":"

      You can have Calva evaluate code whenever a REPL has been connected via the calva.autoEvaluateCode.onConnect setting. It has two entries clj and cljs:

      • clj: \"Code to evaluate when the Clojure REPL has been connected.
        • The default is code that refer in the repl-requires/REPL utilities (like source, doc, etcetera). (Note that there is also a command to do this on demand.).
        • Overriding the default replaces it. If you want to add code to be evaluated on connect this way, and keep the behaviour of auto-refering REPL utilities, you need to provide code for the latter (copy/pasting the default code will do). See also note below about concatenation of configurations.
        • The code will be evaluated before the afterCLJReplJackInCode in any connect sequence used.
      • cljs: Code to evaluate when the ClojureScript REPL has been connected.
        • The default is code that refer in the repl-requires/REPL utilities (like source, doc, etcetera). (Note that there is also a command to do this on demand.).
        • Same deal with overriding the default as with clj.

      Set either of these to null to disable the feature for that REPL type. (The Settings linter will complain, but it works.)

      For Clojure this is in addition to afterCLJReplJackInCode

      There are two mechanisms for evaluating code when a Clojure REPL is connected. The afterCLJReplJackInCode setting of custom connect sequences, and this calva.autoEvaluateCode.onConnect.clj setting. There is no fundamental difference between them. This one has a default function of auto-refering in the Clojure REPL utilities. And it will be run before the connect sequence after-Jack-in code.

      All configured code is concatenated

      If you configure this both in User/global settings and in a Workspace, the workspace configured code will be concatenated on the user level code. Meaning both code snippets will be evaluated, first the User level code, then the Workspace level code. Also null disables the feature:

      • If you use null in the User level code, you will disable the onConnect code evaluation for all workspaces that do not configure code for this.
      • If you configure code on the User level it will be evaluated in all workspaces, except those that disable the feature by configuring null.
      ","boost":7},{"location":"customizing-jack-in-and-connect/#auto-evaluate-code-at-filenamespace-loadevaluation","title":"Auto-evaluate Code at file/namespace load/evaluation","text":"

      You can also make Calva auto-evaluate code when a file has been loaded in the REPL (via the Calva command for loading files). You add code for this via the calva.autoEvaluateCode.onFileLoaded setting. Like with onConnect you provide code for clj and cljs separately.

      • Note that custom commands substitutions are in play here as well.
      • Calva's does not provide defaults for this setting.
      • Merging works the same as with onConnect.
      ","boost":7},{"location":"customizing-jack-in-and-connect/#customizing-connect","title":"Customizing Connect","text":"

      If there is an nRepl port file, Calva will use it and not prompt for host:port when connecting. You can make Calva prompt for this by setting the boolean config calva.autoSelectNReplPortFromPortFile to false.

      With the setting calva.autoConnectRepl you can make Calva automatically connect the REPL if there is an nRepl port file present when the project is opened.

      With this and the below mentioned auto-select options you can make connect a prompt-less experience. See: Connect Sequences.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#options-for-the-connect-command","title":"Options for the Connect Command","text":"

      The calva.connect command takes an optional options argument defined like so:

        options?: {\n    host?: string;\n    port?: string;\n    connectSequence?: string | ReplConnectSequence;\n    disableAutoSelect?: boolean;\n  }\n

      Where ReplConnectSequence is a Connect Sequences. If you provide a string it needs to match against a built-in or custom connect sequence. With disableAutoSelect you can force the connect menus to be provided even if a custom connect sequence is set to be autoSelected.

      You can provide these options from keyboard shortcuts or from Joyride scripts.

      Here's a keyboard shortcut for connecting to a running REPL bypassing any connect sequence with autoSelectForConnect.

          {\n        \"command\": \"calva.connect\",\n        \"args\": {\"disableAutoSelect\": true},\n        \"key\": \"ctrl+alt+c shift+c\",\n    },\n

      A Joyride command for connecting to a REPL on port 55555, without being asked for project type:

      (vscode/commands.executeCommand \"calva.connect\" (clj->js {:port \"55555\" :connectSequence \"Generic\"}))\n
      ","boost":7},{"location":"customizing-jack-in-and-connect/#customizing-jack-in","title":"Customizing Jack-in","text":"

      The main mechanism for customizing your Jack-in, including automating menu selections, and custom CLJS REPL types is Custom Connect Sequences.

      There are also these settings:

      • calva.jackInEnv: An object with environment variables that will be added to the environment of the Jack-in process.
      • calva.myCljAliases: An array of deps.edn aliases not found in the project file. Use this to tell Calva Jack-in to launch your REPL using your user defined aliases.
      • calva.myLeinProfiles: An array of Leiningen profiles not found in project.clj. Use this to tell Calva Jack-in to launch your REPL using your user defined profiles.
      • calva.openBrowserWhenFigwheelStarted: For Legacy Figwheel only. A boolean controlling if Calva should automatically launch your ClojureScript app, once it is compiled by Figwheel. Defaults to true.
      • calva.depsEdnJackInExecutable: A string which should either be clojure or deps.clj, or clojure or deps.clj (default). It determines which executable Calva Jack-in should use for starting a deps.edn project. With this setting at its default, clojure or deps.clj, Calva will test if the clojure executable works, and use it if it does, otherwise deps.clj will be used, which is bundled with Calva.
      • calva.jackInDependencyVersions: See below

      Note

      When processing the calva.jackInEnv setting you can refer to existing ENV variables with ${env:VARIABLE}.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#jack-in-dependency-versions","title":"Jack-in Dependency Versions","text":"

      Calva Jack-in injects the following dependencies in order for the REPL session to support IDE features

      • nrepl: nREPL is the wonderful piece of software that gives Calva a structured and extensible connection to the REPL in your Clojure and ClojureScript projects.
      • cider-nrepl: cider-nrepl is middleware that extends the nREPL connection with all sorts of nice stuff that Calva uses to give you a delightful IDE experience.
      • cider/piggieback: Piggieback is used to create nREPL sessions in ClojureScript projects. (Not with shadow-cljs projects though, which provides its own middleware for this.)

      The versions used are configurable via the VS Code settings calva.jackInDependencyVersions.

      Java 1.8 compatible versions

      The default dependency versions are not compatible with Java 1.8. If your project needs that version of Java you can use these settings in your Workspace .vscode/settings.json:

      \"calva.jackInDependencyVersions\": {\n  \"nrepl\": \"1.0.0\",\n  \"cider-nrepl\": \"0.28.5\",\n  \"cider/piggieback\": \"0.5.3\"\n}\n
      ","boost":7},{"location":"customizing-jack-in-and-connect/#options-for-the-jack-in-command","title":"Options for the Jack-in Command","text":"

      The calva.jackIn command takes an optional options argument defined like so:

        options?: {\n    connectSequence?: string | ReplConnectSequence;\n    disableAutoSelect?: boolean;\n  }\n

      Where ReplConnectSequence is a Connect Sequences. If you provide a string it needs to match against a built-in or custom connect sequence. With disableAutoSelect you can force the jack-in menus to be provided even if a custom connect sequence is set to be autoSelected.

      You can provide these options from keyboard shortcuts or from Joyride scripts.

      Here's a keyboard shortcut for connecting to a running REPL bypassing any connect sequence with autoSelectForConnect.

          {\n        \"command\": \"calva.jackIn\",\n        \"args\": {\"disableAutoSelect\": true},\n        \"key\": \"ctrl+alt+c shift+j\",\n    },\n

      A Joyride command for starting a deps.edn REPL for a project in the root of the workspace.

      (vscode/commands.executeCommand\n \"calva.jackIn\"\n (clj->js {:connectSequence {:projectType \"deps.edn\"\n                             :projectRootPath [\".\"]}}))\n

      It will prompt for any aliases it finds in the deps.edn file.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#starting-the-repl-from-application-code","title":"Starting the REPL from application code?","text":"

      If your project is setup so that the REPL server is started by the application code, you will need to get the cider-nrepl middleware in place. See the cider-nrepl docs about embedding nREPL in your application.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#auto-select-project-type-and-project-root","title":"Auto-select Project Type and Project Root","text":"

      You can make both Jack-in and Connect stop prompting you for project type and project root path in projects where you always want to use the same. See Connect Sequences.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#project-roots-search-globing","title":"Project roots search globing","text":"

      When searching for project roots in your workspace, Calva will glob for all files matching project.clj, deps.edn, or shadow-cljs.edn. This is done using VS Code's workspace search engine, and is very efficient. However, in a large monorepo, it is still a substantial task. In order to not waste resources Calva will exclude any directories in the setting calva.projectRootsSearchExclude.

      Exclude entry globs

      Each entry is a partial glob and will be part of a resulting glob of the form **/{glob1,glob2,...,globN}. This means that all directories in the workspace matching an entry will be excluded, regardless of where in the workspace they reside.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#viewing-the-communication-between-nrepl-and-calva","title":"Viewing the Communication Between nREPL and Calva","text":"

      It may be helpful to view the messages sent between nREPL and Calva when troubleshooting an issue related to the REPL. See how to do that here.

      ","boost":7},{"location":"customizing/","title":"Customizing Calva","text":"

      Don't like the defaults? On this page we can collect some of the customizations that people have done, and maybe write a thing or two about it some day.

      Tip for VS Code newcomers: The search box in Settings is your friend. Also, some Calva settings are more complex than the Settings UI can handle. VS Code will then show you a link to settings.json. And VS Code's built-in json extension is awesome. To add settings for Calva's Pretty Printing, for example, search for \u201dprettyprint\u201d in VS Code Settings and follow the link to settings.json. Start typing \u201dcalvapretty\u201d until auto-complete suggests calva.prettyPrintingOptions. Press ENTER and VS Code will fill in these defaults:

          \"calva.prettyPrintingOptions\": {\n        \"enabled\": true,\n        \"printEngine\": \"pprint\",\n        \"width\": 40\n    },\n
      "},{"location":"customizing/#clojure-defaults","title":"Clojure Defaults","text":"

      Calva sets some VS Code settings for all Clojure files. Some of these are needed for Calva to function correctly, which should not be tampered with unless you really know what you are doing, and some of them are convenient defaults. If you add a setting to your settings.json and accept the snippet help you get when you type \"[clojure]\", you will get the Calva defaults pasted:

          \"[clojure]\": {\n        \"editor.wordSeparators\": \"\\t ()\\\"':,;~@#$%^&{}[]`\",\n        \"editor.autoClosingBrackets\": \"always\",\n        \"editor.autoClosingQuotes\": \"always\",\n        \"editor.autoClosingQuotes\": \"always\",\n        \"editor.formatOnType\": true,\n        \"editor.autoIndent\": \"full\",\n        \"editor.formatOnPaste\": true,\n        \"editor.matchBrackets\": \"never\",\n        \"editor.renderIndentGuides\": false,\n        \"editor.parameterHints.enabled\": false\n    }\n

      Note

      The above editor.wordSeparators setting establish Clojure word boundaries. E.g - is considered to be part of words. This affects what happens when double-clicking symbols and other things. If you want to include - or something else as a word boundary, just add it to the setting.

      "},{"location":"customizing/#pretty-printing","title":"Pretty Printing","text":"

      Calva's pretty printing mode can be configured a bit. See Pretty Printing.

      "},{"location":"customizing/#calva-highlight","title":"Calva Highlight","text":"

      This is highly customizable. See Syntax highlighting

      "},{"location":"customizing/#color-customizations","title":"Color customizations","text":"

      Calva defines a set of themable colors which can be provided by the user using workbench.colorCustomizations.

          \"workbench.colorCustomizations\": {\n        \"calva.inlineErrorForegroundColor\": \"#ff0000\",\n        \"calva.inlineForegroundColor\": \"#ff9000\"\n    }\n

      "},{"location":"customizing/#automatic-parameter-hints-poppup","title":"Automatic Parameter Hints Poppup","text":"

      Calva has helpful parameter hints to aid when typing function calls. They look like so:

      To have the hints automatically pop up when you are typing, set editor.parameterHints.enabled to true in the above [clojure] scoped setting. (To call them up on demand the default VS Code keybindings are cmd+shift+space on Mac and ctrl+shift+space on Linux/Windows.)

      "},{"location":"customizing/#code-formatting","title":"Code Formatting","text":"

      See Formatting for information on how to configure this.

      "},{"location":"customizing/#jack-in-and-connect","title":"Jack-in and Connect","text":"

      Jack-in and Connect are very customizable through Custom Connect Sequences.

      See also Customizing Jack-in and Connect

      "},{"location":"customizing/#key-bindings","title":"Key bindings","text":"

      Most of Calva's commands have default keybindings. They are only defaults, though, and you can change keybindings as you wish. To facilitate precision in binding keys Calva keeps some when clause contexts updated.

      "},{"location":"customizing/#when-clause-contexts","title":"When Clause Contexts","text":"

      The following contexts are available with Calva:

      • calva:keybindingsEnabled: a master switch that you find in the settings
      • paredit:keyMap: strict, original, or none from the corresponding Calva setting (see Paredit)
      • calva:connected: true when Calva is connected to a REPL (there is also calva:connecting || calva:launching)
      • calva:outputWindowActive: true when the Output/REPL window has input focus
      • calva:replHistoryCommandsActive: true when the cursor is in the Output/REPL window at the top level after the last prompt
      • calva:replWindowSubmitOnEnter: true when the cursor is adjacent after the last top level form in the Output/REPL window
      • calva:cursorInString: true when the cursor/caret is in a string or a regexp
      • calva:cursorInComment: true when the cursor is in, or adjacent to a line comment
      • calva:cursorBeforeComment: true when the cursor is adjacent before a line comment
      • calva:cursorAfterComment: true when the cursor is adjacent after a line comment
      • calva:cursorAtStartOfLine: true when the cursor is at the start of a line including any leading whitespace
      • calva:cursorAtEndOfLine: true when the cursor is at the end of a line including any trailing whitespace
      "},{"location":"customizing/#some-custom-bindings","title":"Some Custom Bindings","text":"

      Here is a collection of custom keybindings from here and there.

      • Replace all Calva ctrl+alt+... key bindings with ctrl+shift+..., for keyboards lacking alt key: this gist
      • Replace the default Calva \u201dprefix\u201d, ctrl+alt+c to just alt+v: WebWItch's keybindings.json (Please note, that alt+v does not work for some locales, but for when it works it is much less clunky than the default prefix).
      • Here the Calva key is switched for ctrl+,: manas_marthi's keybindings
      • Keybindings for Emacs users
      • Use modifiers and WASD keys for movement and manipulation: isaksky's keybindings

      Are you a vim extension user? See: Using with VIM extension.

      "},{"location":"customizing/#move-by-word","title":"Move by word","text":"

      By default Calva changes the move-by-word key bindings to move by sexpr/form when the cursor is in structural Clojure code. Within line comments the editor default word movement is active.

      If you want the VS Code default word movement shortcuts, use these settings:

          {\n        \"key\": \"ctrl+right\",\n        \"win\": \"ctrl+right\",\n        \"mac\": \"alt+right\",\n        \"command\": \"cursorWordRight\"\n    },\n    {\n        \"key\": \"ctrl+left\",\n        \"win\": \"ctrl+left\",\n        \"mac\": \"alt+left\",\n        \"command\": \"cursorWordLeft\"\n    },\n    {\n        \"key\": \"ctrl+right\",\n        \"mac\": \"ctrl+right\",\n        \"win\": \"alt+right\",\n        \"command\": \"paredit.forwardSexp\",\n        \"when\": \"calva:keybindingsEnabled && editorTextFocus && editorLangId == 'clojure' && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+left\",\n        \"mac\": \"ctrl+left\",\n        \"win\": \"alt+left\",\n        \"command\": \"paredit.backwardSexp\",\n        \"when\": \"calva:keybindingsEnabled && editorTextFocus && editorLangId == 'clojure' && paredit:keyMap =~ /original|strict/\"\n    }\n

      Use it as an inspiration for customizing things to your own liking. \ud83d\ude04

      "},{"location":"customizing/#wrap-using-like-cursive","title":"Wrap using (, [, { (like Cursive)","text":"

      Something I use in IntelliJ/Cursive is the ability to select an expression and hit one of (, [, { to wrap it. And after wrapping the expression I don't want the selection anymore, so if I were wrapping (foo) then I would want to get ( | (foo)) where | would be my cursor.

      Here's how you can make this work with Calva Paredit: Update all of the Paredit: Wrap Around ... commands so that their respective shortcuts are the wrappers themselves and update the when clause to include editorHasSelection (otherwise when you open a paren the next expression would get slurped in).

      The change would look like this in your keybindings.json:

          {\n        \"key\": \"shift+9\",\n        \"command\": \"paredit.wrapAroundParens\",\n        \"when\": \"editorTextFocus && editorHasSelection && !editorReadOnly && editorLangId =~ /clojure|scheme|lisp/ && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"[\",\n        \"command\": \"paredit.wrapAroundSquare\",\n        \"when\": \"editorHasSelection && editorTextFocus && !editorReadOnly && editorLangId =~ /clojure|scheme|lisp/ && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"shift+[\",\n        \"command\": \"paredit.wrapAroundCurly\",\n        \"when\": \"editorHasSelection && editorTextFocus && !editorReadOnly && editorLangId =~ /clojure|scheme|lisp/ && paredit:keyMap =~ /original|strict/\"\n    }\n
      "},{"location":"debugger/","title":"Debugger","text":"

      Calva comes with a powerful expression-based debugger, inspired by Cider's debugger, and using the same underlying library, cider-nrepl. We hope you love it!

      Note

      The debugger currently does not support ClojureScript. Calva's debugger utilizes cider-nrepl for debugging. See this Cider issue for more information.

      "},{"location":"debugger/#features","title":"Features","text":""},{"location":"debugger/#current","title":"Current","text":"
      • Instrument functions for debugging with ctrl+alt+c i
      • Instrument a function manually with #dbg (as opposed to the above command)
      • Set individual breakpoints with #break
      • Continue to next breakpoint
      • Step over form
      • Step into form
      • Step out of form
      • Evaluate code in the debug context
      • See variable values in the debugger side pane
      • See variable values on hover in the editor
      "},{"location":"debugger/#future-goals","title":"Future goals","text":"
      • See structured variables in the debugger side pane (currently maps and collections are just shown as strings)
      • Inject values into the debug context
      • Trace: continue, printing expressions and their values
      "},{"location":"debugger/#dependencies","title":"Dependencies","text":"

      The debugger itself relies pretty heavily on cider-nrepl, as do other parts of Calva. This library is loaded as a dependency when you use Calva Jack-in. If you are not using Calva Jack-in, you can add these dependencies in your project definition or user profile. See the Calva Jack-in guide for more information.

      "},{"location":"debugger/#using-the-debugger","title":"Using the Debugger","text":"

      If you're new to Clojure or expression-based debuggers, this debugger may function differently than what you're used to. Instead of placing breakpoints in the side margin and then hitting F5 to start debugging, you instead use Clojure reader tags, #break and #dbg, to denote breakpoints anywhere in a Clojure form. When you evaluate a call to a function that has been evaluated with that reader tag, the debugger will start when execution reaches the first breakpoint. There's also a convenience command to instrument functions. Read below about both options.

      Note

      The debugger is not configured via a launch.json file, and is not started in the same way as you may be used to when working with other languages in VS Code. The debugger is used by way of the REPL. If you are new to Clojure, please visit the Getting Started section of the documentation and get familiar with evaluating code using the REPL before using the debugger.

      "},{"location":"debugger/#instrumenting-a-function","title":"Instrumenting a Function","text":"

      You can instrument a top level function for debugging with ctrl+alt+c i. This places invisible breakpoints throughout the function where pausing makes sense. When you evaluate a call to this function, the debugger will start and execution will pause at the first breakpoint. Annotations show the value of the form at the cursor.

      A border is placed around the definition of the instrumented function and its references to show that it's instrumented. You can remove instrumentation by evaluating the function again normally, such as with alt+enter.

      "},{"location":"debugger/#setting-breakpoints-with-break","title":"Setting Breakpoints with #break","text":"

      You can insert a breakpoint manually into any code by placing a #break in front of the form where you want execution to pause, and then evaluating the top level form with alt+enter. When you evaluate a call to this code the VS Code debugger will start, the cursor will move to right after the form that's preceded by #break, and the line will be highlighted to show execution is paused there.

      Note

      Code will be executed up to and including the form after the breakpoint.

      "},{"location":"debugger/#conditional-breakpoints","title":"Conditional Breakpoints","text":"

      You can set conditional breakpoints by adding metadata before the form that the #break applies to.

      (defn print-nums [n]\n  (dotimes [i n]\n    #break ^{:break/when (= i 7)} ;; This breakpoint will only be hit when i equals 7\n    (prn i)))\n
      "},{"location":"debugger/#instrumenting-a-form-with-dbg","title":"Instrumenting a Form with #dbg","text":"

      Adding #dbg before a form then evaluating the form with alt+enter will instrument the form. This has the same effect as using the instrument command.

      "},{"location":"debugger/#evaluating-code-in-the-paused-context","title":"Evaluating Code in the Paused Context","text":"

      When execution is paused at a breakpoint, you can evaluate code in that context. This can be done in the editor or in the REPL window, as usual.

      "},{"location":"debugger/#viewing-variable-values","title":"Viewing Variable Values","text":"

      While debugging, you can view the values of variables in VS Code's debugger side pane. You can also view values by hovering over the variables in the editor.

      Metadata not available

      The variable viewer does not have access to any metadata attached to the variable values.

      "},{"location":"debugger/#viewing-the-call-stack","title":"Viewing the Call Stack","text":"

      While debugging, you can view the call stack in VS Code's call stack side pane. Clicking the stack frames will show the related line of code in an editor.

      Note

      You may only see one stack frame in the call stack side pane, as the change for adding additional frames was rolled back due to an issue. You can follow the change for this at #1150.

      "},{"location":"debugger/#stepping-commands","title":"Stepping Commands","text":"

      You can use VS Code's debugger UI to advance execution while debugging.

      Note

      Clicking restart does nothing, since this functionality does not make sense for our debugger.

      • Continue - Continues without stopping for the current breakpoint
      • Step over - Continues to the next breakpoint
      • Step in - Steps in to the function about to be called. If the next breakpoint is not around a function call, does the same as next. Note that not all functions can be stepped in to - only normal functions stored in vars, for which cider-nrepl can find the source. You cannot currently step in to multimethods, protocol functions, or functions in clojure.core (although multimethods and protocols can be instrumented manually).
      • Step out - Steps to the next breakpoint that is outside of the current sexp
      • Restart - Does nothing. To restart debugging, you can hit disconnect or continue execution through the final result, then re-evaluate the expression that started the debugger.
      • Disconnect - Disconnects the debugger
      "},{"location":"debugger/#caveats","title":"Caveats","text":""},{"location":"debugger/#breakpoints-in-looprecur","title":"Breakpoints in loop/recur","text":"

      One construct where the debugger is limited is loop/recur. As recur always has to appear in a tail-position inside a loop or a fn and the debugger uses macros to interleave breakpoints in the forms, it might happen that a recur no longer appears in a tail position. In that case we have to avoid setting up the breakpoint. An example of such a case is:

      (loop [i 0]\n  #break\n  (when (< i 10)\n    (println i)\n    (recur (inc i))))\n

      Here the breakpoint is exactly in front of a form that contains as its last expression a recur which is wrapped in a loop. This breakpoint has no effect. This does not mean you cannot use the debugger with loop, it just means you have to set your debug statements more carefully.

      "},{"location":"debugger/#loading-the-file-and-eval-on-save","title":"Loading the File and \"Eval On Save\"","text":"

      When you load a file, any breakpoints that were previously set in functions will be unset. If you have the \"Eval On Save\" setting enabled, your file is also loaded with each save, therefore saving the file will remove breakpoints previously set.

      "},{"location":"debugger/#clashes-with-emacscider-debugger","title":"Clashes with Emacs/CIDER debugger","text":"

      When both CIDER and Calva is connected to the same REPL, stepping the debugger in one editor may have it stop on the breakpoint in the other one. Reported here: https://github.com/BetterThanTomorrow/calva/issues/2496

      "},{"location":"debugger/#troubleshooting","title":"Troubleshooting","text":""},{"location":"debugger/#debugger-hangs-when-stepping-over-infinite-seqs","title":"Debugger hangs when stepping over infinite seqs","text":"

      This is because the debugger tries to evaluate the form when it's stepped over, and if clojure.core/*print-length* is set to nil as it is by default, evaluation will never complete. If you want to debug a form with an infinite seq, make sure to set *print-length* beforehand. For example:

      (set! *print-length* 3)\n;; Or, to be more precise\n(set! clojure.core/*print-length* 3)\n

      Calva does not set this for you during debug mode, instead leaving it up to you to decide the value.

      "},{"location":"debugger/#my-breakpoint-isnt-being-hit","title":"My breakpoint isn't being hit","text":"

      It's likely that your breakpoint is in a place that cider-nrepl does not see as an appropriate place to break execution. For example, if you put a breakpoint before a literal number, it will not be hit, because there's no need to show the value of a literal.

      (defn simple [x]\n  (+ 1 #break 1)) ;; This breakpoint will not be hit\n

      Another possible issue is that you're loading the file again after setting breakpoints, which unsets them. See Loading the File and \"Eval On Save\" under Caveats.

      "},{"location":"debugger/#my-breakpoint-in-a-test-isnt-being-hit","title":"My breakpoint in a test isn't being hit","text":"

      If you're using the test commands like \"Run current test\" to run your tests, breakpoints will not be hit. This is because Calva loads the file before running the tests to make sure the latest version of test code is being run, and when the file is loaded, breakpoints are unset.

      If you want a breakpoint to work within the test, evaluate the test form with a breakpoint tag in it, then call the test directly.

      "},{"location":"debugger/#no-reader-function-for-tag-error","title":"\"No reader function for tag\" error","text":"

      If you get an error like this, it's likely that you connected to a REPL instead of jacking in, and you don't have the proper dependencies loaded in your REPL. You can run the command \"Copy Jack-in Command Line to Clipboard\" to see what command would be run if you jacked in.

      Most importantly, make sure you have cider/cider-nrepl as a dependency, and cider.nrepl/cider-middleware as middleware loaded in your REPL. For example, this is a jack-in command line for a deps.edn project:

      clojure -Sdeps '{:deps {nrepl/nrepl {:mvn/version,\"0.8.3\"},cider/cider-nrepl {:mvn/version,\"0.25.8\"}}}' -m nrepl.cmdline --middleware \"[cider.nrepl/cider-middleware]\"\n
      "},{"location":"debugger/#passing-options-to-the-repl-jvm","title":"Passing options to the REPL JVM","text":"

      There are times when Clojure debugging tools are not enough or not right for the job. This is usually true when use an (open source) Java library and you want to set some breakpoints in Java code. For those cases and others, you need to start the JVM in debug mode.

      Typical use cases:

      • Change Java logger configuration for the REPL via java system properties: e.g -Dorg.slf4j.simpleLogger.defaultLogLevel=TRACE
      • Enable JVM debugger, change VM memory size, etc.

      Calva supports passing environment variables via jackInEnv. You can set that option inside VSCode settings.json file.

      You can configure global settings.json file or a project wide version, inside <project-root>/.vscode/settings.json.

      Configuring the global option will impact all projects you work on using Calva, so be aware. See the documentation for settings.json for more information.

      The bellow snippet configures JAVA_TOOL_OPTIONS environment variable. We configure slf4j-simple logging level via a Java system property (-D) and JVM specific options (-X).

      NOTE: You can of course pass other env variables here.

      .vscode/settings.json

      {\n    \"calva.jackInEnv\": {\n        \"JAVA_TOOL_OPTIONS\": \"${env:JAVA_TOOL_OPTIONS} -Dorg.slf4j.simpleLogger.defaultLogLevel=TRACE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7896\"\n    }\n}\n

      Once you saved the file, the next time you Jack in the project, this variable is read by the JVM and the configuration is applied accordingly.

      You should see something like the message below in the Calva terminal output window:

      clojure -Sdeps '{:deps {nrepl/nrepl {:mvn/version,\"0.8.3\"},cider/cider-nrepl {:mvn/version,\"0.26.0\"}}}' -A:debug -m nrepl.cmdline --middleware \"[cider.nrepl/cider-middleware]\"\nPicked up JAVA_TOOL_OPTIONS:  -Dorg.slf4j.simpleLogger.defaultLogLevel=TRACE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7896\nListening for transport dt_socket at address: 7896\nnREPL server started on port 46691 on host localhost - nrepl://localhost:46691\n
      "},{"location":"emacs-keybindings/","title":"Emacs Keybindings","text":"

      Some keybindings to make it easier for Emacs users

      [\n    {\n        \"key\": \"ctrl+cmd+b\",\n        \"command\": \"paredit.backwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+alt+left\",\n        \"command\": \"-paredit.backwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"shift+cmd+]\",\n        \"command\": \"-workbench.action.nextEditor\"\n    },\n    {\n        \"key\": \"ctrl+shift+]\",\n        \"command\": \"paredit.barfSexpBackward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+right\",\n        \"command\": \"-paredit.barfSexpBackward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+[\",\n        \"command\": \"paredit.barfSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+left\",\n        \"command\": \"-paredit.barfSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+cmd+f\",\n        \"command\": \"paredit.forwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+alt+right\",\n        \"command\": \"-paredit.forwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+cmd+f\",\n        \"command\": \"-workbench.action.toggleFullScreen\"\n    },\n    {\n        \"key\": \"ctrl+shift+backspace\",\n        \"command\": \"-paredit.killSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"shift+cmd+k\",\n        \"command\": \"-editor.action.deleteLines\",\n        \"when\": \"textInputFocus && !editorReadonly\"\n    },\n    {\n        \"key\": \"ctrl+shift+0\",\n        \"command\": \"paredit.slurpSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+right\",\n        \"command\": \"-paredit.slurpSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+9\",\n        \"command\": \"paredit.slurpSexpBackward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+left\",\n        \"command\": \"-paredit.slurpSexpBackward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+c ctrl+c\",\n        \"command\": \"calva.evaluateCurrentTopLevelForm\",\n        \"when\": \"calva:activated\"\n    },\n    {\n        \"key\": \"ctrl+alt+c space\",\n        \"command\": \"-calva.evaluateCurrentTopLevelForm\",\n        \"when\": \"calva:activated\"\n    },\n    {\n        \"key\": \"ctrl+x ctrl+e\",\n        \"command\": \"calva.evalCurrentTopLevelFormInREPLWindow\",\n        \"when\": \"calva:activated\"\n    },\n    {\n        \"key\": \"ctrl+alt+c ctrl+alt+space\",\n        \"command\": \"-calva.evalCurrentTopLevelFormInREPLWindow\",\n        \"when\": \"calva:activated\"\n    },\n    {\n        \"key\": \"ctrl+x ctrl+s\",\n        \"command\": \"workbench.action.files.save\"\n    },\n    {\n        \"key\": \"cmd+s\",\n        \"command\": \"-workbench.action.files.save\"\n    },\n    {\n        \"key\": \"cmd+s\",\n        \"command\": \"paredit.spliceSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+alt+s\",\n        \"command\": \"-paredit.spliceSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+cmd+k\",\n        \"command\": \"paredit.cutForwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+x right\",\n        \"command\": \"-paredit.cutForwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+cmd+backspace\",\n        \"command\": \"paredit.cutBackwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+x left\",\n        \"command\": \"-paredit.cutBackwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+1\",\n        \"command\": \"-workbench.action.openEditorAtIndex1\"\n    },\n    {\n        \"key\": \"ctrl+1\",\n        \"command\": \"editor.action.quickFix\",\n        \"when\": \"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\"\n    },\n    {\n        \"key\": \"cmd+.\",\n        \"command\": \"-editor.action.quickFix\",\n        \"when\": \"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\"\n    },\n    {\n        \"key\": \"cmd+.\",\n        \"command\": \"editor.action.revealDefinition\",\n        \"when\": \"editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor\"\n    },\n    {\n        \"key\": \"f12\",\n        \"command\": \"-editor.action.revealDefinition\",\n        \"when\": \"editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor\"\n    }\n]\n

      "},{"location":"eval-tips/","title":"Code Evaluation","text":"

      Calva tries to make it easy to evaluate code, supporting interactive development. The fastest path to learning about it is to use the Fire up the Getting Started REPL command, which you can learn more about in the Getting Started section.

      NB: The below assumes you have read about Finding Calva Commands and Shortcuts.

      ","boost":7},{"location":"eval-tips/#interruptingstopping-running-evaluations","title":"Interrupting/stopping running evaluations","text":"

      Sometimes you evaluate things that take a very long time to complete, or might not even ever complete (infinite loops, lazy sequences, things like that). Calva has a command for interrupting running evaluations. You find it in the VS Code command palette, as well as in the REPL status bar item menu, when the REPL is connected.

      ","boost":7},{"location":"eval-tips/#evaluation-in-a-file-editor","title":"Evaluation in a File Editor","text":"

      Calva has many commands for evaluating forms, including the current form and the current top-level form.

      Some of the commands also let you choose what should happen with the results:

      1. Inline. This will display the results (or some of it, if it is long) inline in the editor.
      2. This also creates a hover pane including the full results and a button which will copy the results to the clipboard.
      3. There is also a command for copying the last result to the clipboard.
      4. The full results are always available in the output window.
        • There is a command for showing the output window, allowing for a workflow where you either generally have it closed, or have it as one of the tabs in the same editor group as the files you are working with.
      5. To comments. This will add the results as line comments below the current line.
      6. Replace the evaluated code. This will do what it says, the evaluated code will be replaced with its results.
      ","boost":7},{"location":"eval-tips/#wait-current-form-top-level-form","title":"Wait, Current Form? Top-level Form?","text":"

      These are important concepts in Calva in order for you to create your most effective workflow. This video explains it a bit:

      ","boost":7},{"location":"eval-tips/#current-form","title":"Current Form","text":"

      Default shortcut for evaluating the current form: ctrl+enter.

      The current form either means the current selection, or otherwise is based on the cursor position. Play some with the command Calva: Select current form, ctrl+alt+c s, to figure out what Calva thinks is the current form for some different situations. Try it inside a symbol, adjacent to a symbol (both sides) and adjacent to an opening or closing bracket (again, both sides). Generally the current form is determined like so:

      1. If text is selected, then that text
      2. If the cursor is \u201din\u201d a symbol, then that symbol
        foob|ar ; foobar\n
      3. If the cursor is adjacent to a form (a symbol or a list of some kind), then that form
        (foo bar |(baz)) ; (baz)\n
      4. If the cursor is between to forms, then the left side form
        (foo bar | (baz)) ; bar\n
      5. If the cursor is before the first form of a line, then that form
        (foo\n| bar (baz)) ; bar\n
      ","boost":7},{"location":"eval-tips/#current-top-level-form","title":"Current Top-level Form","text":"

      Default shortcut for evaluating the current top level form: alt+enter.

      The current top-level form means top-level in a structural sense. It is not the topmost form in the file. Typically in a Clojure file you will find def and defn (and defwhatever) forms at the top level, which also is one major intended use for evaluating top level form: to define and redefine variables. However, Calva does not check the contents of the form in order to determine it as a top-level forms: all forms not enclosed in any other form are top level forms.

      An \u201dexception\u201d is introduced by the comment form. It will create a new top level context, so that any forms immediately inside a (comment ...) form will be considered top-level by Calva. This is to support a workflow with what is often referred to the Rich Comments.

      At the top level the selection of which form is the current top level form follows the same rules as those for the current form.

      ","boost":7},{"location":"eval-tips/#evaluate-enclosing-form","title":"Evaluate Enclosing Form","text":"

      The default keyboard shortcut for evaluating the current enclosing form (the list the cursor is in) is ctrl+shift+enter.

      (let [foo :bar]\n  (when false (str| foo))) ; => \":bar\"\n
      ","boost":7},{"location":"eval-tips/#evaluate-to-cursor","title":"Evaluate to Cursor","text":"

      There are several commands for evaluating a piece of code, closing brackets. It's good, especially in threads, but can also come in handy in other situations, for instance when you want to evaluate something that depends on bindings, such as in a let form.

      ","boost":7},{"location":"eval-tips/#evaluate-from-start-of-list-to-cursor-closing-brackets","title":"Evaluate From Start of List to Cursor, Closing Brackets","text":"

      This command evaluates the text from the start of the current enclosing list to where the cursor is, and it adds the missing closing bracket for you. Convenient for checking intermediate results in thread or doto, or similar pipelines. The cursor is right behind :d in this form:

        (->> [1 1 2 3 5 8 13 21]\n       (partition 2)\n       (zipmap [:a :b :c :d])\n       :d| ; => (13 21)\n       (apply -)\n       (Math/abs))\n

      The default shortcut for this command is ctrl+alt+enter.

      ","boost":7},{"location":"eval-tips/#evaluate-selection-closing-brackets","title":"Evaluate Selection, Closing Brackets","text":"

      This is the most versatile of the \u201devaluation, closing brackets\u201d commands. It will do what it says. \ud83d\ude04 It's extra handy in combination with the command Paredit: Select Backward Up Sexp/Form (shift+ctrl+up). Consider this contrieved form (buggy code, because it was supposed to result in 42, not -42):

      (defn fortytwo-from-thirty\n  []\n  (let [thirty 30]\n    (-> thirty\n        inc            ;1\n        (send-off)\n        (+ 1 2 3)\n        (->>\n         (+ 2 2)       ;2\n         (+))\n        list\n        (->>\n         (into [1])\n         (reduce + 1))\n        (- 1)          ;3\n        (* -1))))\n

      At ;1, you can do backward up sexp (shift+ctrl+up) twice to select up to the (let ..), then issue Evaluate Selection, Closing Brackets. It has the same default keybinding as the command for evaluating the current list up to the cursor: ctrl+alt+enter.

      At ;2 you need select backwards up three times.

      ;3 is included because it is close to the bug. (Which was introduced when the thread-last, ->> was added to make this example.) Please practice the Evaluate Selection, Closing Brackets command to fix the bug.

      ","boost":7},{"location":"eval-tips/#evaluate-from-start-of-top-level-form-to-cursor-closing-brackets","title":"Evaluate From Start of Top Level Form to Cursor, Closing Brackets","text":"

      This command has a default shortcut keybinding of shift+alt+enter. It will create a form from the start of the current top level form, up to the cursor, close all brackets, and this will then be evaluated. Good for examining code blocks up to a certain point. Often comes in handy in Rich comments ((comment ...)).

      Take this example and paste it in a file loaded into the REPL, then place the cursor in front of each line comment and try the command.

      (comment\n (do\n   (def colt-express\n     {:name \"Colt Express\"\n      :categories [\"Family\"\n                   \"Strategy\"]\n      :play-time 40\n      :ratings {:pez 5.0\n                :kat 5.0\n                :wiw 5.0   ; 1, then eval `colt-express`\n                :vig 3.0\n                :rex 5.0\n                :lun 4.0}})\n\n   (defn average [coll]\n     (/ (apply + coll) (count coll)))\n\n   (let [foo-express (-> colt-express\n                         (assoc :name \"Foo Express\")\n                         (assoc-in [:ratings :lyr] 5.0)\n                         (update-in [:ratings :vig] inc))]\n     (->> foo-express   ; 2\n          :ratings      ; 3\n          vals          ; 4\n          average       ; 5\n          ))))\n
      ","boost":7},{"location":"eval-tips/#evaluate-from-start-of-file-to-cursor-closing-brackets","title":"Evaluate From Start of File to Cursor, Closing Brackets","text":"

      Yup, that command also exists. \ud83d\ude04

      ","boost":7},{"location":"eval-tips/#copying-the-inline-results","title":"Copying the inline results","text":"

      There is a command called Copy last evaluation results, ctrl+alt+c ctrl+c.

      This works regardless if you have evaluated in a file editor or in a REPL window.

      ","boost":7},{"location":"eval-tips/#evaluating-in-a-repl-window","title":"Evaluating in a REPL window","text":"

      Since the REPL Window is mostly just a regular file, things work pretty similar at the REPL prompt. You use alt+enter to evaluate. Selecting the current form (default key binding ctrl+w on Mac and shift+alt+right on Windows and Linux) after evaluating will select the result.

      ","boost":7},{"location":"evaluation/","title":"Code Evaluation","text":"

      Calva tries to make it easy to evaluate code, supporting interactive development. The fastest path to learning about it is to use the Fire up the Getting Started REPL command, which you can learn more about in the Getting Started section.

      NB: The below assumes you have read about Finding Calva Commands and Shortcuts.

      ","boost":7},{"location":"evaluation/#interruptingstopping-running-evaluations","title":"Interrupting/stopping running evaluations","text":"

      Sometimes you evaluate things that take a very long time to complete, or might not even ever complete (infinite loops, lazy sequences, things like that). Calva has a command for interrupting running evaluations. You find it in the VS Code command palette, as well as in the REPL status bar item menu, when the REPL is connected.

      ","boost":7},{"location":"evaluation/#evaluation-in-a-file-editor","title":"Evaluation in a File Editor","text":"

      Calva has many commands for evaluating forms, including the current form and the current top-level form.

      Some of the commands also let you choose what should happen with the results:

      1. Inline. This will display the results (or some of it, if it is long) inline in the editor.
      2. This also creates a hover pane including the full results and a button which will copy the results to the clipboard.
      3. There is also a command for copying the last result to the clipboard.
      4. The full results are always available in the output window.
        • There is a command for showing the output window, allowing for a workflow where you either generally have it closed, or have it as one of the tabs in the same editor group as the files you are working with.
      5. To comments. This will add the results as line comments below the current line.
      6. Replace the evaluated code. This will do what it says, the evaluated code will be replaced with its results.
      ","boost":7},{"location":"evaluation/#wait-current-form-top-level-form","title":"Wait, Current Form? Top-level Form?","text":"

      These are important concepts in Calva in order for you to create your most effective workflow. This video explains it a bit:

      ","boost":7},{"location":"evaluation/#current-form","title":"Current Form","text":"

      Default shortcut for evaluating the current form: ctrl+enter.

      The current form either means the current selection, or otherwise is based on the cursor position. Play some with the command Calva: Select current form, ctrl+alt+c s, to figure out what Calva thinks is the current form for some different situations. Try it inside a symbol, adjacent to a symbol (both sides) and adjacent to an opening or closing bracket (again, both sides). Generally the current form is determined like so:

      1. If text is selected, then that text
      2. If the cursor is \u201din\u201d a symbol, then that symbol
        foob|ar ; foobar\n
      3. If the cursor is adjacent to a form (a symbol or a list of some kind), then that form
        (foo bar |(baz)) ; (baz)\n
      4. If the cursor is between to forms, then the left side form
        (foo bar | (baz)) ; bar\n
      5. If the cursor is before the first form of a line, then that form
        (foo\n| bar (baz)) ; bar\n
      ","boost":7},{"location":"evaluation/#current-top-level-form","title":"Current Top-level Form","text":"

      Default shortcut for evaluating the current top level form: alt+enter.

      The current top-level form means top-level in a structural sense. It is not the topmost form in the file. Typically in a Clojure file you will find def and defn (and defwhatever) forms at the top level, which also is one major intended use for evaluating top level form: to define and redefine variables. However, Calva does not check the contents of the form in order to determine it as a top-level forms: all forms not enclosed in any other form are top level forms.

      An \u201dexception\u201d is introduced by the comment form. It will create a new top level context, so that any forms immediately inside a (comment ...) form will be considered top-level by Calva. This is to support a workflow with what is often referred to the Rich Comments.

      At the top level the selection of which form is the current top level form follows the same rules as those for the current form.

      ","boost":7},{"location":"evaluation/#evaluate-enclosing-form","title":"Evaluate Enclosing Form","text":"

      The default keyboard shortcut for evaluating the current enclosing form (the list the cursor is in) is ctrl+shift+enter.

      (let [foo :bar]\n  (when false (str| foo))) ; => \":bar\"\n
      ","boost":7},{"location":"evaluation/#evaluate-to-cursor","title":"Evaluate to Cursor","text":"

      There are several commands for evaluating a piece of code, closing brackets. It's good, especially in threads, but can also come in handy in other situations, for instance when you want to evaluate something that depends on bindings, such as in a let form.

      ","boost":7},{"location":"evaluation/#evaluate-from-start-of-list-to-cursor-closing-brackets","title":"Evaluate From Start of List to Cursor, Closing Brackets","text":"

      This command evaluates the text from the start of the current enclosing list to where the cursor is, and it adds the missing closing bracket for you. Convenient for checking intermediate results in thread or doto, or similar pipelines. The cursor is right behind :d in this form:

        (->> [1 1 2 3 5 8 13 21]\n       (partition 2)\n       (zipmap [:a :b :c :d])\n       :d| ; => (13 21)\n       (apply -)\n       (Math/abs))\n

      The default shortcut for this command is ctrl+alt+enter.

      ","boost":7},{"location":"evaluation/#evaluate-selection-closing-brackets","title":"Evaluate Selection, Closing Brackets","text":"

      This is the most versatile of the \u201devaluation, closing brackets\u201d commands. It will do what it says. \ud83d\ude04 It's extra handy in combination with the command Paredit: Select Backward Up Sexp/Form (shift+ctrl+up). Consider this contrieved form (buggy code, because it was supposed to result in 42, not -42):

      (defn fortytwo-from-thirty\n  []\n  (let [thirty 30]\n    (-> thirty\n        inc            ;1\n        (send-off)\n        (+ 1 2 3)\n        (->>\n         (+ 2 2)       ;2\n         (+))\n        list\n        (->>\n         (into [1])\n         (reduce + 1))\n        (- 1)          ;3\n        (* -1))))\n

      At ;1, you can do backward up sexp (shift+ctrl+up) twice to select up to the (let ..), then issue Evaluate Selection, Closing Brackets. It has the same default keybinding as the command for evaluating the current list up to the cursor: ctrl+alt+enter.

      At ;2 you need select backwards up three times.

      ;3 is included because it is close to the bug. (Which was introduced when the thread-last, ->> was added to make this example.) Please practice the Evaluate Selection, Closing Brackets command to fix the bug.

      ","boost":7},{"location":"evaluation/#evaluate-from-start-of-top-level-form-to-cursor-closing-brackets","title":"Evaluate From Start of Top Level Form to Cursor, Closing Brackets","text":"

      This command has a default shortcut keybinding of shift+alt+enter. It will create a form from the start of the current top level form, up to the cursor, close all brackets, and this will then be evaluated. Good for examining code blocks up to a certain point. Often comes in handy in Rich comments ((comment ...)).

      Take this example and paste it in a file loaded into the REPL, then place the cursor in front of each line comment and try the command.

      (comment\n (do\n   (def colt-express\n     {:name \"Colt Express\"\n      :categories [\"Family\"\n                   \"Strategy\"]\n      :play-time 40\n      :ratings {:pez 5.0\n                :kat 5.0\n                :wiw 5.0   ; 1, then eval `colt-express`\n                :vig 3.0\n                :rex 5.0\n                :lun 4.0}})\n\n   (defn average [coll]\n     (/ (apply + coll) (count coll)))\n\n   (let [foo-express (-> colt-express\n                         (assoc :name \"Foo Express\")\n                         (assoc-in [:ratings :lyr] 5.0)\n                         (update-in [:ratings :vig] inc))]\n     (->> foo-express   ; 2\n          :ratings      ; 3\n          vals          ; 4\n          average       ; 5\n          ))))\n
      ","boost":7},{"location":"evaluation/#evaluate-from-start-of-file-to-cursor-closing-brackets","title":"Evaluate From Start of File to Cursor, Closing Brackets","text":"

      Yup, that command also exists. \ud83d\ude04

      ","boost":7},{"location":"evaluation/#copying-the-inline-results","title":"Copying the inline results","text":"

      There is a command called Copy last evaluation results, ctrl+alt+c ctrl+c.

      This works regardless if you have evaluated in a file editor or in a REPL window.

      ","boost":7},{"location":"evaluation/#evaluating-in-a-repl-window","title":"Evaluating in a REPL window","text":"

      Since the REPL Window is mostly just a regular file, things work pretty similar at the REPL prompt. You use alt+enter to evaluate. Selecting the current form (default key binding ctrl+w on Mac and shift+alt+right on Windows and Linux) after evaluating will select the result.

      ","boost":7},{"location":"fiddle-files/","title":"Fiddle Files Support","text":"

      In the podcast Functional Design in Clojure, Episode 014: Fiddle with the REPL, they discuss a workflow in which you keep some of your exploratory code in separate files, which they call Fiddle Files. It's like Rich Comments, and the files often consist of such comments. The Fiddle files are typically not on the classpath, and are only loaded in the REPL by you when you are developing your project. Some developers keep personal fiddle files. In some projects they are meant to be shared, and in other projects it's a combination.

      Calva has some extra support for the fiddle file workflow, beyond what VS Code offers in terms of navigating between files. The support comes in the form of three commands supported by a little configuration.

      ","boost":5},{"location":"fiddle-files/#the-three-fiddle-file-commands","title":"The Three Fiddle File Commands","text":"

      The commands let you quickly navigate between your implementation code (called Source here) and your Fiddle file, and to evaluate the Fiddle file without leaving the Source file.

      Command Action Shortcut Active Calva: Open Fiddle File for Current File Opens the Fiddle file corresponding to the current Clojure Source file. ctrl+alt+cf When the currently active file is not a Fiddle file. Calva: Open Source File for Current Fiddle File Opens the Source file corresponding to the current Fiddle file. ctrl+alt+cf When the currently active file is a Fiddle file + there is an existing, and corresponding, source file. Calva: Evaluate Fiddle File for Current File Evaluates the Fiddle file corresponding to the current Clojure Source file. ctrl+alt+cctrl+alt+f When the currently active file is not a Fiddle file.

      The commands for opening and evaluating corresponding Fiddle files will offer to Create the Fiddle file if it does not already exist. But the Calva: Open Source File for Current Fiddle File command will not offer to create the target file.

      What does corresponding mean here? Without any configuration Calva will look for \u201csibling\u201d files, where files with Clojure file extensions (E.g. .clj, .cljs, .bb) will be treated as Source files, and files with the .fiddle extension will be treated as Fiddle files. \"Sibling file\" here means residing side by side in the file system. If this default behaviour is not your cup of tea, there is some flexibility added by configuration.

      ","boost":5},{"location":"fiddle-files/#the-fiddle-file-configuration","title":"The Fiddle File Configuration","text":"

      To know how to map between Fiddle <-> Source files, Calva has three different modes of operation:

      1. The sibling files, as described above. This is the default. Example:
        • src/a/b/c.cljc corresponding to:
        • src/a/b/c.fiddle
      2. Parallel directory structures. Mapping a Source directory tree to a Fiddle directory tree. Example:
        • src/a/b/c.cljc corresponding to:
        • env/dev/fiddles/a/b/c.cljc
      3. A dedicated Fiddle file for a Source directory tree. E.g. both:
        • src/a/b/c.cljc and:
        • src/d/e/f.cljc corresponding to:
        • env/dev/fiddles/x.cljc

      The setting is named calva.fiddleFilePaths and is an array of source and fiddle root paths, relative to the project root.

      The Project Root

      It is important to note that the project root depends on whether you are connected to a REPL or not, and to which project you are connected, in case the workspace contains several projects.

      Without a REPL connection (disregarding that fiddle files are not very interesting then) the project root is the same as the first workspace root. And if you have a regular VS Code window open, it is the root of the folder you have opened in that window.

      With a REPL connection, the project root will be the root of the project, i.e. where the project file (deps.edn, project.clj, shadow-cljs.edn) is.

      ","boost":5},{"location":"fiddle-files/#example-configurations","title":"Example Configurations","text":"","boost":5},{"location":"fiddle-files/#single-parallel-directory-structure","title":"Single Parallel Directory Structure","text":"
      \"calva.fiddleFilePaths\": [\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddles\"]\n  }\n]\n

      This will make any file in the src directory tree correspond to a matching file with the same relative path. E.g.:

      • src/a/b/c.clj -> env/dev/fiddles/a/b/c.clj, for both the open and evaluate commands
      • env/dev/fiddles/a/b/c.clj -> src/a/b/c.clj
      ","boost":5},{"location":"fiddle-files/#single-dedicated-fiddle-file","title":"Single Dedicated Fiddle File","text":"

      If you generally work with one Fiddle file at a time, you can configure a mapping to a Dedicated Fiddle file. E.g.:

      \"calva.fiddleFilePaths\": [\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddle.clj\"]\n  },\n]\n

      This will make any file in the src directory tree correspond to the same Fiddle file. E.g.:

      • src/a/b/c.clj -> env/dev/fiddle.clj, for both the open and evaluate commands
      • src/d/e/f.clj -> env/dev/fiddle.clj, ditto
      • env/dev/fiddle.clj -> Won't correspond to a Source file in this case

      Jumping from a dedicated fiddle to a source file

      Calva's command for opening the corresponding source file won't work in this case because it is a one->many situation. If you want to open the last file you worked with before using Open Fiddle File for Current File, consider using the VS Code command: Go Previous.

      ","boost":5},{"location":"fiddle-files/#multiple-mappings","title":"Multiple Mappings","text":"

      The configuration is an array so that you can configure different mappings for different Source directories. Given several mappings with overlapping Source, the longest mapping will win. Given several mappings with the same Source, the first one will win, unless one of them is a dedicated Fiddle, in which case that one will win.

      \"calva.fiddleFilePaths\": [\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddles\"]\n  },\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddle.clj\"]\n  },\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddle.cljs\"]\n  },\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddle.bb\"]\n  },\n  {\n    \"source\": [\"src\", \"b\"],\n    \"fiddle\": [\"env\", \"dev\", \"b-fiddles\"]\n  },\n]\n

      With this configuration we would get a behaviour like so:

      • src/a/b/c.clj -> env/dev/fiddle.clj, because all four first [\"src\"] mappings match, but the second one is a dedicated fiddle file, and matches the .clj extension.
      • src/a/b/c/d.bb -> env/dev/fiddle.bb, because all four first [\"src\"] mappings match, but the second one is a dedicated fiddle file, and matches the .bb extension.
      • src/a/b/c/d.cljc -> env/dev/fiddle.clj, because all four first [\"src\"] mappings match, but the second one is a dedicated fiddle file, without a matching file extension, (so the first dedicated fiddle file is picked).
      • src/b/c/d.clj -> env/dev/b-fiddles/c/d.clj, because the [\"src\", \"b\"] mapping is longer than the also matching [\"src\"] mappings.
      ","boost":5},{"location":"fiddle-files/#tips","title":"Tips","text":"

      Organize your Fiddle files such that they do not get automatically loaded as part of your application. This can lead to strange errors and hard-to-detect bugs. Most often it should only be you manually loading the fiddle file, not clj/clojure or Leiningen or any such system which loads your application.

      When you want your fiddle code to be evaluated in the same workspace as its corresponding Source file, you can use the same namespace declaration for both files. The linter might complain, but the REPL will happily comply.

      If you primarily evaluate the fiddle file using the provided command for it, from the Source files, you can omit the namespace declaration, and Calva will evaluate it in the namespace of the Source file.

      The linter and fiddle files

      For some fiddle files you will get a lot of linter warnings, because clj-kondo doesn't know about fiddle files, and they are often not on the classpath. You might find yourself wanting to silence some linters for some fiddle files. E.g. like this:

      (ns main.core\n  {:clj-kondo/config\n   '{:linters {:unresolved-symbol {:level :off}}}})\n

      See clj-kondo Configuration for more on what options you have for this.

      ","boost":5},{"location":"fiddle-files/#see-also","title":"See Also","text":"
      • Rich Comments
      • Functional Design in Clojure Episode 014: Fiddle with the REPL
      • The Polylith Development page mentions good practice for where to put your fiddle files (not called fiddle files there, but it is the same concept).
      ","boost":5},{"location":"finding-commands/","title":"Finding Calva Commands","text":"

      Calva relies a lot on that VS Code makes it really easy to find commands by opening the command palette: ctrl+shift+p (Windows/Linux), cmd+shift+p (Mac), and then start typing some words (or parts of words) that you think might be in the command.

      To leverage this, all Calva commands are prefixed with Calva. As an example, say you want to find commands related to evaluating the top level form. Then you can do this:

      1. Open the command palette
      2. Type calevtop

      VS Code will match cal to \u201dCalva\u201d, ev to \u201dEvaluate\u201d, and top to \u201dTop\u201d. It looks like so:

      As you can see on the screenshot, VS Code will also reveal the keyboard shortcut for each command. My advice is to make it a habit to try to remember those shortcuts and use them for a more effective workflow.

      Now might be a good time to see Calva Top 10 Commands

      "},{"location":"finding-commands/#all-the-settings-and-commands","title":"All the Settings and Commands","text":"

      Did you know? There is a complete list of Calva settings and commands in the Contributions tab of the Calva entry in the Extensions pane in VS Code.

      "},{"location":"finding-commands/#toggling-keyboard-shortcuts-onoff","title":"Toggling Keyboard Shortcuts On/Off","text":"

      The command calva.toggleKeybindingsEnabled can be used to quickly enable and disable (almost) all keyboard shortcuts. This allows you to quickly toggle between Calva keybindings and other keybindings which would otherwise not be available when Calva is enabled. This is particularly useful with the Paredit keyboard shortcuts, whose default shortcuts conflict with the default VS Code shortcuts for textual (non-structural) editing.

      By default it is not bound to a shortcut so as not to cause confusion by users unwittingly pressing it, but if this is something you'd like to use often, you may want to bind it to a shortcut.

      "},{"location":"formatting/","title":"Formatting","text":"

      We have tried to make Calva's formatter so that it just works. It is enabled by default for Clojure files, and with the default configuration it mostly follows Bozhidar Batsov's Clojure Style Guide. Calva uses cljfmt for the formatting.

      Tab formats the current surrounding form

      Calva's code formatter sets the default keybinding of its Format Current Form command to tab. Meaning that most often when things look a bit untidy, you can press tab to make things look pretty. Good to know, right? For performance reasons it only formats the current enclosing form, so sometimes you want to move the cursor up/out a form (ctrl+up) first. See The Paredit Guide for more on moving the cursor structurally through your code.

      With the default settings, Calva's formatting behaves like so:

      • indents as you type (when entering new lines)
      • formats the current enclosing form when you hit tab
      • formats pasted code
      • formats according to community standards
      • formats the current form, aligning map keys and values, when you press ctrl+alt+l
      • formats (comment ...) forms special, see rich comments

      Infer parens at will

      Calva has a command that will \u201dheal\u201d the bracket structure if it is correctly indented using Parinfer Infer parens. This command is default bound to ctrl+alt+p i.

      Also: If you have Format on Save enabled in VS Code, it will be Calva doing the formatting for Clojure files.

      Calva's formatting is mostly about indenting, but it also (again, defaults):

      • trims whitespace at the end of the line
      • trims whitespace inside brackets
        • this also folds trailing brackets (a k a the paren trail) up on the same line
      • inserts whitespace between forms

      Not a fan of some default setting? The formatter is quite configurable.

      "},{"location":"formatting/#format-current-form-command-variants","title":"Format current form command variants","text":"

      There are three special commands for formatting the current form:

      "},{"location":"formatting/#1-format-and-align-current-form","title":"1. Format and Align Current Form","text":"

      Aligns associative structures and bindings in two columns. See more below.

      "},{"location":"formatting/#2-format-current-form-and-trim-space-between-forms","title":"2. Format Current Form and trim space between forms","text":"

      This formats the text, and trims consecutive, non-indent, whitespace on a line to just one space. Something like:

      (let [a    :b]\n(str \"foo\"     \"bar\" \"baz\"\n\"a\"    a))\n

      Becomes:

      (let [a :b]\n  (str \"foo\" \"bar\" \"baz\"\n       \"a\" a))\n

      Basically, it behaves like if :remove-multiple-non-indenting-spaces? true was added to the cljfmt config. Which, in fact, is what happens. Calva merges that onto your cljfmt config when this command is used.

      "},{"location":"formatting/#3-replace-current-form-or-selection-with-pretty-printed-form","title":"3. Replace Current Form (or Selection) with Pretty Printed Form","text":"

      This command will run the code of the Current Form through Calva's pretty printer (the engine named calva, which is using zprint) and replace the current form inline in the editor with the pretty printed results.

      Unlike with the \u201dreal\u201d Calva Formatter, which never breaks up lines, this one will follow your pretty printing options and break up lines if you have set maxWidth to something that calls for breaking up lines.

      Applies to the other Current Form

      Unlike the other Format commands, which applies to the current enclosing form, this one applies to the Current Form, same as with evaluations. That is because this is not really part of the Calva formatter, but rather is a convenience command for tidying up code or data.

      "},{"location":"formatting/#configuration","title":"Configuration","text":"

      You can adjust the above mentioned defaults, and the default indents, by configuring the formatting using cljfmt's configuration EDN.

      This configuration can either be provided via a file or via clojure-lsp. See Providing configuration via clojure-lsp below.

      "},{"location":"formatting/#providing-configuration-via-a-config-file","title":"Providing configuration via a config file","text":"

      Calva will look for the configuration in one of the default cljfmt paths ('.cljfmt.edn', '.cljfmt.clj', 'cljfmt.edn', or 'cljfmt.clj' in the workspace root). If your file is somewhere else use the calva.fmt.configPath to tell Calva where to find it. The path should either be absolute, or relative to the workspace root directory. If your config file is somewhere in the workspace root, Calva will hot reload it when you update it.

      Wherever the config file is, a suggested path for providing your configuration is to start changing the Calva formatting defaults by pasting the following map into a file and save it.

      {:remove-surrounding-whitespace? true\n :remove-trailing-whitespace? true\n :remove-consecutive-blank-lines? false\n :insert-missing-whitespace? true\n :remove-multiple-non-indenting-spaces? false}\n

      If the file is in the workspace, you can quickly test how different settings affect the formatting. Try:

      1. Adding :align-associative? true to the config
      2. then save
      3. then hit tab, and see what happens.
      :align-associative? is experimental

      This particular setting is experimental and known to cause trouble together with namespaced keywords. Consider using ctrl+alt+l instead of tab as your formatting command, instead of enabling this setting. See below for more info about this. See more below about this.

      No Leiningen config support

      The cljfmt docs mention the :cljfmt config key of Leiningen projects. Calva does not yet read the config from there, so if your Leiningen project has such a configuration, you will need to copy it out into a file.

      "},{"location":"formatting/#providing-configuration-via-clojure-lsp","title":"Providing configuration via clojure-lsp","text":"

      If you work in a team where some members use clojure-lsp for formatting, you can make Calva format using the same configuration by telling setting calva.fmt.configPath to CLOJURE-LSP (case sensitive). See Clojure LSP Settings) for how to provide the configuration. (It might not be provided from where you think it is, specifically check clojure-lsp's global config in you user home directory.) Use the command Calva Diagnostics: Clojure-lsp Server Info to see what cljfmt configuration is being used (under the cljfmt-raw key).

      Note that doing this you will not have hot reload of the formatting configuration, and of course you will be depending on that clojure-lsp is running and functioning.

      "},{"location":"formatting/#indentation-rules","title":"Indentation rules","text":"

      The cljfmt indents are highly configurable. They, and the rest of the configuration options, are masterly detailed here.

      :extra-indents vs :indents

      Since Calva v2.0.383 we are using cljfmt 0.11.x which has a breaking configuration change. From the cljfmt README:

      The :indents key has been split into :indents and :extra-indents. The :indents key replaces all default indents, while the :extra-indents key will append to the default indents.

      If something prevents you from using a config with :extra-indents, there's an escape hatch to keep using the :indents key as before, by adding :legacy/merge-indents? true to the config map.

      Calva is an extra good tool for experimenting with these settings. cljfmt doesn't care about keys in the map that it doesn't know about so you can sneak in test code there to quickly see how it will get formatted by certain rules. Try this, for instance:

      {:remove-surrounding-whitespace? true\n :remove-trailing-whitespace? true\n :remove-consecutive-blank-lines? false\n :insert-missing-whitespace? false\n :indents {#re \"^\\w\" [[:inner 0]]}\n :test-code\n (concat [2]\n         (map #(inc (* % 2))\n              (filter #(aget sieved %)\n                      (range 1 hn))))}\n

      Save, then hit tab, and the code should get formatted like so:

       :test-code\n (concat [2]\n    (map #(inc (* % 2))\n      (filter #(aget sieved %)\n        (range 1 hn))))\n

      That's somewhat similar to Nikita Prokopov's Better Clojure Formatting suggestion. (Please be aware that this setting might not be sufficient to get complete Tonsky Formatting, please share any settings you use to get full compliance.)

      "},{"location":"formatting/#rich-comments","title":"Rich Comments","text":"

      To encourage use of (comment ...) forms for development, the default settings give these forms get a special treatment when formatting. Use the calva.fmt.keepCommentTrailParenOnOwnLine setting to control this behaviour. See Rich Comments first.

      "},{"location":"formatting/#etecetera","title":"Etecetera","text":""},{"location":"formatting/#about-aligning-associative-forms","title":"About aligning associative forms","text":"

      Calva loooks in the config map for the key :align-associative? and if it is true it will use an old version of cljfmt which is patched with functionality for doing this alignment. Note, though:

      • The implementation is a bit buggy and can do a bit crazy formatting on certain forms.
      • The older version of cljfmt lacks updates for some new Clojure features and also some bugs fixed since the fork are not applied.

      You are hereby warned, and let us also remind you about the Format and Align Current Form command which lets you apply this formatting a bit more surgically, and on demand.

      This old version of cljfmt is inlined in the Calva repository along with the discontinued rewrite-cljs project. Regard it as frozen code. If you want Calva's formatter to have full support for newer Clojure constructs and the bugs in the alignment code fixed, contribute to cljfmt. See this issue for starting to collect context.

      "},{"location":"get-started-with-clojure/","title":"Get Started with Clojure","text":"

      Welcome to a zero-install, interactive, guide to get you started with Clojure using:

      • Clojure
      • Gitpod (A development environment delivered via the web browser)
      • VS Code (Or Gitpod Code, actually. In your web browser.)
      • Calva (A Clojure extension to VS Code. The thing this site is about.)
      • Calva's Getting Started REPL
      I have VS Code and Java

      Clojure runs on the JVM. How to install it is a big topic. Since you have already done that, you can, if you want, choose to install Calva in your local VS Code and fire up the Getting Started REPL. By all means read this page anyway, you can just skip the Gitpod parts.

      Also: If you are using Windows your Java might have a bug that prevents things from working. Then you might want to defer fixing that and use the zero-install option first.

      Is Gitpod Code exactly as VS Code?

      Almost! But, yeah, there are some difference between regular VS Code and Gitpod's ditto. Most of it doesn't matter, but finding the main menu can be a bit tricky:

      ","boost":10},{"location":"get-started-with-clojure/#what-youll-learn","title":"What you'll learn","text":"
      • The basics of the Clojure language (at least the start of the basics)
      • The basics of the ClojureScript language (we won't be using ClojureScript, but it is same language \ud83d\ude00)
      • The basics of Calva (It's a bit as a side effect. You need it to learn Clojure this way, and by learning Clojure this way, Calva knowledge trickles in.)
      • What is meant by, and some ways to perform, Interactive Programming (aka REPL Driven Development)
      • Where to find Clojurians, i.e. folks who use Clojure and care about it (you will thus find help, the friendliest help you have ever seen a community provide)
      I am not convinced I should spend time on learning Clojure

      Fair enough. We can recommend watching any or all of these videos to get excited about Clojure and the rather unique mood of development it offers:

      • Solving Problems the Clojure Way - with Rafal Dittwald (using JavaScript, so no new syntax to grasp to get the message)
      • Developer Ergonomics with VS Code, Clojure, and ClojureScript - with Peter Str\u00f6mberg
      • Clojure in VS Code Workflow using FizzBuzz - with Peter Str\u00f6mberg
      ","boost":10},{"location":"get-started-with-clojure/#what-you-wont-learn","title":"What you won't learn","text":"
      • How to install Clojure for your operating system of choice
      • About various old and new build and dependency tools
      • How to create projects and do real stuff
      Why won't I learn about this?

      All in due time. \ud83d\ude04 It can be a bit confusing with all the things you find out about installing Clojure and creating projects when searching for information about it. We want you to relax about all that and just enjoy learning a bit about this fantastic programming language and the wonderful mode of development it offers.

      There is a lot of info about this out there already. And since you will learn where to find Clojurians, you will also find guidance. But we suggest do these things later. First, let's focus on having fun with Interactive Programming!

      ","boost":10},{"location":"get-started-with-clojure/#what-you-need","title":"What you need","text":"
      • Curiosity about Clojure
      • A web browser
      The browser ate my keyboard shortcuts!

      There is always a competition for which system gets to catch keyboard shortcuts first. This worsens a bit when an application like VS Code runs in the web browser. Remember this if some shortcut/command doesn't work.

      On some machines, with some web browsers, some shortcuts are caught by the web browser and instead re-opening a closed tab or whatever. These have been observed:

      • Undo (undoing something web browser related)
      • Select the line (focusing the browser URL input)
      • Open the command palette (opening a private browsing window. Looking at you Firefox.)
      • Escape key shortcuts (are you using VIM bindings in your browser?)

      Sometimes the workaround is to redefine the shortcuts in VS Code, sometimes making your web browser stop catching the shortcut.

      I am new to VS Code

      You might want to have a look at this Getting Started with VS Code video. (You can of course ignore the parts about installing for now.) Also, have this overview of the VS Code interface handy.

      ","boost":10},{"location":"get-started-with-clojure/#how-it-works","title":"How it works","text":"
      1. You will open an instance of VS Code in a development environment running in the browser. The environment will have Java, Clojure tools, and Calva installed.
        • Gitpod Sign-in You will be asked to sign in to Gitpod, if you aren't already. You need to use the \u201dSign in with GitHub\u201d option.
      2. Instructions will be automatically displayed (very brief such, because it is mainly about firing up the Getting Started REPL)
      3. The guides are a mix of prose (in Clojure line comments), Clojure code, and exercises. What's extra poetic is that you will use Calva and Clojure to learn Calva and Clojure.

      Use a desktop/laptop computer. Even if it actually works on the phone, it is far from convenient.

      It sometimes takes a while (several minutes) for the environment to initialize. Take some deep breaths and be patient. \ud83d\ude0e

      ","boost":10},{"location":"get-started-with-clojure/#lets-go","title":"Let's go!","text":"

      Ready? Awesome. Click this button to start the guide in a new browser tab.

      https://gitpod.io/#https://github.com/PEZ/get-started-with-clojure Stuck? Something not working? Or just unclear?

      Please don't hesitate to reach out for help, should you get stuck. See below for where to find Clojurians. As for the Calva team, we are almost always (true story) to be found at the Clojurians Slack, especially in the #calva Channel. We are @pez and @bringe there.

      Happy Interactive Programming! \u2764\ufe0f

      ","boost":10},{"location":"get-started-with-clojure/#and-where-do-i-find-those-clojurians","title":"And where do I find those Clojurians?","text":"

      We Clojurians inhabit a lot of community platforms. I'll list some of the more popular ones here in some order of popularity.

      • The Clojurians Slack - by far the largest and most active Clojure community, the #beginners channel is spectacularly fantastic
      • ClojureVerse - a web forum. Lots of Clojurians, lots of Clojure knowledge collected, easy to search, easy to join
      • /r/Clojure - Reddit when Reddit is at its best, lots of Clojurians here
      • Clojurians on Zulip - An other web forum using the Zulip platform
      • On Discord there are two active servers: Clojurians and Discord

      You can also ask questions, and find answers, about Clojure at ask.clojure.org

      ","boost":10},{"location":"get-started-with-clojure/#learn-and-practice-clojure-using-rich-4clojure","title":"Learn and Practice Clojure using Rich 4Clojure","text":"

      If you like the style of interactive learning that this guide provides, you should definitely check Rich 4Clojure out. It also can be used in the zero-installed way.

      You can regard it as a companion to this guide. It is aimed at practicing Clojure, starting at the elementary levels, bringing you to advanced stuff.

      Can I use Rich 4Clojure instead of this guide?

      We suggest you start by opening up this guide and do the Calva part of the excerises. Then use the welcome_to_clojure.clj guide in combination with Rich 4Clojure..

      ","boost":10},{"location":"get-started-with-clojure/#run-the-clojure-exercism-track-in-your-browser","title":"Run the Clojure Exercism Track in your browser","text":"

      In a similar manner to the Get Started with Clojure project, you can run the Clojure Exercism Track in your browser without installing anything and with full Interactive Programming enabled using this Template project.

      ","boost":10},{"location":"get-started-with-clojure/#clojuredocs","title":"ClojureDocs","text":"

      Clojurians draw tremendous value from ClojureDocs. At ClojureDocs the concise documentation for Clojure core functions, etcetera, are amended with examples and advice from fellow Clojurians. Crowdsourcing at its very best! It is a big part of the reason why you won't find an abundance of Clojure information at StackOverflow.

      ","boost":10},{"location":"get-started-with-clojure/#other-learning-resources","title":"Other learning resources","text":"
      • CalvaTV - Calva's YouTube channel often focuses on beginning with Clojure and ClojureScript. Subscribe, please!
      • Clojure Beginner Resources - a much more comprehensive list than this one
      • clojure.org Getting Started - the source of truth, includes installing and stuff
      • The Exercism Clojure track - Learn solving carefully crafted Clojure exercises, get mentor feedback if you like.
      • Clojure for the Brave and True - helping you from beginner to pretty advanced stuff, very popular among Clojurians
      • on the code again - often features Clojure concepts, with snappy, well communicated, and entertaining videos
      • Clojure Koans with VS Code/Calva instructions
      ","boost":10},{"location":"get-started-with-clojure/#help-us-help-beginners","title":"Help us help beginners","text":"

      Give us feedback. Spread the word. Please consider:

      • Join the #improve-getting-started channel at the Clojurian Slack
      • Linking to this page from your blog
      • Tweeting about this guide
      • Contributing to the Calva project
      • Wearing Calva and RFC T-shirts
      • Starring these repositories:
        • Get Started with Clojure - (the repository powering this guide)
        • Rich 4Clojure
        • Clojure Exercism Track Template
        • Calva
        • Dram - Where this guide (the Getting Started REPL) is authored
      • What do beginners struggle with? - a ClojureVerse thread, where you can tell us about what you have found hard in picking up Clojure. It's what spawned the creation of this guide.

      Please also consider other ways to contribute.

      Thanks! \ud83d\ude4f

      ","boost":10},{"location":"getting-started/","title":"Getting Started","text":"

      Depending on wether you want to just start a Clojure REPL or you have a project you want to work with, getting started looks similar but a bit different. Regardless, you need to first:

      ","boost":10},{"location":"getting-started/#install-vs-code-and-calva","title":"Install VS Code and Calva","text":"
      1. Downloading VS Code and run the installer.
        • Also get aquainted to the basics of VS Code, if you aren't already. Here's an excellent intro: Getting Started with VS Code
      2. Install Calva. The easiest way to do that is to start VS Code and search for Calva in the VS Code Extension pane, then click Install.
      ","boost":10},{"location":"getting-started/#say-hello-to-calva","title":"Say hello to Calva","text":"

      If you have a Clojure or ClojureScript project, you will be interested in how to get Calva connected to the REPL of your project. But before you run over there, you might want to familiarize yourself with Calva a bit, which you can do without a project.

      The demo tells you about the command (and some about the Clojure Beginner's material that it makes available).

      I am completely new to Clojure

      The \u201dGetting Started\u201d REPL below introduces you to Clojure as well as to Calva. You might however, not want to start with installing the right version of Java and such to run the guide. If so you should definitely check the Get Started with Clojure guide on this site.

      Three clicks will have you running Calva in your browser with the REPL ready to serve.

      I don't have Java installed

      If you like, you can defer installing anything at all and still get started with Calva (not kidding).

      See Get Started with Clojure.

      ","boost":10},{"location":"getting-started/#theres-a-getting-started-repl","title":"There's a \u201dGetting Started\u201d REPL","text":"

      If you are new to Calva, a good place to start is using the command Fire up the \u201dGetting Started\u201d REPL. (You can open the command palette using the VS Code top menu by going to View -> Command Palette... or by running the associated keyboard shortcut for your OS.) Demo:

      It will open up a three files in a temporary directory, and start and connect a REPL. The files are:

      • hello_repl.clj \u2013 The basics of how to evaluate code in Calva
      • hello_paredit.clj - A super brief intro to Calva structural editing
      • welcome_to_clojure.clj - The very basics of the Clojure language

      The only prerequisite here is that you have Java installed. No pre-installed clojure tools required. (You will want to install these tools later, of course.)

      Note

      On Windows the Oracle Java installer sets Java up in some funny way so that the Getting Started REPL fails to start. We are figuring about workarounds for this, but for now, if you are on Windows, you will need to make VS Code have some other Java in the PATH of its environment for this feature to work. See this issue on the Calva repo for more on this, including any progress.

      ","boost":10},{"location":"getting-started/#there-are-standalone-clojurescript-quick-start-repls","title":"There are standalone \u201dClojureScript Quick Start\u201d REPLs","text":"

      Without creating a project structure or installing anything but Calva, you can start standalone ClojureScript REPLs both in a browser and for node:

      • Fire up the ClojureScript Quick Start Browser REPL
        • Opens the files core.cljs and index.html and starts the ClojureScript app, opening it in the browser.
      • Fire up the ClojureScript Quick Start Node REPL
        • Opens a file, core.cljs, and starts a nodejs REPL where it loads the file.

      The browser REPL app looks like so:

      ","boost":10},{"location":"getting-started/#you-have-a-project","title":"You have a Project?","text":"

      If you are new to Calva, please consider the above option first. Then when it will be time to get Calva connected to the REPL of your project.

      ","boost":10},{"location":"getting-started/#clojure-resources","title":"Clojure Resources","text":"

      If you are new to Clojure or ClojureScript altogether, please check out the guide material on the respective official sites:

      • Getting Started with Clojure
      • ClojureScript Quick Start

      There are also many great books on Clojure. Clojure for the Brave and True can be read for free online. It is a great resource for beginners.

      ","boost":10},{"location":"getting-started/#there-is-also-standalone-repl","title":"There is also Standalone REPL","text":"

      When you are more familiar with Calva, and want a standalone REPL, there is a separate command: Start a standalone REPL (not in project). It will open up a user.clj in a temporary directory, containing only an (ns user) form, and start and connect the REPL.

      ","boost":10},{"location":"getting-started/#dram-where-the-guides-live","title":"Dram - Where the Guides Live","text":"

      The command for starting the Getting Started REPL will download the files from this repository. It is very much work in progress, and there is not even a finished Clojure Beginner's Guide there yet. When you run the command again, and from then on, you will get the option to download new files or keep using your existing. Downloading new ones will not overwrite your existing ones, because they will be downloaded to a new temp directory. You can find the directory easily using VS Codes context menu command for revealing a file in the Explorer/Finder.

      ","boost":10},{"location":"getting-started/#one-last-thing","title":"One Last Thing","text":"

      Happy coding! \u2665\ufe0f

      ","boost":10},{"location":"hiccup/","title":"Converting HTML to Hiccup","text":"

      Calva can help you convert HTML to Hiccup.

      ","boost":7},{"location":"hiccup/#features","title":"Features","text":"","boost":7},{"location":"hiccup/#three-commands","title":"Three commands","text":"
      • Convert HTML to Hiccup, will convert the selected text, or the entire file, to Hiccup and open up an Untitled Clojure file with the result.
      • Copy HTML as Hiccup, will convert the selected text, or the entire file, to Hiccup and copy it to the clipboard.
      • Paste HTML as Hiccup, will convert the contents of the clipboard to Hiccup and paste it. (The clipboard will then be restored to the original content.)

      The resulting data structure is formatted with zprint using it's :style :hiccup configuration.

      ","boost":7},{"location":"hiccup/#conversion-capabilities","title":"Conversion capabilities","text":"

      In addition to, optionally, being able to convert style attributes to maps and kebab-case attributes, the conversion:

      • Opts for producing compact Hiccup:
        • The id attribute and classes are made part of the tag, CSS selector style
          • <foo id=\"bar\"></foo> => [:foo#bar]
          • <foo class=\"c1 c2\"></foo> => [:foo.c1.c2]
          • <foo id=\"bar\" class=\"c1 c2\"></foo> => [:foo#bar.c1.c2]
        • Though, if the id or any class is not valid as part of a keyword, they remain in the props/attributes map)
          • <foo id='foo-[id]'></foo> => [:foo {:id \"foo-[id]\"}]
          • <foo class='clz1 clz[2]'></foo> => [:foo.clz1 {:class [\"clz[2]\"]}]
        • Whitespace is trimmed
          • <foo> \\nbar\\n </foo> => [:foo \"bar\"]
          • <foo> \\n </foo> => [:foo]
      • Handles boolean attributes
        • <foo disabled></foo> => [:foo {:disabled true}]
        • <foo disabled=disabled></foo> => [:foo {:disabled \"disabled\"}]
      • Special case for camelCasing attributes viewBox and baseProfile (SVG is picky about it)
        • <foo bAsePROFilE=bar viewbox=\"0 0 1 1\"></foo> => [:foo {:baseProfile \"bar\" :viewBox \"0 0 1 1\"}]
      • Comments are retained
        • <foo><!-- ... --></foo> => [:foo (comment \"...\")]
      • You can have several top level tags
        • <foo></foo><foo></foo> => [:foo]\\n[:foo]
      ","boost":7},{"location":"hiccup/#it-is-somewhat-configurable","title":"It is somewhat configurable","text":"

      The Hiccup converstion can be tweaked with two options using the setting calva.html2HiccupOptions, which is a map/object:

      • mapify-style: boolean, default false. When true any style attribute will be converted to a map (Reagent supports this)
      • kebab-attrs?: boolean, default false. When true attribute names will be converted from camelCase, or snake_case/SNAKE_CASE to kebab-case. (Reagent wants most attribute names like this.)
      • add-classes-to-tag-keyword?: boolean, default true. When true all class names will be added CSS-style to the tag keyword ([:tag.clz1.clz2]), as opposed to being kept in the class attribute. Keeping the class names in the attribute may be preferable with elements having a lot of class names, such as when using Tailwind CSS.
      ","boost":7},{"location":"hiccup/#copy-as-menus-copy-html-as-hiccup","title":"Copy as menus: Copy HTML as Hiccup","text":"

      The Copy HTML as Hiccup command is available from VS Code's Edit menu, as well as the editor context menu, in both cases under the Copy as sub menu.

      ","boost":7},{"location":"hiccup/#the-commands-take-arguments","title":"The commands take arguments","text":"

      This options map can also be provided as an argument to the commands, so you can bind keyboard shortcuts to a particular configuration for the conversion.

      The command calva.convertHtml2Hiccup takes a map as an argument:

      • toUntitled: boolean, default false. When false the result of the conversion will be returned to the caller (This is intended for Joyride, or some other VS Code extension). When true it will behave like the default command does, placing the result of the conversion in an Untitled Clojure file.
      • options: Same as those calva.html2HiccupOptions mentioned above.

      The calva.pasteHtmlAsHiccup and calva.copyHtmlAsHiccup commands takes only a calva.html2HiccupOptions map.

      ","boost":7},{"location":"hiccup/#example-keyboard-shortcuts","title":"Example keyboard shortcuts","text":"

      The commands have no default keyboard shortcuts, you use the Command Palette to execute them, or you bind your own shortcuts. Here are some examples:

          // calva.convertHtml2Hiccup\n    {\n        // With args, `\"toUntitled\": true` is necessary for keyboard shortcuts\n        // without it, the command just returns the result to the caller\n        \"key\": \"ctrl+alt+c ctrl+h\",\n        \"command\": \"calva.convertHtml2Hiccup\",\n        \"args\": {\"toUntitled\": true, \"options\": {\"mapify-style?\": false}}\n    },\n    {\n        // Only for completeness, providing the HTML is only useful from e.g. Joyride \n        \"key\": \"ctrl+alt+c shift+h\",\n        \"command\": \"calva.convertHtml2Hiccup\",\n        \"args\": {\"html\": \"<foo style='a: b' bar='baz'>gaz<foo>\", \"toUntitled\": true}\n    },\n    {\n        // Without args, the command uses the `calva.html2HiccupOptions` configuration\n        // And writes the results to an Untitled document\n        \"key\": \"ctrl+alt+c h\",\n        \"command\": \"calva.convertHtml2Hiccup\",\n    },\n\n    // calva.pasteHtmlAsHiccup\n    {\n        // Override the `calva.html2HiccupOptions` configuration\n        \"key\": \"ctrl+alt+h ctrl+v\",\n        \"command\": \"calva.pasteHtmlAsHiccup\",\n        \"args\": {\"mapify-style?\": true, \"kebab-attrs?\": true}\n    },\n    {\n        // Without args, the command uses the `calva.html2HiccupOptions` configuration\n        \"key\": \"ctrl+alt+h v\",\n        \"command\": \"calva.pasteHtmlAsHiccup\"\n    },\n\n    // calva.copyHtmlAsHiccup\n    {\n        // Override the `calva.html2HiccupOptions` configuration\n        \"key\": \"ctrl+alt+h ctrl+c\",\n        \"command\": \"calva.copyHtmlAsHiccup\",\n        \"args\": {\"mapify-style?\": false, \"kebab-attrs?\": true}\n    },\n    {\n        // Without args, the command uses the `calva.html2HiccupOptions` configuration\n        \"key\": \"ctrl+alt+h c\",\n        \"command\": \"calva.copyHtmlAsHiccup\"\n    },\n

      The default/args-less bindings are placed last because reasons.

      ","boost":7},{"location":"hiccup/#using-from-joyride-or-some-other-vs-code-extension","title":"Using from Joyride (or some other VS Code extension)","text":"

      As with any VS Code command using these from Joyride is a matter of calling executeCommand.

      ","boost":7},{"location":"hiccup/#calvapastehtmlashiccup-and-calvapastehtmlashiccup","title":"calva.pasteHtmlAsHiccup and calva.pasteHtmlAsHiccup","text":"
      (-> (vscode/commands.executeCommand \"calva.pasteHtmlAsHiccup\"\n                                    #js {:mapify-style? true})\n    (.then ...))\n\n(-> (vscode/commands.executeCommand \"calva.copyHtmlAsHiccup\"\n                                    #js {:mapify-style? true})\n    (.then ...))\n
      ","boost":7},{"location":"hiccup/#calvaconverthtml2hiccup","title":"calva.convertHtml2Hiccup","text":"

      Without options the command behaves just like selecting the command from the command palette. If there is a selection it will be converted, otherwise the whole file. The result will be opened in a new Untitled document.

      (-> (vscode/commands.executeCommand \"calva.convertHtml2Hiccup\")\n    (.then ...))\n

      Called with arguments it will by default return an object with a .-result member which is a string with the Hiccup.

      (-> (vscode/commands.executeCommand \"calva.convertHtml2Hiccup\" \n                                    #js {:html \"<foo class='clz1 clz2>bar</foo>\"})\n    (.then #(println (.-result %))))\n\n(-> (vscode/commands.executeCommand \"calva.convertHtml2Hiccup\" \n                                    #js {:options #js {:mapify-style? false}})\n    (.then #(println (.-result %))))\n

      To make it put the text in a new Untitled document instead, provide the argument option :toUntitled true

      (-> (vscode/commands.executeCommand \"calva.convertHtml2Hiccup\" \n                                    #js {:toUntitled true\n                                         :html \"<foo class='clz1 clz2>bar</foo>\"\n                                         :options #js {:mapify-style? true\n                                                       :kebab-attrs? true}})\n    (.then ...))\n
      ","boost":7},{"location":"inspector/","title":"Unfold that data","text":"

      All REPL evaluation results are added to the Calva Inspector, a tree view that lets you expand and collapse Clojure data structures. (This happens in addition to results being printed to the configured Output Destination.)

      Only for realized data

      Results are added to the inspector after they have been processed by your pretty printer (if you have pretty printing enabled). This means that maxLength and maxDepth applies. The inspector can't be used to explore infinite sequences. Also, any metadata is lost in the translation.

      "},{"location":"inspector/#uifeatures","title":"UI/Features","text":"

      The inspector view can be placed in the left or right side bars, or in the bottom panel. It can also be placed as a section in an existing side bar view, or in split with any existing bottom panel view.

      Inspector items are not expandable until you make them so with the Inspect Result Item button. This is because parsing and building the structure for the tree can take a little while and we don't want it to lock the UI for you when you edit and evaluate code.

      Speaking of buttons. Items in the view have context commands that show up as buttons on hover. The Inspect Result Item button is one of them. All rows in the inspector have a Copy button, letting you copy the data at any folding level to the clipboard. All root items also have a Clear button for removing the item from the inspector.

      The view itself has two buttons, one for clearing all results and one for pasting whatever is on the clipboard as an inspector item.

      "},{"location":"inspector/#commands","title":"Commands","text":"

      These are the commands available for the inspector:

      • Calva: Reveal Inspector. Reveals/shows the inspector without focusing it. Default keybinding is ctrl+alt+o i
      • This command, when used from keyboard shortcuts or Joyride, has the command ID of calva.revealInspector, and takes an object argument: { focus: boolean, select: boolean, expand: boolean | number }. focus lets you focus the inspector view (or not), select and expand lets you select or expand the current item which, like with several of the inspector commands, will be the already selected item, or the topmost item if none is selected. It is passed to the TreeView backing the inspector, see the VS Code API docs regarding revealing tree view items for details.
      • Calva: Add Selection or Current Form to Inspector. Adds the current form (without evaluating it) to the inspector. If there is text selected, the command will add that text instead. (Only the first selection, if there are multiple). There is no default keybinding for this command.
      • This command has the ID of calva.addToInspector. The command takes an optional argument, a string to be added. This is meant for Joyride scripts that want to add things to the inspector.
      • Calva: Clear All Inspector Items. You can use the command or the button for this in the view. No default keybinding.
      • Calva: Paste as Inspector Item. Same as the view button. No default keybinding.
      • Calva: Inspect Item. Makes the selected item inspectable, expands it one level, selects it, and focuses the inspector. Works on the topmost item if none is selected. No default keybinding.
      • Calva: Copy Inspector Item. Copies the text of the selected inspector item, or the topmost item if none are selected. No default keybinding.
      • Calva: Clear Inspector Item. Clears the selected inspector item, or the topmost item if none are selected. No default keybinding.

      The VS Code Shortcuts editor is a good tool for looking up command IDs and, duh, register custom shortcuts for these commands.

      "},{"location":"inspector/#configuration","title":"Configuration","text":"

      There is only one setting for the inspector: calva.autoOpenInspector controls wether the view is revealed as part of connecting the REPL to Calva. It defaults to false.

      "},{"location":"jack-in-guide/","title":"Learn about Calva Jack-in","text":"

      The Calva Jack-In Academy, by @pez

      Like with CIDER Jack-in, Calva's let-me-help-you-start-your-project-and-connect feature might seem a bit mysterious. It really is helpful, but also really isn't mysterious. Here are a few things about it that is good to know about.

      Note

      If you came here to find out how to configure the versions of the dependencies that Calva Jack-in injects, see Customizing Calva - Jack-in Dependency Versions.

      ","boost":6},{"location":"jack-in-guide/#what-it-solves","title":"What it Solves","text":"

      At first it might seem that something like lein repl in a terminal and then connecting Calva is enough. It sometimes might be, but only if you are in luck. To provide many of its IDE features, Calva relies on nREPL middleware, mainly cider-nrepl and, for ClojureScript, piggieback. When starting your Clojure(Script) app and its REPL, it needs to be started with these dependencies satisfied. There are mainly three ways this can be achieved.

      1. In the project definition (files like project.clj, deps.edn, shadow-cljs.edn, and combination of these).
      2. In your user profile (files like ~/.lein/profiles.clj and ~/.clojure/deps.edn).
      3. On the command line.

      Because 1 and 2 are hard to keep in sync with the various editor environments people in your project might be using, Calva Jack-In is about 3.

      Ideally, you will be able to rid your project files completely of editor dependencies when people working on the project can rely on the Jack-In features of their Clojure editor.

      ","boost":6},{"location":"jack-in-guide/#a-controlled-shell-command","title":"A Controlled Shell Command","text":"

      At its core Calva Jack-In is just a glorified, REPL-starting, command-line. No, it is more than that, but anyway. The command line can look like so for a Leiningen project using legacy Figwheel for its ClojureScript assistance:

      lein update-in :dependencies conj '[nrepl\"0.6.0\"]' -- update-in :dependencies conj '[cider/piggieback\"0.4.1\"]' -- update-in :dependencies conj '[figwheel-sidecar\"0.5.18\"]' -- update-in :plugins conj '[cider/cider-nrepl\"0.22.4\"]' -- update-in '[:repl-options :nrepl-middleware]' conj '[\"cider.nrepl/cider-middleware\"]' -- update-in '[:repl-options :nrepl-middleware]' conj '[\"cider.piggieback/wrap-cljs-repl\"]' -- with-profile +dev repl :headless\n

      Even if a bit long, it might look simple enough. But actually it has taken quite some effort to make Calva craft it. Shell quoting can be really tricky. Look at how '[nrepl\"0.6.0\"]' doesn't have a space between nrepl and the version. That was the only way I could find that was cross platform enough to make all supported shells parse the command line. (The trick relies on that the string is read by the super reliable Clojure Reader, which does not need that space to tokenize it.)

      It is awesome that Clojure is used on so many platforms, but for a tool smith this also means more work. (I think Windows and its shell hell ate up about 95% of the many hours spent on getting the quoting good enough.)

      The command-line crafted is then used to start a shell command that Calva controls, but we are getting ahead of ourselves...

      ","boost":6},{"location":"jack-in-guide/#project-types-builds-aliases-profiles-etcetera","title":"Project Types, Builds, Aliases, Profiles, etcetera","text":"

      In order to cook the right command for your project, Calva looks for project files, reads them, and figures out what possible project types and ClojureScript tools could be involved. Then Calva presents you with a menu with the options it has found. You need to know enough about your project to answer this question. It looks like this in a shadow-cljs project that uses a deps.edn file for setting up its classpath.

      (I know enough about this particular project to know that I should choose the shadow-cljs project type.)

      But Calva isn't ready to cook the command-line just yet. Depending on the project type, and contents of your project files, more info is needed. E.g. in the case of shadow-cljs projects, Calva needs to know what builds to start.

      Here you can select any combination of builds defined in the project, and Calva will cook a command line that starts them.

      You might get more prompts from Calva before it issues the command, but for this example project, Calva goes ahead, cooks the command line, and issues it. On my Mac, it looks like so:

      npx shadow-cljs -d cider/piggieback:0.4.1 -d cider/cider-nrepl:0.22.4 watch :app\n

      (Much shorter than the one with lein-figwheel, right? It is because shadow-cljs is aware of CIDER dependencies, so it doesn't need as many dependencies specified as some other project types do.)

      ","boost":6},{"location":"jack-in-guide/#connecting","title":"Connecting","text":"

      When the command is issued Calva needs to wait until the REPL Server is started, before connecting to it and possibly continuing with starting a ClojureScript REPL and connecting to that as well. It also needs to know which port to connect to.

      Because reasons, Calva can't yet read the stdout of the shell command it has issued, so to know when the REPL server is started, and on which port, Calva monitors the filesystem for the .nrepl-port file. (This file is not always named like that. shadow-cljs, for instance, creates the file .shadow-cljs/nrepl.port.)

      When the port file is created, Calva picks up the port number from it and connects to the nREPL server. At this point you have a Clojure REPL backing your Calva session, providing all sorts of nice IDE help for you.

      ","boost":6},{"location":"jack-in-guide/#starting-your-clojure-app","title":"Starting Your Clojure App","text":"

      Once you have the Clojure REPL connected you can start your Clojure app/server. See Custom Connect Sequences for how to let Calva do this for you automatically. See the same article for ways to automate more of the Jack-In process. It can be brought down to a single Jack-In command/action, even for a full stack Clojure and ClojureScript application.

      ","boost":6},{"location":"jack-in-guide/#clojurescript","title":"ClojureScript","text":"

      For ClojureScript, things are not done yet, though, far from it. It turns out that cooking the command line was the easy part.

      In order for Calva to provide REPL power for ClojureScript projects, several things need to happen:

      1. A Clojure nREPL connection needs to be established. We've covered that above. Calva makes an nREPL session clone to use for the ClojureScript REPL and then:
      2. Your ClojureScript app needs to be compiled.
      3. Your ClojureScript app needs to be started.
      4. The Clojure nREPL session needs to be promoted to a ClojureScript nREPL session. (This is what piggieback helps with.)
      ","boost":6},{"location":"jack-in-guide/#compiling-the-app-and-watchers","title":"Compiling the App and Watchers","text":"

      Depending on ClojureScript project type, Calva uses different methods to start the compilation and the watcher:

      • Figwheel: The compilation and the watchers are started in the Clojure REPL session. (This is both for Figwheel Main and for lein-figwheel.)
      • shadow-cljs: The compilation and the watchers are started with the Jack-In command line.

      This results in a bit of difference in the user interaction. Mainly that for shadow-cljs, the user needs to check the Jack-In Terminal tab to follow what's going on.

      ","boost":6},{"location":"jack-in-guide/#starting-the-app","title":"Starting the App","text":"

      Number 3 above, the app needs to be started, might seem obvious, but it actually trips many people up. Because of this, Calva goes to quite some lengths to provide assistance. Many projects are configured not to spawn a browser session automatically, requesting the app once it has been compiled, so we can't rely on that.

      What Calva does instead is to monitor the output of the commands it uses for starting the compilation, looking for information that the app is ready to be requested/started. It then tells the user this, providing a URL, in case it is a browser app. (There are also settings that tell Calva to open the URL automatically for you, regardless what the project settings are.)

      ","boost":6},{"location":"jack-in-guide/#connecting_1","title":"Connecting","text":"

      Meanwhile, Calva is monitoring the output and when it sees that the app is started, it continues to hook up the REPL connection to the editor.

      This whole connection sequence is quite configurable, using Custom Connect Sequences. In fact, Calva's built in ClojureScript sequences (Figwheel Main, lein-figwheel, shadow-cljs, and ClojureScript built-ins for both Browser and Node) are all built using those same settings mechanisms.

      ","boost":6},{"location":"jack-in-guide/#shadow-cljs-is-less-managed-by-calva","title":"shadow-cljs is Less Managed by Calva","text":"

      NB: The managed way in which Calva creates and connects the ClojureScript REPL breaks apart a bit for shadow-cljs, which works a bit differently and also outputs most of the information Calva is looking for on the stdout of the REPL start command (where Calva can't see it, remember?). We'll figure out a better way to support shadow-cljs, but for now, the user needs to do more of this figuring out than is needed with Figwheel projects.

      ","boost":6},{"location":"jack-in-guide/#hack-away","title":"Hack Away","text":"

      So, there are things going on when you start Jack-In, and even more things for ClojureScript projects, but Calva tries to keep it together, so as a user it is a matter of paying attention and responding to a few prompts/menus with pre-populated options (prompts which can be configured away, even).

      ","boost":6},{"location":"jack-in-guide/#switch-clojurescript-builds","title":"Switch ClojureScript Builds","text":"

      Once the REPL is connected you might want to change which ClojureScript build you have Calva connected to. For this Calva has the Select CLJS Build Connection command. Please note that you can only switch between builds that you have started.

      ","boost":6},{"location":"jack-in-guide/#play-with-starting-the-cljs-repl-yourself","title":"Play With Starting the cljs-repl Yourself","text":"

      To get a good grip on what is going on when creating and connecting the ClojureScript REPL, I can recommend making a custom connect sequence which leaves the REPL unpromoted (e.g. give it nil as connectCode), and then evaluate the cljs-repl start commands yourself. So for instance, promoting it to a ClojureScript Node.js REPL looks something like so:

      user=> (require 'cljs.repl.node)\nuser=> (cider.piggieback/cljs-repl (cljs.repl.node/repl-env))\nClojureScript 1.10.844\nTo quit, type: :cljs/quit\nnil\ncljs.user=> |\n

      It is the piggieback middleware there telling you that you can unpromote the REPL by \u201devaluating\u201d :cljs/quit.

      ","boost":6},{"location":"jack-in-guide/#about-full-stack-applications","title":"About Full Stack Applications","text":"

      Because Calva uses the Clojure REPL connection to spawn the ClojureScript REPL, and because Calva only handles one Clojure REPL per VS Code window, some projects need special handling by the user.

      If your full stack project is using shadow-cljs for the frontend, like this Fulcro template project does, maybe you first try to Jack-In to your backend Clojure REPL, and then to your shadow-cljs frontend. This works if you do it in separate VS Code windows, but if you do it in the same window, the second Jack-In will kill the backend session! See also connect shadow-cljs in fullstack projects.

      See Workspace Layouts for tips about how to open the same project folder in two separate VS Code windows.

      Please also consider to play around with starting the REPL and ClojureScript wiring entirely from the terminal, see this example project for some instructions on that. You can also use that project together with the nil for connectCode sequence mentioned above.

      ","boost":6},{"location":"jack-in-guide/#please-grab-your-calva-jack-in-certificate","title":"Please Grab your Calva Jack-In Certificate","text":"

      There, you now know all there is to know about Calva Jack-In.

      Just kidding, there are a few more details to it, some of which might find their way into this article at a later time.

      To really get to know it all, you will need to spend some time with the Calva Jack-In code. Head over to the Calva Development Wiki to learn how to hack on Calva.

      ","boost":6},{"location":"joyride/","title":"Using Calva With Joyride","text":"

      Joyride is a VS Code extension for user space scripting of VS Code itself. You find the extension here. The scripting language for Joyride is the best you language imaginable: Clojure. And, as is proper for a Clojure implementation, it has a REPL, even an nREPL server.

      This means you can connect Calva to Joyride and interactively develop your VS Code scripts.

      This video shows Joyride in action, using Calva as the nREPL client.

      "},{"location":"joyride/#how-to-connect","title":"How to connect","text":"

      Once you have the Joyride extension installed you can start its REPL and connect Calva to it (a.k.a Jack-in).

      Start the Joyride REPL and Connect

      This 1 minute video shows the following steps:

      1. Installing the Joyride Extension
      2. Isssuing the command Calva: Start a REPL in your Project and (a.k.a Jack-in)
      3. Selecting joyride project type
      4. Isssuing the command Calva: Load/Evaluate Current File and its Requires/Dependencies
      5. Evaluating some non-vscode code
      6. Evaluating code exercising something from the VS Code API

      (Right-click the video and choose Full Screeen if it is too tiny embedded.)

      "},{"location":"joyride/#how-to-get-started-with-joyride","title":"How to Get Started with Joyride","text":"

      The Joyride README has some Quick Start pointers for you. Please feel invited to the #joyride channel on the Clojurians Slack and chat with us and other Joyride users.

      Come on, Join the Joyride! \u2764\ufe0f

      "},{"location":"krell/","title":"Using Calva With Krell","text":"

      Krell is \u00e0 la carte ClojureScript tooling for React Native.

      Even if Calva does not yet have built-in support, all is not lost. You can add support yourself by way of a Custom REPL Connect Sequence. Here's how;

      "},{"location":"krell/#starting-the-krell-clojurescript-repl","title":"Starting the Krell ClojureScript REPL","text":"

      Add this REPL Connect Sequence to your workspace settings.json:

          \"calva.replConnectSequences\": [\n        {\n            \"name\": \"deps.edn + Krell\",\n            \"projectType\": \"deps.edn\",\n            \"cljsType\": {\n                \"connectCode\": \"(require '[clojure.edn :as edn] \\n    '[clojure.java.io :as io]\\n    '[cider.piggieback] \\n    '[krell.api :as krell]\\n    '[krell.repl])\\n\\n(def config (edn/read-string (slurp (io/file \\\"build.edn\\\"))))\\n(apply cider.piggieback/cljs-repl (krell.repl/repl-env) (mapcat identity config))\",\n                \"dependsOn\": \"User provided\"\n            }\n        }\n    ]\n

      Then issue the command Start a Project REPL and Connect (aka Jack-In). It start the project and connect to the Krell REPL once the app is running on a device (wether real or virtual/emulated).

      "},{"location":"krell/#additional-vs-code-tips","title":"Additional VS Code Tips","text":"

      For a smooth workflow you can also:

      • Install the React Native Tools extension
      • Install the Debugger for Chrome extension, and add this Launch Configuration
                {\n            \"type\": \"chrome\",\n            \"request\": \"launch\",\n            \"name\": \"Launch Debugger\",\n            \"url\": \"http://localhost:8081/debugger-ui/\",\n            \"webRoot\": \"${workspaceFolder}\"\n        }\n

      Together with the connect sequence this will make for a start of a Krell session like this:

      1. Open the project root in VS Code
      2. Issue the Jack-in command
      3. Issue the React Native; Run Android on Emulator (or Run iOS on Simulator) command. (Disable Fast Refresh from the *React Native dev menu, if it is enabled.)
      4. Issue the React Native: Run Element Inspector command (You might need to install the React Native inspector globally): ```sh yarn global add react-devtools ````
      5. Launch Debugger (F5)
      6. Hack away, with hot reload and interactive REPL

      Once the debugger (a Chrome session) is running, you probably will want to enable Custom Formatters in order for clojure structures to be logged conveniently.

      "},{"location":"linting/","title":"Linting","text":"

      Calva does no linting, yet with Calva you get excellent linting. That is because Calva uses clojure-lsp, which provides linting powered by clj-kondo.

      clj-kondo comes with great default rules, and the configuration can be customized. One of your options for the configuration file is to placed a config.edn file in .clj-kondo/ at the root of your project. This folder may or may not already exist. It is safe to create it manually if it doesn't.

      The configuration will be merged with the default set of rules, you can only specify the rules you want to override. The full list of available options can be found on clj-kondo's github

      clojure-lsp is customizable, see Clojure LSP Settings for your options. It is safe to manually create the .lsp folder if it doesn't exist.

      You might want to read about how to configure clj-kondo. These two sections might be of extra interest:

      • Unrecognized macros
      • Lint a custom macro like a built-in macro

      If you see a linting squiggle under the first character of the file with an error you don't quite understand, it is probably something wrong with your clj-kondo configuration.

      Files are linted as they're being edited. If you want to lint the whole project, use the clj-kondo cli command. See https://github.com/borkdude/clj-kondo for more info on that. Windows users might like to know that they too can get a clj-kondo cli command now, via npm install -g clj-kondo. It'll be a bit slower to start than the native build, but for sure it's better than not having a clj-kondo command! See https://github.com/borkdude/clj-kondo/blob/master/doc/install.md#npm-linux-macos-windows for more on this.

      "},{"location":"linting/#resolve-macro-as","title":"Resolve Macro As","text":"

      When your cursor is on a macro form in the editor, you may notice a code action (click the light bulb that appears) called Resolve Macro As. Running this code action will ask you what macro you'd like to resolve the current macro as, and then what clj-kondo config file you want the macro to be saved to. This code action is also available as a command.

      "},{"location":"live-share/","title":"Using Calva with Live Share","text":"

      Live Share is a Microsoft provided VS Code extension. It allows you to share the workspace that you have open in your computer with somebody else. Everybody is then working on the same source code files, namely those on your computer. You can edit files at the same time, everyone has their own caret. You can follow each other (i.e. when someone switches to a different file, you will as well). This is great for remote pair programming, for example.

      An extra nice thing is that each participant is using their own VSCode configuration, including fonts, colors, keyboard shortcuts, etc.

      Disable Calva Spritz to get rid of Notebooks interference

      The headline below Calva Supports Live Share is true. However, due to a bug in LiveShare, guest participants always get their Clojure files opened in the Calva Clojure Notebooks editor. To workaround this issue Calva uses a \u201dside-car\u201d extension named Calva Spritz for the Notebooks associations of Clojure files. You can disable that extension when participating in LiveShare sessions.

      "},{"location":"live-share/#calva-supports-live-share","title":"Calva Supports Live Share","text":"

      When using Calva, you can use Live Share as well. Editing works exactly the same as for any other programming language. What makes Calva a bit special, is the REPL. When using Live Share, Calva allows the host to share the REPL with guests as well. If you use any of the supported configuration, this will be pretty much automatic.

      You need to enable the LiveShare support

      Due to an issue in the LiveShare API, for some users, this feature stops Calva from connecting the REPL. Therefore the support is disabled by default. The setting is calva.useLiveShare.

      This is what a typical scenario looks like:

      1. The host jacks-in.
      2. The host shares its workspace using Live Share. Calva will detect that the workspace is being shared, so it will offer to share the REPL port that was opened when jacking in. The host clicks \"Allow\" to start sharing the port. (Note: steps 1 and two can also be done in the reverse order.)
      3. The host sends the Live Share URL to the guest(s).
      4. The guest joins the Live Share session using the URL it received.
      5. The guest connects to the host's REPL using the command \"Connect to a running REPL server in the project\". If needed, the guest chooses the same build configuration as the host.

      Voila! Both the guest and the host can now use the REPL that is running on the host. Things like documentation lookup now also work on the guest's machine.

      "},{"location":"live-share/#control-visibility-of-calva-folder","title":"Control Visibility of .calva Folder","text":"

      Calva depends on the output.calva-repl file to be available. If you have the .calva folder listed in your .gitignore, this also causes the folder to be hidden from guests in Live Share by default. In order to make the folder visible, you can put a file called .vsls.json in your project. In its simplest form, the contents can be this:

      {\n  \"$schema\": \"http://json.schemastore.org/vsls\",\n  \"hideFiles\": [\n    \"!.calva\"\n  ]\n}\n

      Now the .calva folder is shared as well. But also any other file and folder that you may have in your .gitignore. If you want to have more fine-grained control, please refer to the section Controlling file access and visibility of the Live Share documentation.

      "},{"location":"live-share/#some-things-to-keep-in-mind","title":"Some Things To Keep In Mind","text":"
      • As a guest, you're connected to a REPL running on the host's machine. With power comes responsibility; be nice, and be careful!
      • There is only one output.calva-repl file, which all participants are sharing. It may work better to evaluate things in the source code editors instead of from the REPL window. Otherwise you will end up in a situation where one person is typing something in the output.calva-repl window, and somebody else is evaluating something (hence sending the output there) at the same time. That gets confusing quickly.
      • When you're working on a CLJS-based web development project, things may get extra confusing. By default, Live Share will share any HTTP ports on the host automatically, and also offer to open the URL on the guest. (You can disable using the setting \"Liveshare: Open Shared Servers\".) As a guest, you do not want to open that browser window normally. Think about it: where is the REPL running? Yes: in the browser! But Calva connects to the REPL running in the browser on the host's machine, so if you open a browser as a guest, you will also get a REPL there, but you won't be connected to it in Calva.
      • Currently Live Share does not allow Calva to know whether the workspace is shared read-only or read-write. If you share read-only, and you don't want the guests to have access to your REPL, don't click \"Allow\" when VSCode asks you to share the REPL port.
      "},{"location":"live-share/#calva-spritz","title":"Calva Spritz","text":"

      Together with Calva there is an extension called Calva Spritz installed. All it does is to provide the association of Clojure file types to Clojure Notebooks. We do it this way because of the LiveShare issues mentioned above. So that you can disable the Notebook association when participating as a guest in LiveShare sessions. The issue is tracked here:

      • Calva issue: LiveShare participants incorrectly opening every Clojure file as if via \"Open with Notebook\"
      • LiveShare issue: Guest opens Clojure file as a notebook (incorrectly)

      Calva Spritz can be disabled and enabled at will, and it will take immediate effect, without any reload of VS Code needed.

      "},{"location":"luminus/","title":"How to Use Calva with Luminus","text":"

      Luminus is a powerful and versatile Leiningen template for creating web development projects. It comes with built in configuration which makes it easy to use Calva as your Clojure(Script) editor.

      "},{"location":"luminus/#server-shadow-cljs","title":"Server + shadow-cljs","text":"

      Basically this is the same wokflow as with Server only. Behind the scenes there is more happening, though. Such as the ClojureScript app being built and the CLJS REPL connected once the web app is running.

      1. If you haven't created the project yet, create a new shadow-cljs Luminus project. E.g.:
        $ lein new luminus my-luminus-shadow +reagent +re-frame +shadow-cljs\n
      2. Install npm dependencies
        $ npm i\n
        (Or yarn if you prefer.)
      3. This creates the folder my-luminus-shadow. Open it in VS Code:
        $ code my-luminus-shadow\n
      4. Use the Calva command Start a Project REPL and Connect (aka Jack-in): ctrl+alt+c ctrl+alt+j
      5. Select to start my-luminus-shadow Server + Client, and wait for the Terminal Calva Jack-in output to say [:app] Build completed.
      6. Open 127.0.0.1:3000 in your web browser and start hacking.

      Note

      Currently Calva has troubles following the app-start with shadow-cljs, so Calva will report Jack-in done. in the output window before shadow-cljs is actually done building the app. If you open the app page at that stage, you will see a message to \u201cPlease run lein shadow watch app\u201d. Rest assured that this is already underway. Follow the Jack-in process in the Terminal tab in VS Code for the message that the app is built, then reload the app page in the web browser.

      "},{"location":"luminus/#server-only","title":"Server Only","text":"

      The workflow here is really just: Jack-in and start hacking. However, the first time it will involve these steps:

      1. If you haven't created the project yet, create a new server only Luminus project. For a all-defaults setup it is like so:
        $ lein new luminus my-luminus-server\n
      2. This creates the folder my-luminus-server. Open it in VS Code:
        $ code my-luminus-server\n
      3. Use the Calva command Start a Project REPL and Connect (aka Jack-in): ctrl+alt+c ctrl+alt+j
        • Select to start my-luminus-shadow Server and wait until you see Jack-in done. in the output window.
      4. Open 127.0.0.1:3000 in your web browser and start hacking.
      "},{"location":"luminus/#server-figwheel","title":"Server + Figwheel","text":"

      This is Legacy Figwheel (lein-figwheel), so the recommendation is to use the shadow-cljs setup instead. As with the server only, the workflow here is really just: Jack-in and start hacking. The first time it involves these steps:

      1. If you haven't created the project yet, create a new server only Luminus project. E.g.:
        $ lein new luminus my-fw +reagent\n
      2. This creates the folder my-fw. Open it in VS Code:
        $ code my-fw\n
      3. Use the Calva command Start a Project REPL and Connect (aka Jack-in): ctrl+alt+c ctrl+alt+j, select Server + Client - my-fw in the Project type picker menu, and wait for the web app to pop open in your web browser.
      4. Start hacking.

      If you prefer to open the web app yourself, open .vscode/settings.json and change \"shouldOpenUrl\" to false in the pre-configured Calva connect sequence. Calva will then print the URL 127.0.0.1:3000 in the output, so that you can click it open.

      "},{"location":"luminus/#etcetera","title":"Etcetera","text":"

      You will have three Calva Custom Command Snippets configured. Invoke them by issuing the Run Custom REPL Command, ctrl+alt+c . (that's a dot). These commands control the Luminus server:

      1. Start <project> Server
      2. Stop <project> Server
      3. Restart <project> Server

      When used, Calva will open its REPL window and execute the command, if it is not already opened. You can close this window if you prefer to use the REPL directly from the Clojure files.

      Calva also opens the REPL window, and starts the Luminus server, as part of the Jack-in process.

      "},{"location":"merch/","title":"Calva Merch","text":"

      In this video, there is a question about where you can buy the Calva T-shirt:

      You couldn't, then. But now you can! On Amazon.

      Zero profit

      To keep the admin of this shop to a minimum the merch is sold at production prize (or as close to production prize as the respective store allows). There is no royalty going to anyone in the Calva team when you buy one of these t-shirts. You will represent, which is certainly a way to support the project. You are of course encouraged to support us via sponsoring as well:

      • Sponsor Peter Str\u00f6mberg
      • Sponsor Brandon Ringe

      Calva Merch is available on Zazzle and on Amazon

      ","boost":10},{"location":"merch/#zazzle","title":"Zazzle","text":"","boost":10},{"location":"merch/#calva-symbol-sticker","title":"Calva Symbol Sticker","text":"Calva Symbol Sticker by BetterThanTomorrow","boost":10},{"location":"merch/#joyride-symbol-sticker","title":"Joyride Symbol Sticker","text":"Joyride Symbol Sticker by BetterThanTomorrow","boost":10},{"location":"merch/#amazon-merch","title":"Amazon Merch","text":"","boost":10},{"location":"merch/#the-designs","title":"The designs","text":"

      There are four design, all featuring the Calva symbol (the Calva glass), which are all available for a Standard T-shirt, in men's, women's and kid's cut, and in some different colors. In the .com store there are also Premium T-shirts**.

      ","boost":10},{"location":"merch/#symbol-logo","title":"Symbol + Logo","text":"

      Available at:

      • https://www.amazon.com/dp/B09BCVH9SC (Premium T-shirt)
      • https://www.amazon.com/dp/B097TB5QFW
      • https://www.amazon.de/dp/B098GWQC6M
      • https://www.amazon.co.uk/dp/B098KM9XMF
      • https://www.amazon.fr/dp/B0994TYXTN
      • https://www.amazon.it/dp/B099KLJJV1
      • https://www.amazon.es/dp/B099NXR71Y
      • https://www.amazon.co.jp/dp/B097YZVMC4
      ","boost":10},{"location":"merch/#symbol-logo-we-do-it-with-rich-comments","title":"Symbol + Logo + We do it with Rich Comments","text":"

      The Calva symbol and Logo front, Rich Comments back.

      Available at:

      • https://www.amazon.com/dp/B09C4PBH5N (Premium T-shirt)
      • https://www.amazon.com/dp/B09BFMRCHL
      • https://www.amazon.de/dp/B09C3VYZH8
      • https://www.amazon.co.uk/dp/B09BLD2BVJ
      • https://www.amazon.fr/dp/B09C3X1H7K
      • https://www.amazon.it/dp/B09C3WV2JQ
      • https://www.amazon.es/dp/B09C4P1GD1
      • https://www.amazon.co.jp/dp/B09C4P45MR
      ","boost":10},{"location":"merch/#symbol-only","title":"Symbol Only","text":"

      Available at:

      • https://www.amazon.com/dp/B09B83481D (Premium T-shirt)
      • https://www.amazon.com/dp/B097TB5QFW
      • https://www.amazon.de/dp/B098434W9M
      • https://www.amazon.co.uk/dp/B098KNGPBB
      • https://www.amazon.fr/dp/B099RZGNN7
      • https://www.amazon.it/dp/B099WYH94Z
      • https://www.amazon.es/dp/B09B2TFCSR
      • https://www.amazon.co.jp/dp/B09B4XN3HY
      ","boost":10},{"location":"merch/#symbol-we-do-it-with-rich-comments","title":"Symbol + We do it with Rich Comments","text":"

      The Calva symbol front, Rich Comments Back.

      Available at:

      • https://www.amazon.com/dp/B098M34FKJ (Premium T-shirt)
      • https://www.amazon.com/dp/B0993VCG7P
      • https://www.amazon.de/dp/B098MF14PV
      • https://www.amazon.co.uk/dp/B098P1MV44
      • https://www.amazon.fr/dp/B098TPQFCJ
      • https://www.amazon.it/dp/B098YP33ZL
      • https://www.amazon.es/dp/B098RDPK55
      • https://www.amazon.co.jp/dp/B0992MQYG6

      Note

      What's available on this or that Amazon site will vary a bit and it is a bit slow to add a particular design to a particular market. Eventually I hope to have both designs up on these markets: .com, .co.uk, .de, .fr, .it, .es, and .co.jp

      ","boost":10},{"location":"namespace-form-auto-creation/","title":"Namespace Form Auto-creation","text":"

      When you create a new clojure file, a file with .clj, .cljc or .cljs extension, an appropriate namespace form will be added to the file. This feature is provided by clojure-lsp.

      "},{"location":"nbb/","title":"Using Calva with nbb","text":"

      Since nbb can be started such that it is an nREPL server, Calva can connect to it and a lot of the features will work.

      Calva can also start nbb and connect its REPL for you, using the Jack-in command. This will start an nbb nREPL server on a random port and connect Calva to it. Check out this video where they use Calva and nbb to create a CLI tool as an executable npm module:

      In that video they ask for a JavaScript to ClojureScript converter. And there is one: https://mauricioszabo.gitlab.io/js2cljs/

      Though if you are using Calva, this converter is easier to use directly via the command Calva: Convert JavaScript to ClojureScript:

      Errors jacking in to nbb on Windows?

      On some machines it seems necessary to first run npx nbb from the CMD prompt to make jack-in work. Or try first install it npm i -g nbb. (You probabl want nbb installed globally anyway.)

      Don't expect complete support

      nbb's nREPL server is completely new and and WIP. It will be a bit limited compared to a full cider-nrepl enhanced \"regular\" Clojure nREPL server. Things like function signatures, and more do not work.

      It's a bit hacky

      The nbb nREPL server is the first ClojureScript nREPL server around and throws Calva's assumption that an nREPL server is always started in a Clojure process out the window. The nbb Jack-in/connect option \u201dpretends\u201d it is connecting to a Clojure nREPL and then the code fro promoting the nREPL session to a ClojureScript one is just dummy code.

      This means that if you open a Clojure (.clj) file while connected to an nbb nREPL server, it will still be a ClojureScript session serving even though Calva will indicate that it is a Clojure one. Bare with us until we can fix this properly in Calva.

      ","boost":4},{"location":"notebooks/","title":"Clojure Notebooks","text":"

      WIP: Notebook support is very basic and experimental

      • You might experience loss of file contents when saving a Clojure Notebook. Have backups of any files you open as notebooks.
      • Tooling around autocomplete, go to def, linting and such does not work at all yet.
      • There is no Markdown support.
      • Etcetera. As if this was not enough, notebooks can also interfere with LiveShare support.

      Please help test the feature. We're looking forward to your feedback!

      You can open any Clojure file as a notebook by right clicking the file -> Open with... -> Clojure Notebook.

      Running cells sends them to the REPL and pretty prints the results. If the return is a string that starts with <html it will be displayed in an html webview.

      Forms inside (comment) blocks get shown as their own cells. When adding code blocks in between those cells they get saved with the same indentation as the first form.

      ","boost":1},{"location":"notebooks/#calva-spritz","title":"Calva Spritz","text":"

      Together with Calva there is an extension called Calva Spritz installed. It only provides the association of Clojure file types to Clojure Notebooks. This is due to the LiveShare issues mentioned above. So that you can disable the Notebook association when participating as a guest in LiveShare sessions. The issue is tracked here:

      • Calva issue: LiveShare participants incorrectly opening every Clojure file as if via \"Open with Notebook\"
      • LiveShare issue: Guest opens Clojure file as a notebook (incorrectly)
      ","boost":1},{"location":"nrepl_and_cider-nrepl/","title":"nREPL and cider-nrepl","text":"

      nREPL and cider-nrepl middleware enable Calva to support full Interactive Programming.

      ","boost":2},{"location":"nrepl_and_cider-nrepl/#about-nrepl","title":"About nREPL","text":"

      The REPL is a Clojurists quintessential tool, it\u2019s what we use to do Interactive Development, the hallmark of the LISP style of development.

      In Interactive Development (more commonly but somewhat imprecisely referred to as REPL-driven development), the programmer\u2019s editor has a direct connection with the running application process. This allows evaluating pieces of code in the context of a running program, directly from where the code is written (and so not in some separate \u201cREPL place\u201d), inspecting and manipulating the innards of the process. This is helped along by the dynamic nature of Clojure in which any var can be redefined at any point, allowing for quick incremental and iterative experimentation and development.

      This is why it\u2019s essential to the Clojure development experience to have proper editor support, a plugin which bridges the gap between where the code is written and where the code is run. So we have CIDER for Emacs, Calva for VS Code, Cursive for IntelliJ, Conjure or Iced for Vim, and so forth. Often these will also leverage the same (or a parallel) connection into the process for other editor affordances, like navigation and completion.

      But for these editor plugins to connect to the Clojure process something needs to be listening on the other side, accepting connections, allowing the initiation of a program-to-program dialogue. The most common way to achieve this is by leveraging the nREPL protocol, an asynchronous message-based network protocol for driving interactive development. The application process is started with an embedded nREPL server, so that the editor can connect as an nREPL client.

      From: Lambda Island

      ","boost":2},{"location":"nrepl_and_cider-nrepl/#about-the-nrepl-server-and-middleware","title":"About the nREPL Server and Middleware","text":"

      nREPL is an extensible protocol, the reference server implementation understands certain core operation types like \"eval\". More operations can be supported, or existing operations can be modified or augmented, through nREPL middleware. For example: the Piggieback middleware can intercept \"eval\" messages, and forward them to a ClojureScript environment, rather than evaluating them in the Clojure process itself.

      Which middleware to use will mostly depend on the editor you are using. You\u2019ll typically find that the Clojure-specific functionality for a given editor is partly implemented as a typical editor extension, for instance CIDER written in Emacs LISP, or Calva written in Typescript, and partly as nREPL middleware, providing the functionality the editor extension relies on. For instance, both CIDER and Calva rely on functionality provided by cider-nrepl.

      Also from: Lambda Island

      ","boost":2},{"location":"nrepl_and_cider-nrepl/#viewing-the-communication-between-calva-and-nrepl","title":"Viewing the Communication Between Calva and nREPL","text":"

      You can view the messages sent between Calva and nREPL by running the command Toggle nREPL Logging Enabled. Enabling nREPL message logging triggers the creation of a VS Code output channel called nREPL Messages where the messages will be logged. Messages sent to nREPL from Calva will have -> sent above them, and messages sent from nREPL to Calva will have <- received above them. Disabling nREPL message logging causes the nREPL Messages channel to be removed and messages will no longer be logged.

      Each message is logged as JSON. If you find a need for the messages to be logged as EDN (for example, to transform and analyze them with Clojure) please open a GitHub issue for this change. A PR would be welcome too!

      The example below shows two messages logged when the cursor hovers over println in a Clojure file while a REPL is connected.

      -> sent\n{\n  op: 'info',\n  ns: 'test-lein.core',\n  symbol: 'println',\n  id: '7',\n  session: '1a080b66-b1b6-4b8c-8206-c4af2cc02747'\n}\n\n<- received\n{\n  added: '1.0',\n  'arglists-str': '[& more]',\n  column: 1,\n  doc: 'Same as print followed by (newline)',\n  file: 'jar:file:/Users/brandon/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/core.clj',\n  id: '7',\n  line: 3733,\n  name: 'println',\n  ns: 'clojure.core',\n  resource: 'clojure/core.clj',\n  'see-also': [\n    'clojure.core/prn',\n    'clojure.core/print',\n    'clojure.core/println-str',\n    'clojure.pprint/pprint'\n  ],\n  session: '1a080b66-b1b6-4b8c-8206-c4af2cc02747',\n  static: 'true',\n  status: [ 'done' ]\n}\n
      ","boost":2},{"location":"output/","title":"Output Destinations","text":"

      Calva categorizes output into three types:

      • evaluation results: Clojure data returned from an evaluation.
      • evaluation output: stdout/stderr from an evaluation
      • other output: Other messages, logs, etc

      With the setting calva.outputDestinations, you can configure where each category of output should go to:

      • the REPL Window
      • the Calva Says Output Channel
      • the Calva Output (pseudo) Terminal

      The reason there are several options for this is partly legacy and partly because VS Code restricts the placement of different views in different ways. We hope you will find a combination of output destinations that suits you.

      "},{"location":"output/#commands-for-showing-output-destinations","title":"Commands for showing output destinations","text":"

      These are the commands and their default keyboard shortcuts for revealing output destinations

      • Calva: Show/Open the result output destination - ctrl+alt+o o
      • Calva: Show/Open the Calva says Output Channel - ctrl+alt+o c
      • Calva: Show/Open the Calva Output Terminal - ctrl+alt+o t
      • Calva: Show/Open REPL Window - ctrl+alt+o r
      "},{"location":"output/#about-stdout-in-the-repl-window","title":"About stdout in the REPL Window","text":"

      Since Calva v2.0.423 the REPL Window prints stdout prepended with ; to make it into line comments. This is because stdout output easily breaks the Clojure structure of the REPL Window, making it misbehave in various ways. We made this change because as maintainers of Calva we have seen all too often how this hits users, and it is also taking too much of our Calva time to try mitigate the problem, which is fundamentally not fixable.

      There are now other output destinations that do not have this limitation.

      All that said. If you want to keep using the REPL Window for stdout output, and need the old behavior, you can enable the setting: calva.legacyPrintBareReplWindowOutput. Please note that at some point after we have created a dedicated Output Window, the REPL Window will be retired as a destination for output.

      "},{"location":"output/#repl-process-output-stdout-and-stderr","title":"REPL process output (stdout and stderr)","text":"

      When Calva is connected to the REPL, the Output window will by default print not only results of evaluations, but also:

      1. Things printed to stdout and stderr in the main thread of the evaluations
      2. Things printed to stdout and stderr from child threads of the evaluations
      3. Anything printed to stdout and stderr by the REPL process

      You can control the default via the calva.redirectServerOutputToRepl setting. It defaults to true. Setting it to false before connecting the REPL will result in that 2. and 3. will not get printed in the Output window. It will then instead be printed wherever the REPL process is printing its messages, usually the terminal from where it was started (the Jack-in terminal if Calva started the REPL).

      "},{"location":"output/#see-also","title":"See also","text":"
      • The Calva Results Inspector
      • The REPL Window
      "},{"location":"paredit/","title":"Paredit \u2013 a Visual Guide","text":"

      Structural editing and navigation for Clojure.

      ","boost":7},{"location":"paredit/#what-is-paredit","title":"What is Paredit?","text":"

      Calva Paredit helps you navigate, select and edit Clojure code in a structural way. LISP isn't line or character oriented, it is based around S-expressions, a.k.a forms. We strongly recommend that you take advantage of the structural nature of Clojure, and have therefore put a lot of work into making Calva Paredit extra awesome.

      If you are new to Paredit, consider starting with learning the Slurp Forward (pull in the next form into this form) and Barf Forward (push the last form out of this form). It will take you quite far.

      ","boost":7},{"location":"paredit/#strict-mode","title":"Strict Mode","text":"

      To protect the integrity of your code, Strict mode is enabled by default.

      Strict mode keybinding Action Description backspace Delete Backward Deletes one character backwards, unless it will unbalance a form. Otherwise moves past the character instead of deleting it. If the list is empty, it will remove both open and close brackets. delete Delete Forward Deletes one character forwards, unless it will unbalance a form. Otherwise moves past the character instead of deleting it. If the list is empty, it is removed. alt+backspace Force Delete Backward Deletes one character backwards, even if it will unbalance a form. alt+delete Force Delete Forward Deletes one character forwards, even if it will unbalance a form.

      Disable at your own peril. Strict mode can be toggled on/off using the Toggle Paredit Mode command, and there is a status bar indicator telling you:

      Indicator Paredit Mode [\u03bb] Strict (\u03bb) Cave Man (strict mode off) \u03bb No default key bindings

      Toggle between Strict and Cave Man using: ctrl+alt+p ctrl+alt+m

      ","boost":7},{"location":"paredit/#a-keybinding-for-protecting-the-structure-from-semi-colon","title":"A keybinding for protecting the structure from semi-colon","text":"

      Semi-colons (;) in Clojure are non-structural because they comment out the rest of the line regardless of brackets. In a way they can delete brackets. There is a somewhat secret command in Paredit that can be used to insert ; in a safe way:

      paredit.insertSemiColon

      Bind it to the ; key with a when clause that activates it together with the other Strict mode commands:

      {\n    \"command\": \"paredit.insertSemiColon\",\n    \"key\": \";\",\n    \"when\": \"calva:keybindingsEnabled && editorLangId == clojure && editorTextFocus && paredit:keyMap == strict && !editorReadOnly && !editorHasMultipleSelections && !calva:cursorInComment\"\n },\n
      ","boost":7},{"location":"paredit/#commands","title":"Commands","text":"

      The Paredit commands are sorted into Navigation, Selection, and Edit. As mentioned, Slurp and Barf are power commands, which go into the editing category. Learning to navigate structurally, using shortcuts, also saves time and adds precision to your editing. It has the double effect that you at the same time learn how to select structurally, because that is the same, just adding the shift key.

      To make the command descriptions a bit clearer, each entry is animated. When you try to figure out what is going on in the GIFs, focus on where the cursor is at the start of the animation loop.

      ","boost":7},{"location":"paredit/#command-args","title":"Command Args","text":"

      Some Paredit commands accept arguments. You can utilize this in keybindings and from Joyride.

      ","boost":7},{"location":"paredit/#copy-for-all-kill-commands","title":"copy for all kill* commands","text":"

      When specified, will control whether killed text will be copied to the clipboard. This is an alternative to, or supports binding-specific overrides for, calva.paredit.killAlsoCutsToClipboard.

      For example, here's 2 keybindings for paredit.killRight with different copy args, allowing you to choose when or if you want killed text copied at keypress-time, regardless of global calva.paredit.killAlsoCutsToClipboard setting:

      {\n  \"key\": \"ctrl+k\",\n  \"command\": \"paredit.killRight\",\n  \"when\": \"... your when conditions ...\",\n  \"args\": {\"copy\": false}\n},\n{\n  \"key\": \"cmd+k ctrl+k\",\n  \"command\": \"paredit.killRight\",\n  \"when\": \"... your when conditions ...\",\n  \"args\": {\"copy\": true}\n},\n

      Or, you can even have both of them use the same key, but separate when conditions to taste, to allow context-conditional copying.

      ","boost":7},{"location":"paredit/#strings-are-not-lists-but-anyway","title":"Strings are not Lists, but Anyway...","text":"

      In Calva Paredit, strings are treated in much the same way as lists are. Here's an example showing Slurp and Barf, Forward/Backward List, and Expand Selection.

      ","boost":7},{"location":"paredit/#navigating","title":"Navigating","text":"

      (Modify these with shift to select rather than move, see below.)

      Default keybinding Action Description ctrl+right (win/linux)alt+right (mac) Forward Sexp Moves the cursor forward, to the end of the current form. If at the end, moves to the end of the next form. Will not move out of lists. ctrl+left (win/linux)alt+left (mac) Backward Sexp Moves the cursor backward, to the start of the current form. If at the start, moves to the start of the previous form. Will not move out of lists. ctrl+down Forward Down Sexp Moves the cursor into the following list. ctrl+alt+up Backward Down Sexp Moves the cursor into the preceding list. ctrl+alt+down Forward Up Sexp Moves the cursor forwards, out of the current list. ctrl+up Backward Up Sexp Moves the cursor backwards, out of the current list. Unbound Forward Sexp Or Up Moves the cursor forward, to the end of the current form. If at the end, moves to the end of the next form. Moves out of the lists if at the end of it. Unbound Backward Sexp Or Up Moves the cursor backward, to the start of the current form. If at the start, moves to the start of the previous form. Moves out of the list if at the start of it. ctrl+end Forward to List End/Close Moves the cursor forwards, staying within the current list. ctrl+home Backward to List Start/Open Moves the cursor backwards, staying within the current list.","boost":7},{"location":"paredit/#selecting","title":"Selecting","text":"

      Most of these commands are selecting \u201dversions\u201d of the navigation commands above. Repeated use will grow the current selection step by step.

      Default keybinding Action Description shift+alt+right (win/linux)ctrl+w (mac) Expand Selection Starts from the cursor and selects the current form. Then will keep expanding to enclosing forms. shift+alt+left (win/linux)ctrl+shift+w (mac) Shrink Selection Contracts back from an expanded selection performed by any Paredit selection command. (In the animation the selection is first grown using a combination of Expand Selection and some lateral selection commands, then shrunk all the way back down to no selection.) ctrl+alt+w space Select Top Level Form Top level in a structural sense. Typically where your(def ...)/(defn ...) type forms. Please note that(comment ...) forms create a new top level. shift+ctrl+right (win/linux)shift+alt+right (mac) Select Forward Sexp ctrl+shift+k Select Right Select forward to the end of the current form or the first newline. See Kill right below. (The animation also shows Shrink Selection). shift+ctrl+left (win/linux)shift+alt+left(mac) Select Backward Sexp ctrl+shift+down Select Forward Down Sexp (You probably do not need to select like this, but you can!) ctrl+shift+alt+up Select Backward Down Sexp (You probably do not need to select like this, but you can!) ctrl+shift+alt+down Select Forward Up Sexp (You probably do not need to select like this, but you can!) ctrl+shift+up Select Backward Up Sexp (You probably do not need to select like this, but you can!) Unbound Select Forward Sexp Or Up (You probably do not need to select like this, but you can!) Unbound Select Backward Sexp Or Up (You probably do not need to select like this, but you can!) ctrl+shift+end Select Forward to List End/Close ctrl+shift+home Select Backward to List Start/Open","boost":7},{"location":"paredit/#editing","title":"Editing","text":"Default keybinding Action Description ctrl+alt+right (mac/win)ctrl+alt+. (linux) Slurp Forward Moves the closing bracket forward, away from the cursor, past the following form, if any. ctrl+alt+left (mac/win)ctrl+alt+, (linux) Barf Forward Moves the closing bracket backward, towards the cursor, past the preceding form. ctrl+alt+shift+left Slurp Backward Moves the opening bracket backward, away from the cursor, past the preceding form, if any. ctrl+alt+shift+right Barf Backward Moves the opening bracket forward, towards the cursor, past the following form. ctrl+alt+s Splice Sexp Remove enclosing brackets. ctrl+shift+s Split Sexp Splits a string, or a list, into two strings, or lists of the same type as the current. ctrl+shift+j Join Sexps/Forms Joins two strings, or two lists of the same type, into one form (string/list). ctrl+alt+p ctrl+alt+r Raise Sexp Replaces the enclosing list with the current form. ctrl+alt+t Transpose Sexps/Forms Swaps place of the two forms surrounding the cursor. alt+upalt+down Drag Sexp Backward/Forward Moves the current form to the behind/in front of the previous/next one. (See below about behavior in maps and binding boxes.) ctrl+alt+shift uctrl+alt+shift d Drag Sexp Backward UpDrag Sexp Forward Down Moves the current form up/out of the current list, backwards, and down/in to the following list, forwards, keeping the cursor within the sexpr being dragged. ctrl+alt+shift kctrl+alt+shift j Drag Sexp Forward UpDrag Sexp Backward Down Moves the current form up/out of the current list, forwards, and down/in to the preceding list, backwards, keeping the cursor within the sexpr being dragged. ctrl+shift+c Convolute \u00af\\_(\u30c4)_/\u00af ctrl+shift+delete Kill Sexp Forward Deletes the next form in the same enclosing form as the cursor. ctrl+k ctrl+k (win/linux)ctrl+k (mac) Kill Right Delete forward to the end of the current form or the first newline. ctrl+k ctrl+h (win/linux)cmd+backspace (mac) Kill Left Delete backward to the start of the current form or the start of the line. ctrl+alt+backspace Kill Sexp Backward Deletes the previous form in the same enclosing form as the cursor. ctrl+delete Kill List Forward Deletes everything from the cursor to the closing of the current enclosing form. ctrl+backspace Kill List Backward Deletes everything from the cursor to the opening of the current enclosing form. ctrl+alt+shift+delete Splice Killing Forward Delete forward to end of the list, then Splice. ctrl+alt+shift+backspace Splice Killing Backwards Delete backward to the start of the list, then Splice. ctrl+alt+shift+p Wrap Around () Wraps the current form, or selection, with parens. ctrl+alt+shift+s Wrap Around [] Wraps the current form, or selection, with square brackets. ctrl+alt+shift+c Wrap Around {} Wraps the current form, or selection, with curlies. ctrl+alt+shift+q Wrap Around \"\" Wraps the current form, or selection, with double quotes. Inside strings it will quote the quotes. ctrl+alt+rctrl+alt+p/s/c/q/h Rewrap Changes enclosing brackets of the current form to parens/square brackets/curlies/double quotes and set (#{})

      Copy to Clipboard when killing text

      You can have the kill commands always copy the deleted code to the clipboard by setting calva.paredit.killAlsoCutsToClipboard to true. If you want to do this more on-demand, you can kill text by using the selection commands and then Cut once you have the selection.

      clojure-lsp drag fwd/back overlap

      As an experimental feature, the two commands for dragging forms forward and backward have clojure-lsp alternatives. See the clojure-lsp page.

      ","boost":7},{"location":"paredit/#drag-bindings-forwardbackward","title":"Drag bindings forward/backward","text":"

      When dragging forms inside maps and binding boxes, such as with let, for, binding, etcetera, it often makes most sense to drag each binding as a pair. And this is what Calva will do. Like so:

      And like so (wait for it):

      ","boost":7},{"location":"paredit/#about-the-keyboard-shortcuts","title":"About the Keyboard Shortcuts","text":"

      Care has been put in to making the default keybindings somewhat logical, easy to use, and work with most keyboard layouts. Slurp and barf forward are extra accessible to go with the recommendation to learn using these two super handy editing commands.

      You can relax how Paredit's shortcuts replace VS Code built in shortcuts a bit by setting calva.paredit.hijackVSCodeDefaults to false.

      There are some context keys you can utilize to configure keyboard shortcuts with precision. See Customizing Keyboard Shortcuts.

      The Nuclear Option: You can choose to disable all default key bindings by configuring calva.paredit.defaultKeyMap to none. (Then you probably also want to register your own shortcuts for the commands you often use.)

      ","boost":7},{"location":"paredit/#when-clauses-and-vscode-default-bindings","title":"When Clauses and VSCode Default Bindings","text":"

      There are instances where VSCode's built-in command binding defaults are the same as Paredit's, where Paredit's version has less functionality. For example, Calva's Expand Selection and Shrink Selection doesn't support multiple selections (though this may change in the future - see Multicursor section below). In this particular case, adding !editorHasMultipleSelections to the when clause of the binding makes up for this gap by letting the binding fall back to VSCode's native grow/shrink selection.

      For example, here's the JSON version of the keybindings settings demonstrating the above. Note this can also specified in the Keyboard Shortcuts UI:

      {\n  \"key\": \"shift+alt+right\",\n  \"command\": \"paredit.sexpRangeExpansion\",\n  \"when\": \"calva:keybindingsEnabled && editorLangId == clojure && editorTextFocus && paredit:keyMap =~ /original|strict/ && !calva:cursorInComment\"\n}\n

      to

      {\n  \"key\": \"shift+alt+right\",\n  \"command\": \"paredit.sexpRangeExpansion\",\n  \"when\": \"!editorHasMultipleSelections && calva:keybindingsEnabled && editorLangId == clojure && editorTextFocus && paredit:keyMap =~ /original|strict/ && !calva:cursorInComment\"\n}\n

      The point is that when the bindings overlap and default functionality is desired peaceful integration can be achieved with the right when clause. This is left out of Paredit's defaults to respect user preference, and ease of maintenance.

      Happy Editing! \u2764\ufe0f

      ","boost":7},{"location":"paredit/#experimental-feature-multicursor-support","title":"Experimental Feature: Multicursor support","text":"

      There is an ongoing effort to support simultaneous multicursor editing with Paredit. This is an experimental feature and is not enabled by default. To enable it, set calva.paredit.multicursor to true. This feature is still in development and may not work as expected in all cases. Currently, this supports the following categories:

      • Movement
      • Selection (except for Select Current Form - coming soon!)
      • Rewrap
      ","boost":7},{"location":"paredit/#toggling-multicursor-per-command","title":"Toggling Multicursor per command","text":"

      The experimental multicursor-supported commands support an optional command arg - like copy for the kill* commands mentioned above - to control whether multicursor is enabled for that command. This is an alternative to, or supports binding-specific overrides for, calva.paredit.multicursor.

      For example:

      {\n  \"key\": \"ctrl+k\",\n  \"command\": \"paredit.sexpRangeExpansion\",\n  \"when\": \"... your when conditions ...\",\n  \"args\": {\"multicursor\": false}\n}\n
      ","boost":7},{"location":"parinfer/","title":"Calva Parinfer Mode is Reverted","text":"

      Reverted in Calva v2.0.228

      The changes in v2.0.227 seemed to cause problems for some users. Unclear yet if and why. But to not risk causing problems for more users these changes where reverted and Calva v2.0.228 does not contain them. Please consider using v2.0.227 and help find what the problems are about! Please note: Even in v2.0.227 this feature is currently disabled by default.

      Parinfer is a system for editing the structure of LISP text without explicit commands. The structure can be regarded as already being expressed through indentation. With Parinfer you can use your intuition about the structure inferred from the indentation to perform surprisingly many structural edits.

      "},{"location":"parinfer/#quirks","title":"Quirks","text":"

      There are some known quirks, of varying severity, with this feature. Some of them will need to be fixed before we move this feature out of Experimental status.

      For the most times you can always Undo to get back to where the document was fine. You just need to pay some attention and be aware when undo is needed.

      "},{"location":"parinfer/#no-multi-cursor-support","title":"No multi-cursor support","text":"

      The bracket inference will remove all cursors but the first one. So for instance if you edit with multiple cursors and it causes brackets to move, you'll end up with just one cursor and the subsequent edits will not be what you intended. This is particularly important to note when you have cursors that are not in the viewport. In such cases it might be better to turn Parinfer off while you do the edits, fix formatting and such manually and then switch Parinfer on again.

      "},{"location":"parinfer/#wrong-inferences","title":"Wrong inferences","text":"

      For yet unknown reasons an edit such as the following does the wrong thing (the cursor indicated by the vertical bar):

      (foo| (bar)\n      (baz))\n

      backspace =>

      (fo| (bar\n      (baz)))\n

      That is (baz) is slurped. When what should happen is:

      (fo| (bar)\n     (baz))\n
      "},{"location":"parinfer/#lag-causing-errors-when-fast-typing","title":"Lag causing errors when fast typing","text":"

      The way that Calva Parinfer works is that for any edit of the document it first reformats the code around the cursor, then infer brackets. Currently these two steps are not atomic to VS Code, so if you type fast bracket inference might happen on the yet unformatted code, and thus not be correct. You might also see the cursor end up at the wrong position at times.

      "},{"location":"parinfer/#infer-parens","title":"Infer Parens","text":"

      This is no longer available in Calva

      See above about how to try this build anyway, warts and all.

      When you enable Calva's Parinfer it is all about infering brackets from indentation. There are no further Parinfer modes. Calva's auto-formatter will take care of keeping the code correctly indented.

      Enable it with from this setting: calva.fmt.experimental.inferParensAsYouType or from the status bar item.

      "},{"location":"parinfer/#parinfer-status-bar-items","title":"Parinfer Status bar items","text":"

      To the right on the status bar, right before the Paredit status bar item, you will have two items, Parinfer toggle ON/OFF and a health indicator.

      1. Parinfer ON/OFF indicator/button. \u2022() (The dot/circle indicates ON/OFF)
      2. Structure and indentation health indicator. \u2714\ufe0f/\u26a0/\u2298

      When Parinfer is ON, the health indicator will have three states:

      1. \u2714\ufe0f Healthy - meaning both structure and indentation is OK
      2. \u2298 Structure broken - you need to fix the the structure of the code
      3. \u26a0 Bad indentation - meaning that to Parinfer the structure and indentation do not match, _the item is now also a button with which you can fix the indentation.

      Parinfer will be disabled in both the unhealthy states.

      When Parinfer is OFF, only the first two states above are used.

      "},{"location":"parinfer/#some-vs-code-settings-automatically-changed","title":"Some VS Code Settings automatically changed","text":"

      In order for some automatic VS Code behaviour not to interfere with Parinfer the following settings are automatically configured when you toggle Parinfer ON:

          \"[clojure]\": {\n        \"editor.autoClosingBrackets\": \"never\",\n        \"editor.autoClosingOvertype\": \"never\",\n        \"editor.formatOnPaste\": false\n    },\n

      And when you toggle Parinfer OFF:

          \"[clojure]\": {\n        \"editor.autoClosingBrackets\": \"always\",\n        \"editor.autoClosingOvertype\": \"always\",\n        \"editor.formatOnPaste\": true\n    },\n

      It is recommended that you let Calva handle these settings to avoid weird behaviour.

      "},{"location":"parinfer/#no-tab-indenting","title":"No Tab indenting","text":"

      As the tab key is used for formatting the current form in Calva, it is \u201dtaken\u201d. The closest equivalents you have are space and backspace. At least for now. We'll see if we can find out a good way for supporting tab and shift+tab for indent and dedent.

      tab for formatting is of course just a default key binding and you can assign it to something else to get it to do indenting. However, it will not be a very smart indent anyway, there is no Clojure awareness about it. You are hereby adviced to instead use some more spaces.

      "},{"location":"parinfer/#paredit-is-still-there","title":"Paredit is still there","text":"

      In Calva, Parinfer and Paredit are designed to coexist and both be there to let you edit the structure easily and efficiently. Since Paredit commands are always formatted, they leave the code in a state where Parinfer has what it needs to infer bracket placement as you either edit the indentation, or remove/add brackets.

      "},{"location":"parinfer/#disable-the-parinfer-extension","title":"Disable the Parinfer Extension","text":"

      If you want to have Parinfer you are probably best served by Calva's built-in version. It is designed, and will continue to be improved to function well together with Calva's other structural editing and formatting features. It will also probably conflict with the Parinfer Extension.

      "},{"location":"parinfer/#see-also","title":"See also","text":"
      • Paredit
      • Formatting
      "},{"location":"polylith/","title":"How to Use Calva with Polylith","text":"

      Polylith is an architecture for backend projects that maximizes development ergonomics and code reuse.

      When developing a Polylith application you use one REPL for everything. And as such it is a rather vanilla deps.edn project, so there is really not much more to using Calva with Polylith than:

      1. Jack in, selecting the deps.edn project type
      2. Select aliases, most often :dev and :test
      3. Hack away!
      "},{"location":"polylith/#the-realworld-example","title":"The RealWorld Example","text":"

      To make it easy to try Polylith out with Calva, the Polylith RealWorld example implementation has some Calva config to get the server started and Calva connected to its REPL quickly:

      1. Fork the project and open it in VS Code
      2. Jack-in, selecting the Polylith RealWorld Server REPL project type
      3. Wait for the REPL prompt to read clj\ua789dev.server\ua789>
      4. Evaluate (start! 6003)
      5. Hack away!
      "},{"location":"polylith/#try-it-with-a-frontend","title":"Try it with a Frontend","text":"

      A ClojureScript frontend, of course:

      1. Fork the jacekschae/conduit project and open it in VS Code
      2. Edit the api-url definition in events.cljs file to be
        (def api-url \"http://localhost:6003/api\")\n
      3. Jack-in, selecting to start and connect to the :app build
      4. Wait for it to compile and then open http://localhost:3000
      5. Hack away!
      "},{"location":"pprint/","title":"Pretty Printing","text":"

      In Calva, pretty printing is a mode. Prettiness is on by default and all your evaluation results will get that treatment.

      You can also pretty print code on demand

      There is a command Replace Current Form (or Selection) with Pretty Printed Form. See Clojure Formmatting for more on this.

      "},{"location":"pprint/#toggle-it","title":"Toggle it","text":"

      There is a pprint indicator to the right in the status bar which shows the status of the mode. Click the indicator to toggle prettification on and off. There is also a Calva: Toggle Pretty Printing for All Evaluations command.

      Tip: If you have evaluated something time consuming, or that is not idempotent, with pretty printing mistakenly off: toggle it on and evaluate *1.

      "},{"location":"pprint/#configuration","title":"Configuration","text":"

      For most people the defaults will probably work, but Calva pretty printing comes a few knobs you can turn, and they are all available through the calva.prettyPrintingOptions settings. Things you can set are:

      Setting Type Effect enabled boolean So this is a third way you can change this mode \ud83d\ude04 printEngine enum Which printer function that will be used. Default is pprint, more about this setting below printFn object You can configure Calva to use a custom nREPL compatible print function, more below. width number The maximum line length of printed output (or at least the printers will try) maxLength number The maximum number of elements printed in nested nodes, good for evaluating something like (iterate inc 0), which you shouldn't do without setting maxLength. Most printers will indicate truncated lists with ... at the end. maxDepth number The maximum number of levels deep that will get printed. Different printers mark a stop different ways. puget doesn't support it at all.

      See Customizing Calva for some tips on adding settings like these.

      Here's an example of how zprint handles maxDepth (from the Calva implementation of it's client side pretty printing.).

        (pretty-print [[[[[[[[:deeper]]]]]]]] {:max-depth 4})\n  ;; => {:value \"[[[[##]]]]\"}\n
      "},{"location":"pprint/#your-selection-of-prettifiers","title":"Your Selection of Prettifiers","text":"

      Pretty printing can happen on the server (i.e. in the JVM, via nREPL), or on the client (i.e. in node, via VS Code/Calva). Client side always uses zprint. Server side you can choose from these printers:

      Print Engine Client or Server Side Comments calva client The nREPL server will plain print the results, and then Calva will pretty it (using zprint). pprint server Current Calva default. clojure.core/pprint is a bit basic, but it's tried and tested, and doesn't suffer from the issues with the other server side printing options, mentioned below. fipp server puget server Lacks maxDepth option. zprint server A very good option. However, it will need to be configured before Jack-in if you want Calva's help to inject its dependencies. (If you are not using Jack-in, you'll need to supply this dependency yourself.)

      These particular server side functions were chosen because they have pre-configured print-functions in cider-nrepl.

      "},{"location":"pprint/#or-configure-printfn","title":"Or configure printFn","text":"

      If the selection of built-in printEngine support doesn't cut it, you can configure a custom function. This function will need to conform to the requirements of nREPL print functions. The VS Code settings editor will help you configure this one. (This is also a bit experimental, please consider giving feedback about how it works for you if you try it.)

      "},{"location":"pprint/#why-does-server-or-client-side-matter","title":"Why does Server or Client Side Matter?","text":"

      This matters because on the server all pretty printers, except pprint does more than just pretty print the result that would be printed with plain printing. Pretty printing results on the server causes some results to get expanded. This can have huge implications depending on the results and which printer is used. E.g. for Datomic transaction results, you will get the whole database printed. Twice. Depending on the database, you could be so unlucky that nothing gets printed, and instead you will soon have a very hot computer.

      Note: With the help of zprint creator, Kim Kinnear, we have found ways to compensate for this problem. Ways that are not yet implemented, but please stay tuned.

      Then why not always do it client side? It turns out that on the client side there are also things going on. Calva gets the results back as a string and therefore it needs to first be parsed back to EDN, before it can be pretty printed by zprint. And \u2013 here's the catch \u2013 all results are not valid EDN and therefore can't be pretty printed by zprint. Datomic transaction results are one example.

      "},{"location":"pprint/#need-more-configurability","title":"Need More Configurability?","text":"

      The current options are limited, because our time developing Calva is limited. But cider-nrepl really allows for fully configurable pretty printing, so it is within reach. Please feel invited to give us feedback on what you would want to configure for the printing of results. File issues and/or chat us up in #calva in the Clojurians slack.

      "},{"location":"pprint/#troubleshooting","title":"Troubleshooting","text":""},{"location":"pprint/#pprint-is-not-working","title":"pprint is not working","text":"

      If pprint is not working, try a different pprint engine or use Calva's jack-in to make sure the necessary dependencies are loaded in your REPL. If you are starting your REPL without jack-in and want to continue doing so, you can use the command Copy Jack-in Command Line to Clipboard then paste the command somewhere to see what dependencies it injects. You can then add these dependencies to your REPL in whatever way suits your needs.

      Enjoy Prettiful Printing! \u2764\ufe0f

      "},{"location":"quirks/","title":"Quirks","text":"

      Here's a shocker for ya': Calva isn't perfect. \ud83d\ude04

      There are quirks and things that flat out do not work. We'll try to collect info about such things here, providing workarounds when available (or, rather, known to us).

      "},{"location":"quirks/#test-features-not-available-with-clojurescript","title":"Test features not available with ClojureScript","text":"

      Currently cider-nrepl does not provide its test functionality for ClojureScript code. Please consider contributing to fixing that.

      "},{"location":"quirks/#using-with-parinfer","title":"Using with Parinfer","text":"

      See Using with Parinfer

      "},{"location":"quirks/#calva-and-the-vim-extension","title":"Calva and the VIM Extension","text":"

      See Using Calva with the VIM Extension.

      "},{"location":"quirks/#command-not-found-errors-on-jack-in","title":"\u201dCommand not found\u201d Errors on Jack-in","text":"

      Jack-in starts by running a command in a new terminal. You will need the commands used installed on your computer:

      • clojure for tools.deps/deps.edn
      • lein for Leiningen
      • npx for shadow-cljs
      • gradlew for Gradle (in your project)

      Also, in some circumstances VS Code is not spawned from a shell with the environment variables, especially $PATH, which might mean that even though you have the tools installed, they are not found when VS Code/Calva tries to execute them. To fix this you will need to do one of these two things:

      1. Figure out from where VS Code is spawned, and make sure the $PATH there includes the directory with the needed binary.
      2. Start VS Code from a terminal where the $PATH is correctly configured. (Using the code command.)

      See this issue for more clues on this problem.

      "},{"location":"quirks/#strange-linting-errors","title":"Strange linting errors?","text":"

      This is not really a quirk, and most linting errors are not strange when you learn about why they are there. Calva does not do any linting, btw, see also linting.

      "},{"location":"quirks/#consider-uninstalling-these-extensions","title":"Consider uninstalling these extensions","text":"

      Without Calva, many users install other nifty extensions (some of which are old pieces of Calva) that help with this or that problem. It might sometimes work together with Calva, sometimes not. Here's a list of some common extensions you should consider to at least disable:

      • Strict Paredit - Calva Paredit has evolved a lot since that version
      • Calva-fmt/Calva Formatter - Same here, evolution
      • Clojure Warrior - Calva includes it, in a much evolved way
      • Parinfer - This one you can actually keep, at some cost, see Using Calva with Parinfer.
      "},{"location":"re-frame-template/","title":"How to use Calva with the re-frame template","text":"

      The re-frame template creates a shadow-cljs project, making it easy to use with Calva.

      1. npm install
      2. From VS Code, issue the command Calva: Start a Project REPL and Connect (a.k.a Jack-in), ctrl+alt+c ctrl+alt+j.
      3. Calva will auto-detect that this is a shadow-cljs project and ask for which build to compile.
      4. Calva's output window will open and log some progress information.
      5. When prompted for which build to start, select :app.
      6. :app is the only configured build, but the VS Code menu for this is a bit strange so make sure the :app checkbox is really ticked before proceeding.
      7. This will start the app, so in this workflow you don't do the Run application steps outlined below.
      8. When prompted for which build to connect to, select :app.
        • In the View menu of VS Code, you can tell it to show the Terminal view, where you see which command the jack-in process is started with, and it's output. Ctrl+C in this pane will kill your app and free up all resources it has allocated.
      9. When the app is compiled
        1. Open http://localhost:8280 in your browser.
        2. Confirm that it says Hello from re-frame. (Depending on how long the app takes to compile, you might need to reload the page a few times.)
      10. Open the views.cljs file from src/<your-project-name> and issue Calva: Load/Evaluate Current File and its Requires/Dependencies. ctrl+alt+c enter.
        1. Confirm that you are connected by adding evaluating (js/alert \"Hello from Calva\") (alt+enter and ctrl+enter are your friends).
        2. Confirm that Shadow is hot reloading by changing the greeting message.
      "},{"location":"rebl/","title":"How to Use Calva and REBL Together","text":"

      REBL is a graphical, interactive tool for browsing Clojure data.

      "},{"location":"rebl/#depsedn","title":"deps.edn","text":"

      Add the following aliases to your deps.edn file. Use the deps.edn file in the ~/.clojure directory to enable alias reuse across multiple projects. This is the configuration for REBL on openjdk 12. Check out the REBL github page for more info.

      ;; REBL Base\n:rebl\n{:extra-deps {org.clojure/core.async {:mvn/version \"0.4.490\"}\n                ;; deps for file datafication (0.9.149 or later)\n                org.clojure/data.csv {:mvn/version \"0.1.4\"}\n                org.clojure/data.json {:mvn/version \"0.2.3\"}\n                org.yaml/snakeyaml {:mvn/version \"1.23\"}\n                com.cognitect/rebl\n                ;; adjust to match your install location\n                {:local/root \"/Users/ozimos/REBL/latest/REBL.jar\"}}}\n\n;; REBL 12\n:rebl-12\n{:extra-deps {org.openjfx/javafx-fxml     {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-controls {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-graphics {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-media    {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-swing    {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-base     {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-web      {:mvn/version \"12.0.1\"}}}\n\n;; nREBL\n:nrebl {:extra-deps {rickmoynihan/nrebl.middleware {:mvn/version \"0.2.0\"}}\n            :main-opts [\"-e\" \"((requiring-resolve,'cognitect.rebl/ui))\" \"-m\" \"nrepl.cmdline\" \"--middleware\" \"[nrebl.middleware/wrap-nrebl]\" \"-I\"]}\n

      Create a Calva custom connect sequence for your VSCode editor. (Read Custom REPL Connect Sequences if you haven't.) Add the following to your vscode settings.json:

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Rebl Connect\",\n            \"projectType\": \"deps.edn\",\n            \"menuSelections\": {\n                \"cljAliases\": [\n                    \"rebl\",\n                    \"rebl-12\",\n                    \"nrebl\"\n                ]\n            }\n        }\n    ]\n}\n
      "},{"location":"rebl/#leiningen","title":"Leiningen","text":"

      Add rebl profiles to your user-wide profiles so that they will be available for all your projects. Here's a sample user profile (located at ~/.lein/profiles.clj on mac):

      {:user {:plugins [[lein-ancient \"0.6.15\"]]}\n\n ;; REBL Base\n :rebl {:resource-paths [\"/Users/ozimos/REBL/latest/REBL.jar\"]\n        :dependencies [[org.clojure/core.async \"0.4.490\"]\n                       [org.clojure/data.csv \"0.1.4\"]\n                       [org.clojure/data.json \"0.2.3\"]\n                       [cljfmt \"0.6.4\"]\n                       [org.yaml/snakeyaml \"1.23\"]]}\n\n ;; REBL 12 for JDK 12.0.1. Swap out for your JDK version\n :rebl-12 {:dependencies [[org.openjfx/javafx-fxml  \"12.0.1\"]\n                          [org.openjfx/javafx-controls \"12.0.1\"]\n                          [org.openjfx/javafx-graphics \"12.0.1\"]\n                          [org.openjfx/javafx-media \"12.0.1\"]\n                          [org.openjfx/javafx-swing \"12.0.1\"]\n                          [org.openjfx/javafx-base  \"12.0.1\"]\n                          [org.openjfx/javafx-web \"12.0.1\"]]}\n\n;; NREBL https://github.com/RickMoynihan/nrebl.middleware\n :nrebl {:repl-options {:nrepl-middleware [nrebl.middleware/wrap-nrebl]}\n        :dependencies [[rickmoynihan/nrebl.middleware \"0.3.1\"]]}}\n
      More info here

      Create a Calva custom connect sequence for your VSCode editor. (Read Custom REPL Connect Sequences if you haven't.) Add the following to your vscode settings.json:

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Lein REBL\",\n            \"projectType\": \"Leiningen\",\n            \"menuSelections\": {\n                \"leinProfiles\": [\"rebl\", \"rebl-12\", \":nrebl\"]\n            },\n            \"afterCLJReplJackInCode\": \"((requiring-resolve 'cognitect.rebl/ui))\"\n        }\n    ]\n}\n
      "},{"location":"rebl/#shadow-cljs-tbd","title":"shadow-cljs (TBD)","text":"

      TBD. If you know how to do it, please update this page.

      "},{"location":"refactoring/","title":"Refactoring","text":"

      There are two \u201dflavours\u201d to refactoring support. Some (just a few) refactorings are made available as Quick Fix suggestions (the light bulb), the rest are regular commands in the clojure-lsp Refactoring category.

      You can enable or disable the Quick Fix suggestion lightbulb using the VS Code setting editor.lightbulb.enabled.

      The refactoring commands do not have default keyboard shortcuts. You find them all by typing \u201dclojure-lsp Refactor\u201d in the Command Palette.

      "},{"location":"refactoring/#commands","title":"Commands","text":"Command Title Command Key Description Clean NS Form clojureLsp.refactor.cleanNs Add Missing Require clojureLsp.refactor.addMissingLibspec Extract to New Function clojureLsp.refactor.extractFunction Cycle/Toggle Privacy clojureLsp.refactor.cyclePrivacy Inline Symbol clojureLsp.refactor.inlineSymbol Introduce let clojureLsp.refactor.introduceLet Creates a new let box with the binding. Follow up with \u201dExpand let\u201d to move it upwards. Expand Let clojureLsp.refactor.expandLet Move to Previous let Box clojureLsp.refactor.moveToLet Thread First clojureLsp.refactor.threadFirst Thread First All clojureLsp.refactor.threadFirstAll Thread Last clojureLsp.refactor.threadLast Thread Last All clojureLsp.refactor.threadLastAll Unwind All clojureLsp.refactor.unwindAll Unwind Thread clojureLsp.refactor.unwindThread

      Formatting

      The way that some of the refactorings are applied to the document, makes it difficult for Calva to format the results. So, sometimes you'll need to navigate the cursor to the enclosing form and hit tab to tidy up the formatting after a refactoring. See also Formatting.

      "},{"location":"refactoring/#thanks-to-clojure-lsp","title":"Thanks to clojure-lsp","text":"

      Most of Calva's refactoring support is sourced directly from clojure-lsp. This also means that most often, if you find issues with refactoring, or have suggestions about it, the clojure-lsp repo is where to direct your reporting.

      "},{"location":"remote-development/","title":"Using Calva with Remote Development","text":"

      VS Code Remote Development is a new feature in version 1.35 of VS Code that allows a developer to use a container, remote machine, or the Windows Subsystem for Linux (WSL) as a full-featured development environment.

      I would recommend reading the introductory blog post and watching the videos. I find the feature extremely exciting and wish more IDEs would implement something like it.

      From a Clojure perspective it allows you to have VS Code installed on your Java-less, Clojure-less hardware and still use it to develop Clojure through it.

      "},{"location":"remote-development/#a-use-case","title":"A use-case","text":"
      • For some reason your physical computer has to be running Windows (organizational rules etc.)
      • Your deployment environment is Linux
      • You want to edit files in an editor running on your physical computer
      • Most Clojure tooling is made with *nix first in mind and there are incompatibilities with Windows
      "},{"location":"remote-development/#how-to","title":"How to","text":"

      Run Remote-Containers: Add Development Container Configuration Files... and pick a suitable Java base image. Then:

      "},{"location":"remote-development/#modify-dockerfile-to-install-clojure-cli-and-optionally-lein","title":"Modify Dockerfile to install Clojure CLI (and optionally lein)","text":"

      Add:

      # ...\n\n# Install Clojure - see https://github.com/Quantisan/docker-clojure/blob/master/target/openjdk-14-slim-buster/tools-deps/Dockerfile\nENV CLOJURE_VERSION=1.10.1.619\nWORKDIR /tmp\nRUN \\\napt-get update && \\\napt-get install -y curl make rlwrap wget && \\\nrm -rf /var/lib/apt/lists/* && \\\nwget https://download.clojure.org/install/linux-install-$CLOJURE_VERSION.sh && \\\nsha256sum linux-install-$CLOJURE_VERSION.sh && \\\necho \"28b1652686426cdf856f83551b8ca01ff949b03bc9a533d270204d6511a8ca9d *linux-install-$CLOJURE_VERSION.sh\" | sha256sum -c - && \\\nchmod +x linux-install-$CLOJURE_VERSION.sh && \\\n./linux-install-$CLOJURE_VERSION.sh\nRUN \\\nsu vscode -c \"clojure -e '(clojure-version)'\" && \\\nrm ./linux-install-$CLOJURE_VERSION.sh\n\n# Install Lein\nRUN \\\nwget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein -O /bin/lein && \\\nchmod uog+x /bin/lein\nRUN su vscode -c \"/bin/lein\"\n\n# Cleanup\nRUN apt-get purge -y --auto-remove curl wget\n\n# ...\n
      "},{"location":"remote-development/#modify-devcontainerjson","title":"Modify devcontainer.json","text":"

      Add Calva and, optionally, forward some ports to the host::

      \"extensions\": [\"betterthantomorrow.calva\"],\n\"forwardPorts\": [8088, 52162], // example: your webapp, your nREPL\n
      "},{"location":"remote-development/#build-and-start","title":"Build and start","text":"

      Run Remote-Containers: Rebuild and Reopen in container

      "},{"location":"remote-development/#wsl","title":"WSL","text":"

      See Using Calva with WSL

      "},{"location":"repl-window/","title":"The REPL Window/File","text":"

      The Calva REPL Window is actually a regular file with some extra treatment from Calva, like displaying a prompt, offering evaluation history recall and generally \u201cfollowing\u201d the current namespace. This file is created and opened when Calva is connected to a REPL. You can use it for experimental code (though there are also Rich Comments and Fiddle Files for this).

      In ClojureScript projects, the window will be associated with the cljs REPL once it is connected. It will then look something like this:

      The first prompt is from when the clj REPL is connected, and the second from cljs. The first part of the prompt tells you which REPL type the window is currently connected to.

      "},{"location":"repl-window/#using-the-repl-window-for-output","title":"Using the REPL Window for output","text":"

      By default the REPL Window doubles as the place where Calva sends output like stdout/stderr and other messages. See Calva Output for more about this and how to change this behaviour.

      "},{"location":"repl-window/#finding-the-repl-window","title":"Finding the REPL Window","text":"

      If you quickly want to open and/or switch to the REPL Window there is the command Calva: Show/Open REPL Window, ctrl+alt+o r.

      To sync the REPL window namespace with the current file before switching, use the Switch Namespace of the REPL Window to Current Namespace command, ctrl+alt+c alt+n.

      "},{"location":"repl-window/#find-the-file-for-the-current-repl-window-namespace","title":"Find the File for the Current REPL Window Namespace","text":"

      When you are editing things in the REPL window, and want to open the file that defines its current namespace, use the Show File for the Current REPL Window Namespace command, ctrl+alt+o r.

      Note

      This also works for Clojure core and library namespaces.

      "},{"location":"repl-window/#evaluating-code","title":"Evaluating Code","text":"

      The window will be automatically associated with the REPL and the namespace of any project Clojure/ClojureScript file you evaluate code in. So for instance if you evaluate this code in a clj file with the namespace fresh-reagent.handler:

      (def mount-target\n  [:div#app\n   [:h2 \"Welcome to fresh-reagent\"]\n   [:p \"please wait while Figwheel is waking up ...\"]\n   [:p \"(Check the js console for hints if nothing exciting happens.)\"]])\n

      If the REPL Window is the configured destination for evaluation results, the defined var will be printed there. Otherwise, it will be printed to the destination you've configured. In either case, the REPL window will print a new prompt reflecting the current REPL connection and namespace:

      If you then switch to the output window (ctrl+alt+o r), and enter this at the prompt:

      mount-target\n

      then evaluate it using alt+enter, you'll get this:

      ... because the namespace \u201dfollowed\u201d the first evaluation in the REPL window.

      "},{"location":"repl-window/#repl-history","title":"REPL History","text":"

      Recently evaluated forms in the REPL file are persisted and can easily be shown again for modifying and re-evaluating.

      "},{"location":"repl-window/#navigate-repl-history","title":"Navigate REPL History","text":"

      You can navigate up and down the history of evaluated forms in the REPL file by pressing alt+up and alt+down, provided your cursor is at the end of the last form after the prompt. If the cursor is not at the end of the last form, then alt+up and alt+down will do whatever they are mapped to, which is by default \"Move Line Up\" and \"Move Line Down,\" respectively.

      If you have typed some text after the prompt before you start traversing up the history, this text will be preserved and will display when you traverse back down the history. If you modify some text in the history while traversing, the modification will be saved at that location in history.

      "},{"location":"repl-window/#clear-repl-history","title":"Clear REPL History","text":"

      You can clear the repl history by running the command \"Clear REPL History\" from the command palette.

      "},{"location":"repl-window/#stack-traces","title":"Stack Traces","text":"

      When an evaluation produces an error, it will automatically be printed in the REPL Window. If there is a stack trace associated with the error, it can now be printed on demand using the Calva: Print Last Stacktrace to the Output Window command. You can also print the stack trace for any error message printed to the REPL Window via the Codelens button below it.

      For printed stacktraces, when source locations are available (Clojure files), you will be able to navigate to them by pressing ctrl+click (cmd+click on Mac) on the file name. You can also hover over symbols in the stack trace to see the symbol's documentation, and ctrl+click (cmd+click on Mac) the symbol to Peek Definition.

      Output destinations

      If you have configured some other destination for stderr output, the error message will be printed there as well. But it will also be printed to the REPL Window, because the augmented stack traces need this (because reasons).

      "},{"location":"repl-window/#load-current-namespace","title":"Load Current Namespace","text":"

      When navigating namespaces it is easy to forget to first require them and that can be tricky to debug. To help with this, Calva's command Load/Evaluate Current File and its Requires/Dependencies also works in the REPL Window, but there, it acts like Load Current Namespace.

      Suppose you have two files, pez/xxx.clj and pez/yyy.clj, where pez.yyy requires pez.xxx.

      (ns pez.xxx)\n\n(def a :xxx-a)\n\n(def b :xxx-b)\n
      (ns pez.yyy\n  (:require [pez.xxx]))\n\n(def a :yyy-a)\n\n(println \"Hello\" pez.xxx/a)\n

      Then, with a freshly jacked-in REPL, you evaluate (ns pez.yyy) and want to work with the vars defined there, Clojure will complain. But if you Load/Evaluate Current File and its Requires/Dependencies, it will start working. Something like so:

      Note

      This currently suffers from a limitation in Calva where it won't reload dependencies, so you will sometimes have to do this \u201dmanually\u201d anyways (by opening the files and loading them yourself). See Calva issue #907

      "},{"location":"repl-window/#peek-current-namespace","title":"Peek Current Namespace","text":"

      A somewhat hidden feature: You can peek, see documentation for, and navigate to a namespace by hovering on the namespace symbol in one of the REPL Window prompts (just like you would if it was not in the prompt \ud83d\ude04).

      "},{"location":"repl-window/#paredit-enabled","title":"Paredit Enabled","text":"

      The REPL Window is mostly a regular Calva Clojure/ClojureScript file, which makes everything that works in a regular file work in this file, including Paredit. This makes it easy to navigate the input and output there. For instance, to select the last evaluation results, you can press ctrl+w (shift+alt+right on Windows and Linux):

      "},{"location":"repl-window/#debugger-enabled","title":"Debugger Enabled","text":"

      The output window is mostly a regular... (you get it), which means you also have the Calva debugger at your command at the REPL prompt (only for clj sessions, for now). So instead of evaluating a function definition using alt+enter, you can evaluate it and instrument it for debugging using ctrl+alt+c i, and then call the function.

      "},{"location":"repl-window/#it-is-ephemeral","title":"It is Ephemeral","text":"

      The contents of the output/REPL window is written to a file named output.repl in the .calva/output-window directory of your project. The file is recreated every new session, so you should copy or save anything you want to preserve between sessions.

      You probably want to add .calva/output-window/ to your .<something>ignore files. (There are some more files in that directory that you shouldn't keep under source control.)

      "},{"location":"repl-window/#choose-clj-or-cljs-repl-connection","title":"Choose CLJ or CLJS REPL Connection","text":"

      In full-stack projects, you will probably use the window as a REPL for both clj and cljs. You can toggle which REPL the window is connected to by using the command Calva: Toggle REPL Connection for CLJC files. There is also a button for this in the status bar:

      "},{"location":"repl-window/#known-quirks-and-caveats","title":"Known Quirks and Caveats","text":"

      Due to limitations in the VS Code API it is hard for Calva to know if the REPL file is open, and if it was opened more than once. Therefore, we suggest you make it a habit to leave this window open, or even pinned. And if it is open in several tabs, expect evaluation printouts to be a bit unpredictable.

      If you save the REPL file (which most often does not make much sense, but anyway) you will sometimes be presented with a message about VS Code being confused about the file contents being out of sync. Just choose to Overwrite the currently saved version and you should be fine.

      "},{"location":"reveal/","title":"How to use Calva and Reveal together","text":"

      Reveal is a \"Read Eval Visualize Loop for Clojure\". This page describes how to use Reveal in your development setup based on Calva.

      Note

      See https://vlaaad.github.io/reveal for the latest version and use that wherever this page says <version>.

      "},{"location":"reveal/#when-using-toolsdeps","title":"When using tools.deps","text":"

      You can go for the nrepl middleware or just add the dependency.

      Please see the Calva test-data project minimal-reveal for an example.

      "},{"location":"reveal/#middleware","title":"Middleware","text":"

      This will make Reveal to start together with your project.

      Note

      This will make all Calva evaluations go to Reveal. Too chatty for you? Take the dependencies only approach.

      Add this alias deps.edn:

      :aliases\n{:reveal-nrepl-middleware\n    {:extra-deps {vlaaad/reveal {:mvn/version \"<version>\"}}\n     :main-opts  [\"-m\" \"nrepl.cmdline\"\n                  \"--middleware\" \"[vlaaad.reveal.nrepl/middleware,cider.nrepl/cider-middleware]\"]}}\n

      And then jack-in choosing the deps.edn option and then pick the :reveal-nrepl-middleware alias.

      "},{"location":"reveal/#dependencies-only","title":"Dependencies only","text":"

      If you don't want to use the nrepl-middleware you can configure just the dependency and then start Reveal yourself.

      The alias:

      :reveal-dep-only\n  {:extra-deps {vlaaad/reveal {:mvn/version \"<version>\"}}}\n

      A custom REPL command for starting Reveal in your project:

          \"calva.customREPLCommandSnippets\": [\n        ...\n        {\n            \"name\": \"Start Reveal Tapper\",\n            \"snippet\": \"(require '[vlaaad.reveal :as reveal])(add-tap (reveal/ui))\",\n            \"key\": \"sr\"\n        },\n        ...\n    ]\n

      See Custom REPL Command for how to configure more commands, and bind shortcuts to them, to make Reveal integration nice for you.

      "},{"location":"reveal/#when-using-leiningen","title":"When using Leiningen","text":"

      In your project.clj, add a profile named \"reveal\":

      :profiles {:reveal {:dependencies [[vlaaad/reveal \"<version>\"]]\n                    :repl-options {:nrepl-middleware [vlaaad.reveal.nrepl/middleware]}}}\n

      Now when you jack-in using Calva, you enable this profile and Reveal will be started automatically. Please note that Reveal requires Java 8 or higher, and uses JavaFX. Depending on your setup, you may need to make sure it is available.

      "},{"location":"reveal/#tips-about-font-size","title":"Tips about font size","text":"

      If you find the font to small you can add a :jvm-opts key to make it a little bigger:

      :aliases\n{:reveal\n    {:extra-deps {vlaaad/reveal {:mvn/version \"<version>\"}}\n     :jvm-opts   [\"-Dvlaaad.reveal.prefs={:font-size,17}\"]\n     :main-opts  [\"-m\" \"nrepl.cmdline\"\n                  \"--middleware\" \"[vlaaad.reveal.nrepl/middleware,cider.nrepl/cider-middleware]\"]}}\n
      "},{"location":"reveal/#using-java-11","title":"Using Java > 11?","text":"

      Reveal needs some reflective access to internal classes that has since Java 11 been restricted. You can relax this and get things working via JVM options. Tuck this into your reveal alias:

      :jvm-opts [\"--add-opens\" \"javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED\"]\n

      (If you are using the font size tips, just add the options into the :jvm-opts vector.)

      See https://github.com/vlaaad/reveal/issues/1 for some more context around this issue.

      "},{"location":"rich-comments/","title":"Rich Comments Support","text":"

      Why bother with Rich comments? Read on. Consider watching this Youtube video for a demo of the workflow using the (in?)famous FizzBuzz problem as an example.

      ","boost":5},{"location":"rich-comments/#things-in-comment-are-not-evaluated","title":"Things in comment are not evaluated","text":"

      The Clojure comment macro is defined like so:

      (defmacro comment\n  \"Ignores body, yields nil\"\n  {:added \"1.0\"}\n  [& body])\n

      It has no forms in its body and will therefore always (as long as the Clojure Reader can read it) evaluate to nil. That is: nothing in the (comment ...) form will get evaluated when the file is loaded.

      This makes it a very good \u201dplace\u201d where you can develop code, experiment with code, and keep example code. Since you will be able to load/evaluate the current file without worrying that the code in the comment form will get evaluated. This also holds true when using tools that hot-reload the code on save, such as Figwheel, shadow-cljs and Krell.

      To develop or refine a function you might:

      1. Open up a (comment ...) form
      2. Inside this form, type a first, super simple, version (or refinement) of your function and evaluate it
      3. Inside the same comment form, type some code to test your function and evaluate that
        • Or type and evaluate some code you might need for your function
      4. Repeat from 2., until the function does what you want it to do
      5. Move the function definition out of the comment form
      6. Clean up the comment form to keep some of the test code as example use, or \u201ddesign decision log\u201d for the function.

      Note

      Using (comment ...) forms for developing code is very common among Clojure coders. Rich Hickey is known for using it, which is why they are called Rich comments to begin with (even if it also is a very rich experience).

      ","boost":5},{"location":"rich-comments/#calva-encourages-rich-comments","title":"Calva encourages Rich comments","text":"

      Calva has several features to facilitate the Rich comments workflow, e.g.

      1. A command that helps you create a new Rich comment form quickly: Calva: Add Rich Comment, ctrl+alt+r c
      2. A snippet for creating Rich comment form quickly. Typing (rcf, will make it appear.
      3. Special Syntax highlight. By default comment forms are rendered in italics
      4. Special top-level form context
      5. Special formatting

      Note that the command and snippet for creating Rich comments add the keyword :rcf right before the closing paren. This makes the closing paren stay and not fold when you format the code. The special formatting (see below) will treat this and also any ignored (with #_) form at the end of the form specially.

      ","boost":5},{"location":"rich-comments/#comment-is-top-level","title":"comment is top-level","text":"

      To make it easy to evaluate forms in (comment ...) forms, they create a new top-level context. Instead of you having to place the cursor with precision before evaluating the current form, you can have the cursor anywhere within a comment enclosed form and Evaluate Top-Level Form.

      This carries over to all commands in Calva which deal with the top level form. Including custom command snippets.

      ","boost":5},{"location":"rich-comments/#special-formatting","title":"Special formatting","text":"

      To invite a Rich comments workflow, the Calva command Format Current Form will not fold the closing bracket of the (comment ...) form. Instead it will place this bracket on a line of its own (or keep it there).

      (comment\n  )\n

      With the cursor somewhere directly inside the comment form (denoted with a |):

      (comment\n  (def foo\n:foo)|)\n

      tab

      (comment\n  (def foo\n    :foo)\n  |)\n

      !!! Note \"Only for the current comment form\u201d The special formatting only applies in the current comment form. When outside it, formatting tucks the closing paren in again. That's why fold when done, below works like it does. This also applies to VS Code commands like Format Document, or when you have Format On Save enabled. There are several reasons for this, and one is that there is no cljfmt config for it and leaving the closing comment un-tucked might give you troubles with CI pipelines that enforce some cljfmt config be followed. (Another reason is that it would be pretty hard to do on the whole document.)

      ","boost":5},{"location":"rich-comments/#special-formatting-disabled-for-trailing-rcf","title":"Special formatting disabled for trailing :rcf","text":"

      If the Rich comment ends with :rcf (or an ignored form), the special formatting doesn't happen. So if you have:

      (comment\n  (def foo\n:foo)\n  |\n  :rcf)\n

      And hit tab, you will get:

      (comment\n  (def foo\n    :foo)\n  |\n  :rcf)\n
      ","boost":5},{"location":"rich-comments/#thinking-space-is-kept","title":"Thinking space is kept","text":"

      The formatter will not remove newlines between the cursor and the closing bracket. So if you have entered a few lines to get \u201dthinking\u201d room:

      (comment\n  (def foo\n:foo)\n\n|\n\n)\n

      tab

      (comment\n  (def foo\n    :foo)\n\n  |\n\n  )\n
      ","boost":5},{"location":"rich-comments/#fold-when-done","title":"Fold when done","text":"

      To fold the trailing paren automatically, place the cursor immediately outside (before or after) the form:

      (comment\n  (def foo\n:foo))|\n

      tab

      (comment\n  (def foo\n    :foo))|\n
      ","boost":5},{"location":"rich-comments/#enabled-by-default","title":"Enabled by default","text":"

      You can disable this behavior with the setting: calva.fmt.keepCommentTrailParenOnOwnLine.

      ","boost":5},{"location":"rich-comments/#only-for-the-current-form","title":"Only for the Current Form","text":"

      Note

      This treatment only applies to formatting of the current form. With fold when done as an exception.

      ","boost":5},{"location":"shadow-cljs/","title":"shadow-cljs","text":"

      Calva supports most any JVM hosted ClojureScript environment (and some others, including SCI based, too), but shadow-cljs gets some special treatment to try make it extra convenient to use.

      With many shadow-cljs projects, Calva's connect project type shadow-cljs, is the right choice. Projects that use Leiningen or deps.edn can be used both with the Leiningen/deps.edn and shadow-cljs type, depending on configuration see below for more on this.

      ","boost":7},{"location":"shadow-cljs/#shadow-cljs-browser-quickstart","title":"shadow-cljs - browser quickstart","text":"

      Here's how you start a shadow-cljs ClojureScript REPL and connect Calva with the shadow-cljs - browser quickstart example project:

      Prep:

      1. Clone the project to your machine and open its root folder in VS Code.
      2. Open a terminal and run npm install

      Connect Calva:

      1. Run the command Calva: Start a Project REPL and Connect (a.k.a. Jack-in)
      2. Select project type shadow-cljs
      3. Select to start the build :app
      4. Select to connect to the build :app
      5. Wait for the build to complete
      6. Open http://localhost:8020/ in the browser
      7. Open browser.cljs file and load it in the REPL: Calva: Load/Evaluate Current File and Dependencies

      Now you can should be able to evaluate forms, e.g.:

      • The current form or selection with ctrl+enter, or
      • Top-level forms with alt/option+enter.

      (See Code Evaluation)

      ","boost":7},{"location":"shadow-cljs/#shadow-cljs-in-full-stack-projects","title":"shadow-cljs in full stack projects","text":"

      shadow-cljs is a bit special in regards to Calva REPL connection. Mainly because you can start shadow-cljs and it's nREPL server in two ways:

      1. Using the shadow-cljs npm executable
      2. Via the Clojure REPL in your Leiningen or deps.edn project

      These options show up as project types when connecting or jacking in:

      1. Project type: shadow-cljs
      2. Project type: deps.edn + shadow-cljs or Leiningen + shadow-cljs

      The technical difference here is wether you let shadow-cljs start clojure/Leiningen (the first option) or if you let Calva do it (the second option). If you let Calva do it, Calva will then start the shadow-cljs watcher from the Clojure process. From a usage perspective the two approaches will result in different channeling of shadow-cljs output, e.g. test runner results. With the first option (the shadow-cljs project type), shadow-cljs output will be channeled to the Jack-in terminal. With the deps.edn/Leiningen option, that output will be channeled to the Output/REPL window.

      See shadow-cljs + Clojure with Calva: The basics for some more discussion on how the REPL connection works.

      shadow-cljs and clojure aliases

      The shadow-cljs project type will not prompt you for any aliases found in the deps.edn file. Usually you should provide such aliases in shadow-cljs.edn like :deps {:aliases [...]}. If, for whatever reason you can't provide the aliases that way, you can configure a Custom REPL Connect Sequence and provide the aliases as menuSelections -> cljAliases.

      Leiningen + shadow-cljs middleware issue

      Please note that for Leiningen, the command line dependency injection of the shadow-cljs nrepl middleware doesn't work. You need to add it to your project.clj:

      :repl-options {:nrepl-middleware [shadow.cljs.devtools.server.nrepl/middleware]}\n
      ","boost":7},{"location":"shadow-cljs/#see-also","title":"See also:","text":"
      • Connect the REPL
      • Custom REPL Connect Sequences
      • shadow-cljs + Clojure with Calva: The basics
      ","boost":7},{"location":"sponsors/","title":"Calva Sponsors","text":"

      Calva is open source and free to use. It is actively maintained during our free time, and it keeps improving. You can contribute in many different ways, one of which is sponsoring. You can sponsor Calva by directly sponsoring any of us.

      If you are working at a company which benefits from Calva's existence and continued development, please consider sponsoring at the Calva Gold Sponsor tier.

      Please see this statement from Cognitect about the importance of supporting open source developers.

      ","boost":7},{"location":"sponsors/#patrons","title":"Patrons","text":"The right kind of different","boost":7},{"location":"sponsors/#gold-sponsors","title":"Gold Sponsors","text":"Scale your growth on mobile MAKE. DO. SHIP.","boost":7},{"location":"sponsors/#silver-sponsors","title":"Silver Sponsors","text":"","boost":7},{"location":"sponsors/#clojurists-together","title":"Clojurists Together","text":"

      Significant additions to Calva have been made possible by funding from Clojurists Together. And this has often been transformational for the whole project. Calva would not be where it is today without Clojurists Together.

      ","boost":7},{"location":"sponsors/#our-sponsoring-profiles","title":"Our Sponsoring Profiles","text":"

      These are the sponsoring profiles for the active maintainers of Calva (a.k.a. The Calva Team).

      • Peter Str\u00f6mberg
      • Brandon Ringe
      • Cora Sutton
      • Lukas Domagala
      • Rayat Rahman
      ","boost":7},{"location":"sponsors/#readme-visibility","title":"README visibility","text":"

      There is also a sponsors section in the README of the Calva project (which means it is also displayed in the VS Code Extension Marketlace).

      ","boost":7},{"location":"syntax-highlighting/","title":"Calva Highlight","text":"

      Calva takes care of syntax highlighting, and also provides some features not available through VS Code's highlighting mechanism. These extras include rainbow parens, sane bracket matching, and comment form dimming/highlighting.

      "},{"location":"syntax-highlighting/#syntax-highlighting","title":"Syntax Highlighting","text":"

      When using Calva, you are also using its TMLanguage grammar (the core mechanism VS Code uses for syntax highlighting).

      Our grammar tokenizes Clojure keywords as constant.keyword.clojure. Since it is pretty uncommon with keyword constants in the programming languages out there, your theme might not have a highlight defined for this scope. Try find a grammar that highlights keywords! If you are very fond of some theme lacking this, you can help it with a setting:

      \"editor.tokenColorCustomizations\": {\n    \"[Default Dark+]\": {\n        \"textMateRules\": [\n            {\n                \"scope\": [\n                    \"constant.keyword.clojure\"\n                ],\n                \"settings\": {\n                    \"foreground\": \"#6fbfff\"\n                }\n            }\n        ]\n    }\n},\n

      Instead of Default Dark+ you should use your theme's name/key. And choose a color you like, of course.

      "},{"location":"syntax-highlighting/#extra-highlighting","title":"Extra Highlighting","text":"

      You are in charge of how brackets and comments are highlighted via the calva.highlight.<setting> settings:

      Setting Meaning Example enableBracketColors Enable rainbow colors true rainbowIndentGuides Enable rainbow indent guides true highlightActiveIndent Highlight the active indent guide true bracketColors Which colors to use [\"#000\", \"#999\"] cycleBracketColors Whether same colors should be reused for deeply nested brackets true misplacedBracketStyle Style of misplaced bracket { \"border\": \"2px solid #c33\" } matchedBracketStyle Style of bracket pair highlight {\"backgroundColor\": \"#E0E0E0\"} ignoredFormStyle Style of #_... form {\"textDecoration\": \"none; opacity: 0.5\"} commentFormStyle Style of (comment ...) form {\"fontStyle\": \"italic\"}

      Calva disables the VS Code built-in indent guides

      The VS Code built-in settings editor.renderIndentGuides and editor.highlightActiveIndent do not have any effect, since the former is switched off by the Clojure Defaults, mentioned above. Use Calva Highlight's rainbowIndentGuides and highlightActiveIndent instead. They are different from the built in ones in that they are independent, meaning you can choose to have active indent highlighted while the guides generally are not rendered (this is the default, even).

      VS Code bracket coloring vs Calva's

      Calva's bracket coloring is more Clojure aware than VS Code's built-in coloring. And also will chime better with Calva's indent guides. If you like to have bracket coloring outside Clojure code, by all means enable it. Calva's bracket coloring will \u201dover paint\u201d in Clojure files, when enabled. These settings work nicely:

      \"calva.highlight.highlightActiveIndent\": true,\n\"editor.bracketPairColorization.enabled\": true,\n

      The calva.highlight.bracketColors setting can be used to harmonize the coloring between VS Code and Calva.

      "},{"location":"tao/","title":"The Tao of Calva","text":"

      Calva, the spirit, gains much of its taste and color from the Cider it is distilled from, and the oak it is matured in. I started to wonder what it is that shapes Calva, the VS Code Clojure Extension. I should know, being the master distiller, right?. Indeed. Poking some at the question, I do find that I have some answers.

      Please read the following to learn what Calva is, and, to some extent, is not, about. Read it to get an idea about which path Calva is following, where we are headed with the project, and how you can contribute to the journey.

      "},{"location":"tao/#why-calva","title":"Why Calva?","text":"

      Calva's raison d\u00b4\u00eatre is to provide Visual Studio Code users with an easy to use and productive environment for Clojure and ClojureScript development. See the Why Calva? page for some evidence that we are succeeding.

      While Calva draws a lot of inspiration from CIDER, Cursive, Fireplace, and other Clojure development environments, it does not try to compete with them. Reading r/Clojure and elsewhere, it is easy to get the impression that the most common question is \"Which editor should I use for Clojure development?\u201d. I think a much more common question is \u201dHow do I use my favorite editor for Clojure development?\u201d. For VS Code users, that is where Calva should be a good choice.

      I also have an ambition to leverage VS Code for easing the path to Clojure. Given that it is the favorite editor for so many developers, it is important to have a good development environment in place on this platform, and to make it as easy to use as we possibly can, while also being productive and something that you want to stick with, once you are hooked on Clojure.

      That said, and therefore: For people who want to start out with Clojure, and do ask about what development environment would make it the most enjoyable, I'd like for Calva to be a really good option, an option so good that Clojurians feel they can recommend it.

      "},{"location":"tao/#design-goals","title":"Design Goals","text":"

      Calva should be easy to start with and productive enough to stick with. It should support Clojure Best Practices, and be pleasant and enjoyable to use. It should also be easy to hack on, and to contribute to. The ClojureScript story keeps getting more important. Calva should contribute to making the development experience with ClojureScript delightful.

      "},{"location":"tao/#easy-to-start-with","title":"Easy to Start With","text":"

      There are reasons as to why VS Code is so popular. Among those, one stands out to me: It is the most approachable code editor out there. There is nothing you need to learn when you start using it. The editor makes it obvious that you can start typing, deleting, cutting, pasting and undoing, without having to figure anything out. Then you learn how to bring up the command palette and get a boost few other environments can provide with such immediacy.

      A language extension for VS Code can leverage this, by recognizing that what's old is old, and that what's new should be as easy as possible to pick up. Coming to a new language, people bring with them a lot of expectations from the languages they are used to. This is also true for the editor support. Syntax highlighting and formatting should just work, as should documentation lookup, linting and other IDE commodities.

      Clojure brings some new concepts to the table. Chief among these: The REPL. It does take some time to grasp it. Calva needs to remove any obstacles it can when it comes to helping the user to reach the REPL, in order to help getting it, and start loving it.

      To help the users to quickly focus on Clojure, we provide a package that is all-inclusive, with few knobs to turn, and with sane defaults for the knobs that still need to be there.

      "},{"location":"tao/#productive-enough-to-stick-with","title":"Productive Enough to Stick With","text":"

      I think VS Code brings inspiration also when it comes to following up its excellent Getting Started story. You do not have to dig very deep under its surface to find that there is a lot more power to be unleashed. VS Code makes it easy to pick up more features as you get ready for it, and each little piece makes you more productive. To me, only Vim beats VS Code in this game.

      Most often there should be no contradiction between Easy to Start With and Productive. Quite the contrary. This story is mainly about being feature complete with the most important tools. As beginners start to pick up the first few features, they should be rewarded with finding more productive tools when they go looking for them. The VS Code way is Calva's way.

      "},{"location":"tao/#pleasant-and-enjoyable","title":"Pleasant and Enjoyable","text":"

      Enjoyable starts with that Calva shouldn't be an experience full of pains. I think Calva is living up to this first bar of enjoyability. The next step is making it delightful!

      Calva has two main assets it can leverage for being delightful to use: Clojure and VS Code:

      Clojure is plain wonderful and also has this totally awesome REPL thing. Wherever we can, Calva should use the REPL to make the editor spark and bring joy to the developer.

      VS Code is a sweet development environment, offering its power in a consistent way across languages. Even if Clojure is very special, most of Calva's features are surfaced in the ways that VS Code encourages. It makes for less to learn for the user, and most often also makes it easier to implement functionality.

      "},{"location":"tao/#support-clojure-best-practices","title":"Support Clojure Best Practices","text":"

      Mainly, I think Stuart Halloway is right about the REPL being best used from inside the files you are editing rather than from the prompt. It doesn't mean that Calva's REPL window should be neglected, but efforts should be directed such that the file editor REPL is our first way to improve the experience. Expect the Calva REPL window to get much less \u201din your face\u201d, than it is today, as the editor REPL gets stronger.

      Halloway also gives me some peace of mind with his reasoning of keeping a spartan setup. Calva does not need to pack every feature imaginable. If we can get the right features in place, in the right way, the mission is accomplished.

      Clojure is data centric. Calva should make it easy to examine data and how our code affects it. Today, this is not good enough when it comes to data structures larger than a few elements.

      Clojure is a LISP. Thus Structural Editing is possible, and TBH, desirable. Calva should support this and encourage it. There is little we can do about Parinfer not playing well with VS Code, but there is Paredit, and Paredit rocks! Calva's Paredit plays in the top league of Paredits, for this reason.

      "},{"location":"tao/#made-from-the-produce-of-the-orchard","title":"Made from the Produce of the Orchard","text":"

      Calva is distilled from CIDER, which in turn is brewed from the products of The Orchard. This makes a lot of Calva's features thin wrappers around cider-nrepl and related middleware. It also should mean that we strive for adding features by thinking \u201dThe Orchard\u201d first. If it lacks what we need, we should assist in providing it there. We need to up this game a bit from where we are today, I think.

      "},{"location":"tao/#leveraging-clojure-lsp","title":"Leveraging clojure-lsp","text":"

      Today, Calva draws a lot of its static power from clojure-lsp. As does a lot of other Clojure tooling out there. The Calva and the clojure-lsp teams work very nicely together, which is something we cherish and should take care to maintain.

      "},{"location":"tao/#project-stewardship","title":"Project Stewardship","text":"

      Here Calva takes inspiration from many Clojure related projects, and perhaps most so from CIDER,shadow-cljs, and clojure-lsp. Bozhidar Batsov, Thomas Heller, and Eric Dallo all lead their projects with clarity and with gusto. You can feel how they really care about their products and their users. They are there. They listen. They respond. And they relentlessly keep improving their products.

      So we are there. We listen. We respond. And we keep trying to improve Calva.

      The Calva team cares deeply about the user experience. That is a major part of why we do this. When implementing a new feature, or changing a feature, Ux is always the first thing on our mind. Personally, to keep that direction I often start with the documentation of the feature. Reading the documentation before implementation reveals a lot about if the Ux design is within the ballpark or not.

      We have limited time on our hands, however, and we must cut some corners. We can't afford to spend very much time in Ux design. Rather we will use our Ux intuition, iterate the documentation quickly, and be fast to get things out. Then we are responsive in tweaking those things, based on user feedback. This also has impact on general quality at times. We only can do so much QA, and it happens that some releases of Calva cause disruptions in people's workflow because of things we haven't thought of, or not found during our testing. Again, we try to be attentive to feedback and quick to fix. Apologies in advance for any inconveniences caused!

      A super major part of our love for Ux is that Calva should be serving its users. That's why we treat feedback as a gift, listen intently, and use the feedback as a major ingredient in shaping Calva.

      Calva develops from user feedback in more direct ways as well. It is quite astonishing how many people have decided to improve on it by hacking it to do some small or big thing differently. That's great! We should make sure Calva is super easy to contribute to.

      There has been quite a lot of work put into improving the development process. Starting to hack on Calva is just a few steps, taking less than three minutes from cloning to running a dev version in the VS Code debugger. We encourage contributions, from the tiniest typo to whole new features. And we are ready to spend time helping people get their contributions integrated.

      However, Calva can't be what everyone wants it to be, that would make it useless. It needs direction and aim. And it is we, the Calva Team, who are the stewards. We need to be in charge of what Calva is about, and what it is not about.

      "},{"location":"tao/#the-road-ahead","title":"The Road Ahead","text":"

      Tying back to Stuart Halloway, I don't think he means that spartan needs to also mean poor. The products he helps to bring to the market tell another story. VS Code and Clojure brought together has the capacity to create something amazingly rich and luxurious. And I want Calva to tap into that potential.

      On the Calva journey we will allow ourselves to change our minds about how things work. Calva is not a library. Its an interface between Clojure and human beings. Human beings can adapt. And they will need to enjoy adapting in order to enjoy Calva. \ud83d\ude04

      By now it should be clear that you can expect Calva to keep evolving, keep being tended and maintained, and keep getting ever more enjoyable to use. Lately we have been improving Calva pretty rapidly. It would be great to keep it up like that, but I think it is good to expect a more humble and sustainable pace.

      Calva is still quite new. A bit like freshly distilled Calvados. It will need time in those oak barrels to develop its full bouquet of flavors. And time is what we will give it. Our time, our creativity, and our passion.

      "},{"location":"test-runner/","title":"Test Runner","text":"

      Calva provides commands that make running your Clojure tests easier.

      Note

      Since the test commands utilize cider-nrepl, they only work with Clojure, not ClojureScript. See this issue for more details.

      "},{"location":"test-runner/#test-commands","title":"Test Commands","text":"Command Shortcut Description Run All Tests ctrl+alt+c shift+t Runs all tests Run Failing Tests ctrl+alt+c ctrl+t Runs the tests that failed Run Tests for Current Namespace ctrl+alt+c t Runs the tests for the current namespace. If not a -test namespace, tests for the current namespace plus its corresponding <current-namespace>-test namespace will be run. Run Current Test ctrl+alt+c ctrl+alt+t Runs the test at the cursor. This includes a defn with a :test in its metadata, a defn defined in a with-test, and a deftest. Toggle between implementation and test - Switches the file between implementation and test, prompts to create a new file if not found."},{"location":"test-runner/#test-on-save","title":"Test on Save","text":"

      You can enable the Calva setting \"Test on Save\" to have tests for the current namespace run on file save.

      "},{"location":"test-runner/#vs-code-test-ui","title":"VS Code Test UI","text":"

      Calva has experimental support for showing test results in VS Code's Test UI. You can enable this support by setting calva.useTestExplorer to true. When you enable this setting, the Testing icon will appear in the Testing tab of VS Code's Activity Bar.

      With this feature enabled you will be able to browse and run tests directly from the Testing tab.

      Please join the #calva channel on the Clojurians Slack if you have any feedback on this new feature.

      "},{"location":"test-runner/#troubleshooting","title":"Troubleshooting","text":""},{"location":"test-runner/#tests-are-not-found","title":"Tests Are Not Found","text":"

      Calva will not load namespaces in the REPL that you haven't loaded. This is so that you can be in control of what is loaded in the REPL. However, it also means that commands like Run All tests actually mean Run All Tests That are Loaded in the REPL, since the test-runner only runs tests that it knows about, i.e. are loaded in the REPL. Some developers choose to make sure all test namespaces are loaded as part of starting their REPL. Others register a custom REPL command for loading test namepaces. (Yet others use test-runners such as Cognitect's test-runner, Kaocha, poly test, or some other that runner allows for tests being run automatically, separate from the REPL used for development.)

      If you have tests in a test directory separate from your source directory, and those tests are not being found by the test runner, make sure the test directory is included in your paths. This will not be the case by default with a tools.deps (deps.edn) project. If your project is a tools.deps project, you can create an alias in your deps.edn file with :extra-paths that includes \"test\" (or the name of your test directory).

      {:aliases {:dev {:extra-paths [\"test\"]}}}\n
      "},{"location":"test-runner/#changes-arent-taking-effect-when-running-tests","title":"Changes Aren't Taking Effect When Running Tests","text":"

      In order for changes in code to take effect, you need to load the file or evaluate the changed code before running a test command. Prior to version 2.0.301, Calva would load the file for you when running some test commands, but that behavior was removed in favor of leaving control to the user, and to avoid a potential issue.

      Having added the above to your deps.edn, when you jack-in, choose the :dev alias and the test directory will be added to your paths, which will allow tests located in the directory to be found by the test runner.

      "},{"location":"test-runner/#toggle-between-implementation-and-test-command-not-working-as-intended","title":"Toggle between implementation and test command not working as intended","text":"

      This feature mostly works with projects that has leiningen style folder structure and makes some assumption about your folder structure and test file names.

      • It assumes that the test files ends with _test prefix.
      • It assumes that your implementation files are in src folder and the test files are in test folder.

      If you are using any non leiningen style folder structure, you may have to add source paths inside .lsp/config.edn.

      "},{"location":"try-first/","title":"Something to Try First (After Connecting)","text":"

      You should start with loading the file you are working with. Do this with Load/Evaluate Current File and its Requires/Dependencies, ctrl+alt+c enter.

      To get a feeling for evaluating code in the editor and get immediate response from the REPL try this:

      • On a new line, type a comment form and put some code inside it:
      (comment\n  (+ (* 2 2)\n      2)\n  (Math/abs -1)\n  (hello \"Calva REPL\")\n  (defn hello [s]\n    (str \"Hello \" s))\n  (range 10)\n  \"I \u2665\ufe0f Clojure\")\n

      Then:

      1. Place the cursor behind the form (* 2 2) and issue the command Calva: Evaluate Current Form, ctrl+enter.
        • You should see the result being displayed inline. Press esc to dismiss it.
      2. Now issue the command Evaluate Current Top Level Form (defun), alt+enter.
        • You should see the whole form (+ (* 2 2) 2) getting highlighted and the result of that expression being displayed inline.
      3. Evaluate each form inside the comment form using the Top Level command.
        • You should see each one of them evaluated.
        • Evaluating the (hello \"Calva REPL\") form before the (defn hello... form should result in an error/exception. A stacktrace is then printed in the output window
        • Try it again after having evaluated the defnform.

      Demo:

      "},{"location":"try-first/#how-does-this-work","title":"How does this work?","text":"

      Calva has this notion about the current form. Issue the Evaluate Current Form command, with the cursor placed in different locations to get a feeling for how the current form is determined.

      There is also a concept about the current top level form. Good for evaluating various defs defn, defthis, defthat. With your cursor placed anywhere inside such a form.

      The Top Level command also works inside (comment ...) forms, treating the comment as creating a new top level context. It is good for in-file code experimentation.

      "},{"location":"try-first/#see-also","title":"See also","text":"
      • Calva Top 10 Commands.
      • Code Evaluation Tips
      "},{"location":"vim/","title":"Calva and the VIM Extension","text":"

      First thing first. The VIM Extension and Calva has a history of friction between them. Less so these days, but you might still encounter some rough edges. Please don't hesitate to reach out to the Calva team, as we might be able to fix things if only we are aware of them.

      "},{"location":"vim/#key-bindings","title":"Key bindings","text":"

      In general Calva's default key bindings are not very VI-ish.

      "},{"location":"vim/#expand-selection-on-mac","title":"Expand selection on Mac","text":"

      On Mac, Calva binds expand selection to ctrl+w. This conflicts with the VIM Extension's default mapping of window splitting shortcuts. You'll need to remap it either with Calva or with the VIM Extension.

      "},{"location":"vim/#the-esc-key","title":"The esc key","text":"

      While showing inline evaluation results, Calva binds the esc key to dismiss the display of inline results. If you want to be able to use the esc key to enter command mode while inline results are showing, you'll need to rebind Calva's command for dismissing the inline results.

      "},{"location":"vim/#remap-calvas-clearinlineresults","title":"Remap Calva's clearInlineResults","text":"
      • Open the Keyboard Shortcuts JSON file from the Command Palette
      • Disable clearInlineResults and remap the command e.g.
      // Place your key bindings in this file to override the defaults\n[\n  {\n    \"key\": \"escape\",\n    \"command\": \"-calva.clearInlineResults\"\n  },\n  {\n    \"key\": \"shift+escape\",\n    \"command\": \"calva.clearInlineResults\",\n    \"when\": \"editorTextFocus && !editorHasMultipleSelections && !editorReadOnly && !hasOtherSuggestions && !suggestWidgetVisible && editorLangId == 'clojure'\"\n  }\n]\n

      If you run into issues, refer to the commands in the default Keyboard Shortcuts JSON file.

      "},{"location":"vim/#remap-vims-insert-mode","title":"Remap Vim's Insert Mode","text":"

      Remap vim's insert mode keybinding to go into command mode by adding the following to your user settings:

      \"vim.insertModeKeyBindings\": [\n    {\n        \"before\": [\"j\", \"k\"],\n        \"after\": [\"<esc>\"]\n    }\n]\n

      (Change before to whatever keybinding you are comfortable with!)

      "},{"location":"vim/#vim-fireplace-ish-keybindings","title":"Vim Fireplace-ish keybindings","text":"

      You can add these keybindings to your init.vim if you are using the VSCode Neovim extension. It is inspired by and tries to emulate the keybindings found in vim-fireplace which is the most popular vim plugin for Clojure.

      nmap cqp :call VSCodeNotify('calva.jackIn')<CR>\nnmap cqq :call VSCodeNotify('calva.disconnect')<CR>\nnmap cpr :call VSCodeNotify('calva.loadFile')<CR>\nnmap cpR :call VSCodeNotify('calva.loadNamespace')<CR>\nnmap cpp :call VSCodeNotify('calva.evaluateSelection')<CR>\nnmap cqc :call VSCodeNotify('calva.evalCurrentFormInREPLWindow')<CR>\n

      Unfortunately these key combinations will not work in the normal VIM extension as c is an operator key and cannot be remapped. This is a call for someone to share their VIM re-mappings.

      "},{"location":"when-clauses/","title":"Calva When Clause Contexts","text":"

      When clause contexts is a powerful customization mechanism in VS Code. The most common use for end users is with keyboard shortcut bindings. Extensions can provide their own. The following contexts are available with Calva:

      • calva:keybindingsEnabled: a master switch that you find in the settings
      • paredit:keyMap: strict, original, or none from the corresponding Calva setting (see Paredit)
      • calva:connected: true when Calva is connected to a REPL (there is also calva:connecting || calva:launching)
      • calva:outputWindowActive: true when the Output/REPL window has input focus
      • calva:replHistoryCommandsActive: true when the cursor is in the Output/REPL window at the top level after the last prompt
      • calva:replWindowSubmitOnEnter: true when the cursor is adjacent after the last top level form in the Output/REPL window
      • calva:cursorInString: true when the cursor/caret is in a string or a regexp
      • calva:cursorInComment: true when the cursor is in, or adjacent to a line comment
      • calva:cursorBeforeComment: true when the cursor is adjacent before a line comment
      • calva:cursorAfterComment: true when the cursor is adjacent after a line comment
      • calva:cursorAtStartOfLine: true when the cursor is at the start of a line including any leading whitespace
      • calva:cursorAtEndOfLine: true when the cursor is at the end of a line including any trailing whitespace
      "},{"location":"why-calva/","title":"Why Calva?","text":"

      The main reason you would choose Calva for your Clojure and/or ClojureScript coding is that you want to use Visual Studio Code. Calva provides VS Code users with a comprehensive set of features to keep you productive and make it easy to follow Clojure coding best practices. This also means that if your choice of editor is not made yet, we think you should give VS Code and Calva a try.

      While Calva is a good choice for professional and experienced Clojure developers, great care has been taken in making Calva a really good choice for beginners of Clojure as well.

      We who make Calva are actively stewarding, maintaining, documenting and supporting it. We are also very active Clojure (and Calva) users, participating in the community. Clojure is dear to us, a lot because it keeps programming fun and rewarding.

      Calva has very happy users! Check out the Programming Languages section on the Visual Studio Code Marketplace, sorted by rating:

      Recently there was a thread over at ClojureVerse, asking about how Calva Compares to Emacs with CIDER. It is well worth reading. We would like to highlight the answer by Nick Cernis, which focuses on Calva. We'll even quote parts of it. \ud83d\ude0d

      "},{"location":"why-calva/#nick-cernis-on-clojureverse","title":"Nick Cernis on ClojureVerse","text":"

      My advice to anyone starting their Clojure journey who is unsure about what editor to use:

      • Pick something today and start writing Clojure.
      • Probably pick an editor you are familiar with already.
      • If you\u2019re not familiar with any editor yet or you don\u2019t have a strong allegiance to one, choose VS Code and Calva.
      • Switch to something else only if you encounter persistent annoyances that you can\u2019t remove with plugins, code/config changes, help from the community, or more sleep.

      I now use VS Code with Calva every day but went through a long journey trying almost every other editor and plugin combo first. I switched from Emacs to VS Code, which might make my perspective different to others here.

      \u2026

      I started with the jaded assumption that VS Code was probably bad because it's built by committee at Microsoft on a web-tech based Electron stack, only to find that it succeeds in embodying the spirit of a \u201chacker's editor\u201d more than even Emacs does in many ways:

      \u2026

      On the benefits of Calva:

      • Of all the amazing Clojure community projects, Calva seems most likely to encourage new users to try Clojure and ClojureScript. A lot of developers use VS Code. It\u2019s been tricky to convince frontend developer friends to try ClojureScript, but at least they don\u2019t have the excuse that they\u2019ll need to switch editors to even try it now. I think as a community we should try to support the projects that encourage Clojure\u2019s adoption and ease of use, including by using those products ourselves.

      • Calva provides a better first-time experience than any other editor/plugin combo whether you\u2019re new to Clojure or not. You can install the plugin and be chatting with your REPL in under a minute without any knowledge of Elisp or VimScript/Lua or how to configure Run Configurations in IntelliJ.

      • The default key bindings are good and the commands are easily discoverable.
      • For its age it\u2019s surprisingly feature rich.
      "},{"location":"why-calva/#100-five-star-marketplace-reviews","title":"100% Five-star Marketplace Reviews","text":"

      We are super proud of the Calva reviews on the Visual Studio Code Marketplace. Please read them all. \ud83d\ude04 Here's a selection that we think captures what we focus on in when developing Calva:

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f Calva has become an essential part of my Clojure workflow.

      It's an incredible piece of work by the team behind it.

      Sean Corfield

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f Calva hits the sweet spot of being both approachable for new users and powerful for seasoned ones.

      The creators/maintainers are fantastic individuals that care deeply about streamlining the user experience, and it shows.

      Good stuff, check it out.

      Clay Hopperdietzel

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f I switched from IntelliJ / Cursive to VS Code and Calva and it's been amazing.

      ...

      That is the biggest thing I can say for Calva, it just works. I was never a fan of VS Code before, but VS Code + Calva for Clojure is now my favorite language / IDE experience.

      Plus, the #calva on the clojurians slack is brilliant, always someone there to help if you have issues (although any issue I've had has been squarely on me, and never Calva itself).

      I often feel we live in an age where so much software is badly written, without care, slow, buggy and just generally awful. Calva is the complete opposite. I think the maintainers want to, and have, made a wonderful piece of software for Clojure developers.

      Stuart Stein

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f This is great, and makes VS Code a truly viable IDE/editor for clojure development.

      It already has great REPL support (including inline evaluation), an extensive Paredit implementation, and excellent linting (care of the bundled clj-kondo). Calva is being improved on at an impressive clip by maintainers who appear solidly committed to its ongoing development. It's well-documented, and manages to be both approachable and capable.

      A no-brainer if you're already a VS Code user, and well worth a look if you're not.

      Crispin Bennett

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f I'm using Calva now for a few months and I'm loving it.

      I joined the Slack channel about 2 wks ago and I must say that I'm very impressed by how active and responsive this community is. Already 2 of my issues fixed and I really like Calva (and the extensions it uses!).

      These are professional people and they make me very happy!

      Uitbeijerse, E (Eric)

      "},{"location":"workspace-layouts/","title":"Workspace Layouts","text":"

      Project directory layouts can vary quite a lot. From the \u201dtemplate\u201d projects where the Clojure project files are at the root, to, well, let's just say that the project files are not always at the root. And sometimes there is more than one project (read here how to get clojure-lsp support with a Leiningen project in a subfolder).

      Calva only really supports working with one project at a time per VS Code window. Here's a short guide for some different setups:

      1. You have one project in the workspace, the project files are in there somewhere.
        • Use a regular VS Code \u201dfolder window\u201d or a Workspace proper, both will totally work.
      2. You have more than one project in the repository, but only really work with one at a tine.
        • Use a Workspace proper and add the different project directories as separate Workspace Folders.
        • You can only jack-in/connect to one project at a time.
      3. You have more than one project in the repository, and need to work with them in parallell.
        • Open each project you want to work with in a separate VS Code window.
      "},{"location":"workspace-layouts/#one-folder-two-windows","title":"One Folder - Two Windows?","text":"

      As is mentioned in the Calva Jack-In Guide, if you have a full stack project using a Clojure backend and a shadow-cljs frontend, you will need to open the same project in two separate VS Code windows, one for the backend and one for the frontend. This is how you can do that:

      1. Open a new VS Code window.
      2. Select File->Add Folder to Workspace.... Save the workspace as, say, Server.code-workspace.
      3. Open a new VS Code window.
      4. Select File->Add Folder to Workspace.... Save the workspace as, say, Client.code-workspace.

      Now, whenever you want to Jack-in to the backend and/or frontend, do it from the Server and/or Client workspace, respectively.

      "},{"location":"wsl/","title":"Calva \u2764\ufe0f WSL","text":"

      The use of Calva with WSL (Windows Subsystem for Linux) is fully supported through the Remote - WSL extension. Simply install the extension and open your project with one of the Remote-WSL commands. Calva will run directly in the WSL environment and no further configuration is required.

      "},{"location":"wsl/#steps-involved","title":"Steps Involved","text":"
      1. Enable WSL
      2. Install Ubuntu in WSL
      3. Install Java in WSL
      4. Install latest Clojure in WSL
      5. Install the Remote - WSL extension in VS Code
      6. Launch remote window
      7. Install Calva (gets installed into the WSL instance)
      8. Work away

      See also Remote Development.

      "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-\\._]","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome!","text":"

      Calva is an integrated, REPL powered, development environment for enjoyable and productive Clojure and ClojureScript programming in Visual Studio Code. It is feature rich and turnkey. A lot of effort has been put into making Calva a good choice if you are new to Clojure. Calva is open source and free to use.

      "},{"location":"#getting-started","title":"Getting Started","text":"

      Let's start a REPL!. \ud83d\ude80 Also see Get Started with Clojure

      "},{"location":"#how-to-contribute-to-calva","title":"How to Contribute to Calva?","text":"

      I'm glad you asked! Please see How to Contribute and The Tao of Calva

      "},{"location":"#calva-patrons","title":"Calva Patrons","text":"The right kind of different"},{"location":"#calva-gold-sponsors","title":"Calva Gold Sponsors \u2665\ufe0f","text":"Scale your growth on mobile MAKE. DO. SHIP.

      Please see this statement from Cognitect about the importance of supporting open source developers.

      See Sponsors for information about sponsoring Calva.

      If your Company benefits from Calva's existence and you see it as an important in the Clojure and ClojureScript ecosystem. please consider sponsoring!

      "},{"location":"#features","title":"Features","text":"

      Calva includes inline code evaluation, structural editing, code formatting, code navigation, a debugger, linting, syntax highlighting, Clojure aware rainbow brackets, a test runner, refactoring support, and more.

      "},{"location":"#have-questions-and-feedback-need-help","title":"Have Questions and Feedback? Need Help?","text":"

      Easiest way is to chat with us and other Calva users. Please join the #calva channel on the Clojurians Slack. If you haven't joined that slack workspace, you can get an invite here.

      If you're a beginner to Clojure(Script), the #beginners channel of the Clojurians Slack is very active and helpful.

      "},{"location":"#please-star-the-calva-repo","title":"Please star the Calva repo!","text":"

      Happy coding!

      "},{"location":"api/","title":"The Calva Extension API","text":"

      Calva exposes an API for use from other VS Code extensions (such as Joyride). The API is in an experimental state, while we are figuring out what is a good shape for this API. It is also rather small, and will grow to expose more of Calva's functionality.

      ","boost":7},{"location":"api/#accessing","title":"Accessing","text":"

      To access the API the Calva extension needs to be activated. The API is exposed under the v1 key on the extension's exports, and split up into submodules, like repl, and ranges.

      When using Joyride you can use its unique require API, for which one of the benefits is better lookup IDE support. When using the API from regular ClojureScript, you'll pick it up from the Calva extension instance. (Which you can do from Joyride as well, but why would you?). Here is how you access the API, with an example of usage as a bonus:

      JoyrideClojureScriptJavaScript
      (ns ... (:require [\"ext://betterthantomorrow.calva$v1\" :as calva]))\n;; OR\n(require '[\"ext://betterthantomorrow.calva$v1\" :as calva])\n\n(calva/repl.currentSessionKey) => \"cljs\" ; or \"clj\", depending\n
      (def calvaExt (vscode/extensions.getExtension \"betterthantomorrow.calva\"))\n\n(def calva (-> calvaExt\n             .-exports\n             .-v1\n             (js->clj :keywordize-keys true)))\n\n((get-in calva [:repl :currentSessionKey])) => \"cljs\" ; or \"clj\", depending\n
      const calvaExt = vscode.extensions.getExtension(\"betterthantomorrow.calva\");\n\nconst calva = calvaExt.exports.v1;\n\nconst sessionKey = calva.repl.currentSessionKey()\n
      ","boost":7},{"location":"api/#repl","title":"repl","text":"

      The repl module provides access to Calva's REPL connection.

      ","boost":7},{"location":"api/#replcurrentsessionkey","title":"repl.currentSessionKey()","text":"

      Use repl.currentSessionKey() find out which REPL/session Calva's REPL is currently connected to (depends on the active file). Returns either \"clj\", or \"cljs\", or nil if no REPL is connected.

      JoyrideClojureScriptJavaScript
      (def session-key (calva/repl.currentSessionKey))\n
      (def session-key ((get-in [:repl :currentSessionKey] calvaApi)))\n
      const sessionKey = calva.repl.currentSessionKey()\n
      ","boost":7},{"location":"api/#replevaluatecode","title":"repl.evaluateCode()","text":"

      This function lets you evaluate Clojure code through Calva's nREPL connection. Calling it returns a promise that resolves to a Result object. It's signature looks like so (TypeScript):

      export async function evaluateCode(\n  sessionKey: 'clj' | 'cljs' | 'cljc' | undefined,\n  code: string,\n  ns = 'user',\n  output?: {\n    stdout: (m: string) => void;\n    stderr: (m: string) => void;\n  },\n  opts = {}\n): Promise<Result>;\n

      Where Result is:

      type Result = {\n  result: string;\n  ns: string;\n  output: string;\n  errorOutput: string;\n};\n

      As you can see, the required arguments to the function are sessionKey and code. sessionKey should be \"clj\", \"cljs\", \"cljc\", or undefined depending on which of Calva's REPL sessions/connections that should be used. It will depend on your project, and how you connect to it, which session keys are valid. Use cljc to request whatever REPL session \"cljc\" files are connected to. Use undefined to use the current REPL connection Calva would use (depends on which file is active).

      An example:

      JoyrideClojureScriptJavaScript
      (-> (p/let [evaluation (calva/repl.evaluateCode \"clj\" \"(+ 2 40)\")]\n      (println (.-result evaluation)))\n    (p/catch (fn [e]\n               (println \"Evaluation error:\" e))))\n
      (def evaluate (get-in [:repl :evaluateCode] calvaApi))\n(-> (p/let [evaluation (evaluate \"clj\" \"(+ 2 40)\")]\n      (println (.-result evaluation)))\n    (p/catch (fn [e]\n               (println \"Evaluation error:\" e))))\n
      try {\n  const evaluation = await calvaApi.repl.evaluateCode(\"clj\", \"(+ 2 40)\");\n  console.log(evaluation.result);\n} catch (e) {\n  console.error(\"Evaluation error:\", e);\n}\n
      ","boost":7},{"location":"api/#handling-output","title":"Handling Output","text":"

      The output member on the Result object will have any output produced during evaluation. (The errorOutput member should contain error output produced, but currently some Calva bug makes this not work.) By default the stdout and stderr output is not printed anywhere.

      If you want to do something with either regular output or error output during, or after, evaluation, you'll need to provide the output argument to evaluateCode(). (The stderr callback function works, so this is the only way to get at any error output, until the above mentioned Calva bug is fixed.)

      An example:

      JoyrideClojureScriptJavaScript
      (def oc (joyride.core/output-channel)) ;; Assuming Joyride is used\n(def evaluate (fn [code]\n                (calva/repl.evaluateCode\n                 \"clj\"\n                 code\n                 \"user\"\n                 #js {:stdout #(.append oc %)\n                      :stderr #(.append oc (str \"Error: \" %))})))\n\n(-> (p/let [evaluation (evaluate \"(println :foo) (+ 2 40)\")]\n      (.appendLine oc (str \"=> \" (.-result evaluation))))\n    (p/catch (fn [e]\n               (.appendLine oc (str \"Evaluation error: \" e)))))\n
      (def oc (joyride.core/output-channel)) ;; Assuming Joyride is used\n(def evaluate (fn [code]\n                ((get-in [:repl :evaluateCode] calvaApi)\n                 \"clj\"\n                 code\n                 \"user\"\n                 #js {:stdout #(.append oc %)\n                      :stderr #(.append oc (str \"Error: \" %))})))\n\n(-> (p/let [evaluation (evaluate \"(println :foo) (+ 2 40)\")]\n      (.appendLine oc (str \"=> \" (.-result evaluation))))\n    (p/catch (fn [e]\n               (.appendLine oc (str \"Evaluation error: \" e)))))\n
      const evaluate = (code) =>\n  calvaApi.repl.evaluateCode(\"clj\", code, \"user\", {\n    stdout: (s) => {\n      console.log(s);\n    },\n    stderr: (s) => {\n      console.error(s);\n    },\n  });\n\ntry {\n  const evaluation = await evaluate(\"(println :foo) (+ 2 40)\");\n  console.log(\"=>\", evaluation.result);\n} catch (e) {\n  console.error(\"Evaluation error:\", e);\n}\n
      ","boost":7},{"location":"api/#ranges","title":"ranges","text":"

      The ranges module contains functions for retreiving vscode.Ranges and text for pieces of interest in a Clojure document.

      All functions in this module have the following TypeScript signature:

      (editor = vscode.window.activeTextEditor, position = editor?.selection?.active) => [vscode.Range, string];\n

      I.e. they expect a vscode.TextEditor \u2013 defaulting to the currently active editor \u2013 and a vscode.Position \u2013 defaulting to the current active position in the editor (or the first active position if multiple selections/positions exist, and will return a tuple with the range, and the text for the piece of interest requested.

      Custom REPL Commands

      The ranges function have corresponding REPL Snippets/Commands substitution variables. It is the same implementation functions used in both cases.

      The functions available are:

      ","boost":7},{"location":"api/#rangescurrentform","title":"ranges.currentForm()","text":"

      Retrieves information about the current form, as determined from the editor and position.

      Corresponding REPL Snippet variable: $current-form.

      See also about Calva's Current Form on YouTube.

      ","boost":7},{"location":"api/#rangescurrentenclosingform","title":"ranges.currentEnclosingForm()","text":"

      The list/vector/etcetera form comtaining the current form.

      Corresponding REPL Snippet variable: $enclosing-form.

      ","boost":7},{"location":"api/#rangescurrenttoplevelform","title":"ranges.currentTopLevelForm()","text":"

      The current top level form. Outside (comment ...) (Rich comments) forms this is most often ((def ...), (defgn ...), etcetera. Inside Rich comments it will be the current immediate child to the (comment ...) form.

      Corresponding REPL Snippet variable: $top-level-form.

      ","boost":7},{"location":"api/#rangescurrentfunction","title":"ranges.currentFunction()","text":"

      The current function, i.e. the form in \u201dcall position\u201d of the closest enclosing list.

      Corresponding REPL Snippet variable: $current-fn.

      ","boost":7},{"location":"api/#rangescurrenttopleveldef","title":"ranges.currentTopLevelDef()","text":"

      The symbol being defined by the current top level form. NB: Will stupidly assume it is the second form. I.e. it does not check that it is an actual definition, and will often return nonsense if used in Rich comments.

      Corresponding REPL Snippet variable: $top-level-defined-symbol.

      ","boost":7},{"location":"api/#example-rangescurrenttoplevelform","title":"Example: ranges.currentTopLevelForm()","text":"JoyrideClojureScriptJavaScript
      (let [[range text] (calva/ranges.currentTopLevelForm)]\n  ...)\n
      (let [[range text] ((get-in [:ranges :currentTopLevelForm]))]\n  ...)\n
      const [range, text] = ranges.currentTopLevelForm();\n
      ","boost":7},{"location":"api/#editor","title":"editor","text":"

      The editor module has facilites (well, a facility, so far) for editing Clojure documents.

      ","boost":7},{"location":"api/#editorreplace","title":"editor.replace()","text":"

      With editor.replace() you can replace a range in a Clojure editor with new text. The arguments are:

      • editor, a vscode.TextEditor
      • range, a vscode.Range
      • newText, a string
      JoyrideJavaScript
      (-> (p/let [top-level-form-range (first (calva/ranges.currentTopLevelForm))\n            _ (calva/editor.replace vscode/window.activeTextEditor top-level-form-range \"Some new text\")]\n      (println \"Text replaced!\"))\n    (p/catch (fn [e]\n               (println \"Error replacing text:\" e))))\n
      const topLevelRange = calvaApi.ranges.currentTopLevelForm();\ncalva.editor.replace(topLevelRange, \"Some new text\")\n  .then((_) => console.log(\"Text replaced!\"))\n  .catch((e) => console.log(\"Error replacing text:\", e));\n
      ","boost":7},{"location":"api/#document","title":"document","text":"

      The document module provides access to the Clojure/Calva aspects of VS Code TextDocuments.

      ","boost":7},{"location":"api/#documentgetnamespacedocument-vscodetextdocument-string","title":"document.getNamespace(document?: vscode.TextDocument): string","text":"

      document.getNamespace() returns the namespace of a document.

      • document, a vscode.TextDocument (defaults to the current active document)

      Example usage. To evaluate some code in the namespace of the current document:

      JoyrideJavaScript
      (calva/repl.evaluateCode \"clj\" \"(+ 1 2 39)\" (calva/document.getNamespace))\n
      calva.repl.evaluateCode(\"clj\",  \"(+ 1 2 39)\", calva.document.getNamespace());\n
      ","boost":7},{"location":"api/#documentgetnamespaceandnsformdocument-vscodetextdocument-ns-string-nsform-string","title":"document.getNamespaceAndNsForm(document?: vscode.TextDocument): [ns: string, nsForm: string]","text":"

      document.getNamespaceAndNsForm() returns the namespace and the ns form of a document as a tuple.

      • document, a vscode.TextDocument (defaults to the current active document)

      Example usage. To evaluate the ns form of the current document:

      JoyrideJavaScript
      (calva/repl.evaluateCode \"clj\" (second (calva/document.getNamespaceAndNsForm)))\n
      calva.repl.evaluateCode(\"clj\", calva.document.getNamespaceAndNsForm()[1]);\n
      ","boost":7},{"location":"api/#pprint","title":"pprint","text":"

      The pprint module lets you pretty print Clojure code/data using Calva's pretty printing engine (which in turn uses zprint).

      ","boost":7},{"location":"api/#pprintprettyprint","title":"pprint.prettyPrint()","text":"

      Use pprint.prettyPrint() to pretty print some Clojure data using your Calva pretty printing options. It accepts these arguments:

      • text, a string with the text to pretty print
      • options, a JavaScript object with pretty printing options, this is optional and will default to the current settings.

      The function is synchronous and returns the prettified text.

      JoyrideJavaScript
      (println (calva/pprint.prettyPrint \"Some text\")))\n
      console.log(calvaApi.pprint.prettyPrint();\n
      ","boost":7},{"location":"api/#pprintprettyprintingoptions","title":"pprint.prettyPrintingOptions()","text":"

      Use to get the current pretty printint options:

      ","boost":7},{"location":"api/#vscode","title":"vscode","text":"

      In the its vscode submodule, Calva exposes access to things from its own vscode module instance. It gets important in some situations.

      ","boost":7},{"location":"api/#vscoderegisterdocumentsymbolprovider","title":"vscode.registerDocumentSymbolProvider()","text":"

      This is the [vscode.languages](https://code.visualstudio.com/api/references/vscode-api#languages).registerDocumentSymbolProvider() function from the Calva extension. Use it if you want to provide symbols for Clojure files together with the ones that Calva provides. (If you use the vscode.languages.registerDocumentSymbolProvider() function from your extension (or Joyride) you will provide a separate group.)

      JoyrideClojureScriptJavaScript
      (-> (joyride/extension-context)\n  .-subscriptions\n  (.push (calva/vscode.registerDocumentSymbolProvider ...)))\n
      (-> yourExtensionContext\n  .-subscriptions\n  (.push ((get-in calva [:vscode :registerDocumentSymbolProvider]) ...)))\n
      yourExtensionContext.subscriptions.push(calva.vscode.registerDocumentSymbolProvider(...));\n

      Deprecation candidate

      VS Code is still creating a separate group, just with the same name as Calva's, so this API is not good for anything, and we will probably remove it.

      ","boost":7},{"location":"api/#feedback-welcome","title":"Feedback Welcome","text":"

      Please let us know how you fare using this API. Either in the #calva or #joyride channels on Slack or via the issues/discussions sections on the repositories. (Whichever seems to apply best.)

      ","boost":7},{"location":"async-out/","title":"Viewing Async Output While Working On Node Projects with shadow-cljs","text":"

      When working on NodeJS projects with shadow-cljs and Calva, async output does not always appear in the Calva output window. To work around this problem, follow these steps:

      1. Run the command \"Calva: Copy Jack-in Command Line to Clipboard\", then paste the command in a terminal and run it.
      2. Wait for the message shadow-cljs - nREPL server started on port <some-port>
      3. Issue the command Calva: Connect to a running REPL server in your project, ctrl+alt+c ctrl+alt+c. For project type select shadow-cljs, accept the proposed localhost:<some-port>, and for build select node-repl.
      4. Load a file from your project with the command ctrl+alt+c Enter. Evaluating forms in Calva will show results in the output window. Synchronous stdout output will be printed in both the output window and in the terminal where you started the repl. Some asynchronous output may show up in the output window, but all will appear in the terminal.

      If you use an integrated VSCode terminal to start shadow-cljs, all stdout will appear in the Calva window with your code. Alternatively, you can use an external terminal, which is especially nice when using a second monitor.

      For a discussion of this problem and other connection options, see issue #1468.

      "},{"location":"babashka/","title":"Using Calva with Babashka","text":"

      Since Babashka can be started such that it is an nREPL server, Calva can connect to it and a lot of the features will work.

      Calva can also start Babashka and connect its REPL for you, using the Jack-in command.

      Don't expect complete support

      Babashka's nREPL server is still a bit limited compared to a full cider-nrepl enhanced \"regular\" Clojure nREPL server. Things like function signatures, and more do not work.

      This might of course improve in the future, especially if you provide some PRs towards the Babashka nREPL.

      ","boost":5},{"location":"clj-java-decompiler/","title":"Decompiling and disassembly made easy","text":"

      If you need some piece of Clojure code to execute as fast as possible you will often benefit from examining the code generated by the Clojure compiler from your code. There is a really easy to use tool for that: clj-java-decompiler. You can make the use of this tool super convenient with Calva custom command snippets.

      "},{"location":"clj-java-decompiler/#prerequisites","title":"Prerequisites","text":"

      Add com.clojure-goes-fast/clj-java-decompiler as a dependency to the project.

      "},{"location":"clj-java-decompiler/#the-custom-snippets","title":"The custom snippets","text":"

      You can add some Calva custom commands configuration to be able to decompile or disassemble any Clojure code in your editor with a keyboard shortcut. Here's an example configuration:

          \"calva.customREPLCommandSnippets\": [\n        {\n            \"name\": \"Decompile current top level form\",\n            \"key\": \"d\",\n            \"snippet\": \"(require '[clj-java-decompiler.core :refer [decompile]]) (spit \\\"decompiled-$top-level-defined-symbol.java\\\" (with-out-str (decompile $top-level-form)))\"\n        },\n        {\n            \"name\": \"Decompile current form\",\n            \"snippet\": \"(require '[clj-java-decompiler.core :refer [decompile]]) (spit \\\"decompiled.java\\\" (with-out-str (decompile $current-form)))\"\n        },\n        {\n            \"name\": \"Disassemble current top level form\",\n            \"key\": \"b\",\n            \"snippet\": \"(require '[clj-java-decompiler.core :refer [disassemble]]) (spit \\\"bytecode-$top-level-defined-symbol.class\\\" (with-out-str (disassemble $top-level-form)))\"\n        },\n        {\n            \"name\": \"Disassemble current current form\",\n            \"snippet\": \"(require '[clj-java-decompiler.core :refer [disassemble]]) (spit \\\"bytecode.class\\\" (with-out-str (disassemble $current-form)))\"\n        }\n    ],\n

      Now, with the cursor anywhere in a top level defined function, you can spit out a file with the Java code generated for that function by pressing ctrl+alt+space d. For the byte code, press ctrl+alt+space b. The files will be generated in the same folder as the Clojure file and be named decompiled-<function name>.java and bytecode-<function name>.class, respectively.

      To decompile or disassemble the current form (or selection) press ctrl+alt+space space and pick the desired command from the quick pick menu that pops up. You can add key to these too if you want even quicker access, of course. The filenames for the results will here be named without any function name suffix, because there is often no function name that can be used.

      See this video for a demo.

      "},{"location":"clojure-lsp/","title":"Clojure-lsp","text":"

      Calva uses a mix of static and dynamic analysis to power the experience. A lot of the static abilities come from clojure-lsp. This enables you to check something up in a project, with a lot of navigational and contextual support, without starting a REPL for it. (And once you do start a REPL you'll get even more capabilities, enabled by the dynamic analysis.)

      Which clojure-lsp does Calva use?

      Calva defaults to using the latest clojure-lsp released. To use a different version of clojure-lsp, see the configuration section. Calva does not use the clojure-lsp installed on your system, unless you set the path for clojure-lsp to the installed binary in your settings. You can see what version is being used by running the Clojure-lsp Server Info command, which will also show the version of clj-kondo that's being used as well as other info.

      "},{"location":"clojure-lsp/#the-lsp-server-lifecycle","title":"The LSP server lifecycle","text":"

      By default you won't need to install/setup anything as Calva handles that for you by automatically downloading the latest clojure-lsp binary. It can take a while for clojure-lsp to start, especially the first time opening a new project, as clojure-lsp (via clj-kondo) indexes the project files.

      Calva is able to automatically start the clojure-lsp server for you and can be configured to start the server under various different conditions. These behaviours can be configured through the calva.enableClojureLspOnStart setting, which takes the following options:

      • \"always-use-first-workspace-root\"
      • \"when-workspace-opened-use-workspace-root\"
      • \"when-file-opened-use-furthest-project\"
      • \"never\"
      "},{"location":"clojure-lsp/#always-use-first-workspace-root-default","title":"\"always-use-first-workspace-root\" [default]","text":"

      When set to \"always-use-first-workspace-root\" Calva will attempt to start the clojure-lsp in the root of the first workspace folder if it is a valid clojure project. If it is not a valid clojure project it will fall back to starting the fallback server.

      This is the default auto-start behaviour.

      "},{"location":"clojure-lsp/#when-workspace-opened-use-workspace-root","title":"\"when-workspace-opened-use-workspace-root\"","text":"

      When set to \"when-workspace-opened-use-workspace-root\" Calva will start the clojure-lsp in the root of all opened vscode workspaces. All Clojure files in a workspace will be serviced by the clojure-lsp server running in that workspace. This behavior requires that you are opening workspaces with a valid Clojure project in the root (the directory must contain a deps.edn, project.clj or shadow-cljs.edn file).

      "},{"location":"clojure-lsp/#when-file-opened-use-furthest-project","title":"\"when-file-opened-use-furthest-project\"","text":"

      When set to \"when-file-opened-use-furthest-project\" Calva will attempt to start the clojure-lsp server whenever a Clojure file is opened. The LSP server will be started in the outermost valid Clojure project or will fall back to starting in the workspace root if no valid Clojure project can be found. A directory is considered a Clojure project if it contains typical Clojure project files such as a deps.edn, project.clj, or shadow-cljs.edn file. When working in a mono-repo style project or in a multi-workspace VS Code configuration you may have multiple LSP servers running, one for each independent Clojure project opened.

      Opening files that do not belong to a workspace folder

      When opening files that do not belong to any of the workspace folders currently open then Calva will fallback to starting the fallback clojure-lsp server

      "},{"location":"clojure-lsp/#never","title":"\"never\"","text":"

      When set to \"never\" Calva will never attempt to automatically start the clojure-lsp server. In this case you are responsible for manually starting the server. More advanced users might want to do this in order to have more control over which projects have a clojure-lsp server running for them. To manually start the clojure-lsp server you can run the calva.clojureLsp.start or the calva.clojureLsp.manage command and pick the project root. You can also click the clojure-lsp status bar icon to open the Management Menu.

      Additionally Calva has commands for:

      • Inspecting the clojure-lsp server information
      • Read the clojure-lsp server log
      • Stopping any running clojure-lsp processes
      • Starting clojure-lsp
      • Restarting any running clojure-lsp processes
      • Downloading the configured clojure-lsp version

      Note that the download command will download the configured clojure-lsp version regardless if it is already installed or not. This can be useful when some earlier download has failed resulting in that clojure-lsp can't be started. NB: It will not download anything if calva.clojureLspPath is set to something non-blank.

      "},{"location":"clojure-lsp/#fallback-server","title":"Fallback Server","text":"

      As a fallback behaviour Calva may start a clojure-lsp server in a temporary directory and use this to service lsp requests for clojure files that do not belong to a valid clojure project. This will show up in the management menu looking something like:

      Any files that are handled by this server will have limited classpath analysis and lsp features. It is therefore recommended to setup your project as a clojure project (by creating a deps.edn file in the root, for example).

      "},{"location":"clojure-lsp/#status-bar","title":"Status bar","text":"

      In the status bar Calva will show an indicator with the clojure-lsp status. This status will track the currently open project, showing the status (stopped, starting or active) for the relevant clojure-lsp server.

      You can click on the status-bar item to open the clojure-lsp management menu which will look as follows:

      The menu shows which clojure-lsp servers are active and which are stopped. Selecting a project will allow you to start/stop/restart the server for that project.

      "},{"location":"clojure-lsp/#ignoring-lsp-cache-files","title":"Ignoring LSP cache files","text":"

      Clojure-lsp stores its project analysis information in your project. Git users can add these lines to their project root directory .gitignore:

      .lsp/.cache/\n.lsp/sqlite.*.db\n
      "},{"location":"clojure-lsp/#configuration","title":"Configuration","text":"

      For information about how to configure clojure-lsp, see the settings page of the clojure-lsp docs.

      "},{"location":"clojure-lsp/#changing-the-version-of-clojure-lsp-used-by-calva","title":"Changing the Version of Clojure-lsp Used by Calva","text":"

      By default, Calva will use the latest released clojure-lsp. You can change the version of clojure-lsp used by Calva by setting the calva.clojureLspVersion property to a version of clojure-lsp found in its GitHub releases. This can be helpful if you're debugging an issue with clojure-lsp or you want to try out a feature of a new release that Calva does not yet use. However, you must remember to reset this setting in order for Calva to automatically use newer versions of clojure-lsp that are released with new versions of Calva.

      Example:

      \"calva.clojureLspVersion\": \"2021.04.07-16.34.10\"\n

      Special \u201dversion\u201d values

      Apart from the actual versions you can use two special values for this setting:

      • latest: Will download and use the latest stable build of clojure-lsp, when one becomes available. This is the default
      • nightly: Will always download and use the latest nightly build, whether there is a new version available or not.
      "},{"location":"clojure-lsp/#using-a-custom-clojure-lsp","title":"Using a Custom Clojure-lsp","text":"

      You can set a path to a custom clojure-lsp to be used by Calva by configuring the calva.clojureLspPath setting. This should be an absolute path to a native binary or JAR file.

      Example:

      \"calva.clojureLspPath\": \"/usr/local/bin/clojure-lsp\"\n

      Will override any calva.clojureLspVersion setting

      When calva.clojureLspPath is set, the binary at the path will be used uncoditionally, and the calva.clojureLspVersion setting will be ignored.

      "},{"location":"clojure-lsp/#extra-commands","title":"Extra commands","text":"

      clojure-lsp provides many useful [commands], and Calva has configuration for most of them. The clojure-lsp team works fast and sometimes Calva might miss some command. And Calva's configuration only really work for clojure-lsp commands that take no argument, or where it makes sense to prompt for the argument. Therefore Calva provides a generic command id, clojure-lsp.command which can be used with keyboard shortcuts and that allow for providing arguments that way. (The command can be used from Joyride too, of course.)

      When using the command, provide the args as an tuple of [command-name, arguments], where arguments is an array of any arguments after file-uri, row, col which are common for all clojure-lsp extra commands and are provided automatically by Calva, based on active text editor and where the cursor is. It can look like so when binding a shortcut for extract-function:

          {\n        \"key\": \"ctrl+alt+r f\",\n        \"command\": \"clojure-lsp.command\",\n        \"args\": [\"extract-function\", [\"new-function\"]]\n    },\n

      Note that even though extract-function takes only one argument, you should still provide it via an array.

      "},{"location":"clojure-lsp/#troubleshooting","title":"Troubleshooting","text":""},{"location":"clojure-lsp/#viewing-the-logs-between-the-client-and-server","title":"Viewing the Logs Between the Client and Server","text":"

      If something doesn't seem to be working correctly, and you suspect the issue is related to clojure-lsp, a good place to start investigating is the request and response logs between the LSP client and server. In your settings, set clojure.trace.server to verbose, then in the VS Code output tab, select the Clojure Language Client output channel.

      It may be helpful to clear the output channel, then perform the action with which you're experiencing a problem, then read through the log for clues or paste the logs into a related issue in the Calva repo.

      "},{"location":"clojure-lsp/#server-info-command","title":"Server Info Command","text":"

      You can run the Clojure-lsp Server Info command to get information about the running clojure-lsp server, such as the version the server being used, the version of clj-kondo it's using, and more. This info is printed to the \"Calva says\" output channel.

      "},{"location":"clojure-lsp/#opening-the-server-log-file","title":"Opening the Server Log File","text":"

      You can open the clojure-lsp log file by running the command Calva Diagnostics: Open Clojure-lsp Log File. The log file will only be opened with this command if the clojure-lsp server is running and has finished initializing. If you need to open the file when the server is failing to run or initialize, see the clojure-lsp docs for information on the file location.

      "},{"location":"clojure-lsp/#server-initialization-failed","title":"Server initialization failed","text":"

      If clojure-lsp fails to start with \u201cServer initialization failed\u201d messages, it could be because the path to your project contains non-ASCII characters, or that the system PATH variable has been corrupted. (Or something else, of course.)

      See this issue for some findings about it: Issue #2251: Server initialization failed error

      "},{"location":"clojure-lsp/#related","title":"Related","text":"

      See also:

      • Connecting the REPL
      • Refactoring
      "},{"location":"clojuredart/","title":"Using Calva with ClojureDart","text":"

      Since ClojureDart is Clojure, Calva just works with it. Calva is also automatically configured to make VS COde treat .cljd files as a Clojure code.

      ","boost":4},{"location":"clojuredart/#dart-clojure-conversion","title":"Dart->Clojure Conversion","text":"

      Similar to when using ClojureScript you will often find examples for Dart and Flutter written in, you guessed it, Dart. And then you will often wish there was a converter, because manually transpiling can be a bit tedious and error prone. Luckily you are in the Clojure community, and such a converter is provided:

      • DartClojure

      There are several ways you can leverage this converter, and since you are using Calva, a very convenient way is available. There is a command Calva: Convert Dart code to Clojure/ClojureDart. This command takes whatever text is selected and uses DartClojure to convert it. Lacking a selection, the command will use the whole file.

      The workflow demoed in the video is something like so:

      1. Open a new untitled file/tab
      2. Paste your Dart/Flutter code in this file (VS Code will probably automatically figure out that it is Dart code, even if that doesn't matter for the converter.)
      3. Run Calva: Convert Dart code to Clojure/ClojureDart
      4. An, untitled, Clojure tab will open with the converted code in it.

      NB: The conversion will not always work. DartCLojure is work in progress. See the project repo for limitations and scope. Often when conversion, the error message will give you a clue to what is problematic. Try adjust your code selection and you will probably be able to get at least some help from the converter.

      Speaking of WIP...

      ","boost":4},{"location":"clojuredart/#work-in-progress","title":"Work in Progress","text":"

      ClojureDart is very new and being super actively developed. Some feature are still missing. Like a REPL. Once that is added we will also add ClojureDart jack-in and connect support to Calva.

      ","boost":4},{"location":"clojuredart/#happy-clojuredart-hacking","title":"Happy ClojureDart Hacking!","text":"

      Please feel welcome to the #clojuredart and #calva channel at the Clojurians Slack for questions, suggestions and support.

      ","boost":4},{"location":"clojuredocs/","title":"ClojureDocs integration","text":"

      clojuredocs.org is the goto place #1 for finding out more about Clojure core(-ish) functions, macros, etcetera. It contains the doc strings from the functions and adds crowd sourced examples of usage and see alsos. You can surf for quite long on that site without getting bored. \ud83d\ude04

      You can surf ClojureDocs in Calva

      Calva integrates this information in two ways:

      1. Commands for requesting the ClojureDocs information for a symbol under the cursor:
        • Print clojuredocs.org examples to Rich Comment, default keybinding: ctrl+alt+r d
        • Print clojuredocs.org examples to OutputWindow, ctrl+alt+o d
      2. ClojureDocs information is included in the symbol lookup hovers, where each example has two buttons:
        • To Rich Comment
        • To Output Window

      That means that if you just want to glance at the examples, you look in the hover. And when you want to bring the examples to the REPL to play with them, you can do so very easily.

      ClojureScript support

      ClojureDocs information is available both for Clojure and ClojureScript files. However, clojuredocs.org only keeps info for Clojure. Thus: All information Calva shows about a symbol will be about the Clojure respresentation of that symbol. (The symbol might not even exist in ClojureScript.)

      ","boost":4},{"location":"clojuredocs/#clojuredocs-repl-surfing","title":"ClojureDocs REPL Surfing","text":"

      Since the ClojureDocs information includes see-alsos, you can go for super interactive ClojureDocs surfing right in the file you are editing. Say you have this function:

      (defn trim-text\n  \"Returns text without surrounding whitespace if not empty, otherwise nil\"\n  [text]\n  (let [trimmed-text (clojure.string/trim text)]\n    (when-not (empty? trimmed-text)\n      trimmed-text)))\n

      Then you hover on when-not and scroll down a bit in the hover:

      That first example would be interesting to play with, right? Click To Rich Comment and you will get:

      (defn trim-text\n  \"Returns text without surrounding whitespace if not empty, otherwise nil\"\n  [text]\n  (let [trimmed-text (clojure.string/trim text)]\n    (when-not (empty? trimmed-text)\n      trimmed-text)))\n\n(comment\n  ;; = when-not - Example 1 = \n\n  ;; build tuples over sets with the same cardinality \n  (map\n   #(when-not (= %2 %3) [%1 %2 %3])\n   (iterate inc 0)   ; a lazy list of indices\n   [:a :b :c]\n   [:a :a :a])\n  ;;=> (nil [1 :b :a] [2 :c :a])\n\n  ;; See also:\n  when\n  when-let\n  if\n  )\n

      There you can evaluate the (map ...) form using alt+enter, modify it and evaluate again. You can also hover over map, iterate, or any of the \u201dSee also:\u201d symbols to find more fun examples to play with. And so on and so forth.

      See these two tweets for some videos of early versions of this functionality:

      • Rich Comments surfing ClojureDocs Examples
      • Clojuredocs in #Calva WIP 2: Hover examples -> RFC

      Please retweet!

      ","boost":4},{"location":"clojuredocs/#quirks","title":"Quirks","text":"

      Some of the ClojureDocs entries have text that is not really Clojure code, and sometimes even structural errors. This can break the structural integrity of your Clojure file. If you run into trouble trying to heal things, you can always use Undo until the Rich Comment is gone.

      ","boost":4},{"location":"commands-top10/","title":"The Top 10 Calva Commands","text":"

      There are not all that many Calva commands. You can learn them all if you like, but here are the most important ones to know about for effective Clojure/ClojureScript coding:

      • Grow/expand selection: ctrl+w (shift+alt+right on Windows and Linux)
      • Load/Evaluate Current File and its Requires/Dependencies: alt+ctrl+c enter, evaluates the namespace code in the active editor tab. This also loads any required namespaces, and generally gives Calva what it needs to work.
      • Evaluate current form: ctrl+enter finds the form from the cursor position, evaluates it and displays the result inline. Hit esc to dismiss the results display.
      • Evaluate current top-level form: alt+enter: inline evaluate the current top-level form. This also works inside (comment) forms. Use it to (re)define vars and then inside comment forms you can verify that they do what you want them to do.
      • Dismiss the display of results: escape: (VIM Extension users should read Using Calva with the VIM Extension).

      There are also two commands for bringing over the current form and the current top level form over to the repl window:

      • ctrl+alt+c ctrl+alt+e (ctrl+alt+c ctrl+alt+v on Windows): to paste the current form in the REPL window.
      • ctrl+alt+c ctrl+alt+space: to paste the current top-level form in this window

      You can also switch the name space of the output/repl window to that of the current file: alt+ctrl+c alt+n

      • Toggle pretty printing of results on and off: ctrl+alt+c p. It's on by default. There is a status bar button showing the status and that also can be used to toggle the setting.
      "},{"location":"commands-top10/#some-more-commands-to-try","title":"Some More Commands to Try","text":"
      • Code evaluation
        • Evaluate code and add as comment: ctrl+alt+c c (current form), ctrl+alt+c ctrl+space (current top level form)
        • Evaluate code and replace it in the editor, inline: ctrl+alt+c r
      • Integrated REPLs
        • Send current editor form to the REPL window: ctrl+alt+c ctrl+alt+e (ctrl+alt+c ctrl+alt+v on Windows)
        • Send current editor top level form to the REPL window: ctrl+alt+c ctrl+alt+space
      • Run tests and mark failures and errors in the Problems pane
        • Run namespace tests: ctrl+alt+c t
        • Run all tests: ctrl+alt+c shift+t
        • Run current test: ctrl+alt+c ctrl+alt+t
        • Rerun previously failing tests: ctrl+alt+c ctrl+t
        • Caveat: Right now the tests are reported only when all are run, making it painful to run all tests in larger projects. I'll fix it. Promise!
      • Select current form: ctrl+alt+c s.
      • Run custom commands, i.e. code snippets, at will: ctrl+alt+c .

      See also:

      • Code Evaluation Tips
      • Finding Calva Commands and Shortcuts
      "},{"location":"connect-sequences/","title":"REPL Jack-in and Connect Sequences","text":"

      Many projects grow out of the template phase and call for custom developer workflows involving application start commands, customized REPLs, and what have you. Even some templates add this kind of complexity. To make Jack-in usable for a broader set of projects, Calva has a setting keyed calva.replConnectSequences which lets you configure one ore more connect sequences.

      NB: Connect sequence configuration affects Calva's Jack-in menu in the following ways:

      1. With no sequence configured, Calva will prompt for the built-in sequences it has that seems to match your project.
      2. When any number of connection sequences are configured, Calva will prompt for your custom sequences, as well as the built-in sequences. Whether built-in or custom, only sequences relevant to your project will be included in the prompt.
      ","boost":6},{"location":"connect-sequences/#settings-for-adding-custom-sequences","title":"Settings for adding Custom Sequences","text":"

      A connect sequence configures the following:

      • name: (required) This will show up in the Jack-in quick-pick menu when you start Jack-in (see above).
      • projectType: (required) This is either \"Leiningen\u201d, \"deps.edn\", \"shadow-cljs\", \"lein-shadow\", \"Gradle\", \u201dgeneric\u201d, or \"custom\".
      • autoSelectForJackIn: A boolean. If true, this sequence will be automatically selected at Jack-in, suppressing the Project Type. Use together with projectRootPath to also suppress the Project Root menu. Add usage of menuSelections to go for a prompt-less REPL Jack-in. If you have more than one sequence with autoSelectForJackIn set to true, the first one will be used.
      • autoSelectForConnect: A boolean. If true, this sequence will be automatically selected at Connect, suppressing the Project Type menu. Use together with projectRootPath to also suppress the Project Root menu. If you have more than one sequence with autoSelectForConnect set to true, the first one will be used.
      • projectRootPath: An array of path segments leading to the root of the project to which this connect sequence corresponds. Use together with autoSelectForJackIn/autoSelectForConnect to suppress the Project Root menu. The path can be absolute or relative to the workspace root. If there are several Workspace Folders, the workspace root is the path of the first folder, so relative paths will only work for this first folder.
      • nReplPortFile: An array of path segments with the project root-relative path to the nREPL port file for this connect sequence. E.g. For shadow-cljs this would be [\".shadow-cljs\", \"nrepl.port\"].
      • afterCLJReplJackInCode: Code to evaluate in the CLJ REPL once it has been created. You can use either a string or an array of strings. If you use an array, the strings will be joined with a newline character to form the resulting code.
      • customJackInCommandLine: A string with a command line that should be used to launch the REPL. See Custom Command Line, below.
      • cljsType: This can be either \"Figwheel Main\", \"shadow-cljs\", \"ClojureScript built-in for browser\", \"ClojureScript built-in for node\", \"lein-figwheel\", \"none\", or a dictionary configuring a custom type. If set to \"none\", Calva will skip connecting a ClojureScript repl. A custom type has the following fields:
        • dependsOn: (required) Calva will use this to determine which dependencies it will add when starting the project (Jacking in). This can be either \"Figwheel Main\", \"shadow-cljs\", \"ClojureScript built-in for browser\", \"ClojureScript built-in for node\", \"lein-figwheel\", or \u201dUser provided\u201d. If it is \"User provided\", then you need to provide the dependencies in the project or launch with an alias (deps.edn), profile (Leiningen), or build (shadow-cljs) that provides the dependencies needed.
        • isStarted: Boolean. For CLJS REPLs that Calva does not need to start, set this to true. (If you base your custom cljs repl on a shadow-cljs workflow, for instance.)
        • startCode: Clojure code to be evaluated to create and/or start your custom CLJS REPL.
        • isReadyToStartRegExp: A regular expression which, when matched in the stdout from the startCode evaluation, will make Calva continue with connecting the REPL, and to prompt the user to start the application. If omitted and there is startCode Calva will continue when that code is evaluated.
        • openUrlRegExp: A regular expression, matched against the stdout of cljsType evaluations, for extracting the URL with which the app can be started. The expression should have a capturing group named url. E.g. \"Open URL: (?\\<url>S+)\"
        • shouldOpenUrl: Choose if Calva should automatically open the URL for you or not.
        • connectCode: (required) Clojure code to be evaluated to convert the REPL to a CLJS REPL that Calva can use to connect to the application. (For some setups this could also conditionally start the CLJS REPL. If so: startCode should be omitted.)
        • isConnectedRegExp: (required) A regular expression which, when matched in the stdout from the connectCode evaluation, will tell Calva that the application is connected. The default is To quit, type: :cljs/quit and you should leave it at that unless you know it won't work.
        • printThisLineRegExp: regular expression which, when matched in the stdout from any code evaluations in the cljsType, will make the matched text be printed to the Output window.
        • buildsRequired: Boolean. If the repl type requires that builds are started in order to connect to them, set this to true.
      • menuSelections: a dictionary with pre-filled-in selections for the Jack-in and Connect prompts, making Calva not prompt for that particular selection:
        • leinProfiles: At Jack-in to a Leiningen project, use these profiles to launch the repl.
        • leinAlias: At Jack-in to a Leiningen project, launch with this alias. Set to null to launch with Calva's default task (a headless repl), w/o prompting.
        • cljAliases: At Jack-in to a deps.edn project, use these aliases to launch the repl.
        • cljsLaunchBuilds: The cljs builds to start/watch at Jack-in/connect.
        • cljsDefaultBuild: Which cljs build to attach to at the initial connect.
      • jackInEnv: An object with environment variables that will be merged with the global calva.jackInEnv and then applied to the Jack-in process. The merge is very similar to how Clojure's merge works. So for any common keys between the global setting and this one, the ones from this setting will win.

      The Calva built-in sequences also use this format, check them out to get a clearer picture of how these settings work.

      Force the project type menu to show

      The convenience of autoSelectForJackIn/Connect can be an inconvenience when you want to use another project type/sequence for a project. For this reason, the calva.connect and calva.jackIn can be provided with an option disableAutoSelect, which forces the project root and project type menus to show. See Options for the Connect Command and Options for the Jack-in Command for more on this.

      Path segments

      projectRootPath and nReplPortFile both take an array of path segments. This is to make the paths work cross-platform. If you can't be bothered splitting up the path in segments, put the whole path in the first segment, though please note that if you use Windows path separators, these will not work for users with Linux or macOS.

      ","boost":6},{"location":"connect-sequences/#custom-command-line","title":"Custom Command Line","text":"

      Custom command lines are there to bridge the gap to those situations where standard Jack-in command lines don't reach. Like:

      1. You want to provide command line options to a supported tool, which Jack-in does not provide
      2. Your project has some script through which it is started
      3. The REPL is provided by some tool that Calva does not know of
      4. Any other reason...

      A custom command line is executed from same directory as the REPL project root (See projectRootPath, above), and can be as simple as my-repl-jack-in-command. You can use a relative or absolute path to your command line.

      If your custom command line starts a REPL of a project type that is not \u201dknown\u201d/built-in to Calva, use custom as the projectType for the connect sequence.

      ","boost":6},{"location":"connect-sequences/#custom-command-line-substitutionsplaceholdersenvironment-variables","title":"Custom Command Line Substitutions/Placeholders/Environment variables","text":"

      You can use placeholders in your command line, and Calva will substitute them before executing the command. All these placeholders will also be provided to your script via environment variables with the same names (except dashes will be underscores in the env variable names):

      nREPL dependency versions:

      • JACK-IN-NREPL-VERSION
      • JACK-IN-CIDER-NREPL-VERSION
      • JACK-IN-CIDER-PIGGIEBACK-VERSION

      Paths:

      • JACK-IN-PROJECT-ROOT-PATH: (See projectRootPath, above)
      • JACK-IN-NREPL-PORT-FILE: The path of the nREPL port file (see nReplPortFile above)

      Depending on the project type Calva will also look for these placeholders:

      • JACK-IN-CLJ-MIDDLEWARE: The nREPL middleware to be used for the Clojure REPL
      • JACK-IN-CLJS-MIDDLEWARE: The nREPL middleware to be used for the ClojureScript REPL
      • JACK-IN-LEIN-PROFILES: For Leiningen projects, the profiles selected by the user
      • JACK-IN-LEIN-LAUNCH-ALIAS: For Leiningen projects, the launch alias selected by the user
      • JACK-IN-CLI-ALIASES: For deps.edn projects, the aliases selected by the user
      • JACK-IN-CLJS-LAUNCH-BUILDS: For ClojureScript REPLs that configures builds, the builds selected by the user
      • JACK-IN-NREPL-PORT: For some project types (currently nbb and Babashka) Calva provided the TCP port they should use.
      ","boost":6},{"location":"connect-sequences/#example-custom-jack-in-command-lines","title":"Example Custom Jack-in Command lines","text":"","boost":6},{"location":"connect-sequences/#start-a-babashka-repl-via-wsl","title":"Start a Babashka REPL via WSL","text":"

      Calva has a built-in jack-in sequence for starting a Babashka REPL and connect to it. It works as long as the bb process is on the same host as VS Code/Calva is running. So if you want it to run in WSL, but VS Code is running on your computer you need to start bb slightly differently. These settings in your VS Code settings file will give you a jack-in option that works for this:

        \"calva.replConnectSequences\": [\n    {\n        \"name\": \"Bashbabka (WSL)\",\n        \"projectType\": \"custom\",\n        \"customJackInCommandLine\": \"bash -c 'bb --nrepl-server JACK-IN-NREPL-PORT'\",\n    },\n  ],\n

      If you place it in your user settings you will have access to it from any workspace.

      ","boost":6},{"location":"connect-sequences/#an-exampleskeleton-script","title":"An example/skeleton script","text":"

      This script doesn't actually start a REPL, it's provided more for giving you an idea about what it could look like, and as a starting point for your real scripts:

      #!/usr/bin/env bb\n\n(require '[clojure.string :as str])\n\n(defn parse-args [args]\n  (loop [args args\n         parsed {}]\n    (if (empty? args)\n      parsed\n      (let [[flag value & rest-args] args]\n        (case flag\n          \"--aliases\" (recur rest-args (assoc parsed :aliases value))\n          \"--cider-nrepl-version\" (recur rest-args (assoc parsed :cider-nrepl-version value))\n          (do (println \"Unknown parameter:\" flag) (System/exit 1)))))))\n\n(defn process-args [args]\n  (let [aliases (str/split (:aliases args) #\",\")\n        cider-nrepl-version (:cider-nrepl-version args)\n        project-root-path (System/getenv \"JACK_IN_PROJECT_ROOT_PATH\")]\n    (println \"Aliases:\")\n    (doseq [alias aliases]\n      (println alias))\n    (println \"CIDER nREPL version:\" cider-nrepl-version)\n    (println \"JACK_IN_PROJECT_ROOT_PATH:\" project-root-path)))\n\n(def parsed-args (parse-args *command-line-args*))\n\n(when (= *file* (System/getProperty \"babashka.file\"))\n  (process-args parsed-args))\n

      It's written in Babashka to encourage you to write your shell scripts in a civilized language. \ud83d\ude00 See the article Changing my mind: Converting a script from bash to Babashka for a small success-story about this mindset. See also bash2bb.

      The script reads JACK-IN-CLJS-LAUNCH-BUILDS and JACK-IN-CIDER-NREPL-VERSION from the command line, and JACK_IN_PROJECT_ROOT_PATH from the environment. It could be configured for use in a custom connect sequence like this:

          \"customJackInCommandLine\": \"../../custom-jack-in.bb --aliases JACK-IN-CLJS-LAUNCH-BUILDS --cider-nrepl-version JACK-IN-CIDER-NREPL-VERSION\",\n

      Note how in this case the REPL is started two directories \u201ddown\u201d from the workspace root where the script resides.

      ","boost":6},{"location":"connect-sequences/#example-sequences","title":"Example Sequences","text":"

      Whether you just want to speed up your workflow or encode some workflow/mechanics into it, it's often the case that you can create a custom sequence that helps.

      ","boost":6},{"location":"connect-sequences/#minimal-menus-with-full-stack-shadow-cljs-repls","title":"Minimal menus with full stack shadow-cljs REPLs","text":"

      Minimize the amount of selecting from the Jack-in/Connect menu when working with a full-stack shadow-cljs + deps/lein project:

          {\n      \"name\": \"backend + frontend\",\n      \"projectType\": \"shadow-cljs\",\n      \"cljsType\": \"shadow-cljs\",\n      \"menuSelections\": {\n        \"cljsLaunchBuilds\": [\n          \":app\",\n          \":test\",\n        ],\n        \"cljsDefaultBuild\": \":app\"\n      }\n    }\n

      See shadow-cljs + Clojure with Calva: The basics for how Calva and nREPL work with ClojureScript.

      ","boost":6},{"location":"connect-sequences/#polylith","title":"Polylith","text":"

      This is the connect sequences used in the Polylith Real World App. The (start) sequence lets you jack-in to the project, and starts the Real World App without any prompts. The (connect) sequence can be used if you prefer to start the REPL manually, and want to connect without prompts.

          \"calva.replConnectSequences\": [\n        {\n            \"projectType\": \"deps.edn\",\n            \"afterCLJReplJackInCode\": \"(require '[dev.server] :reload) (in-ns 'dev.server) (start! 6003)\",\n            \"name\": \"Polylith RealWorld Server REPL (start)\",\n            \"autoSelectForJackIn\": true,\n            \"projectRootPath\": [\".\"],\n            \"cljsType\": \"none\",\n            \"menuSelections\": {\n                \"cljAliases\": [\"dev\", \"test\"]\n            }\n        },\n        {\n            \"projectType\": \"deps.edn\",\n            \"name\": \"Polylith RealWorld Server REPL (connect)\",\n            \"autoSelectForConnect\": true,\n            \"projectRootPath\": [\".\"],\n            \"cljsType\": \"none\",\n        }\n    ],\n    \"calva.autoConnectRepl\": true,\n

      The calva.autoConnectRepl, when set to true, makes Calva, at project open, look for the nRepl port file and automatically connect the repl if the file exists. Therefore, you can leave the app running when you close the project in VS Code, and Calva will reconnect when you open the project again. (Alternatively, maybe you just need to reload the VS Code window and not lose the REPL state.)

      ","boost":6},{"location":"connect-sequences/#minimal-menus-with-full-stack-depsedn-and-figwheel-main-repls","title":"Minimal menus with full stack deps.edn and Figwheel Main REPLs","text":"

      Setting for a full-stack application. It starts the backend server when the CLJ REPL has started. Then proceeds to create a custom CLJS REPL (calling in to the application code for this). And then connects to it.

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Example Sequence\",\n            \"projectType\": \"Clojure-CLI\",\n            \"afterCLJReplJackInCode\": \"(go)\",\n            \"cljsType\": {\n                \"startCode\": \"(do (require '[cljs-test.main :refer :all])(start-nrepl+fig))\",\n                \"isReadyToStartRegExp\": \"Prompt will show\",\n                \"connectCode\": \"(do (use 'cljs-test.main) (cljs-repl))\",\n                \"isConnectedRegExp\": \"To quit, type: :cljs/quit\",\n                \"printThisLineRegExp\": \"\\\\[Figwheel\\\\] Starting Server at.*\"\n            }\n        }\n    ]\n}\n
      ","boost":6},{"location":"connect-sequences/#juxt-edge","title":"JUXT Edge","text":"

      Here is an example from the JUXT Edge project template. It adds two sequences, one for when only the Clojure REPL should be launched and one for when the customized Edge cljs repl should also be connected. The Edge backend + frontend sequence specifies that the web app should be opened by Calva, making cljs repl connection more stable, and also adds menuSelections to skip the launch aliases prompt.

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Edge backend only\",\n            \"projectType\": \"deps.edn\"\n        },\n        {\n            \"name\": \"Edge backend + frontend\",\n            \"projectType\": \"deps.edn\",\n            \"cljsType\": {\n                \"dependsOn\": \"Figwheel Main\",\n                \"startCode\": \"(do (require 'dev-extras) (dev-extras/go) (println \\\"Edge Figwheel Main started\\\") ((resolve 'dev-extras/cljs-repl)))\",\n                \"isReadyToStartRegExp\": \"Edge Figwheel Main started\",\n                \"openUrlRegExp\": \"Website listening on: (?<url>\\\\S+)\",\n                \"printThisLineRegExp\": \"\\\\[Edge\\\\]\",\n                \"shouldOpenUrl\": true,\n                \"connectCode\": \"(do (require 'dev-extras) ((resolve 'dev-extras/cljs-repl)))\",\n                \"isConnectedRegExp\": \"To quit, type: :cljs/quit\",\n                \"buildsRequired\": false\n            },\n            \"menuSelections\": {\n                \"cljAliases\": [\n                    \"dev\",\n                    \"build\",\n                    \"dev/build\"\n                ],\n            }\n        }\n    ]\n}\n
      ","boost":6},{"location":"connect-sequences/#plain-depsedn","title":"Plain deps.edn","text":"

      A deps.edn sequence that does not promote the ClojureScript repl at all (leaving it a Clojure REPL), and leaves that up to you to do interactively. (Could be useful while you are developing a custom cljs repl.) The example is for when adapting a Figwheel Main repl.

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Do not promote to cljs\",\n            \"projectType\": \"deps.edn\",\n            \"cljsType\": {\n                \"dependsOn\": \"Figwheel Main\",\n                \"connectCode\": \"\\\"Don't promote me bro!\\\"\",\n                \"isConnectedRegExp\": \"Don't promote me bro!\"\n            }\n        }\n    ]\n}\n
      ","boost":6},{"location":"connect/","title":"Connect Calva to Your Project","text":"

      When connected to your project's REPL Calva lets you evaluate code, supporting Interactive Programming. The REPL connection is also used to provide IDE functionality through the dynamic knowledge about the project that the REPL enables. The REPL communication depends on that your project has an nREPL server running, and that the cider-nrepl middleware is enabled.

      For the easiest way to provide your project with these dependencies, the recommended way to connect is to use the so called Jack-in command.

      ","boost":7},{"location":"connect/#jack-in-let-calva-start-the-repl-for-you","title":"Jack-in: Let Calva Start the REPL For You","text":"

      This way Calva can make sure it is started with the dependencies needed for a working Clojure and/or ClojureScript session. This is often referred to as Jack in (because that is what it is called in CIDER).

      Jack-in supports both CLJ and for CLJS, and has built-in configurations for Leiningen, deps.edn, shadow-cljs, Gradle projects, as well as for the CLJS repl types: Figwheel Main, lein-figwheel (legacy Figwheel), shadow-cljs, and ClojureScript built-ins for both browser and node.js. Using jack-in provides your development environment with all the dependencies you need for Calva to work.

      It works like so:

      1. Open your project in VS Code.
      2. Issue the command Start a Project REPL and Connect: ctrl+alt+c ctrl+alt+j.
      3. Answer the quick-pick prompts telling Calva about project types and what profiles to start. (See the Jack-in Project Types and Profiles wiki page for more info if needed.)

      See also: Workspace Layouts

      About project roots

      You must have a project file, such as project.clj for Leiningen, or deps.edn for deps.edn, or shadow-cljs.edn for shadow-cljs, or settings.gradle/settings.gradle.kts for Gradle in the directory opened in VS Code in order for jack-in to work. If, after adding the project file, you experience an error during jack-in that says something could not be located, make sure you have the correct dependencies in your project file. For example, when using the Figwheel Main project type, you should have com.bhauman/figwheel-main in your project dependencies.

      See also below, regarding multiple projects in a workspace

      ","boost":7},{"location":"connect/#aliases-profiles-builds","title":"Aliases, Profiles, Builds","text":"

      When Jack-in starts it will depend on the project type, and whether ClojureScript is involved or not, and if it is, what kind of ClojureScript project, what will happen next. Calva will analyze the project files and will then give you prompts with selections based on what is found there.

      You will need some basic knowledge about the project and the project type terminologies to answer the prompts.

      There are ways to tell Calva the answers to these prompts beforehand, so that Jack-in can be a zero-prompting command. Read on.

      ","boost":7},{"location":"connect/#customizing-jack-in","title":"Customizing Jack-in","text":"

      The main mechanism for customizing your Jack-in, including automating menu selections, and custom CLJS REPL types is Custom Connect Sequences. See also Customizing Jack-in and Connect

      ","boost":7},{"location":"connect/#connecting-without-jack-in","title":"Connecting Without Jack-in","text":"

      If, for whatever reasons, you can't use Jack-in with your project (possibly because the REPL is started as part of some other job) all is not lost. Old fashioned Connect to a running REPL is still there for you. For all features to work in Calva while connecting to a running REPL, your environment needs to have REPL related dependencies set up.

      However, just as before it can be tricky to get the dependencies right. Consider using Jack in to inform yourself on how to start your REPL to Calva's satisfaction. When you use Jack in, Calva starts a VS Code task for it and the command line used is displayed in the terminal pane used to handle the task. Reading that command line tells you what dependencies are needed for your project.

      Even better: Copying that command line gives you the command to start the REPL with the correct dependencies.

      All this said, I still recommend you challenge the conclusion that you can't use Jack-in.

      Copy the Jack-in command line

      There is a Calva command for copying the Jack-in command line to the clipboard. It will copy the command line including commands to change to the current REPL project root, avoiding hard-to-detect errors when starting the REPL in the wrong directory.

      The Generic Project Type

      A reason to use the connect to a running REPL way, can be that Calva does not have a built in connect sequence/project type for the particular REPL you want to connect to. Maybe it is something like Lingy which doesn't yet have a built in Calva connect sequence. As long as there is an nREPL server to connect to, you can Connect with Calva, using the Generic connect sequence/project type. (You can also create a connect sequence with a custom command line, and use Jack-in anyway.)

      See also Customizing Jack-in and Connect

      ","boost":7},{"location":"connect/#starting-the-repl-from-application-code","title":"Starting the REPL from application code?","text":"

      If your project is setup so that the REPL server is started by the application code, you will need to get the cider-nrepl middleware in place. See the cider-nrepl docs about embedding nREPL in your application.

      ","boost":7},{"location":"connect/#auto-select-project-type-and-project-root","title":"Auto-select Project Type and Project Root","text":"

      You can make both Jack-in and Connect stop prompting you for project type and project root path in projects where you always want to use the same. See Connect Sequences.

      ","boost":7},{"location":"connect/#monorepos-multiple-clojure-projects-in-one-workspace","title":"Monorepos / multiple Clojure projects in one workspace","text":"

      If the workspace is a monorepo, Polylith repo or just a repository with more than one Clojure project, Calva will start the connect sequence with prompting for which project to start/connect to.

      ","boost":7},{"location":"connect/#shadow-cljs","title":"shadow-cljs","text":"

      Please see the shadow-cljs page.

      ","boost":7},{"location":"connect/#troubleshooting","title":"Troubleshooting","text":"","boost":7},{"location":"connect/#jack-in-and-main-opts","title":"Jack-in and :main-opts","text":"

      When Calva starts the project REPL and connects to it (a.k.a. Jack-in), this is done by starting an nREPL server. For deps.edn projects this by default means that Calva will add -m ... with options that starts the server.

      However: If you choose an alias at Jack-in that specifies :main-opts, it will make the Clojure CLI to add main opts and Calva will then not override these by adding -m ... to the command line. This means that an alias that specify :main-opts must result in an nREPL server being started, or else Calva won't have a server to connect to. Calva won't further analyze this, but will just warn you at Jack-in.

      If you don't know if an alias starts an nREPL server or not, by all means, try it, if you have reasons for using that alias. You will notice if Jack-in works or not. If it doesn't work, you will need to run without that alias, or fix what happens when that alias is used so that an nREPL server is started. See https://nrepl.org/nrepl/usage/server.html about ways to do this.

      ","boost":7},{"location":"connect/#command-not-found-errors-when-jacking-in","title":"Command Not Found Errors When Jacking In","text":"

      If you get command not found error when Calva tries to start your project, and you know you have the command installed, it's probably because VS Code starts from an environment where the command is not on the $PATH. It can look like so:

      lein update-in :dependencies conj '[nrepl,\"0.8.3\"]' -- update-in :plugins conj '[cider/cider-nrepl,\"0.25.8\"]' -- update-in '[:repl-options,:nrepl-middleware]' conj '[\"cider.nrepl/cider-middleware\"]' -- repl :headless\n/bin/sh: lein: command not found\nJack-in process exited. Status: 127\n

      The fix is to always start VS Code from the command line:

      $ code\n

      You might need to first run the Shell Command: Install code command in PATH.

      This will also make sure your REPL has access to the environment you probably expect it to have access to. See below.

      ","boost":7},{"location":"connect/#go-to-definition-not-working-for-java-definitions","title":"Go to Definition Not Working for Java Definitions","text":"

      On some systems, the Java source may not be installed along with the JDK. The source must be present on your system in order to navigate to Java definitions. See this comment for more details.

      ","boost":7},{"location":"connect/#environment-variables-are-not-readable-from-repl","title":"Environment Variables Are Not Readable From REPL","text":"

      If you've added environment variables in your OS, such as in your ~/.bashrc file (Linux), in order for them to be read in a REPL created by Calva's jackin command, VS Code must be started from a shell where the environment variables are defined. For example, if you can open a bash terminal and run echo $SOME_VAR and see the value there, then open VS Code from that terminal with code <project path>.

      ","boost":7},{"location":"connect/#viewing-the-communication-between-nrepl-and-calva","title":"Viewing the Communication Between nREPL and Calva","text":"

      It may be helpful to view the messages sent between nREPL and Calva when troubleshooting an issue related to the REPL. See how to do that here.

      ","boost":7},{"location":"contribute/","title":"Contribute to Calva","text":"

      There are many ways to contribute:

      • Become a sponsor
      • Give us feedback:
      • File issues
      • Talk to us via the #calva channel at the Clojurians Slack (use the latter link to grab an invite)
      • Provide PRs, see the Calva wiki about How to Hack on Calva
      • Give us feedback, preferably via that #calva channel
      • Cheer us on. (Same channel)
      • Help us test things like reported issues, new features, etcetera. See Testing VSIX Packages and Smoke Testing
      • Make tutorials, write blog articles, spread the word
      • Star the Calva repository
      • Help us help beginners with Calva and Clojure, on Slack as well as IRL and wherever.

      Be creative!

      "},{"location":"contribute/#please-star-the-calva-repo","title":"Please star the Calva repo!","text":"

      Happy Coding! \u2764\ufe0f

      "},{"location":"custom-commands/","title":"Custom REPL Commands","text":"

      Calva supports configuration of custom command snippets that you can evaluate in the REPL at will. This is useful if your workflow has you repeatedly evaluating a particular piece of code. There are two ways to use these:

      1. You can use the setting calva.customREPLCommandSnippets to configure it. Then either bind keyboard shortcuts to them or use the command Run Custom REPL Command to access it. The command will give you a menu with the snippets you have configured.
      2. You can bind a keyboard shortcut directly to a custom command snippet by inlining it in the shortcut definition. See Binding Keyboard Shortcuts

      Joyride

      For some use cases you might be better served by/want to combine these with using the VS Code Extension API, and that of Calva, or any other extension, through Joyride.

      The calva.customREPLCommandSnippets is an array of objects with the following fields (required fields in bold):

      • name: The name of the snippet as it will appear in the picker menu
      • snippet: The code that will be evaluated
      • key: A key can be used to reference the snippet from Run Custom REPL Command keyboard shortcut arguments. It will also be used in the quick-pick menu.
      • ns: A namespace to evaluate the command in. If omitted the command will be executed in the namespace of the current editor.
      • repl: Which repl session to use for the evaluation. Either \"clj\" or \"cljs\". Omit if you want to use the session of the current editor.
      • evaluationSendCodeToOutputWindow: (default true) Whether the evaluated code should be echoed to the Output/REPL window.

      There are also substitutions available, which will take elements from the current state of Calva and splice them in to the text of your command before executing it. They are

      • $line: Current line number in editor
      • $column: Current column number in editor
      • $file: Full name of the current file edited
      • $file-text: The text of the current file edited
      • $ns: The namespace used for evaluating the command
      • $editor-ns: The namespace of the editor from which the command was run
      • $selection: The currently selected text
      • $current-form: The text of the current form
      • $current-pair: The text of the current pair if in a binding, otherwise empty string
      • $enclosing-form: The text of the current enclosing form
      • $top-level-form The text of the current top level form
      • $current-fn: The sexpr/form at call position in the current list, e.g. str with (defn foo [] (str \"foo\" \"bar|\"))
      • $top-level-defined-symbol: The second symbol of the top level form, e.g. foo with (defn foo [] (str \"foo\" \"bar|\"))
      • $head: The text between the start of the current list to the cursor
      • $tail: The text between the cursor and the end of the current list
      ","boost":4},{"location":"custom-commands/#user-and-workspace-settings","title":"User and Workspace Settings","text":"

      Settings from your User (global) level and the workspace are merged.

      With these User settings:

          \"calva.customREPLCommandSnippets\": [\n        {\n            \"name\": \"Call Current Form\",\n            \"key\": \"c\",\n            \"snippet\": \"($current-form)\"\n        },\n        {\n            \"name\": \"Call Current Top Level Form\",\n            \"key\": \"t\",\n            \"snippet\": \"($top-level-form)\"\n        },\n        {\n            \"name\": \"CLJ Test Top Level Defined Symbol\",\n            \"repl\": \"clj\",\n            \"snippet\": \"(clojure.test/test-var #'$top-level-defined-symbol)\"\n        },\n        {\n            \"name\": \"CLJS Test Top Level Defined Symbol\",\n            \"repl\": \"cljs\",\n            \"snippet\": \"(cljs.test/test-var #'$top-level-defined-symbol)\",\n            \"key\": \"tab\"\n        }\n    ],\n

      And these Workspace settings:

          \"calva.customREPLCommandSnippets\": [\n        {\n            \"name\": \"Remount CLJS App\",\n            \"key\": \"r\",\n            \"repl\": \"cljs\",\n            \"ns\": \"example.app\",\n            \"snippet\": \"(start)\"\n        }\n    ],\n

      Issuing Run Custom REPL Command will then render this VS Code menu:

      The default keyboard shortcut for the command is ctrl+alt+space space. (Beware: on MacOS it may conflict with the default shortuct for Input Sources - Select next source in Input menu.)

      ","boost":4},{"location":"custom-commands/#binding-keyboard-shortcuts","title":"Binding Keyboard Shortcuts","text":"

      There are four ways to bind shortcuts to custom commands:

      1. Use a predefined key shortcut. These are predefined as ctrl+alt+space <something>, where <something> is one of:
        • The digits 0 through 9
        • The English letters a through z
        • Arrow keys right, left, up, or down
        • One of tab, backspace, ,, ., or -
      2. Bind calva.runCustomREPLCommand to a shortcut with whatever code you want to evaluate in the args slot. You have access to the substitution variables here as well.
      3. Bind calva.runCustomREPLCommand to a keyboard shortcut referencing the key of one of your calva.customREPLCommandSnippets. (If not using any of the keys mentioned in 1.)
      4. Bind calva.runCustomREPLCommand to a shortcut with a customREPLCommandSnippets in the args slot. You have access to the substitution variables here as well.

      Here's an example shortcut entry for the 4th option:

          {\n        \"key\": \"ctrl+cmd+u alt+enter\",\n        \"command\": \"calva.runCustomREPLCommand\",\n        \"args\": {\n            \"ns\": \"user\",\n            \"snippet\": \"$current-form\",\n        }\n    },\n

      This would evaluate the current form in the user namespace. Please note that this Custom REPL Command will not show up in the custom commands menu mentioned above.

      ","boost":4},{"location":"custom-commands/#custom-repl-hover-snippets","title":"Custom REPL Hover Snippets","text":"

      Calva supports custom snippets that will display their result inside the tooltip. They will only work when connected to a repl, since they eval code in it. This is mostly useful for tooling authors that want to integrate with calva. Be careful with these, since they will be executed anytime Calva displays a tooltip. So they should be fast and probably not have any side effects.

      The hover snippets accept the same inputs as the Custom REPL Commands, except for the hotkey:

          \"calva.customREPLHoverSnippets\": [\n        {\n            \"name\": \"eval text on hover\",\n            \"repl\": \"clj\",\n            \"ns\": \"example.app\",\n            \"snippet\": \"(str \\\"$hover-text\\\")\"\n        }\n    ]\n

      With this setting anything the mouse is over will also be shown inside its tooltip. There are now also hover- versions of most substitutions. Those currently only work inside the hover snippets.

      ","boost":4},{"location":"custom-commands/#configedn","title":"config.edn","text":"

      :customREPLCommandSnippets and :customREPLHoverSnippets can be also be configured in your user config at .config/calva/config.edn realative to your system home directory, or .calva/config.edn relative to the workspace root. Three things to note about this:

      1. None of these two configs get synced through VS Code Settings Sync.
      2. Changes to workspace .calva/config.edn will be automatically noticed by Calva, and refresh the config. This will not happen with the user config file.
      3. Internally in Calva, the settings are keyed on the snippet :name entry, and if you change the name, the old entry won't be removed until the VS Code window is reloaded.

      As for 2.: There is a command Calva: Refresh REPL snippets from User config.edn.

      There is also a command to open the User config.edn, for convenience: Calva: Open REPL snippets User config.edn. This command creates the file if it doesn't previously exist.

      ","boost":4},{"location":"custom-commands/#snippets-inside-deps","title":"Snippets Inside Deps","text":"

      A new experimental feature lets library authors ship snippets inside their jar files. These accept the same options as above but should be placed in \"resources/calva.exports/config.edn\" inside the jar.

      {:customREPLCommandSnippets\n [{:name \"edn test\"\n   :key \"a\"\n   :snippet ($current-form)}]\n :customREPLHoverSnippets\n [{:name \"edn hover\"\n   :snippet (str \"$hover-tex\")}\n  {:name \"edn hover show val\"\n   :snippet (str \"### EDN show val\\n```clojure\\n\" (pr-str (eval (symbol (str \"$ns\" \"/\" \"$hover-top-level-defined-symbol\")))) \"\\n```\")}]}\n
      ","boost":4},{"location":"customizing-jack-in-and-connect/","title":"Customize Jack-in and Connect","text":"

      Since Jack-in and connect both are about connecting the REPL, and only differ in how the REPL is started, many settings and configuration points are shared between the two concepts. A major customization point is Custom Connect Sequences, which are relevant for both Jack-in and Standalone Connect scenarios.

      This page lists some more Jack-in and Connect configuration options.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#auto-evaluate-code-on-connect","title":"Auto-evaluate Code on Connect","text":"

      You can have Calva evaluate code whenever a REPL has been connected via the calva.autoEvaluateCode.onConnect setting. It has two entries clj and cljs:

      • clj: \"Code to evaluate when the Clojure REPL has been connected.
        • The default is code that refer in the repl-requires/REPL utilities (like source, doc, etcetera). (Note that there is also a command to do this on demand.).
        • Overriding the default replaces it. If you want to add code to be evaluated on connect this way, and keep the behaviour of auto-refering REPL utilities, you need to provide code for the latter (copy/pasting the default code will do). See also note below about concatenation of configurations.
        • The code will be evaluated before the afterCLJReplJackInCode in any connect sequence used.
      • cljs: Code to evaluate when the ClojureScript REPL has been connected.
        • The default is code that refer in the repl-requires/REPL utilities (like source, doc, etcetera). (Note that there is also a command to do this on demand.).
        • Same deal with overriding the default as with clj.

      Set either of these to null to disable the feature for that REPL type. (The Settings linter will complain, but it works.)

      For Clojure this is in addition to afterCLJReplJackInCode

      There are two mechanisms for evaluating code when a Clojure REPL is connected. The afterCLJReplJackInCode setting of custom connect sequences, and this calva.autoEvaluateCode.onConnect.clj setting. There is no fundamental difference between them. This one has a default function of auto-refering in the Clojure REPL utilities. And it will be run before the connect sequence after-Jack-in code.

      All configured code is concatenated

      If you configure this both in User/global settings and in a Workspace, the workspace configured code will be concatenated on the user level code. Meaning both code snippets will be evaluated, first the User level code, then the Workspace level code. Also null disables the feature:

      • If you use null in the User level code, you will disable the onConnect code evaluation for all workspaces that do not configure code for this.
      • If you configure code on the User level it will be evaluated in all workspaces, except those that disable the feature by configuring null.
      ","boost":7},{"location":"customizing-jack-in-and-connect/#auto-evaluate-code-at-filenamespace-loadevaluation","title":"Auto-evaluate Code at file/namespace load/evaluation","text":"

      You can also make Calva auto-evaluate code when a file has been loaded in the REPL (via the Calva command for loading files). You add code for this via the calva.autoEvaluateCode.onFileLoaded setting. Like with onConnect you provide code for clj and cljs separately.

      • Note that custom commands substitutions are in play here as well.
      • Calva's does not provide defaults for this setting.
      • Merging works the same as with onConnect.
      ","boost":7},{"location":"customizing-jack-in-and-connect/#customizing-connect","title":"Customizing Connect","text":"

      If there is an nRepl port file, Calva will use it and not prompt for host:port when connecting. You can make Calva prompt for this by setting the boolean config calva.autoSelectNReplPortFromPortFile to false.

      With the setting calva.autoConnectRepl you can make Calva automatically connect the REPL if there is an nRepl port file present when the project is opened.

      With this and the below mentioned auto-select options you can make connect a prompt-less experience. See: Connect Sequences.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#options-for-the-connect-command","title":"Options for the Connect Command","text":"

      The calva.connect command takes an optional options argument defined like so:

        options?: {\n    host?: string;\n    port?: string;\n    connectSequence?: string | ReplConnectSequence;\n    disableAutoSelect?: boolean;\n  }\n

      Where ReplConnectSequence is a Connect Sequences. If you provide a string it needs to match against a built-in or custom connect sequence. With disableAutoSelect you can force the connect menus to be provided even if a custom connect sequence is set to be autoSelected.

      You can provide these options from keyboard shortcuts or from Joyride scripts.

      Here's a keyboard shortcut for connecting to a running REPL bypassing any connect sequence with autoSelectForConnect.

          {\n        \"command\": \"calva.connect\",\n        \"args\": {\"disableAutoSelect\": true},\n        \"key\": \"ctrl+alt+c shift+c\",\n    },\n

      A Joyride command for connecting to a REPL on port 55555, without being asked for project type:

      (vscode/commands.executeCommand \"calva.connect\" (clj->js {:port \"55555\" :connectSequence \"Generic\"}))\n
      ","boost":7},{"location":"customizing-jack-in-and-connect/#customizing-jack-in","title":"Customizing Jack-in","text":"

      The main mechanism for customizing your Jack-in, including automating menu selections, and custom CLJS REPL types is Custom Connect Sequences.

      There are also these settings:

      • calva.jackInEnv: An object with environment variables that will be added to the environment of the Jack-in process.
      • calva.myCljAliases: An array of deps.edn aliases not found in the project file. Use this to tell Calva Jack-in to launch your REPL using your user defined aliases.
      • calva.myLeinProfiles: An array of Leiningen profiles not found in project.clj. Use this to tell Calva Jack-in to launch your REPL using your user defined profiles.
      • calva.openBrowserWhenFigwheelStarted: For Legacy Figwheel only. A boolean controlling if Calva should automatically launch your ClojureScript app, once it is compiled by Figwheel. Defaults to true.
      • calva.depsEdnJackInExecutable: A string which should either be clojure or deps.clj, or clojure or deps.clj (default). It determines which executable Calva Jack-in should use for starting a deps.edn project. With this setting at its default, clojure or deps.clj, Calva will test if the clojure executable works, and use it if it does, otherwise deps.clj will be used, which is bundled with Calva.
      • calva.jackInDependencyVersions: See below

      Note

      When processing the calva.jackInEnv setting you can refer to existing ENV variables with ${env:VARIABLE}.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#jack-in-dependency-versions","title":"Jack-in Dependency Versions","text":"

      Calva Jack-in injects the following dependencies in order for the REPL session to support IDE features

      • nrepl: nREPL is the wonderful piece of software that gives Calva a structured and extensible connection to the REPL in your Clojure and ClojureScript projects.
      • cider-nrepl: cider-nrepl is middleware that extends the nREPL connection with all sorts of nice stuff that Calva uses to give you a delightful IDE experience.
      • cider/piggieback: Piggieback is used to create nREPL sessions in ClojureScript projects. (Not with shadow-cljs projects though, which provides its own middleware for this.)

      The versions used are configurable via the VS Code settings calva.jackInDependencyVersions.

      Java 1.8 compatible versions

      The default dependency versions are not compatible with Java 1.8. If your project needs that version of Java you can use these settings in your Workspace .vscode/settings.json:

      \"calva.jackInDependencyVersions\": {\n  \"nrepl\": \"1.0.0\",\n  \"cider-nrepl\": \"0.28.5\",\n  \"cider/piggieback\": \"0.5.3\"\n}\n
      ","boost":7},{"location":"customizing-jack-in-and-connect/#options-for-the-jack-in-command","title":"Options for the Jack-in Command","text":"

      The calva.jackIn command takes an optional options argument defined like so:

        options?: {\n    connectSequence?: string | ReplConnectSequence;\n    disableAutoSelect?: boolean;\n  }\n

      Where ReplConnectSequence is a Connect Sequences. If you provide a string it needs to match against a built-in or custom connect sequence. With disableAutoSelect you can force the jack-in menus to be provided even if a custom connect sequence is set to be autoSelected.

      You can provide these options from keyboard shortcuts or from Joyride scripts.

      Here's a keyboard shortcut for connecting to a running REPL bypassing any connect sequence with autoSelectForConnect.

          {\n        \"command\": \"calva.jackIn\",\n        \"args\": {\"disableAutoSelect\": true},\n        \"key\": \"ctrl+alt+c shift+j\",\n    },\n

      A Joyride command for starting a deps.edn REPL for a project in the root of the workspace.

      (vscode/commands.executeCommand\n \"calva.jackIn\"\n (clj->js {:connectSequence {:projectType \"deps.edn\"\n                             :projectRootPath [\".\"]}}))\n

      It will prompt for any aliases it finds in the deps.edn file.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#starting-the-repl-from-application-code","title":"Starting the REPL from application code?","text":"

      If your project is setup so that the REPL server is started by the application code, you will need to get the cider-nrepl middleware in place. See the cider-nrepl docs about embedding nREPL in your application.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#auto-select-project-type-and-project-root","title":"Auto-select Project Type and Project Root","text":"

      You can make both Jack-in and Connect stop prompting you for project type and project root path in projects where you always want to use the same. See Connect Sequences.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#project-roots-search-globing","title":"Project roots search globing","text":"

      When searching for project roots in your workspace, Calva will glob for all files matching project.clj, deps.edn, or shadow-cljs.edn. This is done using VS Code's workspace search engine, and is very efficient. However, in a large monorepo, it is still a substantial task. In order to not waste resources Calva will exclude any directories in the setting calva.projectRootsSearchExclude.

      Exclude entry globs

      Each entry is a partial glob and will be part of a resulting glob of the form **/{glob1,glob2,...,globN}. This means that all directories in the workspace matching an entry will be excluded, regardless of where in the workspace they reside.

      ","boost":7},{"location":"customizing-jack-in-and-connect/#viewing-the-communication-between-nrepl-and-calva","title":"Viewing the Communication Between nREPL and Calva","text":"

      It may be helpful to view the messages sent between nREPL and Calva when troubleshooting an issue related to the REPL. See how to do that here.

      ","boost":7},{"location":"customizing/","title":"Customizing Calva","text":"

      Don't like the defaults? On this page we can collect some of the customizations that people have done, and maybe write a thing or two about it some day.

      Tip for VS Code newcomers: The search box in Settings is your friend. Also, some Calva settings are more complex than the Settings UI can handle. VS Code will then show you a link to settings.json. And VS Code's built-in json extension is awesome. To add settings for Calva's Pretty Printing, for example, search for \u201dprettyprint\u201d in VS Code Settings and follow the link to settings.json. Start typing \u201dcalvapretty\u201d until auto-complete suggests calva.prettyPrintingOptions. Press ENTER and VS Code will fill in these defaults:

          \"calva.prettyPrintingOptions\": {\n        \"enabled\": true,\n        \"printEngine\": \"pprint\",\n        \"width\": 40\n    },\n
      "},{"location":"customizing/#clojure-defaults","title":"Clojure Defaults","text":"

      Calva sets some VS Code settings for all Clojure files. Some of these are needed for Calva to function correctly, which should not be tampered with unless you really know what you are doing, and some of them are convenient defaults. If you add a setting to your settings.json and accept the snippet help you get when you type \"[clojure]\", you will get the Calva defaults pasted:

            \"[clojure]\": {\n        \"editor.wordSeparators\": \"\\t ()\\\"':,;~@#$%^&{}[]`\",\n        \"editor.autoClosingBrackets\": \"always\",\n        \"editor.autoClosingOvertype\": \"always\",\n        \"editor.autoClosingQuotes\": \"always\",\n        \"editor.formatOnType\": true,\n        \"editor.autoIndent\": \"full\",\n        \"editor.formatOnPaste\": true,\n        \"editor.matchBrackets\": \"never\",\n        \"editor.guides.indentation\": false,\n        \"editor.parameterHints.enabled\": false,\n        \"editor.unicodeHighlight.allowedCharacters\": {\n          \"\u00a0\": true,\n          \"\ua789\": true\n        },\n        \"editor.foldingStrategy\": \"indentation\"\n      }\n

      editor.wordSeparators

      The above editor.wordSeparators setting establish Clojure word boundaries. E.g - is considered to be part of words. This affects what happens when double-clicking symbols and other things. If you want to include - or something else as a word boundary, just add it to the setting.

      editor.foldingStrategy

      To use the folding levels provided by clojure-lsp, set this to auto. Though at the time of this writing there is a bug in clojure-lsp making folding stop working with this setting.

      "},{"location":"customizing/#pretty-printing","title":"Pretty Printing","text":"

      Calva's pretty printing mode can be configured a bit. See Pretty Printing.

      "},{"location":"customizing/#calva-highlight","title":"Calva Highlight","text":"

      This is highly customizable. See Syntax highlighting

      "},{"location":"customizing/#color-customizations","title":"Color customizations","text":"

      Calva defines a set of themable colors which can be provided by the user using workbench.colorCustomizations.

          \"workbench.colorCustomizations\": {\n        \"calva.inlineErrorForegroundColor\": \"#ff0000\",\n        \"calva.inlineForegroundColor\": \"#ff9000\"\n    }\n

      "},{"location":"customizing/#automatic-parameter-hints-poppup","title":"Automatic Parameter Hints Poppup","text":"

      Calva has helpful parameter hints to aid when typing function calls. They look like so:

      To have the hints automatically pop up when you are typing, set editor.parameterHints.enabled to true in the above [clojure] scoped setting. (To call them up on demand the default VS Code keybindings are cmd+shift+space on Mac and ctrl+shift+space on Linux/Windows.)

      "},{"location":"customizing/#code-formatting","title":"Code Formatting","text":"

      See Formatting for information on how to configure this.

      "},{"location":"customizing/#jack-in-and-connect","title":"Jack-in and Connect","text":"

      Jack-in and Connect are very customizable through Custom Connect Sequences.

      See also Customizing Jack-in and Connect

      "},{"location":"customizing/#key-bindings","title":"Key bindings","text":"

      Most of Calva's commands have default keybindings. They are only defaults, though, and you can change keybindings as you wish. To facilitate precision in binding keys Calva keeps some when clause contexts updated.

      "},{"location":"customizing/#when-clause-contexts","title":"When Clause Contexts","text":"

      The following contexts are available with Calva:

      • calva:keybindingsEnabled: a master switch that you find in the settings
      • paredit:keyMap: strict, original, or none from the corresponding Calva setting (see Paredit)
      • calva:connected: true when Calva is connected to a REPL (there is also calva:connecting || calva:launching)
      • calva:outputWindowActive: true when the Output/REPL window has input focus
      • calva:replHistoryCommandsActive: true when the cursor is in the Output/REPL window at the top level after the last prompt
      • calva:replWindowSubmitOnEnter: true when the cursor is adjacent after the last top level form in the Output/REPL window
      • calva:cursorInString: true when the cursor/caret is in a string or a regexp
      • calva:cursorInComment: true when the cursor is in, or adjacent to a line comment
      • calva:cursorBeforeComment: true when the cursor is adjacent before a line comment
      • calva:cursorAfterComment: true when the cursor is adjacent after a line comment
      • calva:cursorAtStartOfLine: true when the cursor is at the start of a line including any leading whitespace
      • calva:cursorAtEndOfLine: true when the cursor is at the end of a line including any trailing whitespace
      "},{"location":"customizing/#some-custom-bindings","title":"Some Custom Bindings","text":"

      Here is a collection of custom keybindings from here and there.

      • Replace all Calva ctrl+alt+... key bindings with ctrl+shift+..., for keyboards lacking alt key: this gist
      • Replace the default Calva \u201dprefix\u201d, ctrl+alt+c to just alt+v: WebWItch's keybindings.json (Please note, that alt+v does not work for some locales, but for when it works it is much less clunky than the default prefix).
      • Here the Calva key is switched for ctrl+,: manas_marthi's keybindings
      • Keybindings for Emacs users
      • Use modifiers and WASD keys for movement and manipulation: isaksky's keybindings

      Are you a vim extension user? See: Using with VIM extension.

      "},{"location":"customizing/#move-by-word","title":"Move by word","text":"

      By default Calva changes the move-by-word key bindings to move by sexpr/form when the cursor is in structural Clojure code. Within line comments the editor default word movement is active.

      If you want the VS Code default word movement shortcuts, use these settings:

          {\n        \"key\": \"ctrl+right\",\n        \"win\": \"ctrl+right\",\n        \"mac\": \"alt+right\",\n        \"command\": \"cursorWordRight\"\n    },\n    {\n        \"key\": \"ctrl+left\",\n        \"win\": \"ctrl+left\",\n        \"mac\": \"alt+left\",\n        \"command\": \"cursorWordLeft\"\n    },\n    {\n        \"key\": \"ctrl+right\",\n        \"mac\": \"ctrl+right\",\n        \"win\": \"alt+right\",\n        \"command\": \"paredit.forwardSexp\",\n        \"when\": \"calva:keybindingsEnabled && editorTextFocus && editorLangId == 'clojure' && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+left\",\n        \"mac\": \"ctrl+left\",\n        \"win\": \"alt+left\",\n        \"command\": \"paredit.backwardSexp\",\n        \"when\": \"calva:keybindingsEnabled && editorTextFocus && editorLangId == 'clojure' && paredit:keyMap =~ /original|strict/\"\n    }\n

      Use it as an inspiration for customizing things to your own liking. \ud83d\ude04

      "},{"location":"customizing/#wrap-using-like-cursive","title":"Wrap using (, [, { (like Cursive)","text":"

      Something I use in IntelliJ/Cursive is the ability to select an expression and hit one of (, [, { to wrap it. And after wrapping the expression I don't want the selection anymore, so if I were wrapping (foo) then I would want to get ( | (foo)) where | would be my cursor.

      Here's how you can make this work with Calva Paredit: Update all of the Paredit: Wrap Around ... commands so that their respective shortcuts are the wrappers themselves and update the when clause to include editorHasSelection (otherwise when you open a paren the next expression would get slurped in).

      The change would look like this in your keybindings.json:

          {\n        \"key\": \"shift+9\",\n        \"command\": \"paredit.wrapAroundParens\",\n        \"when\": \"editorTextFocus && editorHasSelection && !editorReadOnly && editorLangId =~ /clojure|scheme|lisp/ && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"[\",\n        \"command\": \"paredit.wrapAroundSquare\",\n        \"when\": \"editorHasSelection && editorTextFocus && !editorReadOnly && editorLangId =~ /clojure|scheme|lisp/ && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"shift+[\",\n        \"command\": \"paredit.wrapAroundCurly\",\n        \"when\": \"editorHasSelection && editorTextFocus && !editorReadOnly && editorLangId =~ /clojure|scheme|lisp/ && paredit:keyMap =~ /original|strict/\"\n    }\n
      "},{"location":"debugger/","title":"Debugger","text":"

      Calva comes with a powerful expression-based debugger, inspired by Cider's debugger, and using the same underlying library, cider-nrepl. We hope you love it!

      Note

      The debugger currently does not support ClojureScript. Calva's debugger utilizes cider-nrepl for debugging. See this Cider issue for more information.

      "},{"location":"debugger/#features","title":"Features","text":""},{"location":"debugger/#current","title":"Current","text":"
      • Instrument functions for debugging with ctrl+alt+c i
      • Instrument a function manually with #dbg (as opposed to the above command)
      • Set individual breakpoints with #break
      • Continue to next breakpoint
      • Step over form
      • Step into form
      • Step out of form
      • Evaluate code in the debug context
      • See variable values in the debugger side pane
      • See variable values on hover in the editor
      "},{"location":"debugger/#future-goals","title":"Future goals","text":"
      • See structured variables in the debugger side pane (currently maps and collections are just shown as strings)
      • Inject values into the debug context
      • Trace: continue, printing expressions and their values
      "},{"location":"debugger/#dependencies","title":"Dependencies","text":"

      The debugger itself relies pretty heavily on cider-nrepl, as do other parts of Calva. This library is loaded as a dependency when you use Calva Jack-in. If you are not using Calva Jack-in, you can add these dependencies in your project definition or user profile. See the Calva Jack-in guide for more information.

      "},{"location":"debugger/#using-the-debugger","title":"Using the Debugger","text":"

      If you're new to Clojure or expression-based debuggers, this debugger may function differently than what you're used to. Instead of placing breakpoints in the side margin and then hitting F5 to start debugging, you instead use Clojure reader tags, #break and #dbg, to denote breakpoints anywhere in a Clojure form. When you evaluate a call to a function that has been evaluated with that reader tag, the debugger will start when execution reaches the first breakpoint. There's also a convenience command to instrument functions. Read below about both options.

      Note

      The debugger is not configured via a launch.json file, and is not started in the same way as you may be used to when working with other languages in VS Code. The debugger is used by way of the REPL. If you are new to Clojure, please visit the Getting Started section of the documentation and get familiar with evaluating code using the REPL before using the debugger.

      "},{"location":"debugger/#instrumenting-a-function","title":"Instrumenting a Function","text":"

      You can instrument a top level function for debugging with ctrl+alt+c i. This places invisible breakpoints throughout the function where pausing makes sense. When you evaluate a call to this function, the debugger will start and execution will pause at the first breakpoint. Annotations show the value of the form at the cursor.

      A border is placed around the definition of the instrumented function and its references to show that it's instrumented. You can remove instrumentation by evaluating the function again normally, such as with alt+enter.

      "},{"location":"debugger/#setting-breakpoints-with-break","title":"Setting Breakpoints with #break","text":"

      You can insert a breakpoint manually into any code by placing a #break in front of the form where you want execution to pause, and then evaluating the top level form with alt+enter. When you evaluate a call to this code the VS Code debugger will start, the cursor will move to right after the form that's preceded by #break, and the line will be highlighted to show execution is paused there.

      Note

      Code will be executed up to and including the form after the breakpoint.

      "},{"location":"debugger/#conditional-breakpoints","title":"Conditional Breakpoints","text":"

      You can set conditional breakpoints by adding metadata before the form that the #break applies to.

      (defn print-nums [n]\n  (dotimes [i n]\n    #break ^{:break/when (= i 7)} ;; This breakpoint will only be hit when i equals 7\n    (prn i)))\n
      "},{"location":"debugger/#instrumenting-a-form-with-dbg","title":"Instrumenting a Form with #dbg","text":"

      Adding #dbg before a form then evaluating the form with alt+enter will instrument the form. This has the same effect as using the instrument command.

      "},{"location":"debugger/#evaluating-code-in-the-paused-context","title":"Evaluating Code in the Paused Context","text":"

      When execution is paused at a breakpoint, you can evaluate code in that context. This can be done in the editor or in the REPL window, as usual.

      "},{"location":"debugger/#viewing-variable-values","title":"Viewing Variable Values","text":"

      While debugging, you can view the values of variables in VS Code's debugger side pane. You can also view values by hovering over the variables in the editor.

      Metadata not available

      The variable viewer does not have access to any metadata attached to the variable values.

      "},{"location":"debugger/#viewing-the-call-stack","title":"Viewing the Call Stack","text":"

      While debugging, you can view the call stack in VS Code's call stack side pane. Clicking the stack frames will show the related line of code in an editor.

      Note

      You may only see one stack frame in the call stack side pane, as the change for adding additional frames was rolled back due to an issue. You can follow the change for this at #1150.

      "},{"location":"debugger/#stepping-commands","title":"Stepping Commands","text":"

      You can use VS Code's debugger UI to advance execution while debugging.

      Note

      Clicking restart does nothing, since this functionality does not make sense for our debugger.

      • Continue - Continues without stopping for the current breakpoint
      • Step over - Continues to the next breakpoint
      • Step in - Steps in to the function about to be called. If the next breakpoint is not around a function call, does the same as next. Note that not all functions can be stepped in to - only normal functions stored in vars, for which cider-nrepl can find the source. You cannot currently step in to multimethods, protocol functions, or functions in clojure.core (although multimethods and protocols can be instrumented manually).
      • Step out - Steps to the next breakpoint that is outside of the current sexp
      • Restart - Does nothing. To restart debugging, you can hit disconnect or continue execution through the final result, then re-evaluate the expression that started the debugger.
      • Disconnect - Disconnects the debugger
      "},{"location":"debugger/#caveats","title":"Caveats","text":""},{"location":"debugger/#breakpoints-in-looprecur","title":"Breakpoints in loop/recur","text":"

      One construct where the debugger is limited is loop/recur. As recur always has to appear in a tail-position inside a loop or a fn and the debugger uses macros to interleave breakpoints in the forms, it might happen that a recur no longer appears in a tail position. In that case we have to avoid setting up the breakpoint. An example of such a case is:

      (loop [i 0]\n  #break\n  (when (< i 10)\n    (println i)\n    (recur (inc i))))\n

      Here the breakpoint is exactly in front of a form that contains as its last expression a recur which is wrapped in a loop. This breakpoint has no effect. This does not mean you cannot use the debugger with loop, it just means you have to set your debug statements more carefully.

      "},{"location":"debugger/#loading-the-file-and-eval-on-save","title":"Loading the File and \"Eval On Save\"","text":"

      When you load a file, any breakpoints that were previously set in functions will be unset. If you have the \"Eval On Save\" setting enabled, your file is also loaded with each save, therefore saving the file will remove breakpoints previously set.

      "},{"location":"debugger/#clashes-with-emacscider-debugger","title":"Clashes with Emacs/CIDER debugger","text":"

      When both CIDER and Calva is connected to the same REPL, stepping the debugger in one editor may have it stop on the breakpoint in the other one. Reported here: https://github.com/BetterThanTomorrow/calva/issues/2496

      "},{"location":"debugger/#troubleshooting","title":"Troubleshooting","text":""},{"location":"debugger/#debugger-hangs-when-stepping-over-infinite-seqs","title":"Debugger hangs when stepping over infinite seqs","text":"

      This is because the debugger tries to evaluate the form when it's stepped over, and if clojure.core/*print-length* is set to nil as it is by default, evaluation will never complete. If you want to debug a form with an infinite seq, make sure to set *print-length* beforehand. For example:

      (set! *print-length* 3)\n;; Or, to be more precise\n(set! clojure.core/*print-length* 3)\n

      Calva does not set this for you during debug mode, instead leaving it up to you to decide the value.

      "},{"location":"debugger/#my-breakpoint-isnt-being-hit","title":"My breakpoint isn't being hit","text":"

      It's likely that your breakpoint is in a place that cider-nrepl does not see as an appropriate place to break execution. For example, if you put a breakpoint before a literal number, it will not be hit, because there's no need to show the value of a literal.

      (defn simple [x]\n  (+ 1 #break 1)) ;; This breakpoint will not be hit\n

      Another possible issue is that you're loading the file again after setting breakpoints, which unsets them. See Loading the File and \"Eval On Save\" under Caveats.

      "},{"location":"debugger/#my-breakpoint-in-a-test-isnt-being-hit","title":"My breakpoint in a test isn't being hit","text":"

      If you're using the test commands like \"Run current test\" to run your tests, breakpoints will not be hit. This is because Calva loads the file before running the tests to make sure the latest version of test code is being run, and when the file is loaded, breakpoints are unset.

      If you want a breakpoint to work within the test, evaluate the test form with a breakpoint tag in it, then call the test directly.

      "},{"location":"debugger/#no-reader-function-for-tag-error","title":"\"No reader function for tag\" error","text":"

      If you get an error like this, it's likely that you connected to a REPL instead of jacking in, and you don't have the proper dependencies loaded in your REPL. You can run the command \"Copy Jack-in Command Line to Clipboard\" to see what command would be run if you jacked in.

      Most importantly, make sure you have cider/cider-nrepl as a dependency, and cider.nrepl/cider-middleware as middleware loaded in your REPL. For example, this is a jack-in command line for a deps.edn project:

      clojure -Sdeps '{:deps {nrepl/nrepl {:mvn/version,\"0.8.3\"},cider/cider-nrepl {:mvn/version,\"0.25.8\"}}}' -m nrepl.cmdline --middleware \"[cider.nrepl/cider-middleware]\"\n
      "},{"location":"debugger/#passing-options-to-the-repl-jvm","title":"Passing options to the REPL JVM","text":"

      There are times when Clojure debugging tools are not enough or not right for the job. This is usually true when use an (open source) Java library and you want to set some breakpoints in Java code. For those cases and others, you need to start the JVM in debug mode.

      Typical use cases:

      • Change Java logger configuration for the REPL via java system properties: e.g -Dorg.slf4j.simpleLogger.defaultLogLevel=TRACE
      • Enable JVM debugger, change VM memory size, etc.

      Calva supports passing environment variables via jackInEnv. You can set that option inside VSCode settings.json file.

      You can configure global settings.json file or a project wide version, inside <project-root>/.vscode/settings.json.

      Configuring the global option will impact all projects you work on using Calva, so be aware. See the documentation for settings.json for more information.

      The bellow snippet configures JAVA_TOOL_OPTIONS environment variable. We configure slf4j-simple logging level via a Java system property (-D) and JVM specific options (-X).

      NOTE: You can of course pass other env variables here.

      .vscode/settings.json

      {\n    \"calva.jackInEnv\": {\n        \"JAVA_TOOL_OPTIONS\": \"${env:JAVA_TOOL_OPTIONS} -Dorg.slf4j.simpleLogger.defaultLogLevel=TRACE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7896\"\n    }\n}\n

      Once you saved the file, the next time you Jack in the project, this variable is read by the JVM and the configuration is applied accordingly.

      You should see something like the message below in the Calva terminal output window:

      clojure -Sdeps '{:deps {nrepl/nrepl {:mvn/version,\"0.8.3\"},cider/cider-nrepl {:mvn/version,\"0.26.0\"}}}' -A:debug -m nrepl.cmdline --middleware \"[cider.nrepl/cider-middleware]\"\nPicked up JAVA_TOOL_OPTIONS:  -Dorg.slf4j.simpleLogger.defaultLogLevel=TRACE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7896\nListening for transport dt_socket at address: 7896\nnREPL server started on port 46691 on host localhost - nrepl://localhost:46691\n
      "},{"location":"emacs-keybindings/","title":"Emacs Keybindings","text":"

      Some keybindings to make it easier for Emacs users

      [\n    {\n        \"key\": \"ctrl+cmd+b\",\n        \"command\": \"paredit.backwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+alt+left\",\n        \"command\": \"-paredit.backwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"shift+cmd+]\",\n        \"command\": \"-workbench.action.nextEditor\"\n    },\n    {\n        \"key\": \"ctrl+shift+]\",\n        \"command\": \"paredit.barfSexpBackward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+right\",\n        \"command\": \"-paredit.barfSexpBackward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+[\",\n        \"command\": \"paredit.barfSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+left\",\n        \"command\": \"-paredit.barfSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+cmd+f\",\n        \"command\": \"paredit.forwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+alt+right\",\n        \"command\": \"-paredit.forwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+cmd+f\",\n        \"command\": \"-workbench.action.toggleFullScreen\"\n    },\n    {\n        \"key\": \"ctrl+shift+backspace\",\n        \"command\": \"-paredit.killSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"shift+cmd+k\",\n        \"command\": \"-editor.action.deleteLines\",\n        \"when\": \"textInputFocus && !editorReadonly\"\n    },\n    {\n        \"key\": \"ctrl+shift+0\",\n        \"command\": \"paredit.slurpSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+right\",\n        \"command\": \"-paredit.slurpSexpForward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+9\",\n        \"command\": \"paredit.slurpSexpBackward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+left\",\n        \"command\": \"-paredit.slurpSexpBackward\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+c ctrl+c\",\n        \"command\": \"calva.evaluateCurrentTopLevelForm\",\n        \"when\": \"calva:activated\"\n    },\n    {\n        \"key\": \"ctrl+alt+c space\",\n        \"command\": \"-calva.evaluateCurrentTopLevelForm\",\n        \"when\": \"calva:activated\"\n    },\n    {\n        \"key\": \"ctrl+x ctrl+e\",\n        \"command\": \"calva.evalCurrentTopLevelFormInREPLWindow\",\n        \"when\": \"calva:activated\"\n    },\n    {\n        \"key\": \"ctrl+alt+c ctrl+alt+space\",\n        \"command\": \"-calva.evalCurrentTopLevelFormInREPLWindow\",\n        \"when\": \"calva:activated\"\n    },\n    {\n        \"key\": \"ctrl+x ctrl+s\",\n        \"command\": \"workbench.action.files.save\"\n    },\n    {\n        \"key\": \"cmd+s\",\n        \"command\": \"-workbench.action.files.save\"\n    },\n    {\n        \"key\": \"cmd+s\",\n        \"command\": \"paredit.spliceSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+alt+s\",\n        \"command\": \"-paredit.spliceSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+cmd+k\",\n        \"command\": \"paredit.cutForwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+x right\",\n        \"command\": \"-paredit.cutForwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+cmd+backspace\",\n        \"command\": \"paredit.cutBackwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+shift+x left\",\n        \"command\": \"-paredit.cutBackwardSexp\",\n        \"when\": \"calva:activated && calva:pareditValid && paredit:keyMap =~ /original|strict/\"\n    },\n    {\n        \"key\": \"ctrl+1\",\n        \"command\": \"-workbench.action.openEditorAtIndex1\"\n    },\n    {\n        \"key\": \"ctrl+1\",\n        \"command\": \"editor.action.quickFix\",\n        \"when\": \"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\"\n    },\n    {\n        \"key\": \"cmd+.\",\n        \"command\": \"-editor.action.quickFix\",\n        \"when\": \"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\"\n    },\n    {\n        \"key\": \"cmd+.\",\n        \"command\": \"editor.action.revealDefinition\",\n        \"when\": \"editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor\"\n    },\n    {\n        \"key\": \"f12\",\n        \"command\": \"-editor.action.revealDefinition\",\n        \"when\": \"editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor\"\n    }\n]\n

      "},{"location":"eval-tips/","title":"Code Evaluation","text":"

      Calva tries to make it easy to evaluate code, supporting interactive development. The fastest path to learning about it is to use the Fire up the Getting Started REPL command, which you can learn more about in the Getting Started section.

      NB: The below assumes you have read about Finding Calva Commands and Shortcuts.

      ","boost":7},{"location":"eval-tips/#interruptingstopping-running-evaluations","title":"Interrupting/stopping running evaluations","text":"

      Sometimes you evaluate things that take a very long time to complete, or might not even ever complete (infinite loops, lazy sequences, things like that). Calva has a command for interrupting running evaluations. You find it in the VS Code command palette, as well as in the REPL status bar item menu, when the REPL is connected.

      ","boost":7},{"location":"eval-tips/#evaluation-in-a-file-editor","title":"Evaluation in a File Editor","text":"

      Calva has many commands for evaluating forms, including the current form and the current top-level form.

      Some of the commands also let you choose what should happen with the results:

      1. Inline. This will display the results (or some of it, if it is long) inline in the editor.
      2. This also creates a hover pane including the full results and a button which will copy the results to the clipboard.
      3. There is also a command for copying the last result to the clipboard.
      4. The full results are always available in the output window.
        • There is a command for showing the output window, allowing for a workflow where you either generally have it closed, or have it as one of the tabs in the same editor group as the files you are working with.
      5. To comments. This will add the results as line comments below the current line.
      6. Replace the evaluated code. This will do what it says, the evaluated code will be replaced with its results.
      ","boost":7},{"location":"eval-tips/#wait-current-form-top-level-form","title":"Wait, Current Form? Top-level Form?","text":"

      These are important concepts in Calva in order for you to create your most effective workflow. This video explains it a bit:

      ","boost":7},{"location":"eval-tips/#current-form","title":"Current Form","text":"

      Default shortcut for evaluating the current form: ctrl+enter.

      The current form either means the current selection, or otherwise is based on the cursor position. Play some with the command Calva: Select current form, ctrl+alt+c s, to figure out what Calva thinks is the current form for some different situations. Try it inside a symbol, adjacent to a symbol (both sides) and adjacent to an opening or closing bracket (again, both sides). Generally the current form is determined like so:

      1. If text is selected, then that text
      2. If the cursor is \u201din\u201d a symbol, then that symbol
        foob|ar ; foobar\n
      3. If the cursor is adjacent to a form (a symbol or a list of some kind), then that form
        (foo bar |(baz)) ; (baz)\n
      4. If the cursor is between to forms, then the left side form
        (foo bar | (baz)) ; bar\n
      5. If the cursor is before the first form of a line, then that form
        (foo\n| bar (baz)) ; bar\n
      ","boost":7},{"location":"eval-tips/#current-top-level-form","title":"Current Top-level Form","text":"

      Default shortcut for evaluating the current top level form: alt+enter.

      The current top-level form means top-level in a structural sense. It is not the topmost form in the file. Typically in a Clojure file you will find def and defn (and defwhatever) forms at the top level, which also is one major intended use for evaluating top level form: to define and redefine variables. However, Calva does not check the contents of the form in order to determine it as a top-level forms: all forms not enclosed in any other form are top level forms.

      An \u201dexception\u201d is introduced by the comment form. It will create a new top level context, so that any forms immediately inside a (comment ...) form will be considered top-level by Calva. This is to support a workflow with what is often referred to the Rich Comments.

      At the top level the selection of which form is the current top level form follows the same rules as those for the current form.

      ","boost":7},{"location":"eval-tips/#evaluate-enclosing-form","title":"Evaluate Enclosing Form","text":"

      The default keyboard shortcut for evaluating the current enclosing form (the list the cursor is in) is ctrl+shift+enter.

      (let [foo :bar]\n  (when false (str| foo))) ; => \":bar\"\n
      ","boost":7},{"location":"eval-tips/#evaluate-to-cursor","title":"Evaluate to Cursor","text":"

      There are several commands for evaluating a piece of code, closing brackets. It's good, especially in threads, but can also come in handy in other situations, for instance when you want to evaluate something that depends on bindings, such as in a let form.

      ","boost":7},{"location":"eval-tips/#evaluate-from-start-of-list-to-cursor-closing-brackets","title":"Evaluate From Start of List to Cursor, Closing Brackets","text":"

      This command evaluates the text from the start of the current enclosing list to where the cursor is, and it adds the missing closing bracket for you. Convenient for checking intermediate results in thread or doto, or similar pipelines. The cursor is right behind :d in this form:

        (->> [1 1 2 3 5 8 13 21]\n       (partition 2)\n       (zipmap [:a :b :c :d])\n       :d| ; => (13 21)\n       (apply -)\n       (Math/abs))\n

      The default shortcut for this command is ctrl+alt+enter.

      ","boost":7},{"location":"eval-tips/#evaluate-selection-closing-brackets","title":"Evaluate Selection, Closing Brackets","text":"

      This is the most versatile of the \u201devaluation, closing brackets\u201d commands. It will do what it says. \ud83d\ude04 It's extra handy in combination with the command Paredit: Select Backward Up Sexp/Form (shift+ctrl+up). Consider this contrieved form (buggy code, because it was supposed to result in 42, not -42):

      (defn fortytwo-from-thirty\n  []\n  (let [thirty 30]\n    (-> thirty\n        inc            ;1\n        (send-off)\n        (+ 1 2 3)\n        (->>\n         (+ 2 2)       ;2\n         (+))\n        list\n        (->>\n         (into [1])\n         (reduce + 1))\n        (- 1)          ;3\n        (* -1))))\n

      At ;1, you can do backward up sexp (shift+ctrl+up) twice to select up to the (let ..), then issue Evaluate Selection, Closing Brackets. It has the same default keybinding as the command for evaluating the current list up to the cursor: ctrl+alt+enter.

      At ;2 you need select backwards up three times.

      ;3 is included because it is close to the bug. (Which was introduced when the thread-last, ->> was added to make this example.) Please practice the Evaluate Selection, Closing Brackets command to fix the bug.

      ","boost":7},{"location":"eval-tips/#evaluate-from-start-of-top-level-form-to-cursor-closing-brackets","title":"Evaluate From Start of Top Level Form to Cursor, Closing Brackets","text":"

      This command has a default shortcut keybinding of shift+alt+enter. It will create a form from the start of the current top level form, up to the cursor, close all brackets, and this will then be evaluated. Good for examining code blocks up to a certain point. Often comes in handy in Rich comments ((comment ...)).

      Take this example and paste it in a file loaded into the REPL, then place the cursor in front of each line comment and try the command.

      (comment\n (do\n   (def colt-express\n     {:name \"Colt Express\"\n      :categories [\"Family\"\n                   \"Strategy\"]\n      :play-time 40\n      :ratings {:pez 5.0\n                :kat 5.0\n                :wiw 5.0   ; 1, then eval `colt-express`\n                :vig 3.0\n                :rex 5.0\n                :lun 4.0}})\n\n   (defn average [coll]\n     (/ (apply + coll) (count coll)))\n\n   (let [foo-express (-> colt-express\n                         (assoc :name \"Foo Express\")\n                         (assoc-in [:ratings :lyr] 5.0)\n                         (update-in [:ratings :vig] inc))]\n     (->> foo-express   ; 2\n          :ratings      ; 3\n          vals          ; 4\n          average       ; 5\n          ))))\n
      ","boost":7},{"location":"eval-tips/#evaluate-from-start-of-file-to-cursor-closing-brackets","title":"Evaluate From Start of File to Cursor, Closing Brackets","text":"

      Yup, that command also exists. \ud83d\ude04

      ","boost":7},{"location":"eval-tips/#copying-the-inline-results","title":"Copying the inline results","text":"

      There is a command called Copy last evaluation results, ctrl+alt+c ctrl+c.

      This works regardless if you have evaluated in a file editor or in a REPL window.

      ","boost":7},{"location":"eval-tips/#evaluating-in-a-repl-window","title":"Evaluating in a REPL window","text":"

      Since the REPL Window is mostly just a regular file, things work pretty similar at the REPL prompt. You use alt+enter to evaluate. Selecting the current form (default key binding ctrl+w on Mac and shift+alt+right on Windows and Linux) after evaluating will select the result.

      ","boost":7},{"location":"evaluation/","title":"Code Evaluation","text":"

      Calva tries to make it easy to evaluate code, supporting interactive development. The fastest path to learning about it is to use the Fire up the Getting Started REPL command, which you can learn more about in the Getting Started section.

      NB: The below assumes you have read about Finding Calva Commands and Shortcuts.

      ","boost":7},{"location":"evaluation/#interruptingstopping-running-evaluations","title":"Interrupting/stopping running evaluations","text":"

      Sometimes you evaluate things that take a very long time to complete, or might not even ever complete (infinite loops, lazy sequences, things like that). Calva has a command for interrupting running evaluations. You find it in the VS Code command palette, as well as in the REPL status bar item menu, when the REPL is connected.

      ","boost":7},{"location":"evaluation/#evaluation-in-a-file-editor","title":"Evaluation in a File Editor","text":"

      Calva has many commands for evaluating forms, including the current form and the current top-level form.

      Some of the commands also let you choose what should happen with the results:

      1. Inline. This will display the results (or some of it, if it is long) inline in the editor.
      2. This also creates a hover pane including the full results and a button which will copy the results to the clipboard.
      3. There is also a command for copying the last result to the clipboard.
      4. The full results are always available in the output window.
        • There is a command for showing the output window, allowing for a workflow where you either generally have it closed, or have it as one of the tabs in the same editor group as the files you are working with.
      5. To comments. This will add the results as line comments below the current line.
      6. Replace the evaluated code. This will do what it says, the evaluated code will be replaced with its results.
      ","boost":7},{"location":"evaluation/#wait-current-form-top-level-form","title":"Wait, Current Form? Top-level Form?","text":"

      These are important concepts in Calva in order for you to create your most effective workflow. This video explains it a bit:

      ","boost":7},{"location":"evaluation/#current-form","title":"Current Form","text":"

      Default shortcut for evaluating the current form: ctrl+enter.

      The current form either means the current selection, or otherwise is based on the cursor position. Play some with the command Calva: Select current form, ctrl+alt+c s, to figure out what Calva thinks is the current form for some different situations. Try it inside a symbol, adjacent to a symbol (both sides) and adjacent to an opening or closing bracket (again, both sides). Generally the current form is determined like so:

      1. If text is selected, then that text
      2. If the cursor is \u201din\u201d a symbol, then that symbol
        foob|ar ; foobar\n
      3. If the cursor is adjacent to a form (a symbol or a list of some kind), then that form
        (foo bar |(baz)) ; (baz)\n
      4. If the cursor is between to forms, then the left side form
        (foo bar | (baz)) ; bar\n
      5. If the cursor is before the first form of a line, then that form
        (foo\n| bar (baz)) ; bar\n
      ","boost":7},{"location":"evaluation/#current-top-level-form","title":"Current Top-level Form","text":"

      Default shortcut for evaluating the current top level form: alt+enter.

      The current top-level form means top-level in a structural sense. It is not the topmost form in the file. Typically in a Clojure file you will find def and defn (and defwhatever) forms at the top level, which also is one major intended use for evaluating top level form: to define and redefine variables. However, Calva does not check the contents of the form in order to determine it as a top-level forms: all forms not enclosed in any other form are top level forms.

      An \u201dexception\u201d is introduced by the comment form. It will create a new top level context, so that any forms immediately inside a (comment ...) form will be considered top-level by Calva. This is to support a workflow with what is often referred to the Rich Comments.

      At the top level the selection of which form is the current top level form follows the same rules as those for the current form.

      ","boost":7},{"location":"evaluation/#evaluate-enclosing-form","title":"Evaluate Enclosing Form","text":"

      The default keyboard shortcut for evaluating the current enclosing form (the list the cursor is in) is ctrl+shift+enter.

      (let [foo :bar]\n  (when false (str| foo))) ; => \":bar\"\n
      ","boost":7},{"location":"evaluation/#evaluate-to-cursor","title":"Evaluate to Cursor","text":"

      There are several commands for evaluating a piece of code, closing brackets. It's good, especially in threads, but can also come in handy in other situations, for instance when you want to evaluate something that depends on bindings, such as in a let form.

      ","boost":7},{"location":"evaluation/#evaluate-from-start-of-list-to-cursor-closing-brackets","title":"Evaluate From Start of List to Cursor, Closing Brackets","text":"

      This command evaluates the text from the start of the current enclosing list to where the cursor is, and it adds the missing closing bracket for you. Convenient for checking intermediate results in thread or doto, or similar pipelines. The cursor is right behind :d in this form:

        (->> [1 1 2 3 5 8 13 21]\n       (partition 2)\n       (zipmap [:a :b :c :d])\n       :d| ; => (13 21)\n       (apply -)\n       (Math/abs))\n

      The default shortcut for this command is ctrl+alt+enter.

      ","boost":7},{"location":"evaluation/#evaluate-selection-closing-brackets","title":"Evaluate Selection, Closing Brackets","text":"

      This is the most versatile of the \u201devaluation, closing brackets\u201d commands. It will do what it says. \ud83d\ude04 It's extra handy in combination with the command Paredit: Select Backward Up Sexp/Form (shift+ctrl+up). Consider this contrieved form (buggy code, because it was supposed to result in 42, not -42):

      (defn fortytwo-from-thirty\n  []\n  (let [thirty 30]\n    (-> thirty\n        inc            ;1\n        (send-off)\n        (+ 1 2 3)\n        (->>\n         (+ 2 2)       ;2\n         (+))\n        list\n        (->>\n         (into [1])\n         (reduce + 1))\n        (- 1)          ;3\n        (* -1))))\n

      At ;1, you can do backward up sexp (shift+ctrl+up) twice to select up to the (let ..), then issue Evaluate Selection, Closing Brackets. It has the same default keybinding as the command for evaluating the current list up to the cursor: ctrl+alt+enter.

      At ;2 you need select backwards up three times.

      ;3 is included because it is close to the bug. (Which was introduced when the thread-last, ->> was added to make this example.) Please practice the Evaluate Selection, Closing Brackets command to fix the bug.

      ","boost":7},{"location":"evaluation/#evaluate-from-start-of-top-level-form-to-cursor-closing-brackets","title":"Evaluate From Start of Top Level Form to Cursor, Closing Brackets","text":"

      This command has a default shortcut keybinding of shift+alt+enter. It will create a form from the start of the current top level form, up to the cursor, close all brackets, and this will then be evaluated. Good for examining code blocks up to a certain point. Often comes in handy in Rich comments ((comment ...)).

      Take this example and paste it in a file loaded into the REPL, then place the cursor in front of each line comment and try the command.

      (comment\n (do\n   (def colt-express\n     {:name \"Colt Express\"\n      :categories [\"Family\"\n                   \"Strategy\"]\n      :play-time 40\n      :ratings {:pez 5.0\n                :kat 5.0\n                :wiw 5.0   ; 1, then eval `colt-express`\n                :vig 3.0\n                :rex 5.0\n                :lun 4.0}})\n\n   (defn average [coll]\n     (/ (apply + coll) (count coll)))\n\n   (let [foo-express (-> colt-express\n                         (assoc :name \"Foo Express\")\n                         (assoc-in [:ratings :lyr] 5.0)\n                         (update-in [:ratings :vig] inc))]\n     (->> foo-express   ; 2\n          :ratings      ; 3\n          vals          ; 4\n          average       ; 5\n          ))))\n
      ","boost":7},{"location":"evaluation/#evaluate-from-start-of-file-to-cursor-closing-brackets","title":"Evaluate From Start of File to Cursor, Closing Brackets","text":"

      Yup, that command also exists. \ud83d\ude04

      ","boost":7},{"location":"evaluation/#copying-the-inline-results","title":"Copying the inline results","text":"

      There is a command called Copy last evaluation results, ctrl+alt+c ctrl+c.

      This works regardless if you have evaluated in a file editor or in a REPL window.

      ","boost":7},{"location":"evaluation/#evaluating-in-a-repl-window","title":"Evaluating in a REPL window","text":"

      Since the REPL Window is mostly just a regular file, things work pretty similar at the REPL prompt. You use alt+enter to evaluate. Selecting the current form (default key binding ctrl+w on Mac and shift+alt+right on Windows and Linux) after evaluating will select the result.

      ","boost":7},{"location":"fiddle-files/","title":"Fiddle Files Support","text":"

      In the podcast Functional Design in Clojure, Episode 014: Fiddle with the REPL, they discuss a workflow in which you keep some of your exploratory code in separate files, which they call Fiddle Files. It's like Rich Comments, and the files often consist of such comments. The Fiddle files are typically not on the classpath, and are only loaded in the REPL by you when you are developing your project. Some developers keep personal fiddle files. In some projects they are meant to be shared, and in other projects it's a combination.

      Calva has some extra support for the fiddle file workflow, beyond what VS Code offers in terms of navigating between files. The support comes in the form of three commands supported by a little configuration.

      ","boost":5},{"location":"fiddle-files/#the-three-fiddle-file-commands","title":"The Three Fiddle File Commands","text":"

      The commands let you quickly navigate between your implementation code (called Source here) and your Fiddle file, and to evaluate the Fiddle file without leaving the Source file.

      Command Action Shortcut Active Calva: Open Fiddle File for Current File Opens the Fiddle file corresponding to the current Clojure Source file. ctrl+alt+cf When the currently active file is not a Fiddle file. Calva: Open Source File for Current Fiddle File Opens the Source file corresponding to the current Fiddle file. ctrl+alt+cf When the currently active file is a Fiddle file + there is an existing, and corresponding, source file. Calva: Evaluate Fiddle File for Current File Evaluates the Fiddle file corresponding to the current Clojure Source file. ctrl+alt+cctrl+alt+f When the currently active file is not a Fiddle file.

      The commands for opening and evaluating corresponding Fiddle files will offer to Create the Fiddle file if it does not already exist. But the Calva: Open Source File for Current Fiddle File command will not offer to create the target file.

      What does corresponding mean here? Without any configuration Calva will look for \u201csibling\u201d files, where files with Clojure file extensions (E.g. .clj, .cljs, .bb) will be treated as Source files, and files with the .fiddle extension will be treated as Fiddle files. \"Sibling file\" here means residing side by side in the file system. If this default behaviour is not your cup of tea, there is some flexibility added by configuration.

      ","boost":5},{"location":"fiddle-files/#the-fiddle-file-configuration","title":"The Fiddle File Configuration","text":"

      To know how to map between Fiddle <-> Source files, Calva has three different modes of operation:

      1. The sibling files, as described above. This is the default. Example:
        • src/a/b/c.cljc corresponding to:
        • src/a/b/c.fiddle
      2. Parallel directory structures. Mapping a Source directory tree to a Fiddle directory tree. Example:
        • src/a/b/c.cljc corresponding to:
        • env/dev/fiddles/a/b/c.cljc
      3. A dedicated Fiddle file for a Source directory tree. E.g. both:
        • src/a/b/c.cljc and:
        • src/d/e/f.cljc corresponding to:
        • env/dev/fiddles/x.cljc

      The setting is named calva.fiddleFilePaths and is an array of source and fiddle root paths, relative to the project root.

      The Project Root

      It is important to note that the project root depends on whether you are connected to a REPL or not, and to which project you are connected, in case the workspace contains several projects.

      Without a REPL connection (disregarding that fiddle files are not very interesting then) the project root is the same as the first workspace root. And if you have a regular VS Code window open, it is the root of the folder you have opened in that window.

      With a REPL connection, the project root will be the root of the project, i.e. where the project file (deps.edn, project.clj, shadow-cljs.edn) is.

      ","boost":5},{"location":"fiddle-files/#example-configurations","title":"Example Configurations","text":"","boost":5},{"location":"fiddle-files/#single-parallel-directory-structure","title":"Single Parallel Directory Structure","text":"
      \"calva.fiddleFilePaths\": [\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddles\"]\n  }\n]\n

      This will make any file in the src directory tree correspond to a matching file with the same relative path. E.g.:

      • src/a/b/c.clj -> env/dev/fiddles/a/b/c.clj, for both the open and evaluate commands
      • env/dev/fiddles/a/b/c.clj -> src/a/b/c.clj
      ","boost":5},{"location":"fiddle-files/#single-dedicated-fiddle-file","title":"Single Dedicated Fiddle File","text":"

      If you generally work with one Fiddle file at a time, you can configure a mapping to a Dedicated Fiddle file. E.g.:

      \"calva.fiddleFilePaths\": [\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddle.clj\"]\n  },\n]\n

      This will make any file in the src directory tree correspond to the same Fiddle file. E.g.:

      • src/a/b/c.clj -> env/dev/fiddle.clj, for both the open and evaluate commands
      • src/d/e/f.clj -> env/dev/fiddle.clj, ditto
      • env/dev/fiddle.clj -> Won't correspond to a Source file in this case

      Jumping from a dedicated fiddle to a source file

      Calva's command for opening the corresponding source file won't work in this case because it is a one->many situation. If you want to open the last file you worked with before using Open Fiddle File for Current File, consider using the VS Code command: Go Previous.

      ","boost":5},{"location":"fiddle-files/#multiple-mappings","title":"Multiple Mappings","text":"

      The configuration is an array so that you can configure different mappings for different Source directories. Given several mappings with overlapping Source, the longest mapping will win. Given several mappings with the same Source, the first one will win, unless one of them is a dedicated Fiddle, in which case that one will win.

      \"calva.fiddleFilePaths\": [\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddles\"]\n  },\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddle.clj\"]\n  },\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddle.cljs\"]\n  },\n  {\n    \"source\": [\"src\"],\n    \"fiddle\": [\"env\", \"dev\", \"fiddle.bb\"]\n  },\n  {\n    \"source\": [\"src\", \"b\"],\n    \"fiddle\": [\"env\", \"dev\", \"b-fiddles\"]\n  },\n]\n

      With this configuration we would get a behaviour like so:

      • src/a/b/c.clj -> env/dev/fiddle.clj, because all four first [\"src\"] mappings match, but the second one is a dedicated fiddle file, and matches the .clj extension.
      • src/a/b/c/d.bb -> env/dev/fiddle.bb, because all four first [\"src\"] mappings match, but the second one is a dedicated fiddle file, and matches the .bb extension.
      • src/a/b/c/d.cljc -> env/dev/fiddle.clj, because all four first [\"src\"] mappings match, but the second one is a dedicated fiddle file, without a matching file extension, (so the first dedicated fiddle file is picked).
      • src/b/c/d.clj -> env/dev/b-fiddles/c/d.clj, because the [\"src\", \"b\"] mapping is longer than the also matching [\"src\"] mappings.
      ","boost":5},{"location":"fiddle-files/#tips","title":"Tips","text":"

      Organize your Fiddle files such that they do not get automatically loaded as part of your application. This can lead to strange errors and hard-to-detect bugs. Most often it should only be you manually loading the fiddle file, not clj/clojure or Leiningen or any such system which loads your application.

      When you want your fiddle code to be evaluated in the same workspace as its corresponding Source file, you can use the same namespace declaration for both files. The linter might complain, but the REPL will happily comply.

      If you primarily evaluate the fiddle file using the provided command for it, from the Source files, you can omit the namespace declaration, and Calva will evaluate it in the namespace of the Source file.

      The linter and fiddle files

      For some fiddle files you will get a lot of linter warnings, because clj-kondo doesn't know about fiddle files, and they are often not on the classpath. You might find yourself wanting to silence some linters for some fiddle files. E.g. like this:

      (ns main.core\n  {:clj-kondo/config\n   '{:linters {:unresolved-symbol {:level :off}}}})\n

      See clj-kondo Configuration for more on what options you have for this.

      ","boost":5},{"location":"fiddle-files/#see-also","title":"See Also","text":"
      • Rich Comments
      • Functional Design in Clojure Episode 014: Fiddle with the REPL
      • The Polylith Development page mentions good practice for where to put your fiddle files (not called fiddle files there, but it is the same concept).
      ","boost":5},{"location":"finding-commands/","title":"Finding Calva Commands","text":"

      Calva relies a lot on that VS Code makes it really easy to find commands by opening the command palette: ctrl+shift+p (Windows/Linux), cmd+shift+p (Mac), and then start typing some words (or parts of words) that you think might be in the command.

      To leverage this, all Calva commands are prefixed with Calva. As an example, say you want to find commands related to evaluating the top level form. Then you can do this:

      1. Open the command palette
      2. Type calevtop

      VS Code will match cal to \u201dCalva\u201d, ev to \u201dEvaluate\u201d, and top to \u201dTop\u201d. It looks like so:

      As you can see on the screenshot, VS Code will also reveal the keyboard shortcut for each command. My advice is to make it a habit to try to remember those shortcuts and use them for a more effective workflow.

      Now might be a good time to see Calva Top 10 Commands

      "},{"location":"finding-commands/#all-the-settings-and-commands","title":"All the Settings and Commands","text":"

      Did you know? There is a complete list of Calva settings and commands in the Contributions tab of the Calva entry in the Extensions pane in VS Code.

      "},{"location":"finding-commands/#toggling-keyboard-shortcuts-onoff","title":"Toggling Keyboard Shortcuts On/Off","text":"

      The command calva.toggleKeybindingsEnabled can be used to quickly enable and disable (almost) all keyboard shortcuts. This allows you to quickly toggle between Calva keybindings and other keybindings which would otherwise not be available when Calva is enabled. This is particularly useful with the Paredit keyboard shortcuts, whose default shortcuts conflict with the default VS Code shortcuts for textual (non-structural) editing.

      By default it is not bound to a shortcut so as not to cause confusion by users unwittingly pressing it, but if this is something you'd like to use often, you may want to bind it to a shortcut.

      "},{"location":"formatting/","title":"Formatting","text":"

      We have tried to make Calva's formatter so that it just works. It is enabled by default for Clojure files, and with the default configuration it mostly follows Bozhidar Batsov's Clojure Style Guide. Calva uses cljfmt for the formatting.

      Tab formats the current surrounding form

      Calva's code formatter sets the default keybinding of its Format Current Form command to tab. Meaning that most often when things look a bit untidy, you can press tab to make things look pretty. Good to know, right? For performance reasons it only formats the current enclosing form, so sometimes you want to move the cursor up/out a form (ctrl+up) first. See The Paredit Guide for more on moving the cursor structurally through your code.

      With the default settings, Calva's formatting behaves like so:

      • indents as you type (when entering new lines)
      • formats the current enclosing form when you hit tab
      • formats pasted code
      • formats according to community standards
      • formats the current form, aligning map keys and values, when you press ctrl+alt+l
      • formats (comment ...) forms special, see rich comments

      Infer parens at will

      Calva has a command that will \u201dheal\u201d the bracket structure if it is correctly indented using Parinfer Infer parens. This command is default bound to ctrl+alt+p i.

      Also: If you have Format on Save enabled in VS Code, it will be Calva doing the formatting for Clojure files.

      Calva's formatting is mostly about indenting, but it also (again, defaults):

      • trims whitespace at the end of the line
      • trims whitespace inside brackets
        • this also folds trailing brackets (a k a the paren trail) up on the same line
      • inserts whitespace between forms

      Not a fan of some default setting? The formatter is quite configurable.

      "},{"location":"formatting/#format-current-form-command-variants","title":"Format current form command variants","text":"

      There are three special commands for formatting the current form:

      "},{"location":"formatting/#1-format-and-align-current-form","title":"1. Format and Align Current Form","text":"

      Aligns associative structures and bindings in two columns. See more below.

      "},{"location":"formatting/#2-format-current-form-and-trim-space-between-forms","title":"2. Format Current Form and trim space between forms","text":"

      This formats the text, and trims consecutive, non-indent, whitespace on a line to just one space. Something like:

      (let [a    :b]\n(str \"foo\"     \"bar\" \"baz\"\n\"a\"    a))\n

      Becomes:

      (let [a :b]\n  (str \"foo\" \"bar\" \"baz\"\n       \"a\" a))\n

      Basically, it behaves like if :remove-multiple-non-indenting-spaces? true was added to the cljfmt config. Which, in fact, is what happens. Calva merges that onto your cljfmt config when this command is used.

      "},{"location":"formatting/#3-replace-current-form-or-selection-with-pretty-printed-form","title":"3. Replace Current Form (or Selection) with Pretty Printed Form","text":"

      This command will run the code of the Current Form through Calva's pretty printer (the engine named calva, which is using zprint) and replace the current form inline in the editor with the pretty printed results.

      Unlike with the \u201dreal\u201d Calva Formatter, which never breaks up lines, this one will follow your pretty printing options and break up lines if you have set maxWidth to something that calls for breaking up lines.

      Applies to the other Current Form

      Unlike the other Format commands, which applies to the current enclosing form, this one applies to the Current Form, same as with evaluations. That is because this is not really part of the Calva formatter, but rather is a convenience command for tidying up code or data.

      "},{"location":"formatting/#configuration","title":"Configuration","text":"

      You can adjust the above mentioned defaults, and the default indents, by configuring the formatting using cljfmt's configuration EDN.

      This configuration can either be provided via a file or via clojure-lsp. See Providing configuration via clojure-lsp below.

      "},{"location":"formatting/#providing-configuration-via-a-config-file","title":"Providing configuration via a config file","text":"

      Calva will look for the configuration in one of the default cljfmt paths ('.cljfmt.edn', '.cljfmt.clj', 'cljfmt.edn', or 'cljfmt.clj' in the workspace root). If your file is somewhere else use the calva.fmt.configPath to tell Calva where to find it. The path should either be absolute, or relative to the workspace root directory. If your config file is somewhere in the workspace root, Calva will hot reload it when you update it.

      Wherever the config file is, a suggested path for providing your configuration is to start changing the Calva formatting defaults by pasting the following map into a file and save it.

      {:remove-surrounding-whitespace? true\n :remove-trailing-whitespace? true\n :remove-consecutive-blank-lines? false\n :insert-missing-whitespace? true\n :remove-multiple-non-indenting-spaces? false}\n

      If the file is in the workspace, you can quickly test how different settings affect the formatting. Try:

      1. Adding :align-associative? true to the config
      2. then save
      3. then hit tab, and see what happens.
      :align-associative? is experimental

      This particular setting is experimental and known to cause trouble together with namespaced keywords. Consider using ctrl+alt+l instead of tab as your formatting command, instead of enabling this setting. See below for more info about this. See more below about this.

      No Leiningen config support

      The cljfmt docs mention the :cljfmt config key of Leiningen projects. Calva does not yet read the config from there, so if your Leiningen project has such a configuration, you will need to copy it out into a file.

      "},{"location":"formatting/#providing-configuration-via-clojure-lsp","title":"Providing configuration via clojure-lsp","text":"

      If you work in a team where some members use clojure-lsp for formatting, you can make Calva format using the same configuration by telling setting calva.fmt.configPath to CLOJURE-LSP (case sensitive). See Clojure LSP Settings) for how to provide the configuration. (It might not be provided from where you think it is, specifically check clojure-lsp's global config in you user home directory.) Use the command Calva Diagnostics: Clojure-lsp Server Info to see what cljfmt configuration is being used (under the cljfmt-raw key).

      Note that doing this you will not have hot reload of the formatting configuration, and of course you will be depending on that clojure-lsp is running and functioning.

      "},{"location":"formatting/#indentation-rules","title":"Indentation rules","text":"

      The cljfmt indents are highly configurable. They, and the rest of the configuration options, are masterly detailed here.

      :extra-indents vs :indents

      Since Calva v2.0.383 we are using cljfmt 0.11.x which has a breaking configuration change. From the cljfmt README:

      The :indents key has been split into :indents and :extra-indents. The :indents key replaces all default indents, while the :extra-indents key will append to the default indents.

      If something prevents you from using a config with :extra-indents, there's an escape hatch to keep using the :indents key as before, by adding :legacy/merge-indents? true to the config map.

      Calva is an extra good tool for experimenting with these settings. cljfmt doesn't care about keys in the map that it doesn't know about so you can sneak in test code there to quickly see how it will get formatted by certain rules. Try this, for instance:

      {:remove-surrounding-whitespace? true\n :remove-trailing-whitespace? true\n :remove-consecutive-blank-lines? false\n :insert-missing-whitespace? false\n :indents {#re \"^\\w\" [[:inner 0]]}\n :test-code\n (concat [2]\n         (map #(inc (* % 2))\n              (filter #(aget sieved %)\n                      (range 1 hn))))}\n

      Save, then hit tab, and the code should get formatted like so:

       :test-code\n (concat [2]\n    (map #(inc (* % 2))\n      (filter #(aget sieved %)\n        (range 1 hn))))\n

      That's somewhat similar to Nikita Prokopov's Better Clojure Formatting suggestion. (Please be aware that this setting might not be sufficient to get complete Tonsky Formatting, please share any settings you use to get full compliance.)

      "},{"location":"formatting/#rich-comments","title":"Rich Comments","text":"

      To encourage use of (comment ...) forms for development, the default settings give these forms get a special treatment when formatting. Use the calva.fmt.keepCommentTrailParenOnOwnLine setting to control this behaviour. See Rich Comments first.

      "},{"location":"formatting/#etecetera","title":"Etecetera","text":""},{"location":"formatting/#about-aligning-associative-forms","title":"About aligning associative forms","text":"

      Calva loooks in the config map for the key :align-associative? and if it is true it will use an old version of cljfmt which is patched with functionality for doing this alignment. Note, though:

      • The implementation is a bit buggy and can do a bit crazy formatting on certain forms.
      • The older version of cljfmt lacks updates for some new Clojure features and also some bugs fixed since the fork are not applied.

      You are hereby warned, and let us also remind you about the Format and Align Current Form command which lets you apply this formatting a bit more surgically, and on demand.

      This old version of cljfmt is inlined in the Calva repository along with the discontinued rewrite-cljs project. Regard it as frozen code. If you want Calva's formatter to have full support for newer Clojure constructs and the bugs in the alignment code fixed, contribute to cljfmt. See this issue for starting to collect context.

      "},{"location":"get-started-with-clojure/","title":"Get Started with Clojure","text":"

      Welcome to a zero-install, interactive, guide to get you started with Clojure using:

      • Clojure
      • Gitpod (A development environment delivered via the web browser)
      • VS Code (Or Gitpod Code, actually. In your web browser.)
      • Calva (A Clojure extension to VS Code. The thing this site is about.)
      • Calva's Getting Started REPL
      I have VS Code and Java

      Clojure runs on the JVM. How to install it is a big topic. Since you have already done that, you can, if you want, choose to install Calva in your local VS Code and fire up the Getting Started REPL. By all means read this page anyway, you can just skip the Gitpod parts.

      Also: If you are using Windows your Java might have a bug that prevents things from working. Then you might want to defer fixing that and use the zero-install option first.

      Is Gitpod Code exactly as VS Code?

      Almost! But, yeah, there are some difference between regular VS Code and Gitpod's ditto. Most of it doesn't matter, but finding the main menu can be a bit tricky:

      ","boost":10},{"location":"get-started-with-clojure/#what-youll-learn","title":"What you'll learn","text":"
      • The basics of the Clojure language (at least the start of the basics)
      • The basics of the ClojureScript language (we won't be using ClojureScript, but it is same language \ud83d\ude00)
      • The basics of Calva (It's a bit as a side effect. You need it to learn Clojure this way, and by learning Clojure this way, Calva knowledge trickles in.)
      • What is meant by, and some ways to perform, Interactive Programming (aka REPL Driven Development)
      • Where to find Clojurians, i.e. folks who use Clojure and care about it (you will thus find help, the friendliest help you have ever seen a community provide)
      I am not convinced I should spend time on learning Clojure

      Fair enough. We can recommend watching any or all of these videos to get excited about Clojure and the rather unique mood of development it offers:

      • Solving Problems the Clojure Way - with Rafal Dittwald (using JavaScript, so no new syntax to grasp to get the message)
      • Developer Ergonomics with VS Code, Clojure, and ClojureScript - with Peter Str\u00f6mberg
      • Clojure in VS Code Workflow using FizzBuzz - with Peter Str\u00f6mberg
      ","boost":10},{"location":"get-started-with-clojure/#what-you-wont-learn","title":"What you won't learn","text":"
      • How to install Clojure for your operating system of choice
      • About various old and new build and dependency tools
      • How to create projects and do real stuff
      Why won't I learn about this?

      All in due time. \ud83d\ude04 It can be a bit confusing with all the things you find out about installing Clojure and creating projects when searching for information about it. We want you to relax about all that and just enjoy learning a bit about this fantastic programming language and the wonderful mode of development it offers.

      There is a lot of info about this out there already. And since you will learn where to find Clojurians, you will also find guidance. But we suggest do these things later. First, let's focus on having fun with Interactive Programming!

      ","boost":10},{"location":"get-started-with-clojure/#what-you-need","title":"What you need","text":"
      • Curiosity about Clojure
      • A web browser
      The browser ate my keyboard shortcuts!

      There is always a competition for which system gets to catch keyboard shortcuts first. This worsens a bit when an application like VS Code runs in the web browser. Remember this if some shortcut/command doesn't work.

      On some machines, with some web browsers, some shortcuts are caught by the web browser and instead re-opening a closed tab or whatever. These have been observed:

      • Undo (undoing something web browser related)
      • Select the line (focusing the browser URL input)
      • Open the command palette (opening a private browsing window. Looking at you Firefox.)
      • Escape key shortcuts (are you using VIM bindings in your browser?)

      Sometimes the workaround is to redefine the shortcuts in VS Code, sometimes making your web browser stop catching the shortcut.

      I am new to VS Code

      You might want to have a look at this Getting Started with VS Code video. (You can of course ignore the parts about installing for now.) Also, have this overview of the VS Code interface handy.

      ","boost":10},{"location":"get-started-with-clojure/#how-it-works","title":"How it works","text":"
      1. You will open an instance of VS Code in a development environment running in the browser. The environment will have Java, Clojure tools, and Calva installed.
        • Gitpod Sign-in You will be asked to sign in to Gitpod, if you aren't already. You need to use the \u201dSign in with GitHub\u201d option.
      2. Instructions will be automatically displayed (very brief such, because it is mainly about firing up the Getting Started REPL)
      3. The guides are a mix of prose (in Clojure line comments), Clojure code, and exercises. What's extra poetic is that you will use Calva and Clojure to learn Calva and Clojure.

      Use a desktop/laptop computer. Even if it actually works on the phone, it is far from convenient.

      It sometimes takes a while (several minutes) for the environment to initialize. Take some deep breaths and be patient. \ud83d\ude0e

      ","boost":10},{"location":"get-started-with-clojure/#lets-go","title":"Let's go!","text":"

      Ready? Awesome. Click this button to start the guide in a new browser tab.

      https://gitpod.io/#https://github.com/PEZ/get-started-with-clojure Stuck? Something not working? Or just unclear?

      Please don't hesitate to reach out for help, should you get stuck. See below for where to find Clojurians. As for the Calva team, we are almost always (true story) to be found at the Clojurians Slack, especially in the #calva Channel. We are @pez and @bringe there.

      Happy Interactive Programming! \u2764\ufe0f

      ","boost":10},{"location":"get-started-with-clojure/#and-where-do-i-find-those-clojurians","title":"And where do I find those Clojurians?","text":"

      We Clojurians inhabit a lot of community platforms. I'll list some of the more popular ones here in some order of popularity.

      • The Clojurians Slack - by far the largest and most active Clojure community, the #beginners channel is spectacularly fantastic
      • ClojureVerse - a web forum. Lots of Clojurians, lots of Clojure knowledge collected, easy to search, easy to join
      • /r/Clojure - Reddit when Reddit is at its best, lots of Clojurians here
      • Clojurians on Zulip - An other web forum using the Zulip platform
      • On Discord there are two active servers: Clojurians and Discord

      You can also ask questions, and find answers, about Clojure at ask.clojure.org

      ","boost":10},{"location":"get-started-with-clojure/#learn-and-practice-clojure-using-rich-4clojure","title":"Learn and Practice Clojure using Rich 4Clojure","text":"

      If you like the style of interactive learning that this guide provides, you should definitely check Rich 4Clojure out. It also can be used in the zero-installed way.

      You can regard it as a companion to this guide. It is aimed at practicing Clojure, starting at the elementary levels, bringing you to advanced stuff.

      Can I use Rich 4Clojure instead of this guide?

      We suggest you start by opening up this guide and do the Calva part of the excerises. Then use the welcome_to_clojure.clj guide in combination with Rich 4Clojure..

      ","boost":10},{"location":"get-started-with-clojure/#run-the-clojure-exercism-track-in-your-browser","title":"Run the Clojure Exercism Track in your browser","text":"

      In a similar manner to the Get Started with Clojure project, you can run the Clojure Exercism Track in your browser without installing anything and with full Interactive Programming enabled using this Template project.

      ","boost":10},{"location":"get-started-with-clojure/#clojuredocs","title":"ClojureDocs","text":"

      Clojurians draw tremendous value from ClojureDocs. At ClojureDocs the concise documentation for Clojure core functions, etcetera, are amended with examples and advice from fellow Clojurians. Crowdsourcing at its very best! It is a big part of the reason why you won't find an abundance of Clojure information at StackOverflow.

      ","boost":10},{"location":"get-started-with-clojure/#other-learning-resources","title":"Other learning resources","text":"
      • CalvaTV - Calva's YouTube channel often focuses on beginning with Clojure and ClojureScript. Subscribe, please!
      • Clojure Beginner Resources - a much more comprehensive list than this one
      • clojure.org Getting Started - the source of truth, includes installing and stuff
      • The Exercism Clojure track - Learn solving carefully crafted Clojure exercises, get mentor feedback if you like.
      • Clojure for the Brave and True - helping you from beginner to pretty advanced stuff, very popular among Clojurians
      • on the code again - often features Clojure concepts, with snappy, well communicated, and entertaining videos
      • Clojure Koans with VS Code/Calva instructions
      ","boost":10},{"location":"get-started-with-clojure/#help-us-help-beginners","title":"Help us help beginners","text":"

      Give us feedback. Spread the word. Please consider:

      • Join the #improve-getting-started channel at the Clojurian Slack
      • Linking to this page from your blog
      • Tweeting about this guide
      • Contributing to the Calva project
      • Wearing Calva and RFC T-shirts
      • Starring these repositories:
        • Get Started with Clojure - (the repository powering this guide)
        • Rich 4Clojure
        • Clojure Exercism Track Template
        • Calva
        • Dram - Where this guide (the Getting Started REPL) is authored
      • What do beginners struggle with? - a ClojureVerse thread, where you can tell us about what you have found hard in picking up Clojure. It's what spawned the creation of this guide.

      Please also consider other ways to contribute.

      Thanks! \ud83d\ude4f

      ","boost":10},{"location":"getting-started/","title":"Getting Started","text":"

      Depending on wether you want to just start a Clojure REPL or you have a project you want to work with, getting started looks similar but a bit different. Regardless, you need to first:

      ","boost":10},{"location":"getting-started/#install-vs-code-and-calva","title":"Install VS Code and Calva","text":"
      1. Downloading VS Code and run the installer.
        • Also get aquainted to the basics of VS Code, if you aren't already. Here's an excellent intro: Getting Started with VS Code
      2. Install Calva. The easiest way to do that is to start VS Code and search for Calva in the VS Code Extension pane, then click Install.
      ","boost":10},{"location":"getting-started/#say-hello-to-calva","title":"Say hello to Calva","text":"

      If you have a Clojure or ClojureScript project, you will be interested in how to get Calva connected to the REPL of your project. But before you run over there, you might want to familiarize yourself with Calva a bit, which you can do without a project.

      The demo tells you about the command (and some about the Clojure Beginner's material that it makes available).

      I am completely new to Clojure

      The \u201dGetting Started\u201d REPL below introduces you to Clojure as well as to Calva. You might however, not want to start with installing the right version of Java and such to run the guide. If so you should definitely check the Get Started with Clojure guide on this site.

      Three clicks will have you running Calva in your browser with the REPL ready to serve.

      I don't have Java installed

      If you like, you can defer installing anything at all and still get started with Calva (not kidding).

      See Get Started with Clojure.

      ","boost":10},{"location":"getting-started/#theres-a-getting-started-repl","title":"There's a \u201dGetting Started\u201d REPL","text":"

      If you are new to Calva, a good place to start is using the command Fire up the \u201dGetting Started\u201d REPL. (You can open the command palette using the VS Code top menu by going to View -> Command Palette... or by running the associated keyboard shortcut for your OS.) Demo:

      It will open up a three files in a temporary directory, and start and connect a REPL. The files are:

      • hello_repl.clj \u2013 The basics of how to evaluate code in Calva
      • hello_paredit.clj - A super brief intro to Calva structural editing
      • welcome_to_clojure.clj - The very basics of the Clojure language

      The only prerequisite here is that you have Java installed. No pre-installed clojure tools required. (You will want to install these tools later, of course.)

      Note

      On Windows the Oracle Java installer sets Java up in some funny way so that the Getting Started REPL fails to start. We are figuring about workarounds for this, but for now, if you are on Windows, you will need to make VS Code have some other Java in the PATH of its environment for this feature to work. See this issue on the Calva repo for more on this, including any progress.

      ","boost":10},{"location":"getting-started/#there-are-standalone-clojurescript-quick-start-repls","title":"There are standalone \u201dClojureScript Quick Start\u201d REPLs","text":"

      Without creating a project structure or installing anything but Calva, you can start standalone ClojureScript REPLs both in a browser and for node:

      • Fire up the ClojureScript Quick Start Browser REPL
        • Opens the files core.cljs and index.html and starts the ClojureScript app, opening it in the browser.
      • Fire up the ClojureScript Quick Start Node REPL
        • Opens a file, core.cljs, and starts a nodejs REPL where it loads the file.

      The browser REPL app looks like so:

      ","boost":10},{"location":"getting-started/#you-have-a-project","title":"You have a Project?","text":"

      If you are new to Calva, please consider the above option first. Then when it will be time to get Calva connected to the REPL of your project.

      ","boost":10},{"location":"getting-started/#clojure-resources","title":"Clojure Resources","text":"

      If you are new to Clojure or ClojureScript altogether, please check out the guide material on the respective official sites:

      • Getting Started with Clojure
      • ClojureScript Quick Start

      There are also many great books on Clojure. Clojure for the Brave and True can be read for free online. It is a great resource for beginners.

      ","boost":10},{"location":"getting-started/#there-is-also-standalone-repl","title":"There is also Standalone REPL","text":"

      When you are more familiar with Calva, and want a standalone REPL, there is a separate command: Start a standalone REPL (not in project). It will open up a user.clj in a temporary directory, containing only an (ns user) form, and start and connect the REPL.

      ","boost":10},{"location":"getting-started/#dram-where-the-guides-live","title":"Dram - Where the Guides Live","text":"

      The command for starting the Getting Started REPL will download the files from this repository. It is very much work in progress, and there is not even a finished Clojure Beginner's Guide there yet. When you run the command again, and from then on, you will get the option to download new files or keep using your existing. Downloading new ones will not overwrite your existing ones, because they will be downloaded to a new temp directory. You can find the directory easily using VS Codes context menu command for revealing a file in the Explorer/Finder.

      ","boost":10},{"location":"getting-started/#one-last-thing","title":"One Last Thing","text":"

      Happy coding! \u2665\ufe0f

      ","boost":10},{"location":"hiccup/","title":"Converting HTML to Hiccup","text":"

      Calva can help you convert HTML to Hiccup.

      ","boost":7},{"location":"hiccup/#features","title":"Features","text":"","boost":7},{"location":"hiccup/#three-commands","title":"Three commands","text":"
      • Convert HTML to Hiccup, will convert the selected text, or the entire file, to Hiccup and open up an Untitled Clojure file with the result.
      • Copy HTML as Hiccup, will convert the selected text, or the entire file, to Hiccup and copy it to the clipboard.
      • Paste HTML as Hiccup, will convert the contents of the clipboard to Hiccup and paste it. (The clipboard will then be restored to the original content.)

      The resulting data structure is formatted with zprint using it's :style :hiccup configuration.

      ","boost":7},{"location":"hiccup/#conversion-capabilities","title":"Conversion capabilities","text":"

      In addition to, optionally, being able to convert style attributes to maps and kebab-case attributes, the conversion:

      • Opts for producing compact Hiccup:
        • The id attribute and classes are made part of the tag, CSS selector style
          • <foo id=\"bar\"></foo> => [:foo#bar]
          • <foo class=\"c1 c2\"></foo> => [:foo.c1.c2]
          • <foo id=\"bar\" class=\"c1 c2\"></foo> => [:foo#bar.c1.c2]
        • Though, if the id or any class is not valid as part of a keyword, they remain in the props/attributes map)
          • <foo id='foo-[id]'></foo> => [:foo {:id \"foo-[id]\"}]
          • <foo class='clz1 clz[2]'></foo> => [:foo.clz1 {:class [\"clz[2]\"]}]
        • Whitespace is trimmed
          • <foo> \\nbar\\n </foo> => [:foo \"bar\"]
          • <foo> \\n </foo> => [:foo]
      • Handles boolean attributes
        • <foo disabled></foo> => [:foo {:disabled true}]
        • <foo disabled=disabled></foo> => [:foo {:disabled \"disabled\"}]
      • Special case for camelCasing attributes viewBox and baseProfile (SVG is picky about it)
        • <foo bAsePROFilE=bar viewbox=\"0 0 1 1\"></foo> => [:foo {:baseProfile \"bar\" :viewBox \"0 0 1 1\"}]
      • Comments are retained
        • <foo><!-- ... --></foo> => [:foo (comment \"...\")]
      • You can have several top level tags
        • <foo></foo><foo></foo> => [:foo]\\n[:foo]
      ","boost":7},{"location":"hiccup/#it-is-somewhat-configurable","title":"It is somewhat configurable","text":"

      The Hiccup converstion can be tweaked with two options using the setting calva.html2HiccupOptions, which is a map/object:

      • mapify-style: boolean, default false. When true any style attribute will be converted to a map (Reagent supports this)
      • kebab-attrs?: boolean, default false. When true attribute names will be converted from camelCase, or snake_case/SNAKE_CASE to kebab-case. (Reagent wants most attribute names like this.)
      • add-classes-to-tag-keyword?: boolean, default true. When true all class names will be added CSS-style to the tag keyword ([:tag.clz1.clz2]), as opposed to being kept in the class attribute. Keeping the class names in the attribute may be preferable with elements having a lot of class names, such as when using Tailwind CSS.
      ","boost":7},{"location":"hiccup/#copy-as-menus-copy-html-as-hiccup","title":"Copy as menus: Copy HTML as Hiccup","text":"

      The Copy HTML as Hiccup command is available from VS Code's Edit menu, as well as the editor context menu, in both cases under the Copy as sub menu.

      ","boost":7},{"location":"hiccup/#the-commands-take-arguments","title":"The commands take arguments","text":"

      This options map can also be provided as an argument to the commands, so you can bind keyboard shortcuts to a particular configuration for the conversion.

      The command calva.convertHtml2Hiccup takes a map as an argument:

      • toUntitled: boolean, default false. When false the result of the conversion will be returned to the caller (This is intended for Joyride, or some other VS Code extension). When true it will behave like the default command does, placing the result of the conversion in an Untitled Clojure file.
      • options: Same as those calva.html2HiccupOptions mentioned above.

      The calva.pasteHtmlAsHiccup and calva.copyHtmlAsHiccup commands takes only a calva.html2HiccupOptions map.

      ","boost":7},{"location":"hiccup/#example-keyboard-shortcuts","title":"Example keyboard shortcuts","text":"

      The commands have no default keyboard shortcuts, you use the Command Palette to execute them, or you bind your own shortcuts. Here are some examples:

          // calva.convertHtml2Hiccup\n    {\n        // With args, `\"toUntitled\": true` is necessary for keyboard shortcuts\n        // without it, the command just returns the result to the caller\n        \"key\": \"ctrl+alt+c ctrl+h\",\n        \"command\": \"calva.convertHtml2Hiccup\",\n        \"args\": {\"toUntitled\": true, \"options\": {\"mapify-style?\": false}}\n    },\n    {\n        // Only for completeness, providing the HTML is only useful from e.g. Joyride \n        \"key\": \"ctrl+alt+c shift+h\",\n        \"command\": \"calva.convertHtml2Hiccup\",\n        \"args\": {\"html\": \"<foo style='a: b' bar='baz'>gaz<foo>\", \"toUntitled\": true}\n    },\n    {\n        // Without args, the command uses the `calva.html2HiccupOptions` configuration\n        // And writes the results to an Untitled document\n        \"key\": \"ctrl+alt+c h\",\n        \"command\": \"calva.convertHtml2Hiccup\",\n    },\n\n    // calva.pasteHtmlAsHiccup\n    {\n        // Override the `calva.html2HiccupOptions` configuration\n        \"key\": \"ctrl+alt+h ctrl+v\",\n        \"command\": \"calva.pasteHtmlAsHiccup\",\n        \"args\": {\"mapify-style?\": true, \"kebab-attrs?\": true}\n    },\n    {\n        // Without args, the command uses the `calva.html2HiccupOptions` configuration\n        \"key\": \"ctrl+alt+h v\",\n        \"command\": \"calva.pasteHtmlAsHiccup\"\n    },\n\n    // calva.copyHtmlAsHiccup\n    {\n        // Override the `calva.html2HiccupOptions` configuration\n        \"key\": \"ctrl+alt+h ctrl+c\",\n        \"command\": \"calva.copyHtmlAsHiccup\",\n        \"args\": {\"mapify-style?\": false, \"kebab-attrs?\": true}\n    },\n    {\n        // Without args, the command uses the `calva.html2HiccupOptions` configuration\n        \"key\": \"ctrl+alt+h c\",\n        \"command\": \"calva.copyHtmlAsHiccup\"\n    },\n

      The default/args-less bindings are placed last because reasons.

      ","boost":7},{"location":"hiccup/#using-from-joyride-or-some-other-vs-code-extension","title":"Using from Joyride (or some other VS Code extension)","text":"

      As with any VS Code command using these from Joyride is a matter of calling executeCommand.

      ","boost":7},{"location":"hiccup/#calvapastehtmlashiccup-and-calvapastehtmlashiccup","title":"calva.pasteHtmlAsHiccup and calva.pasteHtmlAsHiccup","text":"
      (-> (vscode/commands.executeCommand \"calva.pasteHtmlAsHiccup\"\n                                    #js {:mapify-style? true})\n    (.then ...))\n\n(-> (vscode/commands.executeCommand \"calva.copyHtmlAsHiccup\"\n                                    #js {:mapify-style? true})\n    (.then ...))\n
      ","boost":7},{"location":"hiccup/#calvaconverthtml2hiccup","title":"calva.convertHtml2Hiccup","text":"

      Without options the command behaves just like selecting the command from the command palette. If there is a selection it will be converted, otherwise the whole file. The result will be opened in a new Untitled document.

      (-> (vscode/commands.executeCommand \"calva.convertHtml2Hiccup\")\n    (.then ...))\n

      Called with arguments it will by default return an object with a .-result member which is a string with the Hiccup.

      (-> (vscode/commands.executeCommand \"calva.convertHtml2Hiccup\" \n                                    #js {:html \"<foo class='clz1 clz2>bar</foo>\"})\n    (.then #(println (.-result %))))\n\n(-> (vscode/commands.executeCommand \"calva.convertHtml2Hiccup\" \n                                    #js {:options #js {:mapify-style? false}})\n    (.then #(println (.-result %))))\n

      To make it put the text in a new Untitled document instead, provide the argument option :toUntitled true

      (-> (vscode/commands.executeCommand \"calva.convertHtml2Hiccup\" \n                                    #js {:toUntitled true\n                                         :html \"<foo class='clz1 clz2>bar</foo>\"\n                                         :options #js {:mapify-style? true\n                                                       :kebab-attrs? true}})\n    (.then ...))\n
      ","boost":7},{"location":"inspector/","title":"Unfold that data","text":"

      All REPL evaluation results are added to the Calva Inspector, a tree view that lets you expand and collapse Clojure data structures. (This happens in addition to results being printed to the configured Output Destination.)

      Only for realized data

      Results are added to the inspector after they have been processed by your pretty printer (if you have pretty printing enabled). This means that maxLength and maxDepth applies. The inspector can't be used to explore infinite sequences. Also, any metadata is lost in the translation.

      "},{"location":"inspector/#uifeatures","title":"UI/Features","text":"

      The inspector view can be placed in the left or right side bars, or in the bottom panel. It can also be placed as a section in an existing side bar view, or in split with any existing bottom panel view.

      Inspector items are not expandable until you make them so with the Inspect Result Item button. This is because parsing and building the structure for the tree can take a little while and we don't want it to lock the UI for you when you edit and evaluate code.

      Speaking of buttons. Items in the view have context commands that show up as buttons on hover. The Inspect Result Item button is one of them. All rows in the inspector have a Copy button, letting you copy the data at any folding level to the clipboard. All root items also have a Clear button for removing the item from the inspector.

      The view itself has two buttons, one for clearing all results and one for pasting whatever is on the clipboard as an inspector item.

      "},{"location":"inspector/#commands","title":"Commands","text":"

      These are the commands available for the inspector:

      • Calva: Reveal Inspector. Reveals/shows the inspector without focusing it. Default keybinding is ctrl+alt+o i
      • This command, when used from keyboard shortcuts or Joyride, has the command ID of calva.revealInspector, and takes an object argument: { focus: boolean, select: boolean, expand: boolean | number }. focus lets you focus the inspector view (or not), select and expand lets you select or expand the current item which, like with several of the inspector commands, will be the already selected item, or the topmost item if none is selected. It is passed to the TreeView backing the inspector, see the VS Code API docs regarding revealing tree view items for details.
      • Calva: Add Selection or Current Form to Inspector. Adds the current form (without evaluating it) to the inspector. If there is text selected, the command will add that text instead. (Only the first selection, if there are multiple). There is no default keybinding for this command.
      • This command has the ID of calva.addToInspector. The command takes an optional argument, a string to be added. This is meant for Joyride scripts that want to add things to the inspector.
      • Calva: Clear All Inspector Items. You can use the command or the button for this in the view. No default keybinding.
      • Calva: Paste as Inspector Item. Same as the view button. No default keybinding.
      • Calva: Inspect Item. Makes the selected item inspectable, expands it one level, selects it, and focuses the inspector. Works on the topmost item if none is selected. No default keybinding.
      • Calva: Copy Inspector Item. Copies the text of the selected inspector item, or the topmost item if none are selected. No default keybinding.
      • Calva: Clear Inspector Item. Clears the selected inspector item, or the topmost item if none are selected. No default keybinding.

      The VS Code Shortcuts editor is a good tool for looking up command IDs and, duh, register custom shortcuts for these commands.

      "},{"location":"inspector/#configuration","title":"Configuration","text":"

      The settings for the inspector are:

      • calva.autoOpenInspector: controls wether the view is revealed as part of connecting the REPL to Calva. It defaults to false.
      • calva.enableInspectorRainbow: when enabled, the inspector items representing collection types will be colored using the theme colors used by VS Code to color bracket pair levels.
      "},{"location":"inspector/#calvaenableinspectorrainbow-example","title":"calva.enableInspectorRainbow example","text":"

      Depending on your theme, enabling the inspector rainbow can make some items not display at all. This is because not all themes provide all (or any) bracket level colorings. You can define the missing ones, or all, levels in your settings JSON file. Here's an example harmonizing the levels coloring with the default Calva Highlight rainbow (included in the example for easy comparison):

        \"workbench.colorCustomizations\": {\n    \"[GitHub Light Default]\": {\n      \"editorBracketHighlight.foreground1\": \"#000\",\n    },\n    \"[GitHub Dark Default]\": {\n      \"editorBracketHighlight.foreground1\": \"#cccccc\",\n    },\n    \"editorBracketHighlight.foreground2\": \"#0098e6\",\n    \"editorBracketHighlight.foreground3\": \"#e16d6d\",\n    \"editorBracketHighlight.foreground4\": \"#3fa455\",\n    \"editorBracketHighlight.foreground5\": \"#c968e6\",\n    \"editorBracketHighlight.foreground6\": \"#999\",\n    \"terminal.ansiRed\": \"#ff7a5a\",\n  },\n  \"calva.highlight.bracketColors\": [\n    [\n      \"#000\",\n      \"#ccc\"\n    ],\n    \"#0098e6\",\n    \"#e16d6d\",\n    \"#3fa455\",\n    \"#c968e6\",\n    \"#999\",\n    \"#ce7e00\"\n  ],\n

      This is the setting used for the screenshot above. Here's a rainbow-only screenshot:

      Note that with the Calva Highlight rainbow colors, we use a tuple for light and dark theme colors. The VS Code theme color settings do not allow this, so if you need different colors for light and dark themes, you need to specify the exact theme. We do this in the example, since the default Calva Highlight rainbow needs different light/dark colors for the top level brackets.

      "},{"location":"jack-in-guide/","title":"Learn about Calva Jack-in","text":"

      The Calva Jack-In Academy, by @pez

      Like with CIDER Jack-in, Calva's let-me-help-you-start-your-project-and-connect feature might seem a bit mysterious. It really is helpful, but also really isn't mysterious. Here are a few things about it that is good to know about.

      Note

      If you came here to find out how to configure the versions of the dependencies that Calva Jack-in injects, see Customizing Calva - Jack-in Dependency Versions.

      ","boost":6},{"location":"jack-in-guide/#what-it-solves","title":"What it Solves","text":"

      At first it might seem that something like lein repl in a terminal and then connecting Calva is enough. It sometimes might be, but only if you are in luck. To provide many of its IDE features, Calva relies on nREPL middleware, mainly cider-nrepl and, for ClojureScript, piggieback. When starting your Clojure(Script) app and its REPL, it needs to be started with these dependencies satisfied. There are mainly three ways this can be achieved.

      1. In the project definition (files like project.clj, deps.edn, shadow-cljs.edn, and combination of these).
      2. In your user profile (files like ~/.lein/profiles.clj and ~/.clojure/deps.edn).
      3. On the command line.

      Because 1 and 2 are hard to keep in sync with the various editor environments people in your project might be using, Calva Jack-In is about 3.

      Ideally, you will be able to rid your project files completely of editor dependencies when people working on the project can rely on the Jack-In features of their Clojure editor.

      ","boost":6},{"location":"jack-in-guide/#a-controlled-shell-command","title":"A Controlled Shell Command","text":"

      At its core Calva Jack-In is just a glorified, REPL-starting, command-line. No, it is more than that, but anyway. The command line can look like so for a Leiningen project using legacy Figwheel for its ClojureScript assistance:

      lein update-in :dependencies conj '[nrepl\"0.6.0\"]' -- update-in :dependencies conj '[cider/piggieback\"0.4.1\"]' -- update-in :dependencies conj '[figwheel-sidecar\"0.5.18\"]' -- update-in :plugins conj '[cider/cider-nrepl\"0.22.4\"]' -- update-in '[:repl-options :nrepl-middleware]' conj '[\"cider.nrepl/cider-middleware\"]' -- update-in '[:repl-options :nrepl-middleware]' conj '[\"cider.piggieback/wrap-cljs-repl\"]' -- with-profile +dev repl :headless\n

      Even if a bit long, it might look simple enough. But actually it has taken quite some effort to make Calva craft it. Shell quoting can be really tricky. Look at how '[nrepl\"0.6.0\"]' doesn't have a space between nrepl and the version. That was the only way I could find that was cross platform enough to make all supported shells parse the command line. (The trick relies on that the string is read by the super reliable Clojure Reader, which does not need that space to tokenize it.)

      It is awesome that Clojure is used on so many platforms, but for a tool smith this also means more work. (I think Windows and its shell hell ate up about 95% of the many hours spent on getting the quoting good enough.)

      The command-line crafted is then used to start a shell command that Calva controls, but we are getting ahead of ourselves...

      ","boost":6},{"location":"jack-in-guide/#project-types-builds-aliases-profiles-etcetera","title":"Project Types, Builds, Aliases, Profiles, etcetera","text":"

      In order to cook the right command for your project, Calva looks for project files, reads them, and figures out what possible project types and ClojureScript tools could be involved. Then Calva presents you with a menu with the options it has found. You need to know enough about your project to answer this question. It looks like this in a shadow-cljs project that uses a deps.edn file for setting up its classpath.

      (I know enough about this particular project to know that I should choose the shadow-cljs project type.)

      But Calva isn't ready to cook the command-line just yet. Depending on the project type, and contents of your project files, more info is needed. E.g. in the case of shadow-cljs projects, Calva needs to know what builds to start.

      Here you can select any combination of builds defined in the project, and Calva will cook a command line that starts them.

      You might get more prompts from Calva before it issues the command, but for this example project, Calva goes ahead, cooks the command line, and issues it. On my Mac, it looks like so:

      npx shadow-cljs -d cider/piggieback:0.4.1 -d cider/cider-nrepl:0.22.4 watch :app\n

      (Much shorter than the one with lein-figwheel, right? It is because shadow-cljs is aware of CIDER dependencies, so it doesn't need as many dependencies specified as some other project types do.)

      ","boost":6},{"location":"jack-in-guide/#connecting","title":"Connecting","text":"

      When the command is issued Calva needs to wait until the REPL Server is started, before connecting to it and possibly continuing with starting a ClojureScript REPL and connecting to that as well. It also needs to know which port to connect to.

      Because reasons, Calva can't yet read the stdout of the shell command it has issued, so to know when the REPL server is started, and on which port, Calva monitors the filesystem for the .nrepl-port file. (This file is not always named like that. shadow-cljs, for instance, creates the file .shadow-cljs/nrepl.port.)

      When the port file is created, Calva picks up the port number from it and connects to the nREPL server. At this point you have a Clojure REPL backing your Calva session, providing all sorts of nice IDE help for you.

      ","boost":6},{"location":"jack-in-guide/#starting-your-clojure-app","title":"Starting Your Clojure App","text":"

      Once you have the Clojure REPL connected you can start your Clojure app/server. See Custom Connect Sequences for how to let Calva do this for you automatically. See the same article for ways to automate more of the Jack-In process. It can be brought down to a single Jack-In command/action, even for a full stack Clojure and ClojureScript application.

      ","boost":6},{"location":"jack-in-guide/#clojurescript","title":"ClojureScript","text":"

      For ClojureScript, things are not done yet, though, far from it. It turns out that cooking the command line was the easy part.

      In order for Calva to provide REPL power for ClojureScript projects, several things need to happen:

      1. A Clojure nREPL connection needs to be established. We've covered that above. Calva makes an nREPL session clone to use for the ClojureScript REPL and then:
      2. Your ClojureScript app needs to be compiled.
      3. Your ClojureScript app needs to be started.
      4. The Clojure nREPL session needs to be promoted to a ClojureScript nREPL session. (This is what piggieback helps with.)
      ","boost":6},{"location":"jack-in-guide/#compiling-the-app-and-watchers","title":"Compiling the App and Watchers","text":"

      Depending on ClojureScript project type, Calva uses different methods to start the compilation and the watcher:

      • Figwheel: The compilation and the watchers are started in the Clojure REPL session. (This is both for Figwheel Main and for lein-figwheel.)
      • shadow-cljs: The compilation and the watchers are started with the Jack-In command line.

      This results in a bit of difference in the user interaction. Mainly that for shadow-cljs, the user needs to check the Jack-In Terminal tab to follow what's going on.

      ","boost":6},{"location":"jack-in-guide/#starting-the-app","title":"Starting the App","text":"

      Number 3 above, the app needs to be started, might seem obvious, but it actually trips many people up. Because of this, Calva goes to quite some lengths to provide assistance. Many projects are configured not to spawn a browser session automatically, requesting the app once it has been compiled, so we can't rely on that.

      What Calva does instead is to monitor the output of the commands it uses for starting the compilation, looking for information that the app is ready to be requested/started. It then tells the user this, providing a URL, in case it is a browser app. (There are also settings that tell Calva to open the URL automatically for you, regardless what the project settings are.)

      ","boost":6},{"location":"jack-in-guide/#connecting_1","title":"Connecting","text":"

      Meanwhile, Calva is monitoring the output and when it sees that the app is started, it continues to hook up the REPL connection to the editor.

      This whole connection sequence is quite configurable, using Custom Connect Sequences. In fact, Calva's built in ClojureScript sequences (Figwheel Main, lein-figwheel, shadow-cljs, and ClojureScript built-ins for both Browser and Node) are all built using those same settings mechanisms.

      ","boost":6},{"location":"jack-in-guide/#shadow-cljs-is-less-managed-by-calva","title":"shadow-cljs is Less Managed by Calva","text":"

      NB: The managed way in which Calva creates and connects the ClojureScript REPL breaks apart a bit for shadow-cljs, which works a bit differently and also outputs most of the information Calva is looking for on the stdout of the REPL start command (where Calva can't see it, remember?). We'll figure out a better way to support shadow-cljs, but for now, the user needs to do more of this figuring out than is needed with Figwheel projects.

      ","boost":6},{"location":"jack-in-guide/#hack-away","title":"Hack Away","text":"

      So, there are things going on when you start Jack-In, and even more things for ClojureScript projects, but Calva tries to keep it together, so as a user it is a matter of paying attention and responding to a few prompts/menus with pre-populated options (prompts which can be configured away, even).

      ","boost":6},{"location":"jack-in-guide/#switch-clojurescript-builds","title":"Switch ClojureScript Builds","text":"

      Once the REPL is connected you might want to change which ClojureScript build you have Calva connected to. For this Calva has the Select CLJS Build Connection command. Please note that you can only switch between builds that you have started.

      ","boost":6},{"location":"jack-in-guide/#play-with-starting-the-cljs-repl-yourself","title":"Play With Starting the cljs-repl Yourself","text":"

      To get a good grip on what is going on when creating and connecting the ClojureScript REPL, I can recommend making a custom connect sequence which leaves the REPL unpromoted (e.g. give it nil as connectCode), and then evaluate the cljs-repl start commands yourself. So for instance, promoting it to a ClojureScript Node.js REPL looks something like so:

      user=> (require 'cljs.repl.node)\nuser=> (cider.piggieback/cljs-repl (cljs.repl.node/repl-env))\nClojureScript 1.10.844\nTo quit, type: :cljs/quit\nnil\ncljs.user=> |\n

      It is the piggieback middleware there telling you that you can unpromote the REPL by \u201devaluating\u201d :cljs/quit.

      ","boost":6},{"location":"jack-in-guide/#about-full-stack-applications","title":"About Full Stack Applications","text":"

      Because Calva uses the Clojure REPL connection to spawn the ClojureScript REPL, and because Calva only handles one Clojure REPL per VS Code window, some projects need special handling by the user.

      If your full stack project is using shadow-cljs for the frontend, like this Fulcro template project does, maybe you first try to Jack-In to your backend Clojure REPL, and then to your shadow-cljs frontend. This works if you do it in separate VS Code windows, but if you do it in the same window, the second Jack-In will kill the backend session! See also connect shadow-cljs in fullstack projects.

      See Workspace Layouts for tips about how to open the same project folder in two separate VS Code windows.

      Please also consider to play around with starting the REPL and ClojureScript wiring entirely from the terminal, see this example project for some instructions on that. You can also use that project together with the nil for connectCode sequence mentioned above.

      ","boost":6},{"location":"jack-in-guide/#please-grab-your-calva-jack-in-certificate","title":"Please Grab your Calva Jack-In Certificate","text":"

      There, you now know all there is to know about Calva Jack-In.

      Just kidding, there are a few more details to it, some of which might find their way into this article at a later time.

      To really get to know it all, you will need to spend some time with the Calva Jack-In code. Head over to the Calva Development Wiki to learn how to hack on Calva.

      ","boost":6},{"location":"joyride/","title":"Using Calva With Joyride","text":"

      Joyride is a VS Code extension for user space scripting of VS Code itself. You find the extension here. The scripting language for Joyride is the best you language imaginable: Clojure. And, as is proper for a Clojure implementation, it has a REPL, even an nREPL server.

      This means you can connect Calva to Joyride and interactively develop your VS Code scripts.

      This video shows Joyride in action, using Calva as the nREPL client.

      "},{"location":"joyride/#how-to-connect","title":"How to connect","text":"

      Once you have the Joyride extension installed you can start its REPL and connect Calva to it (a.k.a Jack-in).

      Start the Joyride REPL and Connect

      This 1 minute video shows the following steps:

      1. Installing the Joyride Extension
      2. Isssuing the command Calva: Start a REPL in your Project and (a.k.a Jack-in)
      3. Selecting joyride project type
      4. Isssuing the command Calva: Load/Evaluate Current File and its Requires/Dependencies
      5. Evaluating some non-vscode code
      6. Evaluating code exercising something from the VS Code API

      (Right-click the video and choose Full Screeen if it is too tiny embedded.)

      "},{"location":"joyride/#how-to-get-started-with-joyride","title":"How to Get Started with Joyride","text":"

      The Joyride README has some Quick Start pointers for you. Please feel invited to the #joyride channel on the Clojurians Slack and chat with us and other Joyride users.

      Come on, Join the Joyride! \u2764\ufe0f

      "},{"location":"krell/","title":"Using Calva With Krell","text":"

      Krell is \u00e0 la carte ClojureScript tooling for React Native.

      Even if Calva does not yet have built-in support, all is not lost. You can add support yourself by way of a Custom REPL Connect Sequence. Here's how;

      "},{"location":"krell/#starting-the-krell-clojurescript-repl","title":"Starting the Krell ClojureScript REPL","text":"

      Add this REPL Connect Sequence to your workspace settings.json:

          \"calva.replConnectSequences\": [\n        {\n            \"name\": \"deps.edn + Krell\",\n            \"projectType\": \"deps.edn\",\n            \"cljsType\": {\n                \"connectCode\": \"(require '[clojure.edn :as edn] \\n    '[clojure.java.io :as io]\\n    '[cider.piggieback] \\n    '[krell.api :as krell]\\n    '[krell.repl])\\n\\n(def config (edn/read-string (slurp (io/file \\\"build.edn\\\"))))\\n(apply cider.piggieback/cljs-repl (krell.repl/repl-env) (mapcat identity config))\",\n                \"dependsOn\": \"User provided\"\n            }\n        }\n    ]\n

      Then issue the command Start a Project REPL and Connect (aka Jack-In). It start the project and connect to the Krell REPL once the app is running on a device (wether real or virtual/emulated).

      "},{"location":"krell/#additional-vs-code-tips","title":"Additional VS Code Tips","text":"

      For a smooth workflow you can also:

      • Install the React Native Tools extension
      • Install the Debugger for Chrome extension, and add this Launch Configuration
                {\n            \"type\": \"chrome\",\n            \"request\": \"launch\",\n            \"name\": \"Launch Debugger\",\n            \"url\": \"http://localhost:8081/debugger-ui/\",\n            \"webRoot\": \"${workspaceFolder}\"\n        }\n

      Together with the connect sequence this will make for a start of a Krell session like this:

      1. Open the project root in VS Code
      2. Issue the Jack-in command
      3. Issue the React Native; Run Android on Emulator (or Run iOS on Simulator) command. (Disable Fast Refresh from the *React Native dev menu, if it is enabled.)
      4. Issue the React Native: Run Element Inspector command (You might need to install the React Native inspector globally): ```sh yarn global add react-devtools ````
      5. Launch Debugger (F5)
      6. Hack away, with hot reload and interactive REPL

      Once the debugger (a Chrome session) is running, you probably will want to enable Custom Formatters in order for clojure structures to be logged conveniently.

      "},{"location":"linting/","title":"Linting","text":"

      Calva does no linting, yet with Calva you get excellent linting. That is because Calva uses clojure-lsp, which provides linting powered by clj-kondo.

      clj-kondo comes with great default rules, and the configuration can be customized. One of your options for the configuration file is to placed a config.edn file in .clj-kondo/ at the root of your project. This folder may or may not already exist. It is safe to create it manually if it doesn't.

      The configuration will be merged with the default set of rules, you can only specify the rules you want to override. The full list of available options can be found on clj-kondo's github

      clojure-lsp is customizable, see Clojure LSP Settings for your options. It is safe to manually create the .lsp folder if it doesn't exist.

      You might want to read about how to configure clj-kondo. These two sections might be of extra interest:

      • Unrecognized macros
      • Lint a custom macro like a built-in macro

      If you see a linting squiggle under the first character of the file with an error you don't quite understand, it is probably something wrong with your clj-kondo configuration.

      Files are linted as they're being edited. If you want to lint the whole project, use the clj-kondo cli command. See https://github.com/borkdude/clj-kondo for more info on that. Windows users might like to know that they too can get a clj-kondo cli command now, via npm install -g clj-kondo. It'll be a bit slower to start than the native build, but for sure it's better than not having a clj-kondo command! See https://github.com/borkdude/clj-kondo/blob/master/doc/install.md#npm-linux-macos-windows for more on this.

      "},{"location":"linting/#resolve-macro-as","title":"Resolve Macro As","text":"

      When your cursor is on a macro form in the editor, you may notice a code action (click the light bulb that appears) called Resolve Macro As. Running this code action will ask you what macro you'd like to resolve the current macro as, and then what clj-kondo config file you want the macro to be saved to. This code action is also available as a command.

      "},{"location":"live-share/","title":"Using Calva with Live Share","text":"

      Live Share is a Microsoft provided VS Code extension. It allows you to share the workspace that you have open in your computer with somebody else. Everybody is then working on the same source code files, namely those on your computer. You can edit files at the same time, everyone has their own caret. You can follow each other (i.e. when someone switches to a different file, you will as well). This is great for remote pair programming, for example.

      An extra nice thing is that each participant is using their own VSCode configuration, including fonts, colors, keyboard shortcuts, etc.

      Disable Calva Spritz to get rid of Notebooks interference

      The headline below Calva Supports Live Share is true. However, due to a bug in LiveShare, guest participants always get their Clojure files opened in the Calva Clojure Notebooks editor. To workaround this issue Calva uses a \u201dside-car\u201d extension named Calva Spritz for the Notebooks associations of Clojure files. You can disable that extension when participating in LiveShare sessions.

      "},{"location":"live-share/#calva-supports-live-share","title":"Calva Supports Live Share","text":"

      When using Calva, you can use Live Share as well. Editing works exactly the same as for any other programming language. What makes Calva a bit special, is the REPL. When using Live Share, Calva allows the host to share the REPL with guests as well. If you use any of the supported configuration, this will be pretty much automatic.

      You need to enable the LiveShare support

      Due to an issue in the LiveShare API, for some users, this feature stops Calva from connecting the REPL. Therefore the support is disabled by default. The setting is calva.useLiveShare.

      This is what a typical scenario looks like:

      1. The host jacks-in.
      2. The host shares its workspace using Live Share. Calva will detect that the workspace is being shared, so it will offer to share the REPL port that was opened when jacking in. The host clicks \"Allow\" to start sharing the port. (Note: steps 1 and two can also be done in the reverse order.)
      3. The host sends the Live Share URL to the guest(s).
      4. The guest joins the Live Share session using the URL it received.
      5. The guest connects to the host's REPL using the command \"Connect to a running REPL server in the project\". If needed, the guest chooses the same build configuration as the host.

      Voila! Both the guest and the host can now use the REPL that is running on the host. Things like documentation lookup now also work on the guest's machine.

      "},{"location":"live-share/#control-visibility-of-calva-folder","title":"Control Visibility of .calva Folder","text":"

      Calva depends on the output.calva-repl file to be available. If you have the .calva folder listed in your .gitignore, this also causes the folder to be hidden from guests in Live Share by default. In order to make the folder visible, you can put a file called .vsls.json in your project. In its simplest form, the contents can be this:

      {\n  \"$schema\": \"http://json.schemastore.org/vsls\",\n  \"hideFiles\": [\n    \"!.calva\"\n  ]\n}\n

      Now the .calva folder is shared as well. But also any other file and folder that you may have in your .gitignore. If you want to have more fine-grained control, please refer to the section Controlling file access and visibility of the Live Share documentation.

      "},{"location":"live-share/#some-things-to-keep-in-mind","title":"Some Things To Keep In Mind","text":"
      • As a guest, you're connected to a REPL running on the host's machine. With power comes responsibility; be nice, and be careful!
      • There is only one output.calva-repl file, which all participants are sharing. It may work better to evaluate things in the source code editors instead of from the REPL window. Otherwise you will end up in a situation where one person is typing something in the output.calva-repl window, and somebody else is evaluating something (hence sending the output there) at the same time. That gets confusing quickly.
      • When you're working on a CLJS-based web development project, things may get extra confusing. By default, Live Share will share any HTTP ports on the host automatically, and also offer to open the URL on the guest. (You can disable using the setting \"Liveshare: Open Shared Servers\".) As a guest, you do not want to open that browser window normally. Think about it: where is the REPL running? Yes: in the browser! But Calva connects to the REPL running in the browser on the host's machine, so if you open a browser as a guest, you will also get a REPL there, but you won't be connected to it in Calva.
      • Currently Live Share does not allow Calva to know whether the workspace is shared read-only or read-write. If you share read-only, and you don't want the guests to have access to your REPL, don't click \"Allow\" when VSCode asks you to share the REPL port.
      "},{"location":"live-share/#calva-spritz","title":"Calva Spritz","text":"

      Together with Calva there is an extension called Calva Spritz installed. All it does is to provide the association of Clojure file types to Clojure Notebooks. We do it this way because of the LiveShare issues mentioned above. So that you can disable the Notebook association when participating as a guest in LiveShare sessions. The issue is tracked here:

      • Calva issue: LiveShare participants incorrectly opening every Clojure file as if via \"Open with Notebook\"
      • LiveShare issue: Guest opens Clojure file as a notebook (incorrectly)

      Calva Spritz can be disabled and enabled at will, and it will take immediate effect, without any reload of VS Code needed.

      "},{"location":"luminus/","title":"How to Use Calva with Luminus","text":"

      Luminus is a powerful and versatile Leiningen template for creating web development projects. It comes with built in configuration which makes it easy to use Calva as your Clojure(Script) editor.

      "},{"location":"luminus/#server-shadow-cljs","title":"Server + shadow-cljs","text":"

      Basically this is the same wokflow as with Server only. Behind the scenes there is more happening, though. Such as the ClojureScript app being built and the CLJS REPL connected once the web app is running.

      1. If you haven't created the project yet, create a new shadow-cljs Luminus project. E.g.:
        $ lein new luminus my-luminus-shadow +reagent +re-frame +shadow-cljs\n
      2. Install npm dependencies
        $ npm i\n
        (Or yarn if you prefer.)
      3. This creates the folder my-luminus-shadow. Open it in VS Code:
        $ code my-luminus-shadow\n
      4. Use the Calva command Start a Project REPL and Connect (aka Jack-in): ctrl+alt+c ctrl+alt+j
      5. Select to start my-luminus-shadow Server + Client, and wait for the Terminal Calva Jack-in output to say [:app] Build completed.
      6. Open 127.0.0.1:3000 in your web browser and start hacking.

      Note

      Currently Calva has troubles following the app-start with shadow-cljs, so Calva will report Jack-in done. in the output window before shadow-cljs is actually done building the app. If you open the app page at that stage, you will see a message to \u201cPlease run lein shadow watch app\u201d. Rest assured that this is already underway. Follow the Jack-in process in the Terminal tab in VS Code for the message that the app is built, then reload the app page in the web browser.

      "},{"location":"luminus/#server-only","title":"Server Only","text":"

      The workflow here is really just: Jack-in and start hacking. However, the first time it will involve these steps:

      1. If you haven't created the project yet, create a new server only Luminus project. For a all-defaults setup it is like so:
        $ lein new luminus my-luminus-server\n
      2. This creates the folder my-luminus-server. Open it in VS Code:
        $ code my-luminus-server\n
      3. Use the Calva command Start a Project REPL and Connect (aka Jack-in): ctrl+alt+c ctrl+alt+j
        • Select to start my-luminus-shadow Server and wait until you see Jack-in done. in the output window.
      4. Open 127.0.0.1:3000 in your web browser and start hacking.
      "},{"location":"luminus/#server-figwheel","title":"Server + Figwheel","text":"

      This is Legacy Figwheel (lein-figwheel), so the recommendation is to use the shadow-cljs setup instead. As with the server only, the workflow here is really just: Jack-in and start hacking. The first time it involves these steps:

      1. If you haven't created the project yet, create a new server only Luminus project. E.g.:
        $ lein new luminus my-fw +reagent\n
      2. This creates the folder my-fw. Open it in VS Code:
        $ code my-fw\n
      3. Use the Calva command Start a Project REPL and Connect (aka Jack-in): ctrl+alt+c ctrl+alt+j, select Server + Client - my-fw in the Project type picker menu, and wait for the web app to pop open in your web browser.
      4. Start hacking.

      If you prefer to open the web app yourself, open .vscode/settings.json and change \"shouldOpenUrl\" to false in the pre-configured Calva connect sequence. Calva will then print the URL 127.0.0.1:3000 in the output, so that you can click it open.

      "},{"location":"luminus/#etcetera","title":"Etcetera","text":"

      You will have three Calva Custom Command Snippets configured. Invoke them by issuing the Run Custom REPL Command, ctrl+alt+c . (that's a dot). These commands control the Luminus server:

      1. Start <project> Server
      2. Stop <project> Server
      3. Restart <project> Server

      When used, Calva will open its REPL window and execute the command, if it is not already opened. You can close this window if you prefer to use the REPL directly from the Clojure files.

      Calva also opens the REPL window, and starts the Luminus server, as part of the Jack-in process.

      "},{"location":"merch/","title":"Calva Merch","text":"

      In this video, there is a question about where you can buy the Calva T-shirt:

      You couldn't, then. But now you can! On Amazon.

      Zero profit

      To keep the admin of this shop to a minimum the merch is sold at production prize (or as close to production prize as the respective store allows). There is no royalty going to anyone in the Calva team when you buy one of these t-shirts. You will represent, which is certainly a way to support the project. You are of course encouraged to support us via sponsoring as well:

      • Sponsor Peter Str\u00f6mberg
      • Sponsor Brandon Ringe

      Calva Merch is available on Zazzle and on Amazon

      ","boost":10},{"location":"merch/#zazzle","title":"Zazzle","text":"","boost":10},{"location":"merch/#calva-symbol-sticker","title":"Calva Symbol Sticker","text":"Calva Symbol Sticker by BetterThanTomorrow","boost":10},{"location":"merch/#joyride-symbol-sticker","title":"Joyride Symbol Sticker","text":"Joyride Symbol Sticker by BetterThanTomorrow","boost":10},{"location":"merch/#amazon-merch","title":"Amazon Merch","text":"","boost":10},{"location":"merch/#the-designs","title":"The designs","text":"

      There are four design, all featuring the Calva symbol (the Calva glass), which are all available for a Standard T-shirt, in men's, women's and kid's cut, and in some different colors. In the .com store there are also Premium T-shirts**.

      ","boost":10},{"location":"merch/#symbol-logo","title":"Symbol + Logo","text":"

      Available at:

      • https://www.amazon.com/dp/B09BCVH9SC (Premium T-shirt)
      • https://www.amazon.com/dp/B097TB5QFW
      • https://www.amazon.de/dp/B098GWQC6M
      • https://www.amazon.co.uk/dp/B098KM9XMF
      • https://www.amazon.fr/dp/B0994TYXTN
      • https://www.amazon.it/dp/B099KLJJV1
      • https://www.amazon.es/dp/B099NXR71Y
      • https://www.amazon.co.jp/dp/B097YZVMC4
      ","boost":10},{"location":"merch/#symbol-logo-we-do-it-with-rich-comments","title":"Symbol + Logo + We do it with Rich Comments","text":"

      The Calva symbol and Logo front, Rich Comments back.

      Available at:

      • https://www.amazon.com/dp/B09C4PBH5N (Premium T-shirt)
      • https://www.amazon.com/dp/B09BFMRCHL
      • https://www.amazon.de/dp/B09C3VYZH8
      • https://www.amazon.co.uk/dp/B09BLD2BVJ
      • https://www.amazon.fr/dp/B09C3X1H7K
      • https://www.amazon.it/dp/B09C3WV2JQ
      • https://www.amazon.es/dp/B09C4P1GD1
      • https://www.amazon.co.jp/dp/B09C4P45MR
      ","boost":10},{"location":"merch/#symbol-only","title":"Symbol Only","text":"

      Available at:

      • https://www.amazon.com/dp/B09B83481D (Premium T-shirt)
      • https://www.amazon.com/dp/B097TB5QFW
      • https://www.amazon.de/dp/B098434W9M
      • https://www.amazon.co.uk/dp/B098KNGPBB
      • https://www.amazon.fr/dp/B099RZGNN7
      • https://www.amazon.it/dp/B099WYH94Z
      • https://www.amazon.es/dp/B09B2TFCSR
      • https://www.amazon.co.jp/dp/B09B4XN3HY
      ","boost":10},{"location":"merch/#symbol-we-do-it-with-rich-comments","title":"Symbol + We do it with Rich Comments","text":"

      The Calva symbol front, Rich Comments Back.

      Available at:

      • https://www.amazon.com/dp/B098M34FKJ (Premium T-shirt)
      • https://www.amazon.com/dp/B0993VCG7P
      • https://www.amazon.de/dp/B098MF14PV
      • https://www.amazon.co.uk/dp/B098P1MV44
      • https://www.amazon.fr/dp/B098TPQFCJ
      • https://www.amazon.it/dp/B098YP33ZL
      • https://www.amazon.es/dp/B098RDPK55
      • https://www.amazon.co.jp/dp/B0992MQYG6

      Note

      What's available on this or that Amazon site will vary a bit and it is a bit slow to add a particular design to a particular market. Eventually I hope to have both designs up on these markets: .com, .co.uk, .de, .fr, .it, .es, and .co.jp

      ","boost":10},{"location":"namespace-form-auto-creation/","title":"Namespace Form Auto-creation","text":"

      When you create a new clojure file, a file with .clj, .cljc or .cljs extension, an appropriate namespace form will be added to the file. This feature is provided by clojure-lsp.

      "},{"location":"nbb/","title":"Using Calva with nbb","text":"

      Since nbb can be started such that it is an nREPL server, Calva can connect to it and a lot of the features will work.

      Calva can also start nbb and connect its REPL for you, using the Jack-in command. This will start an nbb nREPL server on a random port and connect Calva to it. Check out this video where they use Calva and nbb to create a CLI tool as an executable npm module:

      In that video they ask for a JavaScript to ClojureScript converter. And there is one: https://mauricioszabo.gitlab.io/js2cljs/

      Though if you are using Calva, this converter is easier to use directly via the command Calva: Convert JavaScript to ClojureScript:

      Errors jacking in to nbb on Windows?

      On some machines it seems necessary to first run npx nbb from the CMD prompt to make jack-in work. Or try first install it npm i -g nbb. (You probabl want nbb installed globally anyway.)

      Don't expect complete support

      nbb's nREPL server is completely new and and WIP. It will be a bit limited compared to a full cider-nrepl enhanced \"regular\" Clojure nREPL server. Things like function signatures, and more do not work.

      It's a bit hacky

      The nbb nREPL server is the first ClojureScript nREPL server around and throws Calva's assumption that an nREPL server is always started in a Clojure process out the window. The nbb Jack-in/connect option \u201dpretends\u201d it is connecting to a Clojure nREPL and then the code fro promoting the nREPL session to a ClojureScript one is just dummy code.

      This means that if you open a Clojure (.clj) file while connected to an nbb nREPL server, it will still be a ClojureScript session serving even though Calva will indicate that it is a Clojure one. Bare with us until we can fix this properly in Calva.

      ","boost":4},{"location":"notebooks/","title":"Clojure Notebooks","text":"

      WIP: Notebook support is very basic and experimental

      • You might experience loss of file contents when saving a Clojure Notebook. Have backups of any files you open as notebooks.
      • Tooling around autocomplete, go to def, linting and such does not work at all yet.
      • There is no Markdown support.
      • Etcetera. As if this was not enough, notebooks can also interfere with LiveShare support.

      Please help test the feature. We're looking forward to your feedback!

      You can open any Clojure file as a notebook by right clicking the file -> Open with... -> Clojure Notebook.

      Running cells sends them to the REPL and pretty prints the results. If the return is a string that starts with <html it will be displayed in an html webview.

      Forms inside (comment) blocks get shown as their own cells. When adding code blocks in between those cells they get saved with the same indentation as the first form.

      ","boost":1},{"location":"notebooks/#calva-spritz","title":"Calva Spritz","text":"

      Together with Calva there is an extension called Calva Spritz installed. It only provides the association of Clojure file types to Clojure Notebooks. This is due to the LiveShare issues mentioned above. So that you can disable the Notebook association when participating as a guest in LiveShare sessions. The issue is tracked here:

      • Calva issue: LiveShare participants incorrectly opening every Clojure file as if via \"Open with Notebook\"
      • LiveShare issue: Guest opens Clojure file as a notebook (incorrectly)
      ","boost":1},{"location":"nrepl_and_cider-nrepl/","title":"nREPL and cider-nrepl","text":"

      nREPL and cider-nrepl middleware enable Calva to support full Interactive Programming.

      ","boost":2},{"location":"nrepl_and_cider-nrepl/#about-nrepl","title":"About nREPL","text":"

      The REPL is a Clojurists quintessential tool, it\u2019s what we use to do Interactive Development, the hallmark of the LISP style of development.

      In Interactive Development (more commonly but somewhat imprecisely referred to as REPL-driven development), the programmer\u2019s editor has a direct connection with the running application process. This allows evaluating pieces of code in the context of a running program, directly from where the code is written (and so not in some separate \u201cREPL place\u201d), inspecting and manipulating the innards of the process. This is helped along by the dynamic nature of Clojure in which any var can be redefined at any point, allowing for quick incremental and iterative experimentation and development.

      This is why it\u2019s essential to the Clojure development experience to have proper editor support, a plugin which bridges the gap between where the code is written and where the code is run. So we have CIDER for Emacs, Calva for VS Code, Cursive for IntelliJ, Conjure or Iced for Vim, and so forth. Often these will also leverage the same (or a parallel) connection into the process for other editor affordances, like navigation and completion.

      But for these editor plugins to connect to the Clojure process something needs to be listening on the other side, accepting connections, allowing the initiation of a program-to-program dialogue. The most common way to achieve this is by leveraging the nREPL protocol, an asynchronous message-based network protocol for driving interactive development. The application process is started with an embedded nREPL server, so that the editor can connect as an nREPL client.

      From: Lambda Island

      ","boost":2},{"location":"nrepl_and_cider-nrepl/#about-the-nrepl-server-and-middleware","title":"About the nREPL Server and Middleware","text":"

      nREPL is an extensible protocol, the reference server implementation understands certain core operation types like \"eval\". More operations can be supported, or existing operations can be modified or augmented, through nREPL middleware. For example: the Piggieback middleware can intercept \"eval\" messages, and forward them to a ClojureScript environment, rather than evaluating them in the Clojure process itself.

      Which middleware to use will mostly depend on the editor you are using. You\u2019ll typically find that the Clojure-specific functionality for a given editor is partly implemented as a typical editor extension, for instance CIDER written in Emacs LISP, or Calva written in Typescript, and partly as nREPL middleware, providing the functionality the editor extension relies on. For instance, both CIDER and Calva rely on functionality provided by cider-nrepl.

      Also from: Lambda Island

      ","boost":2},{"location":"nrepl_and_cider-nrepl/#viewing-the-communication-between-calva-and-nrepl","title":"Viewing the Communication Between Calva and nREPL","text":"

      You can view the messages sent between Calva and nREPL by running the command Toggle nREPL Logging Enabled. Enabling nREPL message logging triggers the creation of a VS Code output channel called nREPL Messages where the messages will be logged. Messages sent to nREPL from Calva will have -> sent above them, and messages sent from nREPL to Calva will have <- received above them. Disabling nREPL message logging causes the nREPL Messages channel to be removed and messages will no longer be logged.

      Each message is logged as JSON. If you find a need for the messages to be logged as EDN (for example, to transform and analyze them with Clojure) please open a GitHub issue for this change. A PR would be welcome too!

      The example below shows two messages logged when the cursor hovers over println in a Clojure file while a REPL is connected.

      -> sent\n{\n  op: 'info',\n  ns: 'test-lein.core',\n  symbol: 'println',\n  id: '7',\n  session: '1a080b66-b1b6-4b8c-8206-c4af2cc02747'\n}\n\n<- received\n{\n  added: '1.0',\n  'arglists-str': '[& more]',\n  column: 1,\n  doc: 'Same as print followed by (newline)',\n  file: 'jar:file:/Users/brandon/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/core.clj',\n  id: '7',\n  line: 3733,\n  name: 'println',\n  ns: 'clojure.core',\n  resource: 'clojure/core.clj',\n  'see-also': [\n    'clojure.core/prn',\n    'clojure.core/print',\n    'clojure.core/println-str',\n    'clojure.pprint/pprint'\n  ],\n  session: '1a080b66-b1b6-4b8c-8206-c4af2cc02747',\n  static: 'true',\n  status: [ 'done' ]\n}\n
      ","boost":2},{"location":"output/","title":"Output Destinations","text":"

      Calva categorizes output into three types:

      • evaluation results: Clojure data returned from an evaluation.
      • evaluation output: stdout/stderr from an evaluation
      • other output: Other messages, logs, etc

      With the setting calva.outputDestinations, you can configure where each category of output should go to:

      • the REPL Window
      • the Calva Says Output Channel
      • the Calva Output (pseudo) Terminal

      The reason there are several options for this is partly legacy and partly because VS Code restricts the placement of different views in different ways. We hope you will find a combination of output destinations that suits you.

      "},{"location":"output/#commands-for-showing-output-destinations","title":"Commands for showing output destinations","text":"

      These are the commands and their default keyboard shortcuts for revealing output destinations

      • Calva: Show/Open the result output destination - ctrl+alt+o o
      • Calva: Show/Open the Calva says Output Channel - ctrl+alt+o c
      • Calva: Show/Open the Calva Output Terminal - ctrl+alt+o t
      • Calva: Show/Open REPL Window - ctrl+alt+o r
      "},{"location":"output/#about-stdout-in-the-repl-window","title":"About stdout in the REPL Window","text":"

      Since Calva v2.0.423 the REPL Window prints stdout prepended with ; to make it into line comments. This is because stdout output easily breaks the Clojure structure of the REPL Window, making it misbehave in various ways. We made this change because as maintainers of Calva we have seen all too often how this hits users, and it is also taking too much of our Calva time to try mitigate the problem, which is fundamentally not fixable.

      There are now other output destinations that do not have this limitation.

      All that said. If you want to keep using the REPL Window for stdout output, and need the old behavior, you can enable the setting: calva.legacyPrintBareReplWindowOutput. Please note that at some point after we have created a dedicated Output Window, the REPL Window will be retired as a destination for output.

      "},{"location":"output/#repl-process-output-stdout-and-stderr","title":"REPL process output (stdout and stderr)","text":"

      When Calva is connected to the REPL, the Output window will by default print not only results of evaluations, but also:

      1. Things printed to stdout and stderr in the main thread of the evaluations
      2. Things printed to stdout and stderr from child threads of the evaluations
      3. Anything printed to stdout and stderr by the REPL process

      You can control the default via the calva.redirectServerOutputToRepl setting. It defaults to true. Setting it to false before connecting the REPL will result in that 2. and 3. will not get printed in the Output window. It will then instead be printed wherever the REPL process is printing its messages, usually the terminal from where it was started (the Jack-in terminal if Calva started the REPL).

      "},{"location":"output/#see-also","title":"See also","text":"
      • The Calva Results Inspector
      • The REPL Window
      "},{"location":"paredit/","title":"Paredit \u2013 a Visual Guide","text":"

      Structural editing and navigation for Clojure.

      ","boost":7},{"location":"paredit/#what-is-paredit","title":"What is Paredit?","text":"

      Calva Paredit helps you navigate, select and edit Clojure code in a structural way. LISP isn't line or character oriented, it is based around S-expressions, a.k.a forms. We strongly recommend that you take advantage of the structural nature of Clojure, and have therefore put a lot of work into making Calva Paredit extra awesome.

      If you are new to Paredit, consider starting with learning the Slurp Forward (pull in the next form into this form) and Barf Forward (push the last form out of this form). It will take you quite far.

      ","boost":7},{"location":"paredit/#strict-mode","title":"Strict Mode","text":"

      To protect the integrity of your code, Strict mode is enabled by default.

      Strict mode keybinding Action Description backspace Delete Backward Deletes one character backwards, unless it will unbalance a form. Otherwise moves past the character instead of deleting it. If the list is empty, it will remove both open and close brackets. delete Delete Forward Deletes one character forwards, unless it will unbalance a form. Otherwise moves past the character instead of deleting it. If the list is empty, it is removed. alt+backspace Force Delete Backward Deletes one character backwards, even if it will unbalance a form. alt+delete Force Delete Forward Deletes one character forwards, even if it will unbalance a form.

      Disable at your own peril. Strict mode can be toggled on/off using the Toggle Paredit Mode command, and there is a status bar indicator telling you:

      Indicator Paredit Mode [\u03bb] Strict (\u03bb) Cave Man (strict mode off) \u03bb No default key bindings

      Toggle between Strict and Cave Man using: ctrl+alt+p ctrl+alt+m

      ","boost":7},{"location":"paredit/#a-keybinding-for-protecting-the-structure-from-semi-colon","title":"A keybinding for protecting the structure from semi-colon","text":"

      Semi-colons (;) in Clojure are non-structural because they comment out the rest of the line regardless of brackets. In a way they can delete brackets. There is a somewhat secret command in Paredit that can be used to insert ; in a safe way:

      paredit.insertSemiColon

      Bind it to the ; key with a when clause that activates it together with the other Strict mode commands:

      {\n    \"command\": \"paredit.insertSemiColon\",\n    \"key\": \";\",\n    \"when\": \"calva:keybindingsEnabled && editorLangId == clojure && editorTextFocus && paredit:keyMap == strict && !editorReadOnly && !editorHasMultipleSelections && !calva:cursorInComment\"\n },\n
      ","boost":7},{"location":"paredit/#commands","title":"Commands","text":"

      The Paredit commands are sorted into Navigation, Selection, and Edit. As mentioned, Slurp and Barf are power commands, which go into the editing category. Learning to navigate structurally, using shortcuts, also saves time and adds precision to your editing. It has the double effect that you at the same time learn how to select structurally, because that is the same, just adding the shift key.

      To make the command descriptions a bit clearer, each entry is animated. When you try to figure out what is going on in the GIFs, focus on where the cursor is at the start of the animation loop.

      ","boost":7},{"location":"paredit/#command-args","title":"Command Args","text":"

      Some Paredit commands accept arguments. You can utilize this in keybindings and from Joyride.

      ","boost":7},{"location":"paredit/#copy-for-all-kill-commands","title":"copy for all kill* commands","text":"

      When specified, will control whether killed text will be copied to the clipboard. This is an alternative to, or supports binding-specific overrides for, calva.paredit.killAlsoCutsToClipboard.

      For example, here's 2 keybindings for paredit.killRight with different copy args, allowing you to choose when or if you want killed text copied at keypress-time, regardless of global calva.paredit.killAlsoCutsToClipboard setting:

      {\n  \"key\": \"ctrl+k\",\n  \"command\": \"paredit.killRight\",\n  \"when\": \"... your when conditions ...\",\n  \"args\": {\"copy\": false}\n},\n{\n  \"key\": \"cmd+k ctrl+k\",\n  \"command\": \"paredit.killRight\",\n  \"when\": \"... your when conditions ...\",\n  \"args\": {\"copy\": true}\n},\n

      Or, you can even have both of them use the same key, but separate when conditions to taste, to allow context-conditional copying.

      ","boost":7},{"location":"paredit/#strings-are-not-lists-but-anyway","title":"Strings are not Lists, but Anyway...","text":"

      In Calva Paredit, strings are treated in much the same way as lists are. Here's an example showing Slurp and Barf, Forward/Backward List, and Expand Selection.

      ","boost":7},{"location":"paredit/#navigating","title":"Navigating","text":"

      (Modify these with shift to select rather than move, see below.)

      Default keybinding Action Description ctrl+right (win/linux)alt+right (mac) Forward Sexp Moves the cursor forward, to the end of the current form. If at the end, moves to the end of the next form. Will not move out of lists. ctrl+left (win/linux)alt+left (mac) Backward Sexp Moves the cursor backward, to the start of the current form. If at the start, moves to the start of the previous form. Will not move out of lists. ctrl+down Forward Down Sexp Moves the cursor into the following list. ctrl+alt+up Backward Down Sexp Moves the cursor into the preceding list. ctrl+alt+down Forward Up Sexp Moves the cursor forwards, out of the current list. ctrl+up Backward Up Sexp Moves the cursor backwards, out of the current list. Unbound Forward Sexp Or Up Moves the cursor forward, to the end of the current form. If at the end, moves to the end of the next form. Moves out of the lists if at the end of it. Unbound Backward Sexp Or Up Moves the cursor backward, to the start of the current form. If at the start, moves to the start of the previous form. Moves out of the list if at the start of it. ctrl+end Forward to List End/Close Moves the cursor forwards, staying within the current list. ctrl+home Backward to List Start/Open Moves the cursor backwards, staying within the current list.","boost":7},{"location":"paredit/#selecting","title":"Selecting","text":"

      Most of these commands are selecting \u201dversions\u201d of the navigation commands above. Repeated use will grow the current selection step by step.

      Default keybinding Action Description shift+alt+right (win/linux)ctrl+w (mac) Expand Selection Starts from the cursor and selects the current form. Then will keep expanding to enclosing forms. shift+alt+left (win/linux)ctrl+shift+w (mac) Shrink Selection Contracts back from an expanded selection performed by any Paredit selection command. (In the animation the selection is first grown using a combination of Expand Selection and some lateral selection commands, then shrunk all the way back down to no selection.) ctrl+alt+w space Select Top Level Form Top level in a structural sense. Typically where your(def ...)/(defn ...) type forms. Please note that(comment ...) forms create a new top level. shift+ctrl+right (win/linux)shift+alt+right (mac) Select Forward Sexp ctrl+shift+k Select Right Select forward to the end of the current form or the first newline. See Kill right below. (The animation also shows Shrink Selection). shift+ctrl+left (win/linux)shift+alt+left(mac) Select Backward Sexp ctrl+shift+down Select Forward Down Sexp (You probably do not need to select like this, but you can!) ctrl+shift+alt+up Select Backward Down Sexp (You probably do not need to select like this, but you can!) ctrl+shift+alt+down Select Forward Up Sexp (You probably do not need to select like this, but you can!) ctrl+shift+up Select Backward Up Sexp (You probably do not need to select like this, but you can!) Unbound Select Forward Sexp Or Up (You probably do not need to select like this, but you can!) Unbound Select Backward Sexp Or Up (You probably do not need to select like this, but you can!) ctrl+shift+end Select Forward to List End/Close ctrl+shift+home Select Backward to List Start/Open","boost":7},{"location":"paredit/#editing","title":"Editing","text":"Default keybinding Action Description ctrl+alt+right (mac/win)ctrl+alt+. (linux) Slurp Forward Moves the closing bracket forward, away from the cursor, past the following form, if any. ctrl+alt+left (mac/win)ctrl+alt+, (linux) Barf Forward Moves the closing bracket backward, towards the cursor, past the preceding form. ctrl+alt+shift+left Slurp Backward Moves the opening bracket backward, away from the cursor, past the preceding form, if any. ctrl+alt+shift+right Barf Backward Moves the opening bracket forward, towards the cursor, past the following form. ctrl+alt+s Splice Sexp Remove enclosing brackets. ctrl+shift+s Split Sexp Splits a string, or a list, into two strings, or lists of the same type as the current. ctrl+shift+j Join Sexps/Forms Joins two strings, or two lists of the same type, into one form (string/list). ctrl+alt+p ctrl+alt+r Raise Sexp Replaces the enclosing list with the current form. ctrl+alt+t Transpose Sexps/Forms Swaps place of the two forms surrounding the cursor. alt+upalt+down Drag Sexp Backward/Forward Moves the current form to the behind/in front of the previous/next one. (See below about behavior in maps and binding boxes.) ctrl+alt+shift uctrl+alt+shift d Drag Sexp Backward UpDrag Sexp Forward Down Moves the current form up/out of the current list, backwards, and down/in to the following list, forwards, keeping the cursor within the sexpr being dragged. ctrl+alt+shift kctrl+alt+shift j Drag Sexp Forward UpDrag Sexp Backward Down Moves the current form up/out of the current list, forwards, and down/in to the preceding list, backwards, keeping the cursor within the sexpr being dragged. ctrl+shift+c Convolute \u00af\\_(\u30c4)_/\u00af ctrl+shift+delete Kill Sexp Forward Deletes the next form in the same enclosing form as the cursor. ctrl+k ctrl+k (win/linux)ctrl+k (mac) Kill Right Delete forward to the end of the current form or the first newline. ctrl+k ctrl+h (win/linux)cmd+backspace (mac) Kill Left Delete backward to the start of the current form or the start of the line. ctrl+alt+backspace Kill Sexp Backward Deletes the previous form in the same enclosing form as the cursor. ctrl+delete Kill List Forward Deletes everything from the cursor to the closing of the current enclosing form. ctrl+backspace Kill List Backward Deletes everything from the cursor to the opening of the current enclosing form. ctrl+alt+shift+delete Splice Killing Forward Delete forward to end of the list, then Splice. ctrl+alt+shift+backspace Splice Killing Backwards Delete backward to the start of the list, then Splice. ctrl+alt+shift+p Wrap Around () Wraps the current form, or selection, with parens. ctrl+alt+shift+s Wrap Around [] Wraps the current form, or selection, with square brackets. ctrl+alt+shift+c Wrap Around {} Wraps the current form, or selection, with curlies. ctrl+alt+shift+q Wrap Around \"\" Wraps the current form, or selection, with double quotes. Inside strings it will quote the quotes. ctrl+alt+rctrl+alt+p/s/c/q/h Rewrap Changes enclosing brackets of the current form to parens/square brackets/curlies/double quotes and set (#{})

      Copy to Clipboard when killing text

      You can have the kill commands always copy the deleted code to the clipboard by setting calva.paredit.killAlsoCutsToClipboard to true. If you want to do this more on-demand, you can kill text by using the selection commands and then Cut once you have the selection.

      clojure-lsp drag fwd/back overlap

      As an experimental feature, the two commands for dragging forms forward and backward have clojure-lsp alternatives. See the clojure-lsp page.

      ","boost":7},{"location":"paredit/#drag-bindings-forwardbackward","title":"Drag bindings forward/backward","text":"

      When dragging forms inside maps and binding boxes, such as with let, for, binding, etcetera, it often makes most sense to drag each binding as a pair. And this is what Calva will do. Like so:

      And like so (wait for it):

      ","boost":7},{"location":"paredit/#about-the-keyboard-shortcuts","title":"About the Keyboard Shortcuts","text":"

      Care has been put in to making the default keybindings somewhat logical, easy to use, and work with most keyboard layouts. Slurp and barf forward are extra accessible to go with the recommendation to learn using these two super handy editing commands.

      You can relax how Paredit's shortcuts replace VS Code built in shortcuts a bit by setting calva.paredit.hijackVSCodeDefaults to false.

      There are some context keys you can utilize to configure keyboard shortcuts with precision. See Customizing Keyboard Shortcuts.

      The Nuclear Option: You can choose to disable all default key bindings by configuring calva.paredit.defaultKeyMap to none. (Then you probably also want to register your own shortcuts for the commands you often use.)

      ","boost":7},{"location":"paredit/#when-clauses-and-vscode-default-bindings","title":"When Clauses and VSCode Default Bindings","text":"

      There are instances where VSCode's built-in command binding defaults are the same as Paredit's, where Paredit's version has less functionality. For example, Calva's Expand Selection and Shrink Selection doesn't support multiple selections (though this may change in the future - see Multicursor section below). In this particular case, adding !editorHasMultipleSelections to the when clause of the binding makes up for this gap by letting the binding fall back to VSCode's native grow/shrink selection.

      For example, here's the JSON version of the keybindings settings demonstrating the above. Note this can also specified in the Keyboard Shortcuts UI:

      {\n  \"key\": \"shift+alt+right\",\n  \"command\": \"paredit.sexpRangeExpansion\",\n  \"when\": \"calva:keybindingsEnabled && editorLangId == clojure && editorTextFocus && paredit:keyMap =~ /original|strict/ && !calva:cursorInComment\"\n}\n

      to

      {\n  \"key\": \"shift+alt+right\",\n  \"command\": \"paredit.sexpRangeExpansion\",\n  \"when\": \"!editorHasMultipleSelections && calva:keybindingsEnabled && editorLangId == clojure && editorTextFocus && paredit:keyMap =~ /original|strict/ && !calva:cursorInComment\"\n}\n

      The point is that when the bindings overlap and default functionality is desired peaceful integration can be achieved with the right when clause. This is left out of Paredit's defaults to respect user preference, and ease of maintenance.

      Happy Editing! \u2764\ufe0f

      ","boost":7},{"location":"paredit/#experimental-feature-multicursor-support","title":"Experimental Feature: Multicursor support","text":"

      There is an ongoing effort to support simultaneous multicursor editing with Paredit. This is an experimental feature and is not enabled by default. To enable it, set calva.paredit.multicursor to true. This feature is still in development and may not work as expected in all cases. Currently, this supports the following categories:

      • Movement
      • Selection (except for Select Current Form - coming soon!)
      • Rewrap
      ","boost":7},{"location":"paredit/#toggling-multicursor-per-command","title":"Toggling Multicursor per command","text":"

      The experimental multicursor-supported commands support an optional command arg - like copy for the kill* commands mentioned above - to control whether multicursor is enabled for that command. This is an alternative to, or supports binding-specific overrides for, calva.paredit.multicursor.

      For example:

      {\n  \"key\": \"ctrl+k\",\n  \"command\": \"paredit.sexpRangeExpansion\",\n  \"when\": \"... your when conditions ...\",\n  \"args\": {\"multicursor\": false}\n}\n
      ","boost":7},{"location":"parinfer/","title":"Calva Parinfer Mode is Reverted","text":"

      Reverted in Calva v2.0.228

      The changes in v2.0.227 seemed to cause problems for some users. Unclear yet if and why. But to not risk causing problems for more users these changes where reverted and Calva v2.0.228 does not contain them. Please consider using v2.0.227 and help find what the problems are about! Please note: Even in v2.0.227 this feature is currently disabled by default.

      Parinfer is a system for editing the structure of LISP text without explicit commands. The structure can be regarded as already being expressed through indentation. With Parinfer you can use your intuition about the structure inferred from the indentation to perform surprisingly many structural edits.

      "},{"location":"parinfer/#quirks","title":"Quirks","text":"

      There are some known quirks, of varying severity, with this feature. Some of them will need to be fixed before we move this feature out of Experimental status.

      For the most times you can always Undo to get back to where the document was fine. You just need to pay some attention and be aware when undo is needed.

      "},{"location":"parinfer/#no-multi-cursor-support","title":"No multi-cursor support","text":"

      The bracket inference will remove all cursors but the first one. So for instance if you edit with multiple cursors and it causes brackets to move, you'll end up with just one cursor and the subsequent edits will not be what you intended. This is particularly important to note when you have cursors that are not in the viewport. In such cases it might be better to turn Parinfer off while you do the edits, fix formatting and such manually and then switch Parinfer on again.

      "},{"location":"parinfer/#wrong-inferences","title":"Wrong inferences","text":"

      For yet unknown reasons an edit such as the following does the wrong thing (the cursor indicated by the vertical bar):

      (foo| (bar)\n      (baz))\n

      backspace =>

      (fo| (bar\n      (baz)))\n

      That is (baz) is slurped. When what should happen is:

      (fo| (bar)\n     (baz))\n
      "},{"location":"parinfer/#lag-causing-errors-when-fast-typing","title":"Lag causing errors when fast typing","text":"

      The way that Calva Parinfer works is that for any edit of the document it first reformats the code around the cursor, then infer brackets. Currently these two steps are not atomic to VS Code, so if you type fast bracket inference might happen on the yet unformatted code, and thus not be correct. You might also see the cursor end up at the wrong position at times.

      "},{"location":"parinfer/#infer-parens","title":"Infer Parens","text":"

      This is no longer available in Calva

      See above about how to try this build anyway, warts and all.

      When you enable Calva's Parinfer it is all about infering brackets from indentation. There are no further Parinfer modes. Calva's auto-formatter will take care of keeping the code correctly indented.

      Enable it with from this setting: calva.fmt.experimental.inferParensAsYouType or from the status bar item.

      "},{"location":"parinfer/#parinfer-status-bar-items","title":"Parinfer Status bar items","text":"

      To the right on the status bar, right before the Paredit status bar item, you will have two items, Parinfer toggle ON/OFF and a health indicator.

      1. Parinfer ON/OFF indicator/button. \u2022() (The dot/circle indicates ON/OFF)
      2. Structure and indentation health indicator. \u2714\ufe0f/\u26a0/\u2298

      When Parinfer is ON, the health indicator will have three states:

      1. \u2714\ufe0f Healthy - meaning both structure and indentation is OK
      2. \u2298 Structure broken - you need to fix the the structure of the code
      3. \u26a0 Bad indentation - meaning that to Parinfer the structure and indentation do not match, _the item is now also a button with which you can fix the indentation.

      Parinfer will be disabled in both the unhealthy states.

      When Parinfer is OFF, only the first two states above are used.

      "},{"location":"parinfer/#some-vs-code-settings-automatically-changed","title":"Some VS Code Settings automatically changed","text":"

      In order for some automatic VS Code behaviour not to interfere with Parinfer the following settings are automatically configured when you toggle Parinfer ON:

          \"[clojure]\": {\n        \"editor.autoClosingBrackets\": \"never\",\n        \"editor.autoClosingOvertype\": \"never\",\n        \"editor.formatOnPaste\": false\n    },\n

      And when you toggle Parinfer OFF:

          \"[clojure]\": {\n        \"editor.autoClosingBrackets\": \"always\",\n        \"editor.autoClosingOvertype\": \"always\",\n        \"editor.formatOnPaste\": true\n    },\n

      It is recommended that you let Calva handle these settings to avoid weird behaviour.

      "},{"location":"parinfer/#no-tab-indenting","title":"No Tab indenting","text":"

      As the tab key is used for formatting the current form in Calva, it is \u201dtaken\u201d. The closest equivalents you have are space and backspace. At least for now. We'll see if we can find out a good way for supporting tab and shift+tab for indent and dedent.

      tab for formatting is of course just a default key binding and you can assign it to something else to get it to do indenting. However, it will not be a very smart indent anyway, there is no Clojure awareness about it. You are hereby adviced to instead use some more spaces.

      "},{"location":"parinfer/#paredit-is-still-there","title":"Paredit is still there","text":"

      In Calva, Parinfer and Paredit are designed to coexist and both be there to let you edit the structure easily and efficiently. Since Paredit commands are always formatted, they leave the code in a state where Parinfer has what it needs to infer bracket placement as you either edit the indentation, or remove/add brackets.

      "},{"location":"parinfer/#disable-the-parinfer-extension","title":"Disable the Parinfer Extension","text":"

      If you want to have Parinfer you are probably best served by Calva's built-in version. It is designed, and will continue to be improved to function well together with Calva's other structural editing and formatting features. It will also probably conflict with the Parinfer Extension.

      "},{"location":"parinfer/#see-also","title":"See also","text":"
      • Paredit
      • Formatting
      "},{"location":"polylith/","title":"How to Use Calva with Polylith","text":"

      Polylith is an architecture for backend projects that maximizes development ergonomics and code reuse.

      When developing a Polylith application you use one REPL for everything. And as such it is a rather vanilla deps.edn project, so there is really not much more to using Calva with Polylith than:

      1. Jack in, selecting the deps.edn project type
      2. Select aliases, most often :dev and :test
      3. Hack away!
      "},{"location":"polylith/#the-realworld-example","title":"The RealWorld Example","text":"

      To make it easy to try Polylith out with Calva, the Polylith RealWorld example implementation has some Calva config to get the server started and Calva connected to its REPL quickly:

      1. Fork the project and open it in VS Code
      2. Jack-in, selecting the Polylith RealWorld Server REPL project type
      3. Wait for the REPL prompt to read clj\ua789dev.server\ua789>
      4. Evaluate (start! 6003)
      5. Hack away!
      "},{"location":"polylith/#try-it-with-a-frontend","title":"Try it with a Frontend","text":"

      A ClojureScript frontend, of course:

      1. Fork the jacekschae/conduit project and open it in VS Code
      2. Edit the api-url definition in events.cljs file to be
        (def api-url \"http://localhost:6003/api\")\n
      3. Jack-in, selecting to start and connect to the :app build
      4. Wait for it to compile and then open http://localhost:3000
      5. Hack away!
      "},{"location":"pprint/","title":"Pretty Printing","text":"

      In Calva, pretty printing is a mode. Prettiness is on by default and all your evaluation results will get that treatment.

      You can also pretty print code on demand

      There is a command Replace Current Form (or Selection) with Pretty Printed Form. See Clojure Formmatting for more on this.

      "},{"location":"pprint/#toggle-it","title":"Toggle it","text":"

      There is a pprint indicator to the right in the status bar which shows the status of the mode. Click the indicator to toggle prettification on and off. There is also a Calva: Toggle Pretty Printing for All Evaluations command.

      Tip: If you have evaluated something time consuming, or that is not idempotent, with pretty printing mistakenly off: toggle it on and evaluate *1.

      "},{"location":"pprint/#configuration","title":"Configuration","text":"

      For most people the defaults will probably work, but Calva pretty printing comes a few knobs you can turn, and they are all available through the calva.prettyPrintingOptions settings. Things you can set are:

      Setting Type Effect enabled boolean So this is a third way you can change this mode \ud83d\ude04 printEngine enum Which printer function that will be used. Default is pprint, more about this setting below printFn object You can configure Calva to use a custom nREPL compatible print function, more below. width number The maximum line length of printed output (or at least the printers will try) maxLength number The maximum number of elements printed in nested nodes, good for evaluating something like (iterate inc 0), which you shouldn't do without setting maxLength. Most printers will indicate truncated lists with ... at the end. maxDepth number The maximum number of levels deep that will get printed. Different printers mark a stop different ways. puget doesn't support it at all.

      See Customizing Calva for some tips on adding settings like these.

      Here's an example of how zprint handles maxDepth (from the Calva implementation of it's client side pretty printing.).

        (pretty-print [[[[[[[[:deeper]]]]]]]] {:max-depth 4})\n  ;; => {:value \"[[[[##]]]]\"}\n
      "},{"location":"pprint/#your-selection-of-prettifiers","title":"Your Selection of Prettifiers","text":"

      Pretty printing can happen on the server (i.e. in the JVM, via nREPL), or on the client (i.e. in node, via VS Code/Calva). Client side always uses zprint. Server side you can choose from these printers:

      Print Engine Client or Server Side Comments calva client The nREPL server will plain print the results, and then Calva will pretty it (using zprint). pprint server Current Calva default. clojure.core/pprint is a bit basic, but it's tried and tested, and doesn't suffer from the issues with the other server side printing options, mentioned below. fipp server puget server Lacks maxDepth option. zprint server A very good option. However, it will need to be configured before Jack-in if you want Calva's help to inject its dependencies. (If you are not using Jack-in, you'll need to supply this dependency yourself.)

      These particular server side functions were chosen because they have pre-configured print-functions in cider-nrepl.

      "},{"location":"pprint/#or-configure-printfn","title":"Or configure printFn","text":"

      If the selection of built-in printEngine support doesn't cut it, you can configure a custom function. This function will need to conform to the requirements of nREPL print functions. The VS Code settings editor will help you configure this one. (This is also a bit experimental, please consider giving feedback about how it works for you if you try it.)

      "},{"location":"pprint/#why-does-server-or-client-side-matter","title":"Why does Server or Client Side Matter?","text":"

      This matters because on the server all pretty printers, except pprint does more than just pretty print the result that would be printed with plain printing. Pretty printing results on the server causes some results to get expanded. This can have huge implications depending on the results and which printer is used. E.g. for Datomic transaction results, you will get the whole database printed. Twice. Depending on the database, you could be so unlucky that nothing gets printed, and instead you will soon have a very hot computer.

      Note: With the help of zprint creator, Kim Kinnear, we have found ways to compensate for this problem. Ways that are not yet implemented, but please stay tuned.

      Then why not always do it client side? It turns out that on the client side there are also things going on. Calva gets the results back as a string and therefore it needs to first be parsed back to EDN, before it can be pretty printed by zprint. And \u2013 here's the catch \u2013 all results are not valid EDN and therefore can't be pretty printed by zprint. Datomic transaction results are one example.

      "},{"location":"pprint/#need-more-configurability","title":"Need More Configurability?","text":"

      The current options are limited, because our time developing Calva is limited. But cider-nrepl really allows for fully configurable pretty printing, so it is within reach. Please feel invited to give us feedback on what you would want to configure for the printing of results. File issues and/or chat us up in #calva in the Clojurians slack.

      "},{"location":"pprint/#troubleshooting","title":"Troubleshooting","text":""},{"location":"pprint/#pprint-is-not-working","title":"pprint is not working","text":"

      If pprint is not working, try a different pprint engine or use Calva's jack-in to make sure the necessary dependencies are loaded in your REPL. If you are starting your REPL without jack-in and want to continue doing so, you can use the command Copy Jack-in Command Line to Clipboard then paste the command somewhere to see what dependencies it injects. You can then add these dependencies to your REPL in whatever way suits your needs.

      Enjoy Prettiful Printing! \u2764\ufe0f

      "},{"location":"quirks/","title":"Quirks","text":"

      Here's a shocker for ya': Calva isn't perfect. \ud83d\ude04

      There are quirks and things that flat out do not work. We'll try to collect info about such things here, providing workarounds when available (or, rather, known to us).

      "},{"location":"quirks/#test-features-not-available-with-clojurescript","title":"Test features not available with ClojureScript","text":"

      Currently cider-nrepl does not provide its test functionality for ClojureScript code. Please consider contributing to fixing that.

      "},{"location":"quirks/#using-with-parinfer","title":"Using with Parinfer","text":"

      See Using with Parinfer

      "},{"location":"quirks/#calva-and-the-vim-extension","title":"Calva and the VIM Extension","text":"

      See Using Calva with the VIM Extension.

      "},{"location":"quirks/#command-not-found-errors-on-jack-in","title":"\u201dCommand not found\u201d Errors on Jack-in","text":"

      Jack-in starts by running a command in a new terminal. You will need the commands used installed on your computer:

      • clojure for tools.deps/deps.edn
      • lein for Leiningen
      • npx for shadow-cljs
      • gradlew for Gradle (in your project)

      Also, in some circumstances VS Code is not spawned from a shell with the environment variables, especially $PATH, which might mean that even though you have the tools installed, they are not found when VS Code/Calva tries to execute them. To fix this you will need to do one of these two things:

      1. Figure out from where VS Code is spawned, and make sure the $PATH there includes the directory with the needed binary.
      2. Start VS Code from a terminal where the $PATH is correctly configured. (Using the code command.)

      See this issue for more clues on this problem.

      "},{"location":"quirks/#strange-linting-errors","title":"Strange linting errors?","text":"

      This is not really a quirk, and most linting errors are not strange when you learn about why they are there. Calva does not do any linting, btw, see also linting.

      "},{"location":"quirks/#consider-uninstalling-these-extensions","title":"Consider uninstalling these extensions","text":"

      Without Calva, many users install other nifty extensions (some of which are old pieces of Calva) that help with this or that problem. It might sometimes work together with Calva, sometimes not. Here's a list of some common extensions you should consider to at least disable:

      • Strict Paredit - Calva Paredit has evolved a lot since that version
      • Calva-fmt/Calva Formatter - Same here, evolution
      • Clojure Warrior - Calva includes it, in a much evolved way
      • Parinfer - This one you can actually keep, at some cost, see Using Calva with Parinfer.
      "},{"location":"re-frame-template/","title":"How to use Calva with the re-frame template","text":"

      The re-frame template creates a shadow-cljs project, making it easy to use with Calva.

      1. npm install
      2. From VS Code, issue the command Calva: Start a Project REPL and Connect (a.k.a Jack-in), ctrl+alt+c ctrl+alt+j.
      3. Calva will auto-detect that this is a shadow-cljs project and ask for which build to compile.
      4. Calva's output window will open and log some progress information.
      5. When prompted for which build to start, select :app.
      6. :app is the only configured build, but the VS Code menu for this is a bit strange so make sure the :app checkbox is really ticked before proceeding.
      7. This will start the app, so in this workflow you don't do the Run application steps outlined below.
      8. When prompted for which build to connect to, select :app.
        • In the View menu of VS Code, you can tell it to show the Terminal view, where you see which command the jack-in process is started with, and it's output. Ctrl+C in this pane will kill your app and free up all resources it has allocated.
      9. When the app is compiled
        1. Open http://localhost:8280 in your browser.
        2. Confirm that it says Hello from re-frame. (Depending on how long the app takes to compile, you might need to reload the page a few times.)
      10. Open the views.cljs file from src/<your-project-name> and issue Calva: Load/Evaluate Current File and its Requires/Dependencies. ctrl+alt+c enter.
        1. Confirm that you are connected by adding evaluating (js/alert \"Hello from Calva\") (alt+enter and ctrl+enter are your friends).
        2. Confirm that Shadow is hot reloading by changing the greeting message.
      "},{"location":"rebl/","title":"How to Use Calva and REBL Together","text":"

      REBL is a graphical, interactive tool for browsing Clojure data.

      "},{"location":"rebl/#depsedn","title":"deps.edn","text":"

      Add the following aliases to your deps.edn file. Use the deps.edn file in the ~/.clojure directory to enable alias reuse across multiple projects. This is the configuration for REBL on openjdk 12. Check out the REBL github page for more info.

      ;; REBL Base\n:rebl\n{:extra-deps {org.clojure/core.async {:mvn/version \"0.4.490\"}\n                ;; deps for file datafication (0.9.149 or later)\n                org.clojure/data.csv {:mvn/version \"0.1.4\"}\n                org.clojure/data.json {:mvn/version \"0.2.3\"}\n                org.yaml/snakeyaml {:mvn/version \"1.23\"}\n                com.cognitect/rebl\n                ;; adjust to match your install location\n                {:local/root \"/Users/ozimos/REBL/latest/REBL.jar\"}}}\n\n;; REBL 12\n:rebl-12\n{:extra-deps {org.openjfx/javafx-fxml     {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-controls {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-graphics {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-media    {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-swing    {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-base     {:mvn/version \"12.0.1\"}\n                org.openjfx/javafx-web      {:mvn/version \"12.0.1\"}}}\n\n;; nREBL\n:nrebl {:extra-deps {rickmoynihan/nrebl.middleware {:mvn/version \"0.2.0\"}}\n            :main-opts [\"-e\" \"((requiring-resolve,'cognitect.rebl/ui))\" \"-m\" \"nrepl.cmdline\" \"--middleware\" \"[nrebl.middleware/wrap-nrebl]\" \"-I\"]}\n

      Create a Calva custom connect sequence for your VSCode editor. (Read Custom REPL Connect Sequences if you haven't.) Add the following to your vscode settings.json:

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Rebl Connect\",\n            \"projectType\": \"deps.edn\",\n            \"menuSelections\": {\n                \"cljAliases\": [\n                    \"rebl\",\n                    \"rebl-12\",\n                    \"nrebl\"\n                ]\n            }\n        }\n    ]\n}\n
      "},{"location":"rebl/#leiningen","title":"Leiningen","text":"

      Add rebl profiles to your user-wide profiles so that they will be available for all your projects. Here's a sample user profile (located at ~/.lein/profiles.clj on mac):

      {:user {:plugins [[lein-ancient \"0.6.15\"]]}\n\n ;; REBL Base\n :rebl {:resource-paths [\"/Users/ozimos/REBL/latest/REBL.jar\"]\n        :dependencies [[org.clojure/core.async \"0.4.490\"]\n                       [org.clojure/data.csv \"0.1.4\"]\n                       [org.clojure/data.json \"0.2.3\"]\n                       [cljfmt \"0.6.4\"]\n                       [org.yaml/snakeyaml \"1.23\"]]}\n\n ;; REBL 12 for JDK 12.0.1. Swap out for your JDK version\n :rebl-12 {:dependencies [[org.openjfx/javafx-fxml  \"12.0.1\"]\n                          [org.openjfx/javafx-controls \"12.0.1\"]\n                          [org.openjfx/javafx-graphics \"12.0.1\"]\n                          [org.openjfx/javafx-media \"12.0.1\"]\n                          [org.openjfx/javafx-swing \"12.0.1\"]\n                          [org.openjfx/javafx-base  \"12.0.1\"]\n                          [org.openjfx/javafx-web \"12.0.1\"]]}\n\n;; NREBL https://github.com/RickMoynihan/nrebl.middleware\n :nrebl {:repl-options {:nrepl-middleware [nrebl.middleware/wrap-nrebl]}\n        :dependencies [[rickmoynihan/nrebl.middleware \"0.3.1\"]]}}\n
      More info here

      Create a Calva custom connect sequence for your VSCode editor. (Read Custom REPL Connect Sequences if you haven't.) Add the following to your vscode settings.json:

      {\n    \"calva.replConnectSequences\": [\n        {\n            \"name\": \"Lein REBL\",\n            \"projectType\": \"Leiningen\",\n            \"menuSelections\": {\n                \"leinProfiles\": [\"rebl\", \"rebl-12\", \":nrebl\"]\n            },\n            \"afterCLJReplJackInCode\": \"((requiring-resolve 'cognitect.rebl/ui))\"\n        }\n    ]\n}\n
      "},{"location":"rebl/#shadow-cljs-tbd","title":"shadow-cljs (TBD)","text":"

      TBD. If you know how to do it, please update this page.

      "},{"location":"refactoring/","title":"Refactoring","text":"

      There are two \u201dflavours\u201d to refactoring support. Some (just a few) refactorings are made available as Quick Fix suggestions (the light bulb), the rest are regular commands in the clojure-lsp Refactoring category.

      You can enable or disable the Quick Fix suggestion lightbulb using the VS Code setting editor.lightbulb.enabled.

      The refactoring commands do not have default keyboard shortcuts. You find them all by typing \u201dclojure-lsp Refactor\u201d in the Command Palette.

      "},{"location":"refactoring/#commands","title":"Commands","text":"Command Title Command Key Description Clean NS Form clojureLsp.refactor.cleanNs Add Missing Require clojureLsp.refactor.addMissingLibspec Extract to New Function clojureLsp.refactor.extractFunction Cycle/Toggle Privacy clojureLsp.refactor.cyclePrivacy Inline Symbol clojureLsp.refactor.inlineSymbol Introduce let clojureLsp.refactor.introduceLet Creates a new let box with the binding. Follow up with \u201dExpand let\u201d to move it upwards. Expand Let clojureLsp.refactor.expandLet Move to Previous let Box clojureLsp.refactor.moveToLet Thread First clojureLsp.refactor.threadFirst Thread First All clojureLsp.refactor.threadFirstAll Thread Last clojureLsp.refactor.threadLast Thread Last All clojureLsp.refactor.threadLastAll Unwind All clojureLsp.refactor.unwindAll Unwind Thread clojureLsp.refactor.unwindThread

      Formatting

      The way that some of the refactorings are applied to the document, makes it difficult for Calva to format the results. So, sometimes you'll need to navigate the cursor to the enclosing form and hit tab to tidy up the formatting after a refactoring. See also Formatting.

      "},{"location":"refactoring/#thanks-to-clojure-lsp","title":"Thanks to clojure-lsp","text":"

      Most of Calva's refactoring support is sourced directly from clojure-lsp. This also means that most often, if you find issues with refactoring, or have suggestions about it, the clojure-lsp repo is where to direct your reporting.

      "},{"location":"remote-development/","title":"Using Calva with Remote Development","text":"

      VS Code Remote Development is a new feature in version 1.35 of VS Code that allows a developer to use a container, remote machine, or the Windows Subsystem for Linux (WSL) as a full-featured development environment.

      I would recommend reading the introductory blog post and watching the videos. I find the feature extremely exciting and wish more IDEs would implement something like it.

      From a Clojure perspective it allows you to have VS Code installed on your Java-less, Clojure-less hardware and still use it to develop Clojure through it.

      "},{"location":"remote-development/#a-use-case","title":"A use-case","text":"
      • For some reason your physical computer has to be running Windows (organizational rules etc.)
      • Your deployment environment is Linux
      • You want to edit files in an editor running on your physical computer
      • Most Clojure tooling is made with *nix first in mind and there are incompatibilities with Windows
      "},{"location":"remote-development/#how-to","title":"How to","text":"

      Run Remote-Containers: Add Development Container Configuration Files... and pick a suitable Java base image. Then:

      "},{"location":"remote-development/#modify-dockerfile-to-install-clojure-cli-and-optionally-lein","title":"Modify Dockerfile to install Clojure CLI (and optionally lein)","text":"

      Add:

      # ...\n\n# Install Clojure - see https://github.com/Quantisan/docker-clojure/blob/master/target/openjdk-14-slim-buster/tools-deps/Dockerfile\nENV CLOJURE_VERSION=1.10.1.619\nWORKDIR /tmp\nRUN \\\napt-get update && \\\napt-get install -y curl make rlwrap wget && \\\nrm -rf /var/lib/apt/lists/* && \\\nwget https://download.clojure.org/install/linux-install-$CLOJURE_VERSION.sh && \\\nsha256sum linux-install-$CLOJURE_VERSION.sh && \\\necho \"28b1652686426cdf856f83551b8ca01ff949b03bc9a533d270204d6511a8ca9d *linux-install-$CLOJURE_VERSION.sh\" | sha256sum -c - && \\\nchmod +x linux-install-$CLOJURE_VERSION.sh && \\\n./linux-install-$CLOJURE_VERSION.sh\nRUN \\\nsu vscode -c \"clojure -e '(clojure-version)'\" && \\\nrm ./linux-install-$CLOJURE_VERSION.sh\n\n# Install Lein\nRUN \\\nwget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein -O /bin/lein && \\\nchmod uog+x /bin/lein\nRUN su vscode -c \"/bin/lein\"\n\n# Cleanup\nRUN apt-get purge -y --auto-remove curl wget\n\n# ...\n
      "},{"location":"remote-development/#modify-devcontainerjson","title":"Modify devcontainer.json","text":"

      Add Calva and, optionally, forward some ports to the host::

      \"extensions\": [\"betterthantomorrow.calva\"],\n\"forwardPorts\": [8088, 52162], // example: your webapp, your nREPL\n
      "},{"location":"remote-development/#build-and-start","title":"Build and start","text":"

      Run Remote-Containers: Rebuild and Reopen in container

      "},{"location":"remote-development/#wsl","title":"WSL","text":"

      See Using Calva with WSL

      "},{"location":"repl-window/","title":"The REPL Window/File","text":"

      The Calva REPL Window is actually a regular file with some extra treatment from Calva, like displaying a prompt, offering evaluation history recall and generally \u201cfollowing\u201d the current namespace. This file is created and opened when Calva is connected to a REPL. You can use it for experimental code (though there are also Rich Comments and Fiddle Files for this).

      In ClojureScript projects, the window will be associated with the cljs REPL once it is connected. It will then look something like this:

      The first prompt is from when the clj REPL is connected, and the second from cljs. The first part of the prompt tells you which REPL type the window is currently connected to.

      "},{"location":"repl-window/#using-the-repl-window-for-output","title":"Using the REPL Window for output","text":"

      By default the REPL Window doubles as the place where Calva sends output like stdout/stderr and other messages. See Calva Output for more about this and how to change this behaviour.

      "},{"location":"repl-window/#finding-the-repl-window","title":"Finding the REPL Window","text":"

      If you quickly want to open and/or switch to the REPL Window there is the command Calva: Show/Open REPL Window, ctrl+alt+o r.

      To sync the REPL window namespace with the current file before switching, use the Switch Namespace of the REPL Window to Current Namespace command, ctrl+alt+c alt+n.

      "},{"location":"repl-window/#find-the-file-for-the-current-repl-window-namespace","title":"Find the File for the Current REPL Window Namespace","text":"

      When you are editing things in the REPL window, and want to open the file that defines its current namespace, use the Show File for the Current REPL Window Namespace command, ctrl+alt+o r.

      Note

      This also works for Clojure core and library namespaces.

      "},{"location":"repl-window/#evaluating-code","title":"Evaluating Code","text":"

      The window will be automatically associated with the REPL and the namespace of any project Clojure/ClojureScript file you evaluate code in. So for instance if you evaluate this code in a clj file with the namespace fresh-reagent.handler:

      (def mount-target\n  [:div#app\n   [:h2 \"Welcome to fresh-reagent\"]\n   [:p \"please wait while Figwheel is waking up ...\"]\n   [:p \"(Check the js console for hints if nothing exciting happens.)\"]])\n

      If the REPL Window is the configured destination for evaluation results, the defined var will be printed there. Otherwise, it will be printed to the destination you've configured. In either case, the REPL window will print a new prompt reflecting the current REPL connection and namespace:

      If you then switch to the output window (ctrl+alt+o r), and enter this at the prompt:

      mount-target\n

      then evaluate it using alt+enter, you'll get this:

      ... because the namespace \u201dfollowed\u201d the first evaluation in the REPL window.

      "},{"location":"repl-window/#repl-history","title":"REPL History","text":"

      Recently evaluated forms in the REPL file are persisted and can easily be shown again for modifying and re-evaluating.

      "},{"location":"repl-window/#navigate-repl-history","title":"Navigate REPL History","text":"

      You can navigate up and down the history of evaluated forms in the REPL file by pressing alt+up and alt+down, provided your cursor is at the end of the last form after the prompt. If the cursor is not at the end of the last form, then alt+up and alt+down will do whatever they are mapped to, which is by default \"Move Line Up\" and \"Move Line Down,\" respectively.

      If you have typed some text after the prompt before you start traversing up the history, this text will be preserved and will display when you traverse back down the history. If you modify some text in the history while traversing, the modification will be saved at that location in history.

      "},{"location":"repl-window/#clear-repl-history","title":"Clear REPL History","text":"

      You can clear the repl history by running the command \"Clear REPL History\" from the command palette.

      "},{"location":"repl-window/#stack-traces","title":"Stack Traces","text":"

      When an evaluation produces an error, it will automatically be printed in the REPL Window. If there is a stack trace associated with the error, it can now be printed on demand using the Calva: Print Last Stacktrace to the Output Window command. You can also print the stack trace for any error message printed to the REPL Window via the Codelens button below it.

      For printed stacktraces, when source locations are available (Clojure files), you will be able to navigate to them by pressing ctrl+click (cmd+click on Mac) on the file name. You can also hover over symbols in the stack trace to see the symbol's documentation, and ctrl+click (cmd+click on Mac) the symbol to Peek Definition.

      Output destinations

      If you have configured some other destination for stderr output, the error message will be printed there as well. But it will also be printed to the REPL Window, because the augmented stack traces need this (because reasons).

      "},{"location":"repl-window/#load-current-namespace","title":"Load Current Namespace","text":"

      When navigating namespaces it is easy to forget to first require them and that can be tricky to debug. To help with this, Calva's command Load/Evaluate Current File and its Requires/Dependencies also works in the REPL Window, but there, it acts like Load Current Namespace.

      Suppose you have two files, pez/xxx.clj and pez/yyy.clj, where pez.yyy requires pez.xxx.

      (ns pez.xxx)\n\n(def a :xxx-a)\n\n(def b :xxx-b)\n
      (ns pez.yyy\n  (:require [pez.xxx]))\n\n(def a :yyy-a)\n\n(println \"Hello\" pez.xxx/a)\n

      Then, with a freshly jacked-in REPL, you evaluate (ns pez.yyy) and want to work with the vars defined there, Clojure will complain. But if you Load/Evaluate Current File and its Requires/Dependencies, it will start working. Something like so:

      Note

      This currently suffers from a limitation in Calva where it won't reload dependencies, so you will sometimes have to do this \u201dmanually\u201d anyways (by opening the files and loading them yourself). See Calva issue #907

      "},{"location":"repl-window/#peek-current-namespace","title":"Peek Current Namespace","text":"

      A somewhat hidden feature: You can peek, see documentation for, and navigate to a namespace by hovering on the namespace symbol in one of the REPL Window prompts (just like you would if it was not in the prompt \ud83d\ude04).

      "},{"location":"repl-window/#paredit-enabled","title":"Paredit Enabled","text":"

      The REPL Window is mostly a regular Calva Clojure/ClojureScript file, which makes everything that works in a regular file work in this file, including Paredit. This makes it easy to navigate the input and output there. For instance, to select the last evaluation results, you can press ctrl+w (shift+alt+right on Windows and Linux):

      "},{"location":"repl-window/#debugger-enabled","title":"Debugger Enabled","text":"

      The output window is mostly a regular... (you get it), which means you also have the Calva debugger at your command at the REPL prompt (only for clj sessions, for now). So instead of evaluating a function definition using alt+enter, you can evaluate it and instrument it for debugging using ctrl+alt+c i, and then call the function.

      "},{"location":"repl-window/#it-is-ephemeral","title":"It is Ephemeral","text":"

      The contents of the output/REPL window is written to a file named output.repl in the .calva/output-window directory of your project. The file is recreated every new session, so you should copy or save anything you want to preserve between sessions.

      You probably want to add .calva/output-window/ to your .<something>ignore files. (There are some more files in that directory that you shouldn't keep under source control.)

      "},{"location":"repl-window/#choose-clj-or-cljs-repl-connection","title":"Choose CLJ or CLJS REPL Connection","text":"

      In full-stack projects, you will probably use the window as a REPL for both clj and cljs. You can toggle which REPL the window is connected to by using the command Calva: Toggle REPL Connection for CLJC files. There is also a button for this in the status bar:

      "},{"location":"repl-window/#known-quirks-and-caveats","title":"Known Quirks and Caveats","text":"

      Due to limitations in the VS Code API it is hard for Calva to know if the REPL file is open, and if it was opened more than once. Therefore, we suggest you make it a habit to leave this window open, or even pinned. And if it is open in several tabs, expect evaluation printouts to be a bit unpredictable.

      If you save the REPL file (which most often does not make much sense, but anyway) you will sometimes be presented with a message about VS Code being confused about the file contents being out of sync. Just choose to Overwrite the currently saved version and you should be fine.

      "},{"location":"reveal/","title":"How to use Calva and Reveal together","text":"

      Reveal is a \"Read Eval Visualize Loop for Clojure\". This page describes how to use Reveal in your development setup based on Calva.

      Note

      See https://vlaaad.github.io/reveal for the latest version and use that wherever this page says <version>.

      "},{"location":"reveal/#when-using-toolsdeps","title":"When using tools.deps","text":"

      You can go for the nrepl middleware or just add the dependency.

      Please see the Calva test-data project minimal-reveal for an example.

      "},{"location":"reveal/#middleware","title":"Middleware","text":"

      This will make Reveal to start together with your project.

      Note

      This will make all Calva evaluations go to Reveal. Too chatty for you? Take the dependencies only approach.

      Add this alias deps.edn:

      :aliases\n{:reveal-nrepl-middleware\n    {:extra-deps {vlaaad/reveal {:mvn/version \"<version>\"}}\n     :main-opts  [\"-m\" \"nrepl.cmdline\"\n                  \"--middleware\" \"[vlaaad.reveal.nrepl/middleware,cider.nrepl/cider-middleware]\"]}}\n

      And then jack-in choosing the deps.edn option and then pick the :reveal-nrepl-middleware alias.

      "},{"location":"reveal/#dependencies-only","title":"Dependencies only","text":"

      If you don't want to use the nrepl-middleware you can configure just the dependency and then start Reveal yourself.

      The alias:

      :reveal-dep-only\n  {:extra-deps {vlaaad/reveal {:mvn/version \"<version>\"}}}\n

      A custom REPL command for starting Reveal in your project:

          \"calva.customREPLCommandSnippets\": [\n        ...\n        {\n            \"name\": \"Start Reveal Tapper\",\n            \"snippet\": \"(require '[vlaaad.reveal :as reveal])(add-tap (reveal/ui))\",\n            \"key\": \"sr\"\n        },\n        ...\n    ]\n

      See Custom REPL Command for how to configure more commands, and bind shortcuts to them, to make Reveal integration nice for you.

      "},{"location":"reveal/#when-using-leiningen","title":"When using Leiningen","text":"

      In your project.clj, add a profile named \"reveal\":

      :profiles {:reveal {:dependencies [[vlaaad/reveal \"<version>\"]]\n                    :repl-options {:nrepl-middleware [vlaaad.reveal.nrepl/middleware]}}}\n

      Now when you jack-in using Calva, you enable this profile and Reveal will be started automatically. Please note that Reveal requires Java 8 or higher, and uses JavaFX. Depending on your setup, you may need to make sure it is available.

      "},{"location":"reveal/#tips-about-font-size","title":"Tips about font size","text":"

      If you find the font to small you can add a :jvm-opts key to make it a little bigger:

      :aliases\n{:reveal\n    {:extra-deps {vlaaad/reveal {:mvn/version \"<version>\"}}\n     :jvm-opts   [\"-Dvlaaad.reveal.prefs={:font-size,17}\"]\n     :main-opts  [\"-m\" \"nrepl.cmdline\"\n                  \"--middleware\" \"[vlaaad.reveal.nrepl/middleware,cider.nrepl/cider-middleware]\"]}}\n
      "},{"location":"reveal/#using-java-11","title":"Using Java > 11?","text":"

      Reveal needs some reflective access to internal classes that has since Java 11 been restricted. You can relax this and get things working via JVM options. Tuck this into your reveal alias:

      :jvm-opts [\"--add-opens\" \"javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED\"]\n

      (If you are using the font size tips, just add the options into the :jvm-opts vector.)

      See https://github.com/vlaaad/reveal/issues/1 for some more context around this issue.

      "},{"location":"rich-comments/","title":"Rich Comments Support","text":"

      Why bother with Rich comments? Read on. Consider watching this Youtube video for a demo of the workflow using the (in?)famous FizzBuzz problem as an example.

      ","boost":5},{"location":"rich-comments/#things-in-comment-are-not-evaluated","title":"Things in comment are not evaluated","text":"

      The Clojure comment macro is defined like so:

      (defmacro comment\n  \"Ignores body, yields nil\"\n  {:added \"1.0\"}\n  [& body])\n

      It has no forms in its body and will therefore always (as long as the Clojure Reader can read it) evaluate to nil. That is: nothing in the (comment ...) form will get evaluated when the file is loaded.

      This makes it a very good \u201dplace\u201d where you can develop code, experiment with code, and keep example code. Since you will be able to load/evaluate the current file without worrying that the code in the comment form will get evaluated. This also holds true when using tools that hot-reload the code on save, such as Figwheel, shadow-cljs and Krell.

      To develop or refine a function you might:

      1. Open up a (comment ...) form
      2. Inside this form, type a first, super simple, version (or refinement) of your function and evaluate it
      3. Inside the same comment form, type some code to test your function and evaluate that
        • Or type and evaluate some code you might need for your function
      4. Repeat from 2., until the function does what you want it to do
      5. Move the function definition out of the comment form
      6. Clean up the comment form to keep some of the test code as example use, or \u201ddesign decision log\u201d for the function.

      Note

      Using (comment ...) forms for developing code is very common among Clojure coders. Rich Hickey is known for using it, which is why they are called Rich comments to begin with (even if it also is a very rich experience).

      ","boost":5},{"location":"rich-comments/#calva-encourages-rich-comments","title":"Calva encourages Rich comments","text":"

      Calva has several features to facilitate the Rich comments workflow, e.g.

      1. A command that helps you create a new Rich comment form quickly: Calva: Add Rich Comment, ctrl+alt+r c
      2. A snippet for creating Rich comment form quickly. Typing (rcf, will make it appear.
      3. Special Syntax highlight. By default comment forms are rendered in italics
      4. Special top-level form context
      5. Special formatting

      Note that the command and snippet for creating Rich comments add the keyword :rcf right before the closing paren. This makes the closing paren stay and not fold when you format the code. The special formatting (see below) will treat this and also any ignored (with #_) form at the end of the form specially.

      ","boost":5},{"location":"rich-comments/#comment-is-top-level","title":"comment is top-level","text":"

      To make it easy to evaluate forms in (comment ...) forms, they create a new top-level context. Instead of you having to place the cursor with precision before evaluating the current form, you can have the cursor anywhere within a comment enclosed form and Evaluate Top-Level Form.

      This carries over to all commands in Calva which deal with the top level form. Including custom command snippets.

      ","boost":5},{"location":"rich-comments/#special-formatting","title":"Special formatting","text":"

      To invite a Rich comments workflow, the Calva command Format Current Form will not fold the closing bracket of the (comment ...) form. Instead it will place this bracket on a line of its own (or keep it there).

      (comment\n  )\n

      With the cursor somewhere directly inside the comment form (denoted with a |):

      (comment\n  (def foo\n:foo)|)\n

      tab

      (comment\n  (def foo\n    :foo)\n  |)\n

      !!! Note \"Only for the current comment form\u201d The special formatting only applies in the current comment form. When outside it, formatting tucks the closing paren in again. That's why fold when done, below works like it does. This also applies to VS Code commands like Format Document, or when you have Format On Save enabled. There are several reasons for this, and one is that there is no cljfmt config for it and leaving the closing comment un-tucked might give you troubles with CI pipelines that enforce some cljfmt config be followed. (Another reason is that it would be pretty hard to do on the whole document.)

      ","boost":5},{"location":"rich-comments/#special-formatting-disabled-for-trailing-rcf","title":"Special formatting disabled for trailing :rcf","text":"

      If the Rich comment ends with :rcf (or an ignored form), the special formatting doesn't happen. So if you have:

      (comment\n  (def foo\n:foo)\n  |\n  :rcf)\n

      And hit tab, you will get:

      (comment\n  (def foo\n    :foo)\n  |\n  :rcf)\n
      ","boost":5},{"location":"rich-comments/#thinking-space-is-kept","title":"Thinking space is kept","text":"

      The formatter will not remove newlines between the cursor and the closing bracket. So if you have entered a few lines to get \u201dthinking\u201d room:

      (comment\n  (def foo\n:foo)\n\n|\n\n)\n

      tab

      (comment\n  (def foo\n    :foo)\n\n  |\n\n  )\n
      ","boost":5},{"location":"rich-comments/#fold-when-done","title":"Fold when done","text":"

      To fold the trailing paren automatically, place the cursor immediately outside (before or after) the form:

      (comment\n  (def foo\n:foo))|\n

      tab

      (comment\n  (def foo\n    :foo))|\n
      ","boost":5},{"location":"rich-comments/#enabled-by-default","title":"Enabled by default","text":"

      You can disable this behavior with the setting: calva.fmt.keepCommentTrailParenOnOwnLine.

      ","boost":5},{"location":"rich-comments/#only-for-the-current-form","title":"Only for the Current Form","text":"

      Note

      This treatment only applies to formatting of the current form. With fold when done as an exception.

      ","boost":5},{"location":"shadow-cljs/","title":"shadow-cljs","text":"

      Calva supports most any JVM hosted ClojureScript environment (and some others, including SCI based, too), but shadow-cljs gets some special treatment to try make it extra convenient to use.

      With many shadow-cljs projects, Calva's connect project type shadow-cljs, is the right choice. Projects that use Leiningen or deps.edn can be used both with the Leiningen/deps.edn and shadow-cljs type, depending on configuration see below for more on this.

      ","boost":7},{"location":"shadow-cljs/#shadow-cljs-browser-quickstart","title":"shadow-cljs - browser quickstart","text":"

      Here's how you start a shadow-cljs ClojureScript REPL and connect Calva with the shadow-cljs - browser quickstart example project:

      Prep:

      1. Clone the project to your machine and open its root folder in VS Code.
      2. Open a terminal and run npm install

      Connect Calva:

      1. Run the command Calva: Start a Project REPL and Connect (a.k.a. Jack-in)
      2. Select project type shadow-cljs
      3. Select to start the build :app
      4. Select to connect to the build :app
      5. Wait for the build to complete
      6. Open http://localhost:8020/ in the browser
      7. Open browser.cljs file and load it in the REPL: Calva: Load/Evaluate Current File and Dependencies

      Now you can should be able to evaluate forms, e.g.:

      • The current form or selection with ctrl+enter, or
      • Top-level forms with alt/option+enter.

      (See Code Evaluation)

      ","boost":7},{"location":"shadow-cljs/#shadow-cljs-in-full-stack-projects","title":"shadow-cljs in full stack projects","text":"

      shadow-cljs is a bit special in regards to Calva REPL connection. Mainly because you can start shadow-cljs and it's nREPL server in two ways:

      1. Using the shadow-cljs npm executable
      2. Via the Clojure REPL in your Leiningen or deps.edn project

      These options show up as project types when connecting or jacking in:

      1. Project type: shadow-cljs
      2. Project type: deps.edn + shadow-cljs or Leiningen + shadow-cljs

      The technical difference here is wether you let shadow-cljs start clojure/Leiningen (the first option) or if you let Calva do it (the second option). If you let Calva do it, Calva will then start the shadow-cljs watcher from the Clojure process. From a usage perspective the two approaches will result in different channeling of shadow-cljs output, e.g. test runner results. With the first option (the shadow-cljs project type), shadow-cljs output will be channeled to the Jack-in terminal. With the deps.edn/Leiningen option, that output will be channeled to the Output/REPL window.

      See shadow-cljs + Clojure with Calva: The basics for some more discussion on how the REPL connection works.

      shadow-cljs and clojure aliases

      The shadow-cljs project type will not prompt you for any aliases found in the deps.edn file. Usually you should provide such aliases in shadow-cljs.edn like :deps {:aliases [...]}. If, for whatever reason you can't provide the aliases that way, you can configure a Custom REPL Connect Sequence and provide the aliases as menuSelections -> cljAliases.

      Leiningen + shadow-cljs middleware issue

      Please note that for Leiningen, the command line dependency injection of the shadow-cljs nrepl middleware doesn't work. You need to add it to your project.clj:

      :repl-options {:nrepl-middleware [shadow.cljs.devtools.server.nrepl/middleware]}\n
      ","boost":7},{"location":"shadow-cljs/#see-also","title":"See also:","text":"
      • Connect the REPL
      • Custom REPL Connect Sequences
      • shadow-cljs + Clojure with Calva: The basics
      ","boost":7},{"location":"sponsors/","title":"Calva Sponsors","text":"

      Calva is open source and free to use. It is actively maintained during our free time, and it keeps improving. You can contribute in many different ways, one of which is sponsoring. You can sponsor Calva by directly sponsoring any of us.

      If you are working at a company which benefits from Calva's existence and continued development, please consider sponsoring at the Calva Gold Sponsor tier.

      Please see this statement from Cognitect about the importance of supporting open source developers.

      ","boost":7},{"location":"sponsors/#patrons","title":"Patrons","text":"The right kind of different","boost":7},{"location":"sponsors/#gold-sponsors","title":"Gold Sponsors","text":"Scale your growth on mobile MAKE. DO. SHIP.","boost":7},{"location":"sponsors/#silver-sponsors","title":"Silver Sponsors","text":"","boost":7},{"location":"sponsors/#clojurists-together","title":"Clojurists Together","text":"

      Significant additions to Calva have been made possible by funding from Clojurists Together. And this has often been transformational for the whole project. Calva would not be where it is today without Clojurists Together.

      ","boost":7},{"location":"sponsors/#our-sponsoring-profiles","title":"Our Sponsoring Profiles","text":"

      These are the sponsoring profiles for the active maintainers of Calva (a.k.a. The Calva Team).

      • Peter Str\u00f6mberg
      • Brandon Ringe
      • Cora Sutton
      • Lukas Domagala
      • Rayat Rahman
      ","boost":7},{"location":"sponsors/#readme-visibility","title":"README visibility","text":"

      There is also a sponsors section in the README of the Calva project (which means it is also displayed in the VS Code Extension Marketlace).

      ","boost":7},{"location":"syntax-highlighting/","title":"Calva Highlight","text":"

      Calva takes care of syntax highlighting, and also provides some features not available through VS Code's highlighting mechanism. These extras include rainbow parens, sane bracket matching, and comment form dimming/highlighting.

      "},{"location":"syntax-highlighting/#syntax-highlighting","title":"Syntax Highlighting","text":"

      When using Calva, you are also using its TMLanguage grammar (the core mechanism VS Code uses for syntax highlighting).

      Our grammar tokenizes Clojure keywords as constant.keyword.clojure. Since it is pretty uncommon with keyword constants in the programming languages out there, your theme might not have a highlight defined for this scope. Try find a grammar that highlights keywords! If you are very fond of some theme lacking this, you can help it with a setting:

      \"editor.tokenColorCustomizations\": {\n    \"[Default Dark+]\": {\n        \"textMateRules\": [\n            {\n                \"scope\": [\n                    \"constant.keyword.clojure\"\n                ],\n                \"settings\": {\n                    \"foreground\": \"#6fbfff\"\n                }\n            }\n        ]\n    }\n},\n

      Instead of Default Dark+ you should use your theme's name/key. And choose a color you like, of course.

      "},{"location":"syntax-highlighting/#extra-highlighting","title":"Extra Highlighting","text":"

      You are in charge of how brackets and comments are highlighted via the calva.highlight.<setting> settings:

      Setting Meaning Example enableBracketColors Enable rainbow colors true rainbowIndentGuides Enable rainbow indent guides true highlightActiveIndent Highlight the active indent guide true bracketColors Which colors to use [\"#000\", \"#999\"] cycleBracketColors Whether same colors should be reused for deeply nested brackets true misplacedBracketStyle Style of misplaced bracket { \"border\": \"2px solid #c33\" } matchedBracketStyle Style of bracket pair highlight {\"backgroundColor\": \"#E0E0E0\"} ignoredFormStyle Style of #_... form {\"textDecoration\": \"none; opacity: 0.5\"} commentFormStyle Style of (comment ...) form {\"fontStyle\": \"italic\"}

      Calva disables the VS Code built-in indent guides

      The VS Code built-in settings editor.renderIndentGuides and editor.highlightActiveIndent do not have any effect, since the former is switched off by the Clojure Defaults, mentioned above. Use Calva Highlight's rainbowIndentGuides and highlightActiveIndent instead. They are different from the built in ones in that they are independent, meaning you can choose to have active indent highlighted while the guides generally are not rendered (this is the default, even).

      VS Code bracket coloring vs Calva's

      Calva's bracket coloring is more Clojure aware than VS Code's built-in coloring. And also will chime better with Calva's indent guides. If you like to have bracket coloring outside Clojure code, by all means enable it. Calva's bracket coloring will \u201dover paint\u201d in Clojure files, when enabled. These settings work nicely:

      \"calva.highlight.highlightActiveIndent\": true,\n\"editor.bracketPairColorization.enabled\": true,\n

      The calva.highlight.bracketColors setting can be used to harmonize the coloring between VS Code and Calva.

      "},{"location":"tao/","title":"The Tao of Calva","text":"

      Calva, the spirit, gains much of its taste and color from the Cider it is distilled from, and the oak it is matured in. I started to wonder what it is that shapes Calva, the VS Code Clojure Extension. I should know, being the master distiller, right?. Indeed. Poking some at the question, I do find that I have some answers.

      Please read the following to learn what Calva is, and, to some extent, is not, about. Read it to get an idea about which path Calva is following, where we are headed with the project, and how you can contribute to the journey.

      "},{"location":"tao/#why-calva","title":"Why Calva?","text":"

      Calva's raison d\u00b4\u00eatre is to provide Visual Studio Code users with an easy to use and productive environment for Clojure and ClojureScript development. See the Why Calva? page for some evidence that we are succeeding.

      While Calva draws a lot of inspiration from CIDER, Cursive, Fireplace, and other Clojure development environments, it does not try to compete with them. Reading r/Clojure and elsewhere, it is easy to get the impression that the most common question is \"Which editor should I use for Clojure development?\u201d. I think a much more common question is \u201dHow do I use my favorite editor for Clojure development?\u201d. For VS Code users, that is where Calva should be a good choice.

      I also have an ambition to leverage VS Code for easing the path to Clojure. Given that it is the favorite editor for so many developers, it is important to have a good development environment in place on this platform, and to make it as easy to use as we possibly can, while also being productive and something that you want to stick with, once you are hooked on Clojure.

      That said, and therefore: For people who want to start out with Clojure, and do ask about what development environment would make it the most enjoyable, I'd like for Calva to be a really good option, an option so good that Clojurians feel they can recommend it.

      "},{"location":"tao/#design-goals","title":"Design Goals","text":"

      Calva should be easy to start with and productive enough to stick with. It should support Clojure Best Practices, and be pleasant and enjoyable to use. It should also be easy to hack on, and to contribute to. The ClojureScript story keeps getting more important. Calva should contribute to making the development experience with ClojureScript delightful.

      "},{"location":"tao/#easy-to-start-with","title":"Easy to Start With","text":"

      There are reasons as to why VS Code is so popular. Among those, one stands out to me: It is the most approachable code editor out there. There is nothing you need to learn when you start using it. The editor makes it obvious that you can start typing, deleting, cutting, pasting and undoing, without having to figure anything out. Then you learn how to bring up the command palette and get a boost few other environments can provide with such immediacy.

      A language extension for VS Code can leverage this, by recognizing that what's old is old, and that what's new should be as easy as possible to pick up. Coming to a new language, people bring with them a lot of expectations from the languages they are used to. This is also true for the editor support. Syntax highlighting and formatting should just work, as should documentation lookup, linting and other IDE commodities.

      Clojure brings some new concepts to the table. Chief among these: The REPL. It does take some time to grasp it. Calva needs to remove any obstacles it can when it comes to helping the user to reach the REPL, in order to help getting it, and start loving it.

      To help the users to quickly focus on Clojure, we provide a package that is all-inclusive, with few knobs to turn, and with sane defaults for the knobs that still need to be there.

      "},{"location":"tao/#productive-enough-to-stick-with","title":"Productive Enough to Stick With","text":"

      I think VS Code brings inspiration also when it comes to following up its excellent Getting Started story. You do not have to dig very deep under its surface to find that there is a lot more power to be unleashed. VS Code makes it easy to pick up more features as you get ready for it, and each little piece makes you more productive. To me, only Vim beats VS Code in this game.

      Most often there should be no contradiction between Easy to Start With and Productive. Quite the contrary. This story is mainly about being feature complete with the most important tools. As beginners start to pick up the first few features, they should be rewarded with finding more productive tools when they go looking for them. The VS Code way is Calva's way.

      "},{"location":"tao/#pleasant-and-enjoyable","title":"Pleasant and Enjoyable","text":"

      Enjoyable starts with that Calva shouldn't be an experience full of pains. I think Calva is living up to this first bar of enjoyability. The next step is making it delightful!

      Calva has two main assets it can leverage for being delightful to use: Clojure and VS Code:

      Clojure is plain wonderful and also has this totally awesome REPL thing. Wherever we can, Calva should use the REPL to make the editor spark and bring joy to the developer.

      VS Code is a sweet development environment, offering its power in a consistent way across languages. Even if Clojure is very special, most of Calva's features are surfaced in the ways that VS Code encourages. It makes for less to learn for the user, and most often also makes it easier to implement functionality.

      "},{"location":"tao/#support-clojure-best-practices","title":"Support Clojure Best Practices","text":"

      Mainly, I think Stuart Halloway is right about the REPL being best used from inside the files you are editing rather than from the prompt. It doesn't mean that Calva's REPL window should be neglected, but efforts should be directed such that the file editor REPL is our first way to improve the experience. Expect the Calva REPL window to get much less \u201din your face\u201d, than it is today, as the editor REPL gets stronger.

      Halloway also gives me some peace of mind with his reasoning of keeping a spartan setup. Calva does not need to pack every feature imaginable. If we can get the right features in place, in the right way, the mission is accomplished.

      Clojure is data centric. Calva should make it easy to examine data and how our code affects it. Today, this is not good enough when it comes to data structures larger than a few elements.

      Clojure is a LISP. Thus Structural Editing is possible, and TBH, desirable. Calva should support this and encourage it. There is little we can do about Parinfer not playing well with VS Code, but there is Paredit, and Paredit rocks! Calva's Paredit plays in the top league of Paredits, for this reason.

      "},{"location":"tao/#made-from-the-produce-of-the-orchard","title":"Made from the Produce of the Orchard","text":"

      Calva is distilled from CIDER, which in turn is brewed from the products of The Orchard. This makes a lot of Calva's features thin wrappers around cider-nrepl and related middleware. It also should mean that we strive for adding features by thinking \u201dThe Orchard\u201d first. If it lacks what we need, we should assist in providing it there. We need to up this game a bit from where we are today, I think.

      "},{"location":"tao/#leveraging-clojure-lsp","title":"Leveraging clojure-lsp","text":"

      Today, Calva draws a lot of its static power from clojure-lsp. As does a lot of other Clojure tooling out there. The Calva and the clojure-lsp teams work very nicely together, which is something we cherish and should take care to maintain.

      "},{"location":"tao/#project-stewardship","title":"Project Stewardship","text":"

      Here Calva takes inspiration from many Clojure related projects, and perhaps most so from CIDER,shadow-cljs, and clojure-lsp. Bozhidar Batsov, Thomas Heller, and Eric Dallo all lead their projects with clarity and with gusto. You can feel how they really care about their products and their users. They are there. They listen. They respond. And they relentlessly keep improving their products.

      So we are there. We listen. We respond. And we keep trying to improve Calva.

      The Calva team cares deeply about the user experience. That is a major part of why we do this. When implementing a new feature, or changing a feature, Ux is always the first thing on our mind. Personally, to keep that direction I often start with the documentation of the feature. Reading the documentation before implementation reveals a lot about if the Ux design is within the ballpark or not.

      We have limited time on our hands, however, and we must cut some corners. We can't afford to spend very much time in Ux design. Rather we will use our Ux intuition, iterate the documentation quickly, and be fast to get things out. Then we are responsive in tweaking those things, based on user feedback. This also has impact on general quality at times. We only can do so much QA, and it happens that some releases of Calva cause disruptions in people's workflow because of things we haven't thought of, or not found during our testing. Again, we try to be attentive to feedback and quick to fix. Apologies in advance for any inconveniences caused!

      A super major part of our love for Ux is that Calva should be serving its users. That's why we treat feedback as a gift, listen intently, and use the feedback as a major ingredient in shaping Calva.

      Calva develops from user feedback in more direct ways as well. It is quite astonishing how many people have decided to improve on it by hacking it to do some small or big thing differently. That's great! We should make sure Calva is super easy to contribute to.

      There has been quite a lot of work put into improving the development process. Starting to hack on Calva is just a few steps, taking less than three minutes from cloning to running a dev version in the VS Code debugger. We encourage contributions, from the tiniest typo to whole new features. And we are ready to spend time helping people get their contributions integrated.

      However, Calva can't be what everyone wants it to be, that would make it useless. It needs direction and aim. And it is we, the Calva Team, who are the stewards. We need to be in charge of what Calva is about, and what it is not about.

      "},{"location":"tao/#the-road-ahead","title":"The Road Ahead","text":"

      Tying back to Stuart Halloway, I don't think he means that spartan needs to also mean poor. The products he helps to bring to the market tell another story. VS Code and Clojure brought together has the capacity to create something amazingly rich and luxurious. And I want Calva to tap into that potential.

      On the Calva journey we will allow ourselves to change our minds about how things work. Calva is not a library. Its an interface between Clojure and human beings. Human beings can adapt. And they will need to enjoy adapting in order to enjoy Calva. \ud83d\ude04

      By now it should be clear that you can expect Calva to keep evolving, keep being tended and maintained, and keep getting ever more enjoyable to use. Lately we have been improving Calva pretty rapidly. It would be great to keep it up like that, but I think it is good to expect a more humble and sustainable pace.

      Calva is still quite new. A bit like freshly distilled Calvados. It will need time in those oak barrels to develop its full bouquet of flavors. And time is what we will give it. Our time, our creativity, and our passion.

      "},{"location":"test-runner/","title":"Test Runner","text":"

      Calva provides commands that make running your Clojure tests easier.

      Note

      Since the test commands utilize cider-nrepl, they only work with Clojure, not ClojureScript. See this issue for more details.

      "},{"location":"test-runner/#test-commands","title":"Test Commands","text":"Command Shortcut Description Run All Tests ctrl+alt+c shift+t Runs all tests Run Failing Tests ctrl+alt+c ctrl+t Runs the tests that failed Run Tests for Current Namespace ctrl+alt+c t Runs the tests for the current namespace. If not a -test namespace, tests for the current namespace plus its corresponding <current-namespace>-test namespace will be run. Run Current Test ctrl+alt+c ctrl+alt+t Runs the test at the cursor. This includes a defn with a :test in its metadata, a defn defined in a with-test, and a deftest. Toggle between implementation and test - Switches the file between implementation and test, prompts to create a new file if not found."},{"location":"test-runner/#test-on-save","title":"Test on Save","text":"

      You can enable the Calva setting \"Test on Save\" to have tests for the current namespace run on file save.

      "},{"location":"test-runner/#vs-code-test-ui","title":"VS Code Test UI","text":"

      Calva has experimental support for showing test results in VS Code's Test UI. You can enable this support by setting calva.useTestExplorer to true. When you enable this setting, the Testing icon will appear in the Testing tab of VS Code's Activity Bar.

      With this feature enabled you will be able to browse and run tests directly from the Testing tab.

      Please join the #calva channel on the Clojurians Slack if you have any feedback on this new feature.

      "},{"location":"test-runner/#troubleshooting","title":"Troubleshooting","text":""},{"location":"test-runner/#tests-are-not-found","title":"Tests Are Not Found","text":"

      Calva will not load namespaces in the REPL that you haven't loaded. This is so that you can be in control of what is loaded in the REPL. However, it also means that commands like Run All tests actually mean Run All Tests That are Loaded in the REPL, since the test-runner only runs tests that it knows about, i.e. are loaded in the REPL. Some developers choose to make sure all test namespaces are loaded as part of starting their REPL. Others register a custom REPL command for loading test namepaces. (Yet others use test-runners such as Cognitect's test-runner, Kaocha, poly test, or some other that runner allows for tests being run automatically, separate from the REPL used for development.)

      If you have tests in a test directory separate from your source directory, and those tests are not being found by the test runner, make sure the test directory is included in your paths. This will not be the case by default with a tools.deps (deps.edn) project. If your project is a tools.deps project, you can create an alias in your deps.edn file with :extra-paths that includes \"test\" (or the name of your test directory).

      {:aliases {:dev {:extra-paths [\"test\"]}}}\n
      "},{"location":"test-runner/#changes-arent-taking-effect-when-running-tests","title":"Changes Aren't Taking Effect When Running Tests","text":"

      In order for changes in code to take effect, you need to load the file or evaluate the changed code before running a test command. Prior to version 2.0.301, Calva would load the file for you when running some test commands, but that behavior was removed in favor of leaving control to the user, and to avoid a potential issue.

      Having added the above to your deps.edn, when you jack-in, choose the :dev alias and the test directory will be added to your paths, which will allow tests located in the directory to be found by the test runner.

      "},{"location":"test-runner/#toggle-between-implementation-and-test-command-not-working-as-intended","title":"Toggle between implementation and test command not working as intended","text":"

      This feature mostly works with projects that has leiningen style folder structure and makes some assumption about your folder structure and test file names.

      • It assumes that the test files ends with _test prefix.
      • It assumes that your implementation files are in src folder and the test files are in test folder.

      If you are using any non leiningen style folder structure, you may have to add source paths inside .lsp/config.edn.

      "},{"location":"try-first/","title":"Something to Try First (After Connecting)","text":"

      You should start with loading the file you are working with. Do this with Load/Evaluate Current File and its Requires/Dependencies, ctrl+alt+c enter.

      To get a feeling for evaluating code in the editor and get immediate response from the REPL try this:

      • On a new line, type a comment form and put some code inside it:
      (comment\n  (+ (* 2 2)\n      2)\n  (Math/abs -1)\n  (hello \"Calva REPL\")\n  (defn hello [s]\n    (str \"Hello \" s))\n  (range 10)\n  \"I \u2665\ufe0f Clojure\")\n

      Then:

      1. Place the cursor behind the form (* 2 2) and issue the command Calva: Evaluate Current Form, ctrl+enter.
        • You should see the result being displayed inline. Press esc to dismiss it.
      2. Now issue the command Evaluate Current Top Level Form (defun), alt+enter.
        • You should see the whole form (+ (* 2 2) 2) getting highlighted and the result of that expression being displayed inline.
      3. Evaluate each form inside the comment form using the Top Level command.
        • You should see each one of them evaluated.
        • Evaluating the (hello \"Calva REPL\") form before the (defn hello... form should result in an error/exception. A stacktrace is then printed in the output window
        • Try it again after having evaluated the defnform.

      Demo:

      "},{"location":"try-first/#how-does-this-work","title":"How does this work?","text":"

      Calva has this notion about the current form. Issue the Evaluate Current Form command, with the cursor placed in different locations to get a feeling for how the current form is determined.

      There is also a concept about the current top level form. Good for evaluating various defs defn, defthis, defthat. With your cursor placed anywhere inside such a form.

      The Top Level command also works inside (comment ...) forms, treating the comment as creating a new top level context. It is good for in-file code experimentation.

      "},{"location":"try-first/#see-also","title":"See also","text":"
      • Calva Top 10 Commands.
      • Code Evaluation Tips
      "},{"location":"vim/","title":"Calva and the VIM Extension","text":"

      First thing first. The VIM Extension and Calva has a history of friction between them. Less so these days, but you might still encounter some rough edges. Please don't hesitate to reach out to the Calva team, as we might be able to fix things if only we are aware of them.

      "},{"location":"vim/#key-bindings","title":"Key bindings","text":"

      In general Calva's default key bindings are not very VI-ish.

      "},{"location":"vim/#expand-selection-on-mac","title":"Expand selection on Mac","text":"

      On Mac, Calva binds expand selection to ctrl+w. This conflicts with the VIM Extension's default mapping of window splitting shortcuts. You'll need to remap it either with Calva or with the VIM Extension.

      "},{"location":"vim/#the-esc-key","title":"The esc key","text":"

      While showing inline evaluation results, Calva binds the esc key to dismiss the display of inline results. If you want to be able to use the esc key to enter command mode while inline results are showing, you'll need to rebind Calva's command for dismissing the inline results.

      "},{"location":"vim/#remap-calvas-clearinlineresults","title":"Remap Calva's clearInlineResults","text":"
      • Open the Keyboard Shortcuts JSON file from the Command Palette
      • Disable clearInlineResults and remap the command e.g.
      // Place your key bindings in this file to override the defaults\n[\n  {\n    \"key\": \"escape\",\n    \"command\": \"-calva.clearInlineResults\"\n  },\n  {\n    \"key\": \"shift+escape\",\n    \"command\": \"calva.clearInlineResults\",\n    \"when\": \"editorTextFocus && !editorHasMultipleSelections && !editorReadOnly && !hasOtherSuggestions && !suggestWidgetVisible && editorLangId == 'clojure'\"\n  }\n]\n

      If you run into issues, refer to the commands in the default Keyboard Shortcuts JSON file.

      "},{"location":"vim/#remap-vims-insert-mode","title":"Remap Vim's Insert Mode","text":"

      Remap vim's insert mode keybinding to go into command mode by adding the following to your user settings:

      \"vim.insertModeKeyBindings\": [\n    {\n        \"before\": [\"j\", \"k\"],\n        \"after\": [\"<esc>\"]\n    }\n]\n

      (Change before to whatever keybinding you are comfortable with!)

      "},{"location":"vim/#vim-fireplace-ish-keybindings","title":"Vim Fireplace-ish keybindings","text":"

      You can add these keybindings to your init.vim if you are using the VSCode Neovim extension. It is inspired by and tries to emulate the keybindings found in vim-fireplace which is the most popular vim plugin for Clojure.

      nmap cqp :call VSCodeNotify('calva.jackIn')<CR>\nnmap cqq :call VSCodeNotify('calva.disconnect')<CR>\nnmap cpr :call VSCodeNotify('calva.loadFile')<CR>\nnmap cpR :call VSCodeNotify('calva.loadNamespace')<CR>\nnmap cpp :call VSCodeNotify('calva.evaluateSelection')<CR>\nnmap cqc :call VSCodeNotify('calva.evalCurrentFormInREPLWindow')<CR>\n

      Unfortunately these key combinations will not work in the normal VIM extension as c is an operator key and cannot be remapped. This is a call for someone to share their VIM re-mappings.

      "},{"location":"when-clauses/","title":"Calva When Clause Contexts","text":"

      When clause contexts is a powerful customization mechanism in VS Code. The most common use for end users is with keyboard shortcut bindings. Extensions can provide their own. The following contexts are available with Calva:

      • calva:keybindingsEnabled: a master switch that you find in the settings
      • paredit:keyMap: strict, original, or none from the corresponding Calva setting (see Paredit)
      • calva:connected: true when Calva is connected to a REPL (there is also calva:connecting || calva:launching)
      • calva:outputWindowActive: true when the Output/REPL window has input focus
      • calva:replHistoryCommandsActive: true when the cursor is in the Output/REPL window at the top level after the last prompt
      • calva:replWindowSubmitOnEnter: true when the cursor is adjacent after the last top level form in the Output/REPL window
      • calva:cursorInString: true when the cursor/caret is in a string or a regexp
      • calva:cursorInComment: true when the cursor is in, or adjacent to a line comment
      • calva:cursorBeforeComment: true when the cursor is adjacent before a line comment
      • calva:cursorAfterComment: true when the cursor is adjacent after a line comment
      • calva:cursorAtStartOfLine: true when the cursor is at the start of a line including any leading whitespace
      • calva:cursorAtEndOfLine: true when the cursor is at the end of a line including any trailing whitespace
      "},{"location":"why-calva/","title":"Why Calva?","text":"

      The main reason you would choose Calva for your Clojure and/or ClojureScript coding is that you want to use Visual Studio Code. Calva provides VS Code users with a comprehensive set of features to keep you productive and make it easy to follow Clojure coding best practices. This also means that if your choice of editor is not made yet, we think you should give VS Code and Calva a try.

      While Calva is a good choice for professional and experienced Clojure developers, great care has been taken in making Calva a really good choice for beginners of Clojure as well.

      We who make Calva are actively stewarding, maintaining, documenting and supporting it. We are also very active Clojure (and Calva) users, participating in the community. Clojure is dear to us, a lot because it keeps programming fun and rewarding.

      Calva has very happy users! Check out the Programming Languages section on the Visual Studio Code Marketplace, sorted by rating:

      Recently there was a thread over at ClojureVerse, asking about how Calva Compares to Emacs with CIDER. It is well worth reading. We would like to highlight the answer by Nick Cernis, which focuses on Calva. We'll even quote parts of it. \ud83d\ude0d

      "},{"location":"why-calva/#nick-cernis-on-clojureverse","title":"Nick Cernis on ClojureVerse","text":"

      My advice to anyone starting their Clojure journey who is unsure about what editor to use:

      • Pick something today and start writing Clojure.
      • Probably pick an editor you are familiar with already.
      • If you\u2019re not familiar with any editor yet or you don\u2019t have a strong allegiance to one, choose VS Code and Calva.
      • Switch to something else only if you encounter persistent annoyances that you can\u2019t remove with plugins, code/config changes, help from the community, or more sleep.

      I now use VS Code with Calva every day but went through a long journey trying almost every other editor and plugin combo first. I switched from Emacs to VS Code, which might make my perspective different to others here.

      \u2026

      I started with the jaded assumption that VS Code was probably bad because it's built by committee at Microsoft on a web-tech based Electron stack, only to find that it succeeds in embodying the spirit of a \u201chacker's editor\u201d more than even Emacs does in many ways:

      \u2026

      On the benefits of Calva:

      • Of all the amazing Clojure community projects, Calva seems most likely to encourage new users to try Clojure and ClojureScript. A lot of developers use VS Code. It\u2019s been tricky to convince frontend developer friends to try ClojureScript, but at least they don\u2019t have the excuse that they\u2019ll need to switch editors to even try it now. I think as a community we should try to support the projects that encourage Clojure\u2019s adoption and ease of use, including by using those products ourselves.

      • Calva provides a better first-time experience than any other editor/plugin combo whether you\u2019re new to Clojure or not. You can install the plugin and be chatting with your REPL in under a minute without any knowledge of Elisp or VimScript/Lua or how to configure Run Configurations in IntelliJ.

      • The default key bindings are good and the commands are easily discoverable.
      • For its age it\u2019s surprisingly feature rich.
      "},{"location":"why-calva/#100-five-star-marketplace-reviews","title":"100% Five-star Marketplace Reviews","text":"

      We are super proud of the Calva reviews on the Visual Studio Code Marketplace. Please read them all. \ud83d\ude04 Here's a selection that we think captures what we focus on in when developing Calva:

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f Calva has become an essential part of my Clojure workflow.

      It's an incredible piece of work by the team behind it.

      Sean Corfield

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f Calva hits the sweet spot of being both approachable for new users and powerful for seasoned ones.

      The creators/maintainers are fantastic individuals that care deeply about streamlining the user experience, and it shows.

      Good stuff, check it out.

      Clay Hopperdietzel

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f I switched from IntelliJ / Cursive to VS Code and Calva and it's been amazing.

      ...

      That is the biggest thing I can say for Calva, it just works. I was never a fan of VS Code before, but VS Code + Calva for Clojure is now my favorite language / IDE experience.

      Plus, the #calva on the clojurians slack is brilliant, always someone there to help if you have issues (although any issue I've had has been squarely on me, and never Calva itself).

      I often feel we live in an age where so much software is badly written, without care, slow, buggy and just generally awful. Calva is the complete opposite. I think the maintainers want to, and have, made a wonderful piece of software for Clojure developers.

      Stuart Stein

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f This is great, and makes VS Code a truly viable IDE/editor for clojure development.

      It already has great REPL support (including inline evaluation), an extensive Paredit implementation, and excellent linting (care of the bundled clj-kondo). Calva is being improved on at an impressive clip by maintainers who appear solidly committed to its ongoing development. It's well-documented, and manages to be both approachable and capable.

      A no-brainer if you're already a VS Code user, and well worth a look if you're not.

      Crispin Bennett

      \u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f\u2605\ufe0f\ufe0f\ufe0f\ufe0f\ufe0f I'm using Calva now for a few months and I'm loving it.

      I joined the Slack channel about 2 wks ago and I must say that I'm very impressed by how active and responsive this community is. Already 2 of my issues fixed and I really like Calva (and the extensions it uses!).

      These are professional people and they make me very happy!

      Uitbeijerse, E (Eric)

      "},{"location":"workspace-layouts/","title":"Workspace Layouts","text":"

      Project directory layouts can vary quite a lot. From the \u201dtemplate\u201d projects where the Clojure project files are at the root, to, well, let's just say that the project files are not always at the root. And sometimes there is more than one project (read here how to get clojure-lsp support with a Leiningen project in a subfolder).

      Calva only really supports working with one project at a time per VS Code window. Here's a short guide for some different setups:

      1. You have one project in the workspace, the project files are in there somewhere.
        • Use a regular VS Code \u201dfolder window\u201d or a Workspace proper, both will totally work.
      2. You have more than one project in the repository, but only really work with one at a tine.
        • Use a Workspace proper and add the different project directories as separate Workspace Folders.
        • You can only jack-in/connect to one project at a time.
      3. You have more than one project in the repository, and need to work with them in parallell.
        • Open each project you want to work with in a separate VS Code window.
      "},{"location":"workspace-layouts/#one-folder-two-windows","title":"One Folder - Two Windows?","text":"

      As is mentioned in the Calva Jack-In Guide, if you have a full stack project using a Clojure backend and a shadow-cljs frontend, you will need to open the same project in two separate VS Code windows, one for the backend and one for the frontend. This is how you can do that:

      1. Open a new VS Code window.
      2. Select File->Add Folder to Workspace.... Save the workspace as, say, Server.code-workspace.
      3. Open a new VS Code window.
      4. Select File->Add Folder to Workspace.... Save the workspace as, say, Client.code-workspace.

      Now, whenever you want to Jack-in to the backend and/or frontend, do it from the Server and/or Client workspace, respectively.

      "},{"location":"wsl/","title":"Calva \u2764\ufe0f WSL","text":"

      The use of Calva with WSL (Windows Subsystem for Linux) is fully supported through the Remote - WSL extension. Simply install the extension and open your project with one of the Remote-WSL commands. Calva will run directly in the WSL environment and no further configuration is required.

      "},{"location":"wsl/#steps-involved","title":"Steps Involved","text":"
      1. Enable WSL
      2. Install Ubuntu in WSL
      3. Install Java in WSL
      4. Install latest Clojure in WSL
      5. Install the Remote - WSL extension in VS Code
      6. Launch remote window
      7. Install Calva (gets installed into the WSL instance)
      8. Work away

      See also Remote Development.

      "}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 3471cc15265e78b9fd80127aef21b93469c699b0..20b8bc2426eadeec9bb1e7295f1faae3b6194921 100644 GIT binary patch delta 16 XcmZ3>x|Wq)zMF%C(NT3H`!Xf~BJKn2 delta 16 XcmZ3>x|Wq)zMF$X`J>84_GL@}C-(%t