From fa7839e77518468f8fde9c29af165694360e0ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mads=20M=C3=B8ller=20Jensen?= Date: Thu, 14 Nov 2024 22:40:28 +0100 Subject: [PATCH 1/5] Prepare extension for packaging --- vscode-extension/README.md | 57 ++++--------------- vscode-extension/assets/numbat-256x256.png | Bin 0 -> 23912 bytes vscode-extension/assets/numbat-64x64.png | Bin 0 -> 5448 bytes vscode-extension/language-configuration.json | 2 + vscode-extension/package.json | 23 +++++++- 5 files changed, 32 insertions(+), 50 deletions(-) create mode 100644 vscode-extension/assets/numbat-256x256.png create mode 100644 vscode-extension/assets/numbat-64x64.png diff --git a/vscode-extension/README.md b/vscode-extension/README.md index ca91b26d..90bf0cc0 100644 --- a/vscode-extension/README.md +++ b/vscode-extension/README.md @@ -1,65 +1,28 @@ # numbat README -This is the README for your extension "numbat". After writing up a brief description, we recommend including the following sections. +Language support for the [Numbat](https://github.com/sharkdp/numbat) language. ## Features -Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file. - -For example if there is an image subfolder under your extension project workspace: - -\!\[feature X\]\(images/feature-x.png\) - -> Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow. +- Syntax highlighting +- Code block folding +- comment toggling +- autosurounding brackets ## Requirements -If you have any requirements or dependencies, add a section describing those and how to install and configure them. +_None_ ## Extension Settings -Include if your extension adds any VS Code settings through the `contributes.configuration` extension point. - -For example: - -This extension contributes the following settings: - -* `myExtension.enable`: enable/disable this extension -* `myExtension.thing`: set to `blah` to do something +_None_ ## Known Issues -Calling out known issues can help limit users opening duplicate issues against your extension. +_None so far_ ## Release Notes -Users appreciate release notes as you update your extension. - -### 1.0.0 - -Initial release of ... - -### 1.0.1 - -Fixed issue #. - -### 1.1.0 - -Added features X, Y, and Z. - ------------------------------------------------------------------------------------------------------------ - -## Working with Markdown - -**Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts: - -* Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux) -* Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux) -* Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets - -### For more information - -* [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown) -* [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/) +### 0.1.0 -**Enjoy!** +Initial release of the Numbat extension! diff --git a/vscode-extension/assets/numbat-256x256.png b/vscode-extension/assets/numbat-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..617986813672535535ee894a0ccab2b1b3451479 GIT binary patch literal 23912 zcmd3Og;!MF8}1A(jdTu(bR*rNAc7Lo-Hmh)Gk`P*3Ift1CDPpt(%s!D-QD-_{qFrA z?z0vil(k^7&))lepLh*d`5=#jNr4Fhfp8SwzE%T)z`&B}j+mR9$g-CyuDR=22^JUUET9QDP^41S64gZ_ z`#beMmj?^(O$QGihYL-Hlw|7Jm=V-qtgU(sHQD!D3;`&kZ->lxuJ4a;4#ER|B=x*} zrI0=($wTMrVyW~`Y|}3T310?-F6jTuKR5{+{g8sb&XIqSTcecw3T`|h1uP0lB_1x>XRB*PXg zC!xlBpXV~4@IjU(c?0ckh^Y7pa?qdRBL6 z#8C)+mhXd5cu-}7re3`G*(Dv+-i~p~Z3tB@xx6^FMkT(O-PdM+py*&=7^cT56Ld5s zhP9mhdeO+JPm;o_}cH}*1Sxsxbbq)_fY)C z`b}_61~y$90V*g+$mC(|6ashugFtNLZsg7nmt;7p39+OqDH7g3oBFvur3@v96OHHR zW3*AO#y0x}qmrSapnBgnii$YXN3YD4^L}5U%cSK}z7o8X(|5Tj6p|B*QLq|Zh6g?8 z5#t*AmOE`b)Z2IKHT7>QecJuLzGf)pYqUQSXf)^Pb)rMMH=@%c(kvWvb9-y%;@b1u zLWCE;84#yKB=moK=yw&Fw6#BzVg7KwO>e#oPW|4~=(m_n9@%cCs;U-<^BdoAum>FU z*y*1o-{EuS*7z-M?FTDdNep_n)fLl}crtx=2X)Ngq+5Iq25mp55#o1T{G*|ua6-C| zKxh2W4mn0QUVU9AiiW@wGAt3_ou=uKn<09}5!` zQ%yC6ZAHZThRBDhlhvt@AJyF!|I2z+-EVy{!VV4*!t}m zJjQok_U(?&>@VBrHWfsoUQ?C)dH#rXX?o(h)DyMZwi=%%>QL6}eBtQ1|EmaXlw1WQ zB|?-nVy$m+u%LIP1|vV5_skG_bH|i0^aH$X!cNYE7b0#A5CMo5rl$Nl?k8a+XePm(j>4CwdWMpIl4e`Q$F(b9)C?;}gX(5wx z>Njc|;R#XUh7O>Cer-8{JVbBjKh?|>YF-=ypVm)cPTLElbhI|leY(7`o4jbB7+#Af zWD1gZ(wr~1OFXi2Zd$&av4Wi4{oJG%$E7iU+?=*k3@iBs^1pi7Y|bTW>x;k3`-(?) zI_OWo(h9-&O3#^_V@5{BRj_W38mqgARK9wC(hPGE%nlynjLcpqcwVDNBsLNDLw z=M%&y2L>Ip0!t2cx7Ge})TGY>X)+G*O1yduf|Qqo?$BO^;+|hz^D_X;9S63p(k+^* zh=IZOvi^d8Pf*}I*8in7==OV~hYm_NttyvlF)h>H*#T9|*cTTdvy)tm*jH=s?9OcR z^ZPG+s;MBxf>i0>u{m9rTX)jjIqYik$bR}BT%>pT%{%h34V_E>=wka@aX4^7IK8Ty zez5g1?+SSHO1xISv$%Fy!SlkA987)olLYZGztJz9HU3@B7?|RVCM7<|x{BfpLh|QC z`4B(Fm(C%)WyMqK_wvs``W?t2PuQ`&D9c6TPPyJ>{P-TnxMF6XB(i3RL<+6E^c~T0 zfRiNbaR`otLE7xSN!WY^Vsy-4+@2R%)+5`-C|~UH*{mA+mE{nC z`=xMYB@`70tvlVIo@h5nGGeH!(`UC)oi#_T0M$*TNkWKh*w(%NC#_V8RR$XoX7FX( z*Xl7HWRR5(yQQn2xQdY@uZB8^F|J2l=h+V>clY>sd#u)i#D(jtrX$Drc(Q2Ox88^1 zU5FluYDdGWoh%N$YRQDyl->QQ7&lHL5Pl3d@T*Q3VN+vbz)A5Wud}b3zhZwGVKz5q zM7rYin2YN%2TntMDJ3?VtTpp383`IQuwrs+`&xaz^**5C=LHj%cGjSs9a}rc1ye|0 zum25z6PN0V;bMj8M_m?t4WSxeLE168jd(4!8ipkU7t<+D+bSj9&q$!v=gr^ox(j+W z2b1WVS#dkZl*Jju0u(XGB^sLsWlN@ZCv1(6mj8YxBnrOYfPn;XbU*#&tgn{ZkmEU1vBHdgnE5}44t9|_V(f1sQ)3DJ?H77RqwSz!)Y)c=5 z`1@&G;@r?6T8fTZeuw1qj0?<(L^jRrrtuo6Zn0s8>7H3CvEQDyp`qa-snL&tMc93q zqgv$ye)g-RSu@)ht-L=IHybedjUjd;!x2Pzd-_qz5{6wc>q<%x3W$zD=UWqN`v8KHJB={XM~4MC1fmR{PXNQEbPdsiUI=*3r8d0e{{5*H{PQ-Do=gSNV&>G_|E}&i2fYgcKd=HR9QK${uz9A&~S)AxcAMKlphiXMe9rqPu^U- ze{Z1yk+iCr+y8~J{_o$$g7(>+7s0_Gou?wzT~GIjv30Q>IsA(&pa| zAX8RHii&sw4LoDn$lOdt#tdb(mwJHTYqg2~D>>ig)bHL(8}ZdR42Ap?L|TM3Dct@7 z*120dzRY&wPdMS1&i;x5ErKVSUW^KLQ{cA1rX`yUE$? zj!#TXotE5-v_6uRlS&#KSml55YmhYTH@t*vH@!X3#aVe_?L@r~ze8xAl(eb3egE)}y1F#PehkISeI zsq_o73~XjCM)Jm51__^}QxmC{km*BuVLn*mW-Ctl)8g5IaKx|g>e|5m_P8z|XPq&V zTtkLN!Ei&r(vg@x{2Pb}KT%#s_}y%Cu+L;lHCj1Kih}RY5=v?P4o$9*| zw2qm^jzJ0vQf>frDRv9HxC)zVUri4W4=+2tRjihl4hZx}L8VgtawSAOICTnVZ(E-Hw+Jykdxv6aI)s5Q7?IeC-UaR9P6fVt`sqvVnuDaU<-KID?2K3_jq znZS`B$J>AEd@o8H4)7$F&zp+Gn-Op+Df5?KzkmPE=kii-^>E~K5vbB=6E@V>XJ!%L z?p`PfLVRrS;g?)8M{*M>noOy~Y!|$~y}e~4Qd`T&^=iwAjwqQ&MMFdDY<~;C6yrW> z=`|FVn6m9)F~wWvg8yABr`}M!*iRAnJm{Y~Rr}ad{v8sR<4gc zUPCBM*D0AnN9Eq9{|5A`Sed(RtL_QnG)vHemR3^w`zL7<1*x8H$lXPQh&$08Dqoqm zzQ*7W8XE5B11VBAHVQq#SoYNcR*aZoc$kRC6GbWgwOZfpQJ^?F+)fBMPJMJUaAP@& z74B}eb)FY838lw-Mk#2Tb|im%J&8AQe0q9`hiAnh9~US32nD|RoHM{{QgE1ASXk=3 z2!0n9{;q{BAfp?;l!%OoeQy7CV)?U0A5eOIF0+_C_Kq%2_idR$)=c(2ii~~y>E3*M zcZf$(e~J}6_#Hh6tFsotR;0pAWXq3FPEMYbicN+MgPE8t!m69)bJX(9c?C37I1{VU zFz5ygO03$xd|GUDUh5~%pC5K0?`~yPZAY=@xr)~cOvk&@mRJ=;=l~2SIi78stFlNH zG~D^ma%f<15ErKk$D`2!QD=hu5co3aecJ5o+6jZ7VFp)R*@?J|6?Dz);jYd#D=T0i zrN*9xb*Is{KB$sG;$LlHVddE<1Br@J1De+|mn}!arMVaS>Ge72| z)pIu;dU~3Cch9AyKz%p4lQluL(TV7%bVfc+A4sYCH8DOd#8%_ZACX6QbVZU9uw$i3 zO7inF7}u|Le`^Flop*ZLbl)gSi3t+3A1rxAuPI*U#-iT(62)m)=0N`i|dg1 zt-acF6`%+GRE0D%V>d}e1kx-RkV`=ds>Frlu5Vg#tE+?TrkZaL7MlvQOba|N9-{-M zk1yt=xlr|Emu|PRzOxOBR3a@i0yVFH5ErB6w7kGwOY#Ook{0#iP2{||p|-a6j||9B z!_s{hyg&6BHjS9Iis_5tEcwd=A92bHlQIwkLrzZ7_Wr`ejQt)`##eku$pn(Kb6FV$ z4nXk?}yiE)QC^$Li{WgYCn<^{jW| zT~P=Q+bv6tW%SE-+{(p#XiEQuSSs`LeQLBf(dR`>6Xn4Ekyk$qx+F4V)+Rldo(<8V z{3D>B7f;W~$T0E}8ZOW(G5m~d&&FSEL;Y}baj;O3 zXgH)xYsWYGHF0${_Bm!HhVus{CAUgB1|nVA279TS8nW zCdxRFJS|-@jIuyh4eo89uOx53q0?-MiWSYNKbAE2E+jR$S`iGqa3aZx5oW2-vMdoa zQc|vguL#k7m_`_BgHbszw%2x?z4``#t~M-Pd?q;0NOICkmIydHOTHz)-zJL=9yje4 z7Dh$=W~SxkeIZi>u(46+G~u=oB>n-NbYa)ds3Rv@KE9VhH%#~^eSx1p2Y!EN{1?e% zMJxY%Z>K_!hbU!Bllv|@goqgY=8fPd?V?e2Rm0{z58l(cR>Vqry7)fcs)kN$vmdaF zYHuPlWt;Bn-H0lYhLN(I4~8e=I%7Qd2>RNsns44+HK~9MtbZ4Dt$e&NH8V52y|ik& z%K8NoD3@*BoFXMACQcfVT57hjfx$-kM1y5A@lm!1&(CZoZx;c9CciBAl$}HXJIt{R z1pqVAXqqBaZ0>~+?5;h0$2MVNZ{PI*^J=nxy@!w~Bm^lZ$G)$iIeox`wmIN(OuO2? zCw5xfCIP7nc~@ET{_Zq3_FtaUNw#H^VF?~C+7mVI>&xMlwR)C8i@D$?A{7?G?fGeT zb^O+<{onff!QevE+H#H}&{{)@Q9%RU+F#3z-D_qlItHe>Lj2CYapMvGoZK}KkA9b< zw(TaRuP@X3Q`){{CW#%^+&&aHe&yDX>w0jFy0@+%P#ARROt^WpBDK)qd00HAV03x< zii`+TD$mT(ZF49?Qn?Q7!1UsUn0^sj0;fTv5F=Vxbace1wSTkU?Zx?NT!>hblKtMR zV_aA$!g{1NxDl@>P4flf{-WWqw=du`Iv%wPqj!=P!4*(y<>iph&lx{j)4;MhJVwOc8jeW>vb&XEr1lrNM%u z&tcN!0`}csMRDX;eN!wf*zws|wrA_WP@%zJZ?H((+uwpW0Z#p?c8o3ENaZRm`)>;p z*N1%bM;a0ml3X<0BJCM0#@|l7B}3wXfXB zADtLU&M2bjwOzqQd_#Zg_s#{aoy5Ik{(+IYA4KiuEn>m)6wJ;0BN1LK&K)Bfad`{;3sq zd>9}9PV{-@;!xD}-`>ou?(!J0Wh-lc#1Ppo48`|MYuda9+AqV!Wc z@uxO7P|+&}p#%iqzBTzGJMg<7_Qn@zy=R;}HOl;Ypi&3WJg4{w2ZHX6mX63o&Z<9J zo}_<~nGA7;iH4fOA|j&3t*6th-K%Pb>hG13+b`DRV(Z--#?l}N`bMBhdS9WV%VUFU zRG0k9>SFIV^EPe;gP2s`fQ24Xw!`}r0YHf)^p@9(|?%R@pHUmRj^p772cO z8}O6q8Im43=Cf}u`T8_kcVoBpDzwnZzK^-txw#Ac`xYr2TwIq&gHsm==c|f)8U_NO z?qPFxJ?fjeC7Iy9)mFsA#6;Jr{X=*6@892vJirQXtr4dPuWu6tr{Y4*uX~SgE_SD| zum&tOJ!CCDbL>vV>A>2UYWDPXJ14S`iwEapmOdm<6HW=irmy5qoKKa6=s| zc{lult7K@)1uP|}GP$lHjd-XM(%1_~d^jQ1f(#|*dR?dg*MpniO5#0qd0gzxRJgmV zO^TE_KAw#YNw9IE4W?TZed^&_Q|zUek0v7^8b6_CSqfZH%y4&4d!^{t0}4(V`edV%O$9o%WSuH5%BwcJ=1GFU=I1Nr_)(xW6G3)dI6FJ5+mN;(#m5Kw zua`zv`S{Vmp#pr^+yL`4$-IOe{wK@E_?=x^ZR+Xv{=w6K_BsfwRrM@`n~tB~Veu?x zclY$f1+j2E`f$Jh7}c27hXNx1{0glE<~+lDT;fGBW#~IFkpoML+TZBv?Cdx{)roF58Mqp3wZiPg9#dKCn-{;NajtPt?@aeNIM3_FDynj;9v6SKZ!ad0N!| zp9Wu`v-I4k`|q-brf$&(Qlj?W-#WN~k??TxT1ve4sXsh;&#%sYuCC6X%%4zi$VYqK zURPCpfPl=ShR6`McY&zUkRVy@YLB9V9zU^gE&%}I27k29`8^sII3w&apH@;5wA8U}92iRe98@;Ue6Zw%p^p*7=2+k_tO0 zxGV?iX;Z~c>c80z$X6QIt*H4Gt87Tkx*PB&vdl29y{-tGF}2g1 z+z&?3V^hP$?O5vF4{0YCr*>><)r8Bb+etCa&JO|T?ef7!Yh#{E#JoqK4rP^vBg{|rwOy0)Oh`X4p;P2W`l8f*$zAWX4p3E)BeQMsM{MGrt#<}kOV2WeX z>z$!Bh}0|?Lq#j6`W=9rbLnh#zbo>M<$)M^vP6)gVo}GU`O?r)vZQ)+8wvE}M6?O{ z@JV!8u7nSy97{}^#hoIMp!t%V(O;GTA*Wu{0ueiy|La$IEWfb}hfS>Gv;I_JKN02R zlM7dyFSSCGTED8itU4MFn|F)9;))jy9*tLCde9|%F_2YvI2X$wuFw7XpPH&V{LyPI9TCRu>UB+}N4 zbr)T4lA6eZ*sP^GD$~6xJbi;1dk2Q7i>IFsL6|aqPJmefDHe_=fWHzd9b%9`YC+L5h^L2BrA%kBa*tdP&^0?+19?5XG1cD08xHZP)JA+bG(#-fssokvu1oFluVLm{05Q-Km*U$y#1sHjaPy4yjW2 zP)uT4$HUhuwdZYPurhU2l=&2~*0YkZ?dgZ3HYnqlnhfQS5`>_;g19B$=}2cs#Qx6O z=g&GMR>lC_Dr+)uw(Wa+d;9c0;!c16kB<+=%s6n7M0Tt?RW{#^OiTs5O41cHtZvfc zemk{%2*JlEW-zeQXOQ5$!?V>YS`~Hxwp!{GvOh6kiggcavQi5~RY@Y;3%DU>M|hiu z3)e@XrKLwsOWryPRv!WSdl1gBlj{|!Z`9@rnbjRD7xz4TxQ=-929?rC@vR;Pp4Ak& zRvgMP%>$+4-CYn;7gn^Opd-zbZ?iarbm9Y2sjI$0mft@eT66FJn}LSsapCMzCzGjO zj%#dVqs9f7nU&E2poao#q>KJ*%zdTSw+yrpKNhMd-3tCLAXfkU*|9AkE}faywwIX= z;d_|l8UH#C&{Yu-oB9p)SoWu`ES=dKY#UhwafGbeivF1 zv*w7;!&9g)n`u1r04PLSdB`G>m)*+m-zyyF#QXOpE>MQ7|H&n_Pk*`nr@XwJxBirA z|IHuX$nX`xpT%N}sw{@>n_P|DzQgl-d-k5?SYlZV$WK-2ZW*~w|H??-Xhz-<@ujF+ zuK6^WWGoj@s!AY7>v76rJjNh=qH!MG!r169iCz4Be0-H}lJqYR6coNtu6gO%uoU=M z7Zl+Q+FEFkq&8SU@1W0Y@T38}V>lZBs4O9D3~J!a$rF9_k|@%=h*CuV8Xl!qeCx{3S_zdgl$W2&gy4BzI3EL`qiealKK=KFjBWx?@@A_Iud54rd;9+8 zdX$=IJ9TGQFEM*E74V8)7m*n6f}80D1-XU@+kBGE%Cy;kG4pS#u@Yl?E}|*EV+PSW za53a4Lq3DOu2zWIR@VZir+<)rLHi--crb6$HXY%w_@&wKuX!q^FfZ5LUSp}G__evO zWQGS8sQhd2gsJJTtK2KL%-L(rW~d|3D!#H>f2%1lafJh%Glka`R!eZW`OBjg+TN~XaRSK8Yen0@4tR>@npY&_$71s%&RYZ8;>_7w~C}^J%iB^ zwk4ZWpAz3TjHuE!ALU7!U>Uv%JdI3)zHQSo^1FAJMJ|Ou1|Y}B4@|LK9%iH;9O8+c zboa)8q34qk%Pi6a2{k`oX1f~o0Tdc(y_cv@at(92=;LIe-!LZVIQu^?gbA!zC{096 zVyCuXM~Uq1#r~3!Dj0fyo-U4qQ;bLY{GUnV)i1*mZk@zwN%(Qcg-^Nz4aoeWckldP z*e`qKrI z^IW?bI#WKaZQTC@pd5koh&Eaj>st^lJ3HSvsi+o>1a$qaM*L<>-!1Nw>o3aYF)>ki zfGBc#^>&Kay!)p#7~Ikuzt_4nf5iFV3sl(L_rbv}z>1u{*CDri%@DEYtf1fztZv=+ zxl`;9ZSd{UeubnsO=Xv6|0$;qFrTsz7vSF zJet#&c&N_NriU*7`nBA}!Tu$KIFMFCjBaoE&|!lR(iXt5|r9aB^o6p2pHj|ejhJN`M|`0$H;VfP&8FD zQ6MEk>Df1)O8mT4vlxnl2Zdb)aJc(mK8m_~qWUL1go^^r(XVk^n*yOHHt|7W9ZJ$| zmEo{tsD@-ebMkNt@YkXOyT(2+YRsMaNK_f|n2}ZC# zGbR#^`)jOO$;X-PyxWiEMo$u{s4UTS$3qtckEXB?WwOwFx5#b^@ashdokq6ZMCz!1 z2y(HpiBSCDF`KPCa+-ZXi-?-quOWW$o#E^0)>;Rku2qo)PS<``I;V38kMC_F1}Wp% zyhx*bT%eGEPM5YwE&oMNj|qg4zW!rd~{g^Gd#*f${7c-{SQA8QH2vjM@W zLKbEaE=0oTEb#&Tq$%ZsB2Y#ox7rZAeCE@%NLusziuyKPdm zu|LQJ;5tAUN9?+D)2Vd)=P97Ml@yo-1a!QpGTz95U#-YP78(`6plgf9-j{rp4wpMI z|Itc{-}(7P=N;D`P$*YPqyX7GmNwArN@p5_V?>L-dLuJP7z+QVvL-x47yQv4M1n(T z4G16oYCZOE&O^}h9hDq7Zf|EBz55a<1^xdsZHqrO?D{`3liLdYMs{h$FIHi)KXOARnI#Q=w#c`%aAhW{c0*=fT$i|O~?J?s^L#>SJl>5 zA0GxC4Inq9{R@jrsM0#I)^p^qB!SO~cpl8x)r-&qiejVq11zQO7Ip?K`oB#kzjX~X ztD*AKyJLAxIrjVexZ)tZI$Z>;Eu>Y(rZ=x=eLfv#$3pZjM;GTwbA2sev7#|mEPUL8 zy+Q&5f-D4bYjz!exBum*)(G-GQ~^5Sc{^2bE3wJB>(Db0cjm?+DN2$OqZtSB0(r@_ z?gRinf$z1fw6xr%;z*!oh7G&ByJ_m%?<|+|gcPg>)_(EtI*>lY?r)xiPKlGf{U%@d zRpu`wK$_@{zxd%N1w}S`c9a0zBVU711UznU+<$iPhvJnI$6zASHqt?E_9{Tt;7F3H z3o+d^FW1nFMre7&suuT@YV(y1$oPcN{Bv=!yyKx#g_s^Sh&r;cclo(DZ6dyc!-$o=;QsbS1|-AlfSztJs*NRg+SagTp5)QND`6ec6eXE0vjEo|>S>XR%wHiw=kJfyhS6M~ODF7@Si0^C|RUF;#bCYc^LKgEqcKkm~#uStS}?LMo0=H!d8mJ;WG1om-glg zOw@hdtJh>d(R&%0;^Vz4?zQ!vg9rT@WRNt|A{XWLuWMp-W4@Qsbmm(3*CxzhDpL#cddcj9gQL(lLHu)@MGy2jBLQ2+6abGL&@*Dmk z1;6cj_XV~#u$q{&FGQ1u$h@}b1gHuMIQM-qGkAENSFfHLv(X&Ig!WD(X=(PB7w!D) zD0mnc*iq3QD<+#q-0PQ%cEHAPB%`M{xXnk$iO$-6eJ!Rz_lXig+)SNq!uZ0aw}larGZV9nh+*Uceh4_~001RGZn z6X`dg2~iOf+bh)q8UT=~s`(Ti?k_U}nBUK7RdCNXrMhZ)Ieljhbu&WHWVf120!_(lDIS@IU|&=`Gd=>$2lPA-iP?nIQAa)vA6a z&|K+$yjJSHHz$G^>NlG#a`vSwT`O?zj4+=&C3i!?0(b2_i zT_X<;mD=hihZ*Rs*o>?G{Yw`{)-D2^HA!6Uq9vOx9IW;!ylma z^Y@oS$;1SIW1r!mJt^k5h1o&w9@!7{*~0H~WHLuevs;#pe-;;4PbMYItriH;H^#>Y zJAjsIc=`P}=RyXy~dgc7F~YmReR(AA4Y7eV?q>!=9ZM=ZoZXYNXxkn@iE`}eys zUB0Qlhpj^yqz%hc6HT`VAvjX9Z3hcWFf8q&Jmt-QNFKhbBVQ=}nJ0leybiWPitbH}E5y>aY+m#`KU1H# z9s({wCBs=8iat^R%wH~VZXPbBE9M8)t}gmo^<&^U!f3qoM4zm{WQyhS{INVeLJ$f{ zY16~?>E-~yIP^X(D%HgI0O3eva89{$#=5x_!miUMmWv`^a>D_| zD>N0>k7_q(b@xjg34m%&gSxXbS*X)M!kq#PpVZ)~OrR zRfd$8Pzt=i?-Ape0kE4=$tYL{&>bD2cUz$l*olHOkBX6z(NeO>OFS{BB|icJDfRD; z7MFeI4-YVy8gKeLey^jS(*AO;`OADuoo^6acKV)}n5ftTI^_N zt1zf@IcHVTs&S@INxC=%$r2T5rr_YeshBbSrb%mFzP#KyK@<3t#q{rRc}f%9J(3w$ zqzStoQ2kT~GCK)q7=fC*YBQRIVp>_AhlWjOK9ix+C04?8mKBxmQuU0|#tQjR#h)FA zOJKGTdASQezWs0c40_e;2mK3m6~C|914(K?>oK$o#~Brt!oIC8!n^y*=MU|q|0(2| znJqwqSkC+O@)gtObQxd(@6RQ7N;c;CWk~e&Eb5MS7F`{B{NQ&^C zec1h~X=g~&r&8~FQQ6^gw45m`<#(UJafn#Dx=o>xeECx7>Y_xHiXVWK!2%FF76AR4 z9$xMd^;rCNyb`Ka7#4|~`yq{&fgO9;mOpuLIxy*ucaiR^W4>r#F#-BBgq^p5awJ0S zmuf%3Ng5vL4#0G*WEBbBViz1ePpNJ*y|nbAWY@9Rv`m*8cX`h7@fgpl+&6_ju_B>z zEU$v*o*IIM;Z{FWaoB*T!t8Ugw|Jk}{5VMJCGF%eG`?`jlHRXvgm|*#`QQ=WfIu38f^zjxYrRSiMQs_1*+3Ceya*{ZAaQ-X=YScxJ|49I_KV?C z>Q~Tm$@B~YQ6c#w@t$Dy{TR#sZFVv6<2AzVeEZ-WEI%Yu`G1n@{YZ2|k~ z`y8wrb1T86fV>%y)I-z#Z|=X>$IU>>y|XiC$IVk$gg#sR==u=IVWm+LqhgZ{Bj9$i zRbn}r0Sw;z|LO9B@Z-9BerB2c0M)C`fdGu}m8<{2-nWP)Z6Q^>TX%uDH&4oNuVvH_G^* z7@*zgwbJ^7%=mAh_vx>!IYdNoCEg-w%l03CyiyIQHa<~|u4LJq)u8>sT(Y?O(&5JK+V;!++-dw98+(3!Mcg3;~QBOygnW><#hnr)@K>sZ|YU%jsxXJ`TbLC6ey^o2B zEHV(cHG(?lG1ysMUz1~FqHaGTnX5!8pI{~V4-c(3{1byxdq zc{{$A|3y>Zag_7{x^a=Fhn2!cNV9UjImfvpaBuY`b*h_|Pb;!NM|m&lZj`jw1yL@M zYzoFFEY=dZ(ZS!O4bvv44BqHL0(1713D&>j>#rx$txa@;UEWch}M|z=oGY2dUb2 z#Q7B&ZK|p(Jy^}BUe90HnP+RpQ1F`uRZff;dhNF+y|NmboJ5kmD|Iw_6I|)?20AtY zB&}#fP=G`&M?gYQBasV(S8KYsDPg28C_rwryd?v@12uVp6Yy3IyI8=d&E2;dwsS-z{ZTc=s?3sNA0RH-m zMS3!Ud=@H1lz?}iUH{OTk)mYZOM9E@&g~||%2x1a`rCruyF^V|7uTE^sD)I%lJemc zQ23vwJRF<3r0tGD$;yazNQr)(&xASB#lihbs9ueKBq^7{$@=$qqauwOr4?YQ{VsR5 z_gvBB$jd5gC6But4F4~~<(X~fPd|QrH`U&roxRcq{t|NW5WWd8JXDtWmiamz9aUAS z*RQ>5xvT_F*&hWLwVOmFA;16pDgHDtE+`S=)f4+B($uu^ey@99+l3a7*}fY1(MAcm zB(wI3oCeM8enxgZ8&9b@e}GIQ8#Xh?0U=wI%KHiqAShaqSM@;bN0-aOtf)hkvp?c4}PryVL~ z8dE>EwzakTT%csX(UqB>dW!Igq-D(*5(t=>#Rhf*qbvye6j4EX zde(?HH`FFkj#F(3M>(vh3F~=kI8@WXK$m6=8IL_#fq-!xhJ7^%!n7>RTE z_Vy!YFd(vm0dmGi}*aI+;Tcz&rKFR`q=SY@-k>gzfTD% z0keO)mO}gdx24y5t5tcPX@5V4hMEXP=?6DVOz-4?450-SLJ571i5n9MeIFkL?BRhu ze=<=^teb0X=7E)1QF9$~?IzPKV_cOk=6%EW#Bu&@l#!zjR*_gHYD-won6E-~c(W_x zTQo7R5-@-te$2s=9@Qs#l0?F!T)v&q6fTUQ9k`6NYkCScR*(xh2fjzFgJs;^-@mu3?yawXng~h}40uw7Mfp2z z-!b0Wpvl*=j~hS3_`38_(yu3Wm?{0YvpVF@`yXO;Imkzg?N54x-%aV_9A9>zP-G(H z7}pY7(vY?6XbyzI7WLI%a`;tG{@}@yLq+#&&y;8IPtcYZ$fzPorhUcAu6uHq7AR7vb+}IjPrOLNg#Ru{>$?+QH zRG%j&=E$&pnqD_AKmYe}xT2i*6_8^D?)lT4`ul|O@lw%v ze!E53?QGQ~)3q}UX76|&&NN+0T9sVI%h)c=-t#q4{Dc^Jd+mG|*qRL!n2jZYYDvk- zv8|feY9GPDFL-$9z}DXX0__Sl3p9uVDy)Xm3W`uEDEci!KQkotnXB=)h6DN`pz=03 zIzB>rm{hGBATmb+=Wg1w-i2i&jdi2V3d(xR-}m*`9k zKICZR(=!99e2O>H%fHhA5fjJ9tC>lUP8_p9$MTfZC}?n_An?ltIy&l-=!H*Kjx2iB z_6t61a=R6`Dak@SFV}Z8XaxYJI7?m!Iiq<)(D%F;j{_eI%>+RE#Z!7+#SM%h+{Sa{I{eI+Re08+aCMz4T&~Ule z(`R>mjN?n$TqD=L!I?*nLn+{94Medo7uGuS)ko6@zR}CaXlj6gj#aeN$F{;=Wt88# z%3j~bGIxZGeCGJ#B4xHY?fl@<4f*@;-~OOb0c( z@gU`Eb;~Wrk(57teeWVRc2rHXsznnUxQdMuHF2*Hf(xdlbBX}K4fnT)z@x(Za1jCn z-QB})=a%l|STo#69jgogN6u#xl;aAF1Yk;oZq9e-riSpycub%C1Di=?D_}&}GdW;n z^;pk0u+gONf5F>#o={-yQ23)B8!DPsN%^3ffp2E+>9ePi6+nW>hO+9&pAW&y2d#vK z*}npgdal>Sp7-hV=b);at7FwH|Bw)I-{#xmW6$!O>6@F&rN<*#DMqsmb4=6*SD@!V z&Vkw}z}v$z;OL4H>l)aNpMm@QpIK@S-P?X*3b$H9D6L8W>E+SIb z82Ql~9l<4SVNn*s4@Lc%CE_O{SW`_h4V*?`h6&Ip9HC@i>?0r73#%3%JaTHjA$IQXOfrEvN zOD*E|yPg908(W38ws4>l@ZS~y@hhXCjKnWnZtQ{or4Hiq3PgGhMXYqC2}lzVFhGcdl{R&;;t=SUk#ec z-BpaFY3H;2n?+{n#{}6o06Q91RA*kOr1{xWp`@_1@k^S8X7+6R>*_$w6XA`L1bF1U;kxS151U3tRy|!io0)3I1&uC++8E0Vv0i6Q zm3Cz9pqZ~KFnEIj2M)x_mcNQ*Q+z7 zSPfFL>nE$S4m|9$@OjQF_nqee{|Lh~^leRXEKW+FNBNBtby~Y`iuPY60W3VugdO-6 z0z7>y`x=V!WfWXA&jT%#t)&%5Utixq@HEdkalJy|ykz6v*xB1yDpIkMPW zWWv<9^yz+ctk-@GuL011qziDoxQ9f}$SGZPgx?AaBkXV9G{@?qGL8hSc@M9zS16%U z*oK^yuUUMPcVz>Eho|(G$EB#`x{3bpO%)PGB7Cu3#T}iOU7t z1O%|tuzv=unb1iZMJWkv)$~8GWj20|A}5!BL1}$d6GEMb2|G|VliZr)6$r^Ts1Fv6 z&v-;f*2(Y+;QQ-pvSlF+c#LwaUA~#^G1k=(kM4!TPsWXhVe3|x`stxbFE-3Wb`JgCTnO7)1NpI354xia|3e zY62P1_>43d2?(N*fsMjRp=THF5A}Wh+x@?RlbXIWIb*)$-ex)5TW;@wWK(IsS&jyB z-(@1x#V!)?rEnM}bo|v)=}5G7t4dQmPFfu6b9&TdmX{xO`rtXz%-xhD5_3 zD$wbE*0sLmX#jkDWgVD*=awFCgJfs}A;Ek2p!D>HWoS=Oehy%3s{jTb6Ju=j7RDFn z%#Z{?p8iKySH7G~_^6kkH-$pi)0&9r`t7xX61+}TkqL*}Nj8YR37{t)-{#h#PFBFZ zydns&hdSNeWGN)xg@7~OqrcO2A4-&nj08q===xRt$CS@ULRV_<5CX}M*=~4?HQS;F z`aOV<0wY72u*OE*)(+X)+h#FkIh?u7c%}>xI>1@l%B3;sec+geg#Ak#fg%9$J&IRd zW%TrbZ|TKqY3aV59}5^nE6Dm1*swV{UvjTOxP>Z2UVuez%FT^Kb`Dw_!B@xYf|<0& zz_d9gQ-vX312;G8la5Nrjqaixt#G?>ju!|{75FC+P45j?VZws$kKQa{&P6V*FOm`T zV_{SC)_W^=x~nbhuDq_GRs(QtvXn7fUJbFOl>GO^9&nv zdb-aX#IzSHn+oc`Y}V2NWtWa@zx|pAn>Akdo0%U2itBLCVA()#k&h44xLz@4rtB^^ zw{@zf#J3=DkvGP0=Oq1_xMAk&Bb9EHxp)6@TOG7kI!RRSY>R!N5h8d(tFqX2+p}Sc zxNT-A=jm_c8N@+A(o0EBH5hVvo;vXON+UBZ%2vbyJJ zO}GDnSmX8vpe8SqK{>>+l3B8weIq%68Ns`91ZC-waqQbZdAEbmQe|q9y&M zb`QTizMgM#78GnvaWl=r2dqt=1h1Jn)7+}9cJ+y1ZpHL^>b-fh+{H@e05=u>v!h7$ zT#Jg&i*FmRgO?2Fn|4^|I^v~~YACfUuNuud-nHw&(D?0|jrpW@@*rL}Qh1PJsgH^cGH z)y1NmKxP0IZ!Qf}wq^hp20(zreSP??kq@_e@IC?L5;vP=7QVI&Nn}>SE!E8JWg=mM zHdA83!d_6Mt{dOdm;U^rDAdUK;7R4}L-iKE9{5lMdHN}Letw~ZiRkeh>CevXL*Y_9!28jEUfpBS#=74!5St-8sDAOaDrzl!WjaTn2hVz#urc zk6^2}mjY653>TSuE6IqN7z4vS*cGpn8pGZx+wyq_xx2f|0>1LelPA98Zjpe`+}}-+ zahEK812;NOfcO43t8S=VJ8VbmMCju2Mmp&76PvW%DjRdL?AjF8nWR^(_pkb z76RgF&!0bk8nm9WCJzvm95`G^K~RW=Oy1wOzZ-04yXb2BRA({i8RrFON~f(IaoHc& z&Tdua?u-(r>-^)oVt@TYP=#ICKAr-r2?@ZYvq4mz!Wm6p2vmf5>^^YS7ZKLsHCRJ*zyF+9TTt}37iJdF&w9s01vNkZbw zm!4=q>SiM9_tYjIjn?{+QU#9m4I+qJ-3AeN2#!n-A-_f@I1y6rYGOKpR7J;X+`zDT z9wW8kXkzP`|9owPZqw`9Jqcj#-NtnkK6zYKn;VOGo!ij0M!pph7!WjEJ;m%) zot9kl+WmYQ1FB^)^%2t2D*19$;@eGN9lwr`dV5>jVTvvFI?DTnL72 zCG?;!Y`8+wc<41S{--~Ch9-<-3~VGGrPx64efxMf4nxBMDs`@AMC#R%9wjbF=-~-m z|02~wQ;qd~{zoD=_pm^{`uL9y|2^I+slT)Vz$4l8rTZCN5@dhBQ-{)bv!_cmn?8`- zcpYR>obiBOH4Is?f0H?FysTw^`}P&~hBSJR_&p`$J}q9fT+A{LP;(&xQnYIV(B2ot z`BOLfMF9uy>Z>4;Eg8O$2SR`N!lu|<#EyuxEv2zVdP8(x4n7q=EMqC}5Ec@3!odae z$q8Fq3l#Wh1X5J1^XuRuaFSn$s?&!ZAn)h2f^~KGZiJC4L)|EQqG3RzaXI}Z?b1bl-39~I4&kzAi=}moRm79rV#jP1;vET+KvidWU zl9E`4+!;Y(3(FXZZ|dY*?a^F=;{n=Tb#RydN@bB&_SN&H19-f$OT@^?CQ04HyFLx+ zWAOo8$YG#V*j*)T-&x%BO4aYixNNUP+GD*?QPFSP9P)17kuNIX+{AHIDh2k zaqvE5pm9BeW8aH5$l8JN0Rp~zn3m>G6F!@QF{N9#br=ez#_Esw;Q)X6HLxj;d zuF&mHcQFcDcTNX%+E1F@viQ*OPukn&DjoMKdZ;-s{67WC$5^+2j!8k*j@AE?RgG9Y zA)A_SkRZykv{dCzn`Ftwwzzo*0Y{q?ab9PwLQgl<675jwx=$xsvj5(C_fA;7KraFz zSz~neem|GZa$9=udnO%Pq9tddLsQYo=zEu<&Y?6oB#v=GM$*BJ&=SQ>!r@GKN+ud( z6@R+D<<-)tEle~4ipcU@8ErGsJJPqb8Ka#sExp@fdL?d==Wz>$iZvn9vU31{$U3gdJ+LEgd-d z{dHT{=S7!CYDHd)I+U0g8k#w`M5qaqzNO`KroIzC1$mxd0|uFDKfljQ{h1(MY$1JX z<{9*t*{M_htNU9-BIAy=7j@L z_;;L_J>P=FyMaB5;<6Hpv$_nrGNS4f^?M{Qi`(yUi ztD{Fd#L{xYE!&q6C%IKj-z(G)edb^5i{_We$~s?r8bVzwEY80lkbFZeaCgNE7p>k@ zf&wa*#%BX*6xG6h0PrAdEe;{7C-ByGvMEPLmSxv!_V8AEfaKjA#09W8Q|ghheGXTZ z(lfa>?P&QJBqPOE$Vwi+1B&AYgy_@nhu%FlWvFb~pbzEcO1{vp7$!MTerAEhNG zZs{@U313Gw$DV}NdPSX__=YJZEe(_rYhEn}g?M*pDd1*A_cZ?MI7&RT4~Yx5eu*-O zhd5LA_h9>hA>v=Rf0@1qYlrUBaBrA!(7>dJ%2IteXQG$4FbY1sf;2P>ihv!~g086tH%iqogCC zO#C6=R+{8sJkeQYq>@o`^PD+5eJ>|`f7qo^`%%5Xga8bYU4~FXGV0ti#Db6Zor%sJ zfwc;KX%a=23&P*-^W3RuP~_6rNoXb%@KgKDk4*dh0BY#xJT2X> zqncc#NOZqhR&Xa2yj_$#0e-KbYH}~+yR)+GQSezH9E9v`&Q%MJhWnQWM{Xk~4I{rP z1DSup-ZjXiL}*FoV92g?y|0Jb0VQW87Ul8M2I?t?lO&V+8DDpDb3{ueg9#0u zreO+T*o-)-vt?(Zu~T+0u(}^Rx&dKY|MYPaLe1F+A`*GE@z);BrrqN zTb%O1h_Hcr|5}?G*Ug+G7lw^{b@p0(VDPhBSpYoUEYF#^X%5}8q6oP%8s?;PpeMU+ zs<$~eK3is%_{0}30I7L-u88(PAzXJmJHUdXqWiA_3O?&q|7;#arpVlub?Ep>9qKB~ zIXI}W0yars4$y+nWkN&n$N~E_K#KxmbQvRF@GuY3aG7pqSz=rz=nRzWw_|8v@R(B+z$5#us%N$+l%8nXyQfBW`?6#=s~zZc2l zFgzv03gRSo@~?f&(<>tFj$@7xToc3^!EJ1eqN_XS%&f9PE;VLD52yyVA~_D? z=S*sLJrS_Ms^)4|0j>{RuIBHqf~48yG8TpDDn7RtaR~V!TUmpI)7k_6)_q3s2M>&* zN%s-jx)W{W1^jP+#y)e<4K$?i;L~6TG6~f-2NYSN4>BzyCTI!5^UE%VS}?9^4zDyE zDn$UI615scxlO2lwrx@kDkE-g;xz3Xums4#_xO8K0}TxHukM2Ux|59BDC$tiu55wgJ*;F9b%HE)N2OSep2>GV~ z%1}oUc?vleL%}yoACS}vay)DO|0rhuQ8*Is74zl)rOc~yBo`mJvPC3rfvhY3(A5dc zVRwdDa*{S+1pjsn6C|Wwx- zyIlJol=Le|)JIe?gBPW}E+jGaG~g&lh%UW47q69ANOy{w|K;^dW-mz8>oKl}XOnSy zsx>-1UG7!G?rQ!MzcX9B%U`w5dOu|@MlqC!Yg@xA<^sb;PlwxdqXFrO`5dm39*d=J zZqA$53TDRD5mZ!$K-^As=d;B4ivpLsv+mk_&AZf^hPE?|GUt?dl2~5AKibF-GNixV z0-i~5v`;*IoywzTVHvXfFC$sHhc~QtrB%`7M2s++u(C{HgiT-7rY_c^Puw_RD{`C) zD)?V8ZvE(WX&JBE)YD-Z-IOHwC6A#+z8hxRW1w$i4oKyM}S=o%~uez0g27 z7$eSKX8ipBx9QdY?@vu`_n-+%aI*@QIs>A`C4Dbj`8wV8g=^jShJyn{Nl{5fPEkqj zf|A7rH7ykttqU45ii%o_iVnx>U;eKN9tbBl=b-=l1bK6IRWRZF|NMimn+M#-_pZmI e|8tJImePg4fATVTd>G7u7+yB}w_M-x@qYoo92tKA literal 0 HcmV?d00001 diff --git a/vscode-extension/assets/numbat-64x64.png b/vscode-extension/assets/numbat-64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..a8ea35c45d0f0a52c696255ada54d3d7846a4442 GIT binary patch literal 5448 zcmZ`-2T+qykp2@o5Agr(nn)+q0HH}xi4>70y@#TJpi-p;EPzT0 zpa_T*K}rY^dgxrdo4c92nfqqmzi;-Rowx7b@BO=P6UA@m&d002Pr^=?~`CG6i| zrY1j+4r>d^g4b2g!WaM|1OWi`gsdg2P%8isA_V}e&H$jC0{~Y83fjz7$uFqy8|vOB zOEM0%+GEIqERhs|p5^`^67ZeXk-+b||J-1u#=3F1}bifC# z&vZtTjxrqmV^Z2%4qrl0zej(MCc7rKriz4GxRliI=D7a%A^iHqAMMTrDBwoEeD^xt3 zvFRWkGu2#32(7ytwmMpI*6gaQDho<|%-I3Xk`r$-d1sQVkdokGGU^d?ptTj`sk5S9 z-yo8R0lE(`TW+Tw=}`E`-W(4RQBi|3X*M9!p!O#o$gA{1<4=xzpL5+(R#raQsj_@& z+R})4=pf8WPY0eO9Y;xAoeParO-=@Ow2pM^#M7-vLDNaemLdk}P�xb5}U;XticI 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 literal 0 HcmV?d00001 diff --git a/vscode-extension/language-configuration.json b/vscode-extension/language-configuration.json index 2b4ce63a..6607c4de 100644 --- a/vscode-extension/language-configuration.json +++ b/vscode-extension/language-configuration.json @@ -15,10 +15,12 @@ ["(", ")"], ["<", ">"], ["[", "]"], + ["\"", "\""], ], // symbols that can be used to surround a selection "surroundingPairs": [ ["(", ")"], + ["\"", "\""], ], "folding": { "offSide": true // This is not strictly true, but we encourage a coding style where blocks are somewhat based on indentation diff --git a/vscode-extension/package.json b/vscode-extension/package.json index 670710a8..a76ef270 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -2,24 +2,41 @@ "name": "numbat", "displayName": "Numbat", "description": "Syntax highlighting for the Numbat programming language", - "version": "0.0.1", + "version": "0.1.0", + "license": "(MIT OR Apache-2.0)", + "icon": "./assets/numbat-256x256.png", "engines": { "vscode": "^1.71.0" }, "categories": [ "Programming Languages" ], + "keywords": [ + "language", + "physics", + "units", + "calculation" + ], "contributes": { "languages": [{ "id": "numbat", "aliases": ["Numbat", "numbat"], "extensions": [".nbt"], - "configuration": "./language-configuration.json" + "configuration": "./language-configuration.json", + "icon": { + "light": "./assets/numbat-64x64.png", + "dark": "./assets/numbat-64x64.png" + } }], "grammars": [{ "language": "numbat", "scopeName": "source.numbat", "path": "./syntaxes/numbat.tmLanguage.json" }] - } + }, + "repository": { + "type": "git", + "url": "https://github.com/sharkdp/numbat.git" + }, + "homepage": "https://github.com/sharkdp/numbat/blob/master/vscode-extension/README.md" } From 98332130e56ca4c50dc0285d0837c56da2f6db7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mads=20M=C3=B8ller=20Jensen?= Date: Thu, 14 Nov 2024 22:59:37 +0100 Subject: [PATCH 2/5] Set up extension packaging script --- vscode-extension/package.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/vscode-extension/package.json b/vscode-extension/package.json index a76ef270..98a4f3b7 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -34,6 +34,15 @@ "path": "./syntaxes/numbat.tmLanguage.json" }] }, + "scripts": { + "vscode:package": "vsce package" + }, + "devDependencies": { + "@vscode/vsce": "3.2.1" + }, + "vsce": { + "skipLicense": true + }, "repository": { "type": "git", "url": "https://github.com/sharkdp/numbat.git" From f26684dcdf97696af3ccc9a204f19aec2a2f025d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mads=20M=C3=B8ller=20Jensen?= Date: Thu, 14 Nov 2024 23:10:29 +0100 Subject: [PATCH 3/5] Improve vs-code extension README description --- vscode-extension/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vscode-extension/README.md b/vscode-extension/README.md index 90bf0cc0..69c3f025 100644 --- a/vscode-extension/README.md +++ b/vscode-extension/README.md @@ -1,6 +1,6 @@ -# numbat README +# Numbat README -Language support for the [Numbat](https://github.com/sharkdp/numbat) language. +The Numbat extension provides language support for the [Numbat](https://github.com/sharkdp/numbat) programming language. ## Features From 0a07495f81456d5997d04bdf72045a212ec63c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mads=20M=C3=B8ller=20Jensen?= Date: Thu, 14 Nov 2024 23:12:13 +0100 Subject: [PATCH 4/5] Change vs-code extension README requirements section to reflect it lacks installation guide --- vscode-extension/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vscode-extension/README.md b/vscode-extension/README.md index 69c3f025..0fde7017 100644 --- a/vscode-extension/README.md +++ b/vscode-extension/README.md @@ -11,7 +11,7 @@ The Numbat extension provides language support for the [Numbat](https://github.c ## Requirements -_None_ +_TO BE DONE_ ## Extension Settings From 0a3fe6b9516ac52a8120d36852d484a5264ed2b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mads=20M=C3=B8ller=20Jensen?= Date: Fri, 15 Nov 2024 23:06:11 +0100 Subject: [PATCH 5/5] Fix multiline strings and string highlighting bug --- vscode-extension/syntaxes/numbat.tmLanguage.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/vscode-extension/syntaxes/numbat.tmLanguage.json b/vscode-extension/syntaxes/numbat.tmLanguage.json index f0915269..79032222 100644 --- a/vscode-extension/syntaxes/numbat.tmLanguage.json +++ b/vscode-extension/syntaxes/numbat.tmLanguage.json @@ -86,7 +86,20 @@ }, "strings": { "name": "string.quoted.double", - "match": "((?<=})|\")((?!(?