@kong-ui-public/documentation 0.7.82 → 0.7.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_basePickBy-CMfPif8e-CmRJF0Pz.js +151 -0
- package/dist/_baseUniq-CXqhI00C-BfnSCqya.js +615 -0
- package/dist/arc-JIMrD458-iE0qPqUL.js +83 -0
- package/dist/architecture-I3QFYML2-Bgw7-fJd-BmHcSoDq.js +5 -0
- package/dist/{architectureDiagram-V6B76FHG-Pzw1d-oB-DHiQxfgq.js → architectureDiagram-AYX4OTIS-XPsSAXrN-CriQXfFm.js} +4 -4
- package/dist/{astro-Ct9uJo-c-nfJFy9of.js → astro-0iWgpDaK-DRsXAR7M.js} +8 -19
- package/dist/blockDiagram-XN6IQ5JY-IfzOVP1S-DoilgKcQ.js +2247 -0
- package/dist/{c-DKDB_XIB-DKDB_XIB.js → c-TKJGJdXV-TKJGJdXV.js} +1 -2
- package/dist/{c4Diagram-THADGKDP-DNjDxpJj-DCkatXpj.js → c4Diagram-GPMAACGM-RttNBnvg-DemUG3qf.js} +2 -2
- package/dist/{channel-DY4J7hMj-DhxgBwmi.js → channel-DEiqvYYf-DqQTZyIM.js} +1 -1
- package/dist/{chunk-OQCM5LHU-CBZLTHAO-Byg6DDHc.js → chunk-BAOP5US2-D_mPkUfX-Dlqx79Tr.js} +1 -1
- package/dist/chunk-CXDZ2C6O-B6QVQzrJ-CdVn1xaX.js +1301 -0
- package/dist/{chunk-DUMQOTYW-q2xRlZzC-WZX6gsgU.js → chunk-EICJXIV7-B3uVnKYK-BPFil4EM.js} +1 -1
- package/dist/{chunk-2JBRQKJ5-s3ZERvbz-DIvxz4Hk.js → chunk-JZAHL7AJ-B8L_7Xh_-C2ETRUtV.js} +21 -21
- package/dist/{chunk-2RYQ3QTB-CQJ_YWh0-CyGoJsYl.js → chunk-RGXPSUNZ-PjQy3A3Y-BiDEi6k5.js} +1 -1
- package/dist/{chunk-XVOYOM2C-Drq2fxR3-BZgyQieh.js → chunk-VCFP4HPQ-qZEjUbIz-7kfkUrsj.js} +1 -1
- package/dist/classDiagram-FEGYTUDG-Bu9qKgav-DF2ZcQyp.js +14 -0
- package/dist/classDiagram-v2-R65JCUOM-Bu9qKgav-DF2ZcQyp.js +14 -0
- package/dist/{clone-CSh3RmzO-BO_pW9dn.js → clone-elND5I63-U8WRvSPu.js} +1 -1
- package/dist/{csharp-hvsHIX1x-hvsHIX1x.js → csharp-DoJjzS5t-DoJjzS5t.js} +1 -2
- package/dist/{css-twoVIb3q-twoVIb3q.js → css-DHLSoXzW-DHLSoXzW.js} +1 -2
- package/dist/{csv-CyuxiNSX-CyuxiNSX.js → csv-DvCncUGQ-Tno401i9.js} +1 -2
- package/dist/dagre-SWNTG5WE-CcKMLYcK-tREOd3Fb.js +447 -0
- package/dist/{diagram-QS5GVLUX-BYCosWq0-DUyx0Lsp.js → diagram-NZMEDLQF-vjbbgzvH-BDFE_-Eo.js} +6 -6
- package/dist/{diff-BprZv9Bx-BprZv9Bx.js → diff-DKH6jKuv-DKH6jKuv.js} +1 -2
- package/dist/{docker-UByH5rch-UByH5rch.js → docker-M-OegAvW-M-OegAvW.js} +1 -2
- package/dist/documentation.es.js +1 -1
- package/dist/documentation.umd.js +401 -273
- package/dist/{erDiagram-62CBQV5Y-CCkmKSfL-DVupRLHH.js → erDiagram-WO52GFNT-N8TeMKSM-BojFH-Dn.js} +56 -56
- package/dist/flowDiagram-TSWR6T2D-DzECWIN--CnDMIIi-.js +1484 -0
- package/dist/{ganttDiagram-ASEIQ4P5-D1zrowZ9-BAnaAW4v.js → ganttDiagram-FAOCOTIY-DmxDGUpf-BGJLIQAo.js} +61 -61
- package/dist/{git-commit-BpBta0-H-D9ROUaA_.js → git-commit-giWKZ1Ct-l8XOl7Qs.js} +2 -3
- package/dist/{git-rebase-nCu0qkM8-BcHBAqRM.js → git-rebase-BeAKv_ae-YKn1ZA6h.js} +2 -3
- package/dist/gitGraph-YCYPL57B-BKlVjqGu-BRRTPERj.js +5 -0
- package/dist/{gitGraphDiagram-UL5UFKDR-Ck7pRU_R-Dy9Vc0iN.js → gitGraphDiagram-5C7YHVU6-CfJ_hQ2h-C2aLT5AH.js} +21 -21
- package/dist/{go-CVQIWj2N-CVQIWj2N.js → go-Bzd7qChY-Bzd7qChY.js} +1 -2
- package/dist/{graph-DTNue1bF-BLqDvS-5.js → graph-C5siWsaJ-djbzUgq8.js} +52 -55
- package/dist/{graphql-7X52cHqc-CLBzimQB.js → graphql-D7_Dk2ma-CKCeVmAl.js} +5 -6
- package/dist/{haml-28-Av65f-Dih0P9tR.js → haml-S3dmcfEW-DS9Qve_X.js} +5 -14
- package/dist/{handlebars-TFjvroEi-07H8_eE0.js → handlebars-DaIrqVg3-BICytU_W.js} +5 -6
- package/dist/{haskell-DJah2Vxp-DJah2Vxp.js → haskell-CmMIDOJ7-CmMIDOJ7.js} +1 -2
- package/dist/{html-B9SDyQ6N-D-ZKCIRM.js → html-Bx3A18fV-DIK1LUyO.js} +3 -4
- package/dist/{html-derivative-Dst04Arf-DrM5NWms.js → html-derivative-B8TLT7CN-DkAjK9Np.js} +2 -3
- package/dist/{http-nOIbjTbF-C51IpTrN.js → http-DiM0ILv2-7ivPChAf.js} +6 -7
- package/dist/{index-DOm338WG.js → index-BXFfc1qh.js} +17691 -15765
- package/dist/info-46DW6VJ7-QBUrqpM0-D7DXfBfh.js +5 -0
- package/dist/{infoDiagram-7APDZ6AT-BfwYrYzT-Dmsve8VX.js → infoDiagram-P5D6MX3V-CthsN8fk-ju-grajk.js} +2 -2
- package/dist/{ini-CgO4T9Us-CgO4T9Us.js → ini-BUcvsX-U-BUcvsX-U.js} +1 -2
- package/dist/{java-Bd9vXGhZ-Bd9vXGhZ.js → java-Dg4kxH6C-Dg4kxH6C.js} +1 -2
- package/dist/{javascript-CGvwHrzr-CGvwHrzr.js → javascript-CipAzIn1-CipAzIn1.js} +1 -2
- package/dist/{journeyDiagram-G5LC7W2K-CG7eqOA2-BR-Kjflm.js → journeyDiagram-UIGPPNLY-CB1xWSVF-CnOTIXjT.js} +3 -3
- package/dist/{json-B86kHl_g-B86kHl_g.js → json-_04EL6MS-_04EL6MS.js} +1 -2
- package/dist/{json5-GB6TimgH-GB6TimgH.js → json5-Dwmp5XFI-Dwmp5XFI.js} +1 -2
- package/dist/{jsonc-CP3QVoXc-CP3QVoXc.js → jsonc-LqD5auy0-LqD5auy0.js} +1 -2
- package/dist/{jsonl-C2ofTLY8-C2ofTLY8.js → jsonl-B4yVuYQH-B4yVuYQH.js} +1 -2
- package/dist/{jsx-ZpKf1TSy-ZpKf1TSy.js → jsx-Mg4WaD5k-Mg4WaD5k.js} +1 -2
- package/dist/kanban-definition-KMT3NSR2-B76JZ_Kx-BuaYPyou.js +718 -0
- package/dist/{kotlin-CAtfTEpr-CAtfTEpr.js → kotlin-B-KtFKnZ-B-KtFKnZ.js} +1 -2
- package/dist/latex-4X1wferq-jnM3V2Lk.js +11 -0
- package/dist/layout-mwnMvyc4-B2PmGvWD.js +1321 -0
- package/dist/{less-0UFuQRv0-0UFuQRv0.js → less-BBvTHIGe-BBvTHIGe.js} +1 -2
- package/dist/{linear-K1FWf0tW-rovEi7Ez.js → linear-XztDb0hj-RsuwoFLQ.js} +46 -46
- package/dist/{liquid-Uq0DwV7I-CRvdDbph.js → liquid-CY_eqGhE-8pvFZkT3.js} +6 -7
- package/dist/{lua-BEgWEgjO-DU5YUtUR.js → lua-BePGDS3E-DZBHNWZI.js} +2 -3
- package/dist/{make-BDMxblcP-BDMxblcP.js → make-zNwjDE2P-zNwjDE2P.js} +1 -2
- package/dist/{markdown-CzCkSBhS-CzCkSBhS.js → markdown-DAXqtk9a-DAXqtk9a.js} +1 -2
- package/dist/material-theme-lighter-BUBw43Yz-BUBw43Yz.js +4 -0
- package/dist/material-theme-palenight-C1RVm8K1-C1RVm8K1.js +4 -0
- package/dist/{mdc-BA3wmBe6-BAlBXF37.js → mdc-BAm7rFbW-CB-Ca4M0.js} +4 -5
- package/dist/{mdx-KaGu4TbO-KaGu4TbO.js → mdx-CSCKbb_f-CSCKbb_f.js} +1 -2
- package/dist/{mermaid-DZVJOJE0-DZVJOJE0.js → mermaid-nGb_yn9n-nGb_yn9n.js} +1 -2
- package/dist/{mermaid-parser.core-Cj_oowsS-VsEYt1Nc.js → mermaid-parser.core-C4mt_cFi-BuaZi6gx.js} +9 -9
- package/dist/{mindmap-definition-FCEC46F3-CAlFsP0h-CZf0v8Pe.js → mindmap-definition-R7LC4OIY-Cg3Nsctr-BcCPx65V.js} +1 -1
- package/dist/{nginx-zxRCFE-h-BypGKuox.js → nginx-QOAv2a_a-BWrsIdI1.js} +2 -3
- package/dist/{objective-c-D6w3apbj-D6w3apbj.js → objective-c-CEDFCaSx-CEDFCaSx.js} +1 -2
- package/dist/packet-W2GHVCYJ-BJGXYVlB-DlnQVVmK.js +5 -0
- package/dist/{pascal-DenYIYz2-DenYIYz2.js → pascal-l2bqd7Dz-l2bqd7Dz.js} +1 -2
- package/dist/{perl-D3yLJL---Dh53Z1Ch.js → perl-CB2Uc-Hf-ZBolre2-.js} +6 -7
- package/dist/{php-CotrzT_K-Bao4rTV9.js → php-B_-4RJ09-CJdubCs6.js} +7 -8
- package/dist/pie-BEWT4RHE-XO1bTOj2-DEYSeXSg.js +5 -0
- package/dist/{pieDiagram-OZX6XH5M-H8rUXph8-BISJ3i9V.js → pieDiagram-BLWKPB35-Bs5Iyn_g-CnOiPji_.js} +27 -27
- package/dist/{plsql-DH6aemMc-DH6aemMc.js → plsql-oVq_K_wH-oVq_K_wH.js} +1 -2
- package/dist/{postcss-Cf6moWPa-Cf6moWPa.js → postcss-SJfTvo_B-SJfTvo_B.js} +1 -2
- package/dist/{powershell-HbR4eE6x-HbR4eE6x.js → powershell-BEOw57rb-BEOw57rb.js} +1 -2
- package/dist/{proto-FnD6HNAf-FnD6HNAf.js → proto-BWZ41ClP-BWZ41ClP.js} +1 -2
- package/dist/{pug-BQlVJUDw-CHRWHsZp.js → pug-3q2tx0nf-DGKx19t7.js} +6 -15
- package/dist/{python-DmuMvCM0-DmuMvCM0.js → python-Dpup1-fE-Dpup1-fE.js} +1 -2
- package/dist/{quadrantDiagram-VG34DGKC-BEwF7VGA-DIV2JaGU.js → quadrantDiagram-QXWEEFXS-n8j7IqmF-CloVXY0U.js} +16 -16
- package/dist/{r-Bc6kwNk5-Bc6kwNk5.js → r-Chyv38Fv-Chyv38Fv.js} +1 -2
- package/dist/{reg-D7nGELoM-D7nGELoM.js → reg-CD53Yasp-CD53Yasp.js} +1 -2
- package/dist/{requirementDiagram-FPZB6IJI-kQtxPQXX-CmRUwQe6.js → requirementDiagram-XAUNFCZY-DI_Pyl2h-D8hqXle2.js} +20 -20
- package/dist/rst-Euaf_RMd-B96mCjUw.js +40 -0
- package/dist/{ruby-DeHccIAO-BcoQ2TvH.js → ruby-CsHI6ozR-BrDG5TRv.js} +9 -10
- package/dist/{rust-DUjrmsiV-DUjrmsiV.js → rust-C6uk_0pe-C6uk_0pe.js} +1 -2
- package/dist/{sankeyDiagram-KMMQDL5K-i1hmlnC3-C4FQplTB.js → sankeyDiagram-LVV36NHA-Bei7yBJl-DvbyWSci.js} +1 -1
- package/dist/sass-p2RMoqDT-p2RMoqDT.js +6 -0
- package/dist/{scss-CnxrcEK_-CATc0Lba.js → scss-DmlHSoOY-y80_J0a4.js} +2 -3
- package/dist/{sequenceDiagram-PQT5PN7B-CnJbbAPa-BB0ILzU7.js → sequenceDiagram-D25TJ2OB-NAPdhBbI-DQR1b0UZ.js} +21 -21
- package/dist/{shellscript-CLi_Jlup-CLi_Jlup.js → shellscript-CZpPN8_x-CZpPN8_x.js} +1 -2
- package/dist/{shellsession-BgOGDEE0-D_whUPK9.js → shellsession-B-Ndr_EN-JFzqxELg.js} +3 -4
- package/dist/{splunk-ZWH3T4YR-ZWH3T4YR.js → splunk-D2FIaQ3k-D2FIaQ3k.js} +1 -2
- package/dist/{sql-CqEjJWk_-CqEjJWk_.js → sql-DtlkUz2m-DtlkUz2m.js} +1 -2
- package/dist/{ssh-config-cxjN15Iq-cxjN15Iq.js → ssh-config-D5GRD_Np-D5GRD_Np.js} +1 -2
- package/dist/{stateDiagram-TQSDS2D4-C4igPbE8-D-CdRaHA.js → stateDiagram-GNSP7T6Y-Dzq9j0YG-BgVCaCOx.js} +14 -15
- package/dist/{stateDiagram-v2-J5TZWJW5-DAq6KSAM-O6I-IpUw.js → stateDiagram-v2-HP6YRVRG-Jl4ubGlG-BeMvcZLQ.js} +2 -3
- package/dist/{stylus-BqSAqkqK-BqSAqkqK.js → stylus-DEr8eSLm-DEr8eSLm.js} +1 -2
- package/dist/{svelte-Yn79bR_P-TdNy3USA.js → svelte-BRIJF62h-BI1AT0iL.js} +7 -22
- package/dist/{swift-Cii5mold-Cii5mold.js → swift-B9svdVyc-B9svdVyc.js} +1 -2
- package/dist/{timeline-definition-KYQAIZUX-DQEkDwlz-BcdRcAgF.js → timeline-definition-27KQCCZ3-Dyj-cUhB-cBpLcB_z.js} +91 -91
- package/dist/{toml-BrnHWKvZ-BrnHWKvZ.js → toml-C3Ja0Ta7-C3Ja0Ta7.js} +1 -2
- package/dist/{tsx-RDJgLpEg-RDJgLpEg.js → tsx-DTfbgJxi-DTfbgJxi.js} +1 -2
- package/dist/{twig-CyzrzZ6V-CLfeQShi.js → twig-DkDTNtrS-jo7aVWBG.js} +7 -8
- package/dist/{typescript-BRQxorCF-BRQxorCF.js → typescript-CCd4aQHh-CCd4aQHh.js} +1 -2
- package/dist/{v-CBsEUX4x-CBsEUX4x.js → v-DectkoIj-DectkoIj.js} +1 -2
- package/dist/{vb-BCQhaxZY-BCQhaxZY.js → vb-3pua_tRu-3pua_tRu.js} +1 -2
- package/dist/{viml-DUDcfQ_j-DUDcfQ_j.js → viml-CJHUchaf-CJHUchaf.js} +1 -2
- package/dist/vue-CY-KyffX-BnjPeHxm.js +31 -0
- package/dist/{vue-html-DkB4x9kz-BBbMk49e.js → vue-html-C0fH2sQy-Da7Je-I4.js} +3 -4
- package/dist/{wasm-KuMlursr-KuMlursr.js → wasm-VDIDph3E-VDIDph3E.js} +1 -2
- package/dist/{wgsl-CXztftdQ-CXztftdQ.js → wgsl-2np_U3Z8-2np_U3Z8.js} +1 -2
- package/dist/{xml-D46nbCSr-BYMRGyuH.js → xml-CNyphW9R-DycLHq-n.js} +2 -3
- package/dist/{xsl--U1R63rG-D8P_gDHK.js → xsl-C2K1QB6X-B3b1KJxQ.js} +2 -3
- package/dist/{xychartDiagram-LESROZAQ-tgQhgg2Q-CUZY_ot8.js → xychartDiagram-MYLB5AYS-Bc_nZcHL-YLCG5NJT.js} +2 -2
- package/dist/{yaml-BEQ1JqWb-BEQ1JqWb.js → yaml-DxFiVFcM-DxFiVFcM.js} +1 -2
- package/package.json +6 -6
- package/dist/_basePickBy-CU0TiV13-B2lcN6Xi.js +0 -143
- package/dist/_baseUniq-BAMfE4xp-BAs-gBgZ.js +0 -622
- package/dist/arc-Cof8I1nv-BEpAvsYw.js +0 -83
- package/dist/architecture-I3QFYML2-CRA_auFu-BOYIKY2S.js +0 -5
- package/dist/blockDiagram-EN3ZKWFM-CYnZx-IR-Bl0aimgG.js +0 -1232
- package/dist/chunk-BAVOGKFW-B_i9W0mu-aXYqnut5.js +0 -1092
- package/dist/chunk-UGV5ZQQN-lwe0VAyX-BkOr8rah.js +0 -254
- package/dist/chunk-YWFND7JV-r0DobNSv-Qk_ESE3G.js +0 -786
- package/dist/classDiagram-4BHYIK4I-qYBSssh--DFvW-YgH.js +0 -214
- package/dist/classDiagram-v2-FI7KE7WJ-BIgDAZfE-NPVjR0Sp.js +0 -545
- package/dist/coffee-CiEmwUV9-D5Oe8742.js +0 -9
- package/dist/cpp-BphENtVr-DqhLnmUg.js +0 -29
- package/dist/dagre-P3YPLUS5-Bfaw7Bo9-DPdf44wL.js +0 -421
- package/dist/flowDiagram-JSIZSE4D-CEhJC-5_-DHjVPCad.js +0 -1380
- package/dist/gitGraph-YCYPL57B-DfH87xvl-DsibXYdp.js +0 -5
- package/dist/info-46DW6VJ7-DuNWYdzn-PVj3kKJm.js +0 -5
- package/dist/json-aDA71_xz-DxdQPLBu.js +0 -31
- package/dist/latex-14aRsJKm-mj9Fild6.js +0 -62
- package/dist/layout-BrqICqM--CUdWjnyz.js +0 -1381
- package/dist/material-theme-lighter-CnKSyNS5-CnKSyNS5.js +0 -4
- package/dist/material-theme-palenight-BaYUoLXq-BaYUoLXq.js +0 -4
- package/dist/packet-W2GHVCYJ-DL_sFpED-q6WAtxyK.js +0 -5
- package/dist/pie-BEWT4RHE-DM_nCoZ3-D0wjXv38.js +0 -5
- package/dist/rst-CaIq10fc-5Y1LeNh2.js +0 -26
- package/dist/sass-CLufkToV-CLufkToV.js +0 -7
- package/dist/vue-DNFIPpe6-BpXPyld-.js +0 -68
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
const e = Object.freeze(JSON.parse(`{"displayName":"Go","name":"go","patterns":[{"include":"#statements"}],"repository":{"after_control_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"(?:\\\\w+)","name":"variable.other.go"}]}},"comment":"After control variables, to not highlight as a struct/interface (before formatting with gofmt)","match":"(?:(?<=\\\\brange\\\\b|\\\\bswitch\\\\b|\\\\;|\\\\bif\\\\b|\\\\bfor\\\\b|<|>|<=|>=|==|!=|\\\\w(?:\\\\+|/|-|\\\\*|\\\\%)|\\\\w(?:\\\\+|/|-|\\\\*|\\\\%)=|\\\\|\\\\||\\\\&\\\\&)(?:\\\\s*)((?![\\\\[\\\\]]+)[0-9A-Za-z\\\\-_!\\\\.\\\\[\\\\]<>=\\\\*/+\\\\%:]+)(?:\\\\s*)(?=\\\\{))"},"brackets":{"patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.curly.go"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"$self"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"$self"}]},{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"$self"}]}]},"built_in_functions":{"comment":"Built-in functions","patterns":[{"match":"\\\\b(append|cap|close|complex|copy|delete|imag|len|panic|print|println|real|recover|min|max|clear)\\\\b(?=\\\\()","name":"entity.name.function.support.builtin.go"},{"begin":"(?:(\\\\bnew\\\\b)(\\\\())","beginCaptures":{"1":{"name":"entity.name.function.support.builtin.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"new keyword","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#functions"},{"include":"#struct_variables_types"},{"include":"#type-declarations"},{"include":"#generic_types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"},{"include":"$self"}]},{"begin":"(?:(\\\\bmake\\\\b)(?:(\\\\()((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?:[\\\\[\\\\]\\\\*]+)?(?:(?!\\\\bmap\\\\b)(?:[\\\\w\\\\.]+))?(\\\\[(?:(?:[\\\\S]+)(?:(?:\\\\,\\\\s*(?:[\\\\S]+))*))?\\\\])?(?:\\\\,)?)?))","beginCaptures":{"1":{"name":"entity.name.function.support.builtin.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"},"3":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"make keyword","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"$self"}]}]},"comments":{"patterns":[{"begin":"(\\\\/\\\\*)","beginCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"end":"(\\\\*\\\\/)","endCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"name":"comment.block.go"},{"begin":"(\\\\/\\\\/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"end":"(?:\\\\n|$)","name":"comment.line.double-slash.go"}]},"delimiters":{"patterns":[{"match":"\\\\,","name":"punctuation.other.comma.go"},{"match":"\\\\.(?!\\\\.\\\\.)","name":"punctuation.other.period.go"},{"match":":(?!=)","name":"punctuation.other.colon.go"}]},"double_parentheses_types":{"captures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"double parentheses types","match":"(?:(?<!\\\\w)(\\\\((?:[\\\\w\\\\.\\\\[\\\\]\\\\*\\\\&]+)\\\\))(?=\\\\())"},"field_hover":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"patterns":[{"match":"\\\\binvalid\\\\b\\\\s+\\\\btype\\\\b","name":"invalid.field.go"},{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"struct field property and types when hovering with the mouse","match":"(?:(?<=^\\\\bfield\\\\b)\\\\s+([\\\\w\\\\*\\\\.]+)\\\\s+([\\\\s\\\\S]+))"},"function_declaration":{"begin":"(?:^(\\\\bfunc\\\\b)(?:\\\\s*(\\\\([^)]+\\\\)\\\\s*)?(?:(\\\\w+)(?=\\\\(|\\\\[))?))","beginCaptures":{"1":{"name":"keyword.function.go"},"2":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"captures":{"1":{"name":"variable.parameter.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"match":"(?:(\\\\w+(?:\\\\s+))?((?:[\\\\w\\\\.\\\\*]+)(?:\\\\[(?:(?:(?:[\\\\w\\\\.\\\\*]+)(?:\\\\,\\\\s+)?)+)?\\\\])?))"},{"include":"$self"}]}]},"3":{"patterns":[{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"entity.name.function.go"}]}},"comment":"Function declarations","end":"(?:(?<=\\\\))\\\\s*((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?!(?:[\\\\[\\\\]\\\\*]+)?(?:\\\\bstruct\\\\b|\\\\binterface\\\\b))[\\\\w\\\\.\\\\-\\\\*\\\\[\\\\]]+)?\\\\s*(?=\\\\{))","endCaptures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"captures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"single function as a type returned type(s) declaration","match":"(?:(?<=\\\\))(?:\\\\s*)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?[\\\\w\\\\*\\\\.\\\\[\\\\]<>\\\\-]+(?:\\\\s*)(?:\\\\/(?:\\\\/|\\\\*).*)?)$)"},{"include":"$self"}]},"function_param_types":{"comment":"function parameter variables and types","patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"struct/interface type declaration","match":"((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)\\\\s+(?=(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b\\\\s*\\\\{)"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"multiple parameters one type -with multilines","match":"(?:(?:(?<=\\\\()|^\\\\s*)((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)(?:/(?:/|\\\\*).*)?)$)"},{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.parameter.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"multiple params and types | multiple params one type | one param one type","match":"(?:((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)(?:\\\\s+)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?:(?:[\\\\w\\\\[\\\\]\\\\.\\\\*]+)?(?:(?:\\\\bfunc\\\\b\\\\((?:[^)]+)?\\\\))(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s*))+(?:(?:(?:[\\\\w\\\\*\\\\.\\\\[\\\\]]+)|(?:\\\\((?:[^)]+)?\\\\))))?)|(?:(?:[\\\\[\\\\]\\\\*]+)?[\\\\w\\\\*\\\\.]+(?:\\\\[(?:[^\\\\]]+)\\\\])?(?:[\\\\w\\\\.\\\\*]+)?)+)))"},{"include":"#parameter-variable-types"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"other types","match":"([\\\\w\\\\.]+)"},{"include":"$self"}]},"functions":{"begin":"(?:(\\\\bfunc\\\\b)(?=\\\\())","beginCaptures":{"1":{"name":"keyword.function.go"}},"comment":"Functions","end":"(?:(?<=\\\\))(\\\\s*(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?((?:(?:\\\\s*(?:(?:[\\\\[\\\\]\\\\*]+)?[\\\\w\\\\.\\\\*]+)?(?:(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\])|(?:\\\\((?:[^)]+)?\\\\)))?(?:[\\\\w\\\\.\\\\*]+)?)(?:\\\\s*)(?=\\\\{))|(?:\\\\s*(?:(?:(?:[\\\\[\\\\]\\\\*]+)?(?!\\\\bfunc\\\\b)(?:[\\\\w\\\\.\\\\*]+)(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\])?(?:[\\\\w\\\\.\\\\*]+)?)|(?:\\\\((?:[^)]+)?\\\\)))))?)","endCaptures":{"1":{"patterns":[{"include":"#type-declarations"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"patterns":[{"include":"#parameter-variable-types"}]},"functions_inline":{"captures":{"1":{"name":"keyword.function.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"},{"include":"$self"}]},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"functions in-line with multi return types","match":"(?:(\\\\bfunc\\\\b)((?:\\\\((?:[^/]*?)\\\\))(?:\\\\s+)(?:\\\\((?:[^/]*?)\\\\)))(?:\\\\s+)(?=\\\\{))"},"generic_param_types":{"comment":"generic parameter variables and types","patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"struct/interface type declaration","match":"((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)\\\\s+(?=(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b\\\\s*\\\\{)"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"multiple parameters one type -with multilines","match":"(?:(?:(?<=\\\\()|^\\\\s*)((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)(?:/(?:/|\\\\*).*)?)$)"},{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.parameter.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"3":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"multiple params and types | multiple types one param","match":"(?:((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)(?:\\\\s+)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?:(?:[\\\\w\\\\[\\\\]\\\\.\\\\*]+)?(?:(?:\\\\bfunc\\\\b\\\\((?:[^)]+)?\\\\))(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s*))+(?:(?:(?:[\\\\w\\\\*\\\\.]+)|(?:\\\\((?:[^)]+)?\\\\))))?)|(?:(?:(?:[\\\\w\\\\*\\\\.\\\\~]+)|(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\]))(?:[\\\\w\\\\.\\\\*]+)?)+)))"},{"include":"#parameter-variable-types"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"other types","match":"(?:\\\\b([\\\\w\\\\.]+))"},{"include":"$self"}]},"generic_types":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"2":{"patterns":[{"include":"#parameter-variable-types"}]}},"comment":"Generic support for all types","match":"(?:([\\\\w\\\\.\\\\*]+)(\\\\[(?:[^\\\\]]+)?\\\\]))"},"group-functions":{"comment":"all statements related to functions","patterns":[{"include":"#function_declaration"},{"include":"#functions_inline"},{"include":"#functions"},{"include":"#built_in_functions"},{"include":"#support_functions"}]},"group-types":{"comment":"all statements related to types","patterns":[{"include":"#other_struct_interface_expressions"},{"include":"#type_assertion_inline"},{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#single_type"},{"include":"#multi_types"},{"include":"#struct_interface_declaration"},{"include":"#double_parentheses_types"},{"include":"#switch_types"},{"include":"#type-declarations"}]},"group-variables":{"comment":"all statements related to variables","patterns":[{"include":"#var_const_assignment"},{"include":"#variable_assignment"},{"include":"#label_loop_variables"},{"include":"#slice_index_variables"},{"include":"#property_variables"},{"include":"#switch_select_case_variables"},{"include":"#other_variables"}]},"import":{"comment":"import","patterns":[{"begin":"\\\\b(import)\\\\s+","beginCaptures":{"1":{"name":"keyword.control.import.go"}},"comment":"import","end":"(?!\\\\G)","patterns":[{"include":"#imports"}]}]},"imports":{"comment":"import package(s)","patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"(?:\\\\w+)","name":"variable.other.import.go"}]},"2":{"name":"string.quoted.double.go"},"3":{"name":"punctuation.definition.string.begin.go"},"4":{"name":"entity.name.import.go"},"5":{"name":"punctuation.definition.string.end.go"}},"match":"(\\\\s*[\\\\w\\\\.]+)?\\\\s*((\\")([^\\"]*)(\\"))"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.imports.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.imports.end.bracket.round.go"}},"patterns":[{"include":"#comments"},{"include":"#imports"}]},{"include":"$self"}]},"interface_variables_types":{"begin":"(\\\\binterface\\\\b)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"keyword.interface.go"},"2":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"interface variable types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#interface_variables_types_field"},{"include":"$self"}]},"interface_variables_types_field":{"comment":"interface variable type fields","patterns":[{"include":"#support_functions"},{"include":"#type-declarations-without-brackets"},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"other types","match":"([\\\\w\\\\.]+)"}]},"keywords":{"patterns":[{"comment":"Flow control keywords","match":"\\\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\\\b","name":"keyword.control.go"},{"match":"\\\\bchan\\\\b","name":"keyword.channel.go"},{"match":"\\\\bconst\\\\b","name":"keyword.const.go"},{"match":"\\\\bvar\\\\b","name":"keyword.var.go"},{"match":"\\\\bfunc\\\\b","name":"keyword.function.go"},{"match":"\\\\binterface\\\\b","name":"keyword.interface.go"},{"match":"\\\\bmap\\\\b","name":"keyword.map.go"},{"match":"\\\\bstruct\\\\b","name":"keyword.struct.go"},{"match":"\\\\bimport\\\\b","name":"keyword.control.import.go"},{"match":"\\\\btype\\\\b","name":"keyword.type.go"}]},"label_loop_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.label.go"}]}},"comment":"labeled loop variable name","match":"((?:^\\\\s*\\\\w+:\\\\s*$)|(?:^\\\\s*(?:\\\\bbreak\\\\b|\\\\bgoto\\\\b|\\\\bcontinue\\\\b)\\\\s+\\\\w+(?:\\\\s*/(?:/|\\\\*)\\\\s*.*)?$))"},"language_constants":{"captures":{"1":{"name":"constant.language.boolean.go"},"2":{"name":"constant.language.null.go"},"3":{"name":"constant.language.iota.go"}},"comment":"Language constants","match":"\\\\b(?:(true|false)|(nil)|(iota))\\\\b"},"map_types":{"begin":"(?:(\\\\bmap\\\\b)(\\\\[))","beginCaptures":{"1":{"name":"keyword.map.go"},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"comment":"map types","end":"(?:(\\\\])((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:func|struct|map)\\\\b)(?:[\\\\*\\\\[\\\\]]+)?(?:[\\\\w\\\\.]+)(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+)(?:(?:\\\\,\\\\s*(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+))*))?\\\\])?)?)","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.square.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"include":"#functions"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"multi_types":{"begin":"(\\\\btype\\\\b)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.type.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"multi type declaration","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"numeric_literals":{"captures":{"0":{"patterns":[{"begin":"(?=.)","end":"(?:\\\\n|$)","patterns":[{"captures":{"1":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"2":{"name":"punctuation.separator.constant.numeric.go"},"3":{"name":"constant.numeric.decimal.point.go"},"4":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"5":{"name":"punctuation.separator.constant.numeric.go"},"6":{"name":"keyword.other.unit.exponent.decimal.go"},"7":{"name":"keyword.operator.plus.exponent.decimal.go"},"8":{"name":"keyword.operator.minus.exponent.decimal.go"},"9":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"10":{"name":"keyword.other.unit.imaginary.go"},"11":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"12":{"name":"punctuation.separator.constant.numeric.go"},"13":{"name":"keyword.other.unit.exponent.decimal.go"},"14":{"name":"keyword.operator.plus.exponent.decimal.go"},"15":{"name":"keyword.operator.minus.exponent.decimal.go"},"16":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"17":{"name":"keyword.other.unit.imaginary.go"},"18":{"name":"constant.numeric.decimal.point.go"},"19":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"20":{"name":"punctuation.separator.constant.numeric.go"},"21":{"name":"keyword.other.unit.exponent.decimal.go"},"22":{"name":"keyword.operator.plus.exponent.decimal.go"},"23":{"name":"keyword.operator.minus.exponent.decimal.go"},"24":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"25":{"name":"keyword.other.unit.imaginary.go"},"26":{"name":"keyword.other.unit.hexadecimal.go"},"27":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"28":{"name":"punctuation.separator.constant.numeric.go"},"29":{"name":"constant.numeric.hexadecimal.go"},"30":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"31":{"name":"punctuation.separator.constant.numeric.go"},"32":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"33":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"34":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"35":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"36":{"name":"keyword.other.unit.imaginary.go"},"37":{"name":"keyword.other.unit.hexadecimal.go"},"38":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"39":{"name":"punctuation.separator.constant.numeric.go"},"40":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"41":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"42":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"43":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"44":{"name":"keyword.other.unit.imaginary.go"},"45":{"name":"keyword.other.unit.hexadecimal.go"},"46":{"name":"constant.numeric.hexadecimal.go"},"47":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"48":{"name":"punctuation.separator.constant.numeric.go"},"49":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"50":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"51":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"52":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"53":{"name":"keyword.other.unit.imaginary.go"}},"match":"(?:(?:(?:(?:(?:\\\\G(?=[0-9.])(?!0[xXbBoO])(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=\\\\d)\\\\.|\\\\.(?=\\\\d)))(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\\\w))?(?:\\\\n|$)|\\\\G(?=[0-9.])(?!0[xXbBoO])(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))|\\\\G((?:(?<=\\\\d)\\\\.|\\\\.(?=\\\\d)))(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?<!_)([pP])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))"},{"captures":{"1":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"2":{"name":"punctuation.separator.constant.numeric.go"},"3":{"name":"keyword.other.unit.imaginary.go"},"4":{"name":"keyword.other.unit.binary.go"},"5":{"name":"constant.numeric.binary.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"6":{"name":"punctuation.separator.constant.numeric.go"},"7":{"name":"keyword.other.unit.imaginary.go"},"8":{"name":"keyword.other.unit.octal.go"},"9":{"name":"constant.numeric.octal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"10":{"name":"punctuation.separator.constant.numeric.go"},"11":{"name":"keyword.other.unit.imaginary.go"},"12":{"name":"keyword.other.unit.hexadecimal.go"},"13":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"14":{"name":"punctuation.separator.constant.numeric.go"},"15":{"name":"keyword.other.unit.imaginary.go"}},"match":"(?:(?:(?:\\\\G(?=[0-9.])(?!0[xXbBoO])(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$)|(\\\\G0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$))"},{"match":"(?:(?:[0-9a-zA-Z_\\\\.])|(?<=[eEpP])[+-])+","name":"invalid.illegal.constant.numeric.go"}]}]}},"match":"(?<!\\\\w)\\\\.?\\\\d(?:(?:[0-9a-zA-Z_\\\\.])|(?<=[eEpP])[+-])*"},"operators":{"comment":"Note that the order here is very important!","patterns":[{"match":"((?:\\\\*|\\\\&)+)(?:(?!\\\\d)(?=(?:[\\\\w\\\\[\\\\]])|(?:<-)))","name":"keyword.operator.address.go"},{"match":"<-","name":"keyword.operator.channel.go"},{"match":"--","name":"keyword.operator.decrement.go"},{"match":"\\\\+\\\\+","name":"keyword.operator.increment.go"},{"match":"(==|!=|<=|>=|<(?!<)|>(?!>))","name":"keyword.operator.comparison.go"},{"match":"(&&|\\\\|\\\\||!)","name":"keyword.operator.logical.go"},{"match":"(=|\\\\+=|-=|\\\\|=|\\\\^=|\\\\*=|/=|:=|%=|<<=|>>=|&\\\\^=|&=)","name":"keyword.operator.assignment.go"},{"match":"(\\\\+|-|\\\\*|/|%)","name":"keyword.operator.arithmetic.go"},{"match":"(&(?!\\\\^)|\\\\||\\\\^|&\\\\^|<<|>>|\\\\~)","name":"keyword.operator.arithmetic.bitwise.go"},{"match":"\\\\.\\\\.\\\\.","name":"keyword.operator.ellipsis.go"}]},"other_struct_interface_expressions":{"comment":"struct and interface expression in-line (before curly bracket)","patterns":[{"comment":"after control variables must be added exactly here, do not move it! (changing may not affect tests, so be careful!)","include":"#after_control_variables"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"2":{"patterns":[{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"},{"include":"$self"}]}]}},"match":"(\\\\b[\\\\w\\\\.]+)(\\\\[(?:[^\\\\]]+)?\\\\])?(?=\\\\{)(?<!\\\\bstruct\\\\b|\\\\binterface\\\\b)"}]},"other_variables":{"comment":"all other variables","match":"\\\\w+","name":"variable.other.go"},"package_name":{"patterns":[{"begin":"\\\\b(package)\\\\s+","beginCaptures":{"1":{"name":"keyword.package.go"}},"comment":"package name","end":"(?!\\\\G)","patterns":[{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"entity.name.type.package.go"}]}]},"parameter-variable-types":{"comment":"function and generic parameter types","patterns":[{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]}]},"property_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]}},"comment":"Property variables in struct","match":"((?:\\\\b[\\\\w\\\\.]+)(?::(?!=)))"},"raw_string_literals":{"begin":"\`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"comment":"Raw string literals","end":"\`","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.raw.go","patterns":[{"include":"#string_placeholder"}]},"runes":{"patterns":[{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.rune.go","patterns":[{"match":"\\\\G(\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\'\\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')","name":"constant.other.rune.go"},{"match":"[^']+","name":"invalid.illegal.unknown-rune.go"}]}]},"single_type":{"patterns":[{"captures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"3":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"},{"include":"$self"}]},{"include":"#type-declarations"},{"include":"#generic_types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"single type declaration","match":"(?:(?:^\\\\s*)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.\\\\*]+)(?:\\\\s+)(?!(?:=\\\\s*)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b)([\\\\s\\\\S]+))"},{"begin":"(?:(?:^|\\\\s+)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.\\\\*]+)(?=\\\\[))","beginCaptures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"single type declaration with generics","end":"(?:(?<=\\\\])((?:\\\\s+)(?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?!(?:[\\\\[\\\\]\\\\*]+)?(?:\\\\bstruct\\\\b|\\\\binterface\\\\b|\\\\bfunc\\\\b))[\\\\w\\\\.\\\\-\\\\*\\\\[\\\\]]+(?:\\\\,\\\\s+[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*))?)","endCaptures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"patterns":[{"include":"#struct_variables_types"},{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}]},"slice_index_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.go"}]}},"comment":"slice index and capacity variables, to not scope them as property variables","match":"(?<=\\\\w\\\\[)((?:(?:\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+:)|(?::\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+))(?:\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+)?(?::\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+)?)(?=\\\\])"},"statements":{"patterns":[{"include":"#package_name"},{"include":"#import"},{"include":"#syntax_errors"},{"include":"#group-functions"},{"include":"#group-types"},{"include":"#group-variables"},{"include":"#field_hover"}]},"storage_types":{"patterns":[{"match":"\\\\bbool\\\\b","name":"storage.type.boolean.go"},{"match":"\\\\bbyte\\\\b","name":"storage.type.byte.go"},{"match":"\\\\berror\\\\b","name":"storage.type.error.go"},{"match":"\\\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\\\b","name":"storage.type.numeric.go"},{"match":"\\\\brune\\\\b","name":"storage.type.rune.go"},{"match":"\\\\bstring\\\\b","name":"storage.type.string.go"},{"match":"\\\\buintptr\\\\b","name":"storage.type.uintptr.go"},{"match":"\\\\bany\\\\b","name":"entity.name.type.any.go"}]},"string_escaped_char":{"patterns":[{"match":"\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\'\\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})","name":"constant.character.escape.go"},{"match":"\\\\\\\\[^0-7xuUabfnrtv\\\\'\\"]","name":"invalid.illegal.unknown-escape.go"}]},"string_literals":{"patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"comment":"Interpreted string literals","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.double.go","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}]}]},"string_placeholder":{"patterns":[{"match":"%(\\\\[\\\\d+\\\\])?([+#\\\\-0\\\\x20]{,2}((\\\\d+|\\\\*)?(\\\\.?(\\\\d+|\\\\*|(\\\\[\\\\d+\\\\])\\\\*?)?(\\\\[\\\\d+\\\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]","name":"constant.other.placeholder.go"}]},"struct_interface_declaration":{"captures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"struct, interface type declarations (related to: struct_variables_types, interface_variables_types)","match":"(?:(?:^\\\\s*)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.]+))"},"struct_variable_types_fields_multi":{"comment":"struct variable and type fields with multi lines","patterns":[{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\bstruct\\\\b)(?:\\\\s*)(\\\\{))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.struct.go"},"3":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"struct in struct types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#struct_variables_types_fields"},{"include":"$self"}]},{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\binterface\\\\b)(?:\\\\s*)(\\\\{))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.interface.go"},"3":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"interface in struct types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#interface_variables_types_field"},{"include":"$self"}]},{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\bfunc\\\\b)(?:\\\\s*)(\\\\())","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.function.go"},"3":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"function in struct types","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"},{"include":"$self"}]},{"include":"#parameter-variable-types"}]},"struct_variables_types":{"begin":"(\\\\bstruct\\\\b)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"keyword.struct.go"},"2":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"Struct variable type","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#struct_variables_types_fields"},{"include":"$self"}]},"struct_variables_types_fields":{"comment":"Struct variable type fields","patterns":[{"include":"#struct_variable_types_fields_multi"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one line - single type","match":"(?:(?<=\\\\{)\\\\s*((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*\\\\[\\\\]]+))\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one line - property variables and types","match":"(?:(?<=\\\\{)\\\\s*((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*\\\\[\\\\]]+))\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"match":"(?:((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))?((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\S]+)(?:\\\\;)?))"}]}},"comment":"one line with semicolon(;) without formatting gofmt - single type | property variables and types","match":"(?:(?<=\\\\{)((?:\\\\s*(?:(?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))?(?:(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\S]+)(?:\\\\;)?))+)\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one type only","match":"(?:((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*]+)\\\\s*)(?:(?=\\\\\`|\\\\/|\\")|$))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"property variables and types","match":"(?:((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))([^\\\\\`\\"\\\\/]+))"}]},"support_functions":{"captures":{"1":{"name":"entity.name.function.support.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"entity.name.function.support.go"}]},"3":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"Support Functions","match":"(?:(?:((?<=\\\\.)\\\\b\\\\w+)|(\\\\b\\\\w+))(\\\\[(?:(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}\\"\\\\']+)(?:(?:\\\\,\\\\s*(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+))*))?\\\\])?(?=\\\\())"},"switch_select_case_variables":{"captures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"#type-declarations"},{"include":"#support_functions"},{"include":"#variable_assignment"},{"match":"\\\\w+","name":"variable.other.go"}]}},"comment":"variables after case control keyword in switch/select expression, to not scope them as property variables","match":"(?:(?:^\\\\s*(\\\\bcase\\\\b))(?:\\\\s+)([\\\\s\\\\S]+(?::)\\\\s*(?:/(?:/|\\\\*).*)?)$)"},"switch_types":{"begin":"(?<=\\\\bswitch\\\\b)(?:\\\\s*)(?:(\\\\w+\\\\s*:=)?\\\\s*([\\\\w\\\\.\\\\*()\\\\[\\\\]+/\\\\-\\\\%<>\\\\|\\\\&]+))(\\\\.\\\\(\\\\btype\\\\b\\\\)\\\\s*)(\\\\{)","beginCaptures":{"1":{"patterns":[{"include":"#operators"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#support_functions"},{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.go"}]},"3":{"patterns":[{"include":"#delimiters"},{"include":"#brackets"},{"match":"\\\\btype\\\\b","name":"keyword.type.go"}]},"4":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"switch type assertions, only highlights types after case keyword","end":"(?:\\\\})","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"captures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"3":{"name":"punctuation.other.colon.go"},"4":{"patterns":[{"include":"#comments"}]}},"comment":"types after case keyword with single line","match":"(?:^\\\\s*(\\\\bcase\\\\b))(?:\\\\s+)([\\\\w\\\\.\\\\,\\\\*=<>!\\\\s]+)(:)(\\\\s*/(?:/|\\\\*)\\\\s*.*)?$"},{"begin":"\\\\bcase\\\\b","beginCaptures":{"0":{"name":"keyword.control.go"}},"comment":"types after case keyword with multi lines","end":":","endCaptures":{"0":{"name":"punctuation.other.colon.go"}},"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},{"include":"$self"}]},"syntax_errors":{"patterns":[{"captures":{"1":{"name":"invalid.illegal.slice.go"}},"comment":"Syntax error using slices","match":"\\\\[\\\\](\\\\s+)"},{"comment":"Syntax error numeric literals","match":"\\\\b0[0-7]*[89]\\\\d*\\\\b","name":"invalid.illegal.numeric.go"}]},"terminators":{"comment":"Terminators","match":";","name":"punctuation.terminator.go"},"type-declarations":{"comment":"includes all type declarations","patterns":[{"include":"#language_constants"},{"include":"#comments"},{"include":"#map_types"},{"include":"#brackets"},{"include":"#delimiters"},{"include":"#keywords"},{"include":"#operators"},{"include":"#runes"},{"include":"#storage_types"},{"include":"#raw_string_literals"},{"include":"#string_literals"},{"include":"#numeric_literals"},{"include":"#terminators"}]},"type-declarations-without-brackets":{"comment":"includes all type declarations without brackets (in some cases, brackets need to be captured manually)","patterns":[{"include":"#language_constants"},{"include":"#comments"},{"include":"#map_types"},{"include":"#delimiters"},{"include":"#keywords"},{"include":"#operators"},{"include":"#runes"},{"include":"#storage_types"},{"include":"#raw_string_literals"},{"include":"#string_literals"},{"include":"#numeric_literals"},{"include":"#terminators"}]},"type_assertion_inline":{"captures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"struct/interface types in-line (type assertion) | switch type keyword","match":"(?:(?<=\\\\.\\\\()(?:(\\\\btype\\\\b)|((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?[\\\\w\\\\.\\\\[\\\\]\\\\*]+))(?=\\\\)))"},"var_const_assignment":{"comment":"variable assignment with var and const keyword","patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#generic_types"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"var and const with single type assignment","match":"(?:(?<=\\\\bvar\\\\b|\\\\bconst\\\\b)(?:\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:=)?)?)"},{"begin":"(?:(?<=\\\\bvar\\\\b|\\\\bconst\\\\b)(?:\\\\s*)(\\\\())","beginCaptures":{"1":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"var and const with multi type assignment","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#generic_types"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"match":"(?:(?:^\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:=)?)?)"},{"include":"$self"}]}]},"variable_assignment":{"comment":"variable assignment","patterns":[{"captures":{"0":{"patterns":[{"include":"#delimiters"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]}},"comment":"variable assignment with :=","match":"\\\\b\\\\w+(?:\\\\,\\\\s*\\\\w+)*(?=\\\\s*:=)"},{"captures":{"0":{"patterns":[{"include":"#delimiters"},{"include":"#operators"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]}},"comment":"variable assignment with =","match":"\\\\b[\\\\w\\\\.\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\*]+)*(?=\\\\s*=(?!=))"}]}},"scopeName":"source.go"}`));
|
|
2
|
-
var t = [
|
|
1
|
+
const e = Object.freeze(JSON.parse(`{"displayName":"Go","name":"go","patterns":[{"include":"#statements"}],"repository":{"after_control_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"(?:\\\\w+)","name":"variable.other.go"}]}},"comment":"After control variables, to not highlight as a struct/interface (before formatting with gofmt)","match":"(?:(?<=\\\\brange\\\\b|\\\\bswitch\\\\b|\\\\;|\\\\bif\\\\b|\\\\bfor\\\\b|<|>|<=|>=|==|!=|\\\\w(?:\\\\+|/|-|\\\\*|\\\\%)|\\\\w(?:\\\\+|/|-|\\\\*|\\\\%)=|\\\\|\\\\||\\\\&\\\\&)(?:\\\\s*)((?![\\\\[\\\\]]+)[0-9A-Za-z\\\\-_!\\\\.\\\\[\\\\]<>=\\\\*/+\\\\%:]+)(?:\\\\s*)(?=\\\\{))"},"brackets":{"patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.curly.go"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"$self"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"$self"}]},{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"$self"}]}]},"built_in_functions":{"comment":"Built-in functions","patterns":[{"match":"\\\\b(append|cap|close|complex|copy|delete|imag|len|panic|print|println|real|recover|min|max|clear)\\\\b(?=\\\\()","name":"entity.name.function.support.builtin.go"},{"begin":"(?:(\\\\bnew\\\\b)(\\\\())","beginCaptures":{"1":{"name":"entity.name.function.support.builtin.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"new keyword","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#functions"},{"include":"#struct_variables_types"},{"include":"#type-declarations"},{"include":"#generic_types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"},{"include":"$self"}]},{"begin":"(?:(\\\\bmake\\\\b)(?:(\\\\()((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?:[\\\\[\\\\]\\\\*]+)?(?:(?!\\\\bmap\\\\b)(?:[\\\\w\\\\.]+))?(\\\\[(?:(?:[\\\\S]+)(?:(?:\\\\,\\\\s*(?:[\\\\S]+))*))?\\\\])?(?:\\\\,)?)?))","beginCaptures":{"1":{"name":"entity.name.function.support.builtin.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"},"3":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"make keyword","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"$self"}]}]},"comments":{"patterns":[{"begin":"(\\\\/\\\\*)","beginCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"end":"(\\\\*\\\\/)","endCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"name":"comment.block.go"},{"begin":"(\\\\/\\\\/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"end":"(?:\\\\n|$)","name":"comment.line.double-slash.go"}]},"delimiters":{"patterns":[{"match":"\\\\,","name":"punctuation.other.comma.go"},{"match":"\\\\.(?!\\\\.\\\\.)","name":"punctuation.other.period.go"},{"match":":(?!=)","name":"punctuation.other.colon.go"}]},"double_parentheses_types":{"captures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"double parentheses types","match":"(?:(?<!\\\\w)(\\\\((?:[\\\\w\\\\.\\\\[\\\\]\\\\*\\\\&]+)\\\\))(?=\\\\())"},"field_hover":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"patterns":[{"match":"\\\\binvalid\\\\b\\\\s+\\\\btype\\\\b","name":"invalid.field.go"},{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"struct field property and types when hovering with the mouse","match":"(?:(?<=^\\\\bfield\\\\b)\\\\s+([\\\\w\\\\*\\\\.]+)\\\\s+([\\\\s\\\\S]+))"},"function_declaration":{"begin":"(?:^(\\\\bfunc\\\\b)(?:\\\\s*(\\\\([^)]+\\\\)\\\\s*)?(?:(\\\\w+)(?=\\\\(|\\\\[))?))","beginCaptures":{"1":{"name":"keyword.function.go"},"2":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"captures":{"1":{"name":"variable.parameter.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"match":"(?:(\\\\w+(?:\\\\s+))?((?:[\\\\w\\\\.\\\\*]+)(?:\\\\[(?:(?:(?:[\\\\w\\\\.\\\\*]+)(?:\\\\,\\\\s+)?)+)?\\\\])?))"},{"include":"$self"}]}]},"3":{"patterns":[{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"entity.name.function.go"}]}},"comment":"Function declarations","end":"(?:(?<=\\\\))\\\\s*((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?!(?:[\\\\[\\\\]\\\\*]+)?(?:\\\\bstruct\\\\b|\\\\binterface\\\\b))[\\\\w\\\\.\\\\-\\\\*\\\\[\\\\]]+)?\\\\s*(?=\\\\{))","endCaptures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"captures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"single function as a type returned type(s) declaration","match":"(?:(?<=\\\\))(?:\\\\s*)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?[\\\\w\\\\*\\\\.\\\\[\\\\]<>\\\\-]+(?:\\\\s*)(?:\\\\/(?:\\\\/|\\\\*).*)?)$)"},{"include":"$self"}]},"function_param_types":{"comment":"function parameter variables and types","patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"struct/interface type declaration","match":"((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)\\\\s+(?=(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b\\\\s*\\\\{)"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"multiple parameters one type -with multilines","match":"(?:(?:(?<=\\\\()|^\\\\s*)((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)(?:/(?:/|\\\\*).*)?)$)"},{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.parameter.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"multiple params and types | multiple params one type | one param one type","match":"(?:((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)(?:\\\\s+)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?:(?:[\\\\w\\\\[\\\\]\\\\.\\\\*]+)?(?:(?:\\\\bfunc\\\\b\\\\((?:[^)]+)?\\\\))(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s*))+(?:(?:(?:[\\\\w\\\\*\\\\.\\\\[\\\\]]+)|(?:\\\\((?:[^)]+)?\\\\))))?)|(?:(?:[\\\\[\\\\]\\\\*]+)?[\\\\w\\\\*\\\\.]+(?:\\\\[(?:[^\\\\]]+)\\\\])?(?:[\\\\w\\\\.\\\\*]+)?)+)))"},{"include":"#parameter-variable-types"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"other types","match":"([\\\\w\\\\.]+)"},{"include":"$self"}]},"functions":{"begin":"(?:(\\\\bfunc\\\\b)(?=\\\\())","beginCaptures":{"1":{"name":"keyword.function.go"}},"comment":"Functions","end":"(?:(?<=\\\\))(\\\\s*(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?((?:(?:\\\\s*(?:(?:[\\\\[\\\\]\\\\*]+)?[\\\\w\\\\.\\\\*]+)?(?:(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\])|(?:\\\\((?:[^)]+)?\\\\)))?(?:[\\\\w\\\\.\\\\*]+)?)(?:\\\\s*)(?=\\\\{))|(?:\\\\s*(?:(?:(?:[\\\\[\\\\]\\\\*]+)?(?!\\\\bfunc\\\\b)(?:[\\\\w\\\\.\\\\*]+)(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\])?(?:[\\\\w\\\\.\\\\*]+)?)|(?:\\\\((?:[^)]+)?\\\\)))))?)","endCaptures":{"1":{"patterns":[{"include":"#type-declarations"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"patterns":[{"include":"#parameter-variable-types"}]},"functions_inline":{"captures":{"1":{"name":"keyword.function.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"},{"include":"$self"}]},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"functions in-line with multi return types","match":"(?:(\\\\bfunc\\\\b)((?:\\\\((?:[^/]*?)\\\\))(?:\\\\s+)(?:\\\\((?:[^/]*?)\\\\)))(?:\\\\s+)(?=\\\\{))"},"generic_param_types":{"comment":"generic parameter variables and types","patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"struct/interface type declaration","match":"((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)\\\\s+(?=(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b\\\\s*\\\\{)"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"multiple parameters one type -with multilines","match":"(?:(?:(?<=\\\\()|^\\\\s*)((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)(?:/(?:/|\\\\*).*)?)$)"},{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.parameter.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"3":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"multiple params and types | multiple types one param","match":"(?:((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)(?:\\\\s+)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?:(?:[\\\\w\\\\[\\\\]\\\\.\\\\*]+)?(?:(?:\\\\bfunc\\\\b\\\\((?:[^)]+)?\\\\))(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s*))+(?:(?:(?:[\\\\w\\\\*\\\\.]+)|(?:\\\\((?:[^)]+)?\\\\))))?)|(?:(?:(?:[\\\\w\\\\*\\\\.\\\\~]+)|(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\]))(?:[\\\\w\\\\.\\\\*]+)?)+)))"},{"include":"#parameter-variable-types"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"other types","match":"(?:\\\\b([\\\\w\\\\.]+))"},{"include":"$self"}]},"generic_types":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"2":{"patterns":[{"include":"#parameter-variable-types"}]}},"comment":"Generic support for all types","match":"(?:([\\\\w\\\\.\\\\*]+)(\\\\[(?:[^\\\\]]+)?\\\\]))"},"group-functions":{"comment":"all statements related to functions","patterns":[{"include":"#function_declaration"},{"include":"#functions_inline"},{"include":"#functions"},{"include":"#built_in_functions"},{"include":"#support_functions"}]},"group-types":{"comment":"all statements related to types","patterns":[{"include":"#other_struct_interface_expressions"},{"include":"#type_assertion_inline"},{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#single_type"},{"include":"#multi_types"},{"include":"#struct_interface_declaration"},{"include":"#double_parentheses_types"},{"include":"#switch_types"},{"include":"#type-declarations"}]},"group-variables":{"comment":"all statements related to variables","patterns":[{"include":"#var_const_assignment"},{"include":"#variable_assignment"},{"include":"#label_loop_variables"},{"include":"#slice_index_variables"},{"include":"#property_variables"},{"include":"#switch_select_case_variables"},{"include":"#other_variables"}]},"import":{"comment":"import","patterns":[{"begin":"\\\\b(import)\\\\s+","beginCaptures":{"1":{"name":"keyword.control.import.go"}},"comment":"import","end":"(?!\\\\G)","patterns":[{"include":"#imports"}]}]},"imports":{"comment":"import package(s)","patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"(?:\\\\w+)","name":"variable.other.import.go"}]},"2":{"name":"string.quoted.double.go"},"3":{"name":"punctuation.definition.string.begin.go"},"4":{"name":"entity.name.import.go"},"5":{"name":"punctuation.definition.string.end.go"}},"match":"(\\\\s*[\\\\w\\\\.]+)?\\\\s*((\\")([^\\"]*)(\\"))"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.imports.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.imports.end.bracket.round.go"}},"patterns":[{"include":"#comments"},{"include":"#imports"}]},{"include":"$self"}]},"interface_variables_types":{"begin":"(\\\\binterface\\\\b)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"keyword.interface.go"},"2":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"interface variable types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#interface_variables_types_field"},{"include":"$self"}]},"interface_variables_types_field":{"comment":"interface variable type fields","patterns":[{"include":"#support_functions"},{"include":"#type-declarations-without-brackets"},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"other types","match":"([\\\\w\\\\.]+)"}]},"keywords":{"patterns":[{"comment":"Flow control keywords","match":"\\\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\\\b","name":"keyword.control.go"},{"match":"\\\\bchan\\\\b","name":"keyword.channel.go"},{"match":"\\\\bconst\\\\b","name":"keyword.const.go"},{"match":"\\\\bvar\\\\b","name":"keyword.var.go"},{"match":"\\\\bfunc\\\\b","name":"keyword.function.go"},{"match":"\\\\binterface\\\\b","name":"keyword.interface.go"},{"match":"\\\\bmap\\\\b","name":"keyword.map.go"},{"match":"\\\\bstruct\\\\b","name":"keyword.struct.go"},{"match":"\\\\bimport\\\\b","name":"keyword.control.import.go"},{"match":"\\\\btype\\\\b","name":"keyword.type.go"}]},"label_loop_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.label.go"}]}},"comment":"labeled loop variable name","match":"((?:^\\\\s*\\\\w+:\\\\s*$)|(?:^\\\\s*(?:\\\\bbreak\\\\b|\\\\bgoto\\\\b|\\\\bcontinue\\\\b)\\\\s+\\\\w+(?:\\\\s*/(?:/|\\\\*)\\\\s*.*)?$))"},"language_constants":{"captures":{"1":{"name":"constant.language.boolean.go"},"2":{"name":"constant.language.null.go"},"3":{"name":"constant.language.iota.go"}},"comment":"Language constants","match":"\\\\b(?:(true|false)|(nil)|(iota))\\\\b"},"map_types":{"begin":"(?:(\\\\bmap\\\\b)(\\\\[))","beginCaptures":{"1":{"name":"keyword.map.go"},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"comment":"map types","end":"(?:(\\\\])((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:func|struct|map)\\\\b)(?:[\\\\*\\\\[\\\\]]+)?(?:[\\\\w\\\\.]+)(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+)(?:(?:\\\\,\\\\s*(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+))*))?\\\\])?)?)","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.square.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"include":"#functions"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"multi_types":{"begin":"(\\\\btype\\\\b)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.type.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"multi type declaration","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"numeric_literals":{"captures":{"0":{"patterns":[{"begin":"(?=.)","end":"(?:\\\\n|$)","patterns":[{"captures":{"1":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"2":{"name":"punctuation.separator.constant.numeric.go"},"3":{"name":"constant.numeric.decimal.point.go"},"4":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"5":{"name":"punctuation.separator.constant.numeric.go"},"6":{"name":"keyword.other.unit.exponent.decimal.go"},"7":{"name":"keyword.operator.plus.exponent.decimal.go"},"8":{"name":"keyword.operator.minus.exponent.decimal.go"},"9":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"10":{"name":"keyword.other.unit.imaginary.go"},"11":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"12":{"name":"punctuation.separator.constant.numeric.go"},"13":{"name":"keyword.other.unit.exponent.decimal.go"},"14":{"name":"keyword.operator.plus.exponent.decimal.go"},"15":{"name":"keyword.operator.minus.exponent.decimal.go"},"16":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"17":{"name":"keyword.other.unit.imaginary.go"},"18":{"name":"constant.numeric.decimal.point.go"},"19":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"20":{"name":"punctuation.separator.constant.numeric.go"},"21":{"name":"keyword.other.unit.exponent.decimal.go"},"22":{"name":"keyword.operator.plus.exponent.decimal.go"},"23":{"name":"keyword.operator.minus.exponent.decimal.go"},"24":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"25":{"name":"keyword.other.unit.imaginary.go"},"26":{"name":"keyword.other.unit.hexadecimal.go"},"27":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"28":{"name":"punctuation.separator.constant.numeric.go"},"29":{"name":"constant.numeric.hexadecimal.go"},"30":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"31":{"name":"punctuation.separator.constant.numeric.go"},"32":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"33":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"34":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"35":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"36":{"name":"keyword.other.unit.imaginary.go"},"37":{"name":"keyword.other.unit.hexadecimal.go"},"38":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"39":{"name":"punctuation.separator.constant.numeric.go"},"40":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"41":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"42":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"43":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"44":{"name":"keyword.other.unit.imaginary.go"},"45":{"name":"keyword.other.unit.hexadecimal.go"},"46":{"name":"constant.numeric.hexadecimal.go"},"47":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"48":{"name":"punctuation.separator.constant.numeric.go"},"49":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"50":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"51":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"52":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"53":{"name":"keyword.other.unit.imaginary.go"}},"match":"(?:(?:(?:(?:(?:\\\\G(?=[0-9.])(?!0[xXbBoO])(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=\\\\d)\\\\.|\\\\.(?=\\\\d)))(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\\\w))?(?:\\\\n|$)|\\\\G(?=[0-9.])(?!0[xXbBoO])(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))|\\\\G((?:(?<=\\\\d)\\\\.|\\\\.(?=\\\\d)))(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?<!_)([pP])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\\\+?)(-?)((?:\\\\d(?:\\\\d|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\w))?(?:\\\\n|$))"},{"captures":{"1":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"2":{"name":"punctuation.separator.constant.numeric.go"},"3":{"name":"keyword.other.unit.imaginary.go"},"4":{"name":"keyword.other.unit.binary.go"},"5":{"name":"constant.numeric.binary.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"6":{"name":"punctuation.separator.constant.numeric.go"},"7":{"name":"keyword.other.unit.imaginary.go"},"8":{"name":"keyword.other.unit.octal.go"},"9":{"name":"constant.numeric.octal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"10":{"name":"punctuation.separator.constant.numeric.go"},"11":{"name":"keyword.other.unit.imaginary.go"},"12":{"name":"keyword.other.unit.hexadecimal.go"},"13":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"14":{"name":"punctuation.separator.constant.numeric.go"},"15":{"name":"keyword.other.unit.imaginary.go"}},"match":"(?:(?:(?:\\\\G(?=[0-9.])(?!0[xXbBoO])(\\\\d(?:\\\\d|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$)|(\\\\G0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?!\\\\w))?(?:\\\\n|$))|(\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\w))?(?:\\\\n|$))"},{"match":"(?:(?:[0-9a-zA-Z_\\\\.])|(?<=[eEpP])[+-])+","name":"invalid.illegal.constant.numeric.go"}]}]}},"match":"(?<!\\\\w)\\\\.?\\\\d(?:(?:[0-9a-zA-Z_\\\\.])|(?<=[eEpP])[+-])*"},"operators":{"comment":"Note that the order here is very important!","patterns":[{"match":"((?:\\\\*|\\\\&)+)(?:(?!\\\\d)(?=(?:[\\\\w\\\\[\\\\]])|(?:<-)))","name":"keyword.operator.address.go"},{"match":"<-","name":"keyword.operator.channel.go"},{"match":"--","name":"keyword.operator.decrement.go"},{"match":"\\\\+\\\\+","name":"keyword.operator.increment.go"},{"match":"(==|!=|<=|>=|<(?!<)|>(?!>))","name":"keyword.operator.comparison.go"},{"match":"(&&|\\\\|\\\\||!)","name":"keyword.operator.logical.go"},{"match":"(=|\\\\+=|-=|\\\\|=|\\\\^=|\\\\*=|/=|:=|%=|<<=|>>=|&\\\\^=|&=)","name":"keyword.operator.assignment.go"},{"match":"(\\\\+|-|\\\\*|/|%)","name":"keyword.operator.arithmetic.go"},{"match":"(&(?!\\\\^)|\\\\||\\\\^|&\\\\^|<<|>>|\\\\~)","name":"keyword.operator.arithmetic.bitwise.go"},{"match":"\\\\.\\\\.\\\\.","name":"keyword.operator.ellipsis.go"}]},"other_struct_interface_expressions":{"comment":"struct and interface expression in-line (before curly bracket)","patterns":[{"comment":"after control variables must be added exactly here, do not move it! (changing may not affect tests, so be careful!)","include":"#after_control_variables"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"2":{"patterns":[{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"},{"include":"$self"}]}]}},"match":"(\\\\b[\\\\w\\\\.]+)(\\\\[(?:[^\\\\]]+)?\\\\])?(?=\\\\{)(?<!\\\\bstruct\\\\b|\\\\binterface\\\\b)"}]},"other_variables":{"comment":"all other variables","match":"\\\\w+","name":"variable.other.go"},"package_name":{"patterns":[{"begin":"\\\\b(package)\\\\s+","beginCaptures":{"1":{"name":"keyword.package.go"}},"comment":"package name","end":"(?!\\\\G)","patterns":[{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"entity.name.type.package.go"}]}]},"parameter-variable-types":{"comment":"function and generic parameter types","patterns":[{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]}]},"property_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]}},"comment":"Property variables in struct","match":"((?:\\\\b[\\\\w\\\\.]+)(?::(?!=)))"},"raw_string_literals":{"begin":"\`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"comment":"Raw string literals","end":"\`","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.raw.go","patterns":[{"include":"#string_placeholder"}]},"runes":{"patterns":[{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.rune.go","patterns":[{"match":"\\\\G(\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\'\\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')","name":"constant.other.rune.go"},{"match":"[^']+","name":"invalid.illegal.unknown-rune.go"}]}]},"single_type":{"patterns":[{"captures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"3":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"},{"include":"$self"}]},{"include":"#type-declarations"},{"include":"#generic_types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"single type declaration","match":"(?:(?:^\\\\s*)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.\\\\*]+)(?:\\\\s+)(?!(?:=\\\\s*)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b)([\\\\s\\\\S]+))"},{"begin":"(?:(?:^|\\\\s+)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.\\\\*]+)(?=\\\\[))","beginCaptures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"single type declaration with generics","end":"(?:(?<=\\\\])((?:\\\\s+)(?:=\\\\s*)?(?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:(?!(?:[\\\\[\\\\]\\\\*]+)?(?:\\\\bstruct\\\\b|\\\\binterface\\\\b|\\\\bfunc\\\\b))[\\\\w\\\\.\\\\-\\\\*\\\\[\\\\]]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*))?)","endCaptures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"patterns":[{"include":"#struct_variables_types"},{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}]},"slice_index_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.go"}]}},"comment":"slice index and capacity variables, to not scope them as property variables","match":"(?<=\\\\w\\\\[)((?:(?:\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+:)|(?::\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+))(?:\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+)?(?::\\\\b[\\\\w\\\\.\\\\*+/\\\\-\\\\%<>\\\\|\\\\&]+)?)(?=\\\\])"},"statements":{"patterns":[{"include":"#package_name"},{"include":"#import"},{"include":"#syntax_errors"},{"include":"#group-functions"},{"include":"#group-types"},{"include":"#group-variables"},{"include":"#field_hover"}]},"storage_types":{"patterns":[{"match":"\\\\bbool\\\\b","name":"storage.type.boolean.go"},{"match":"\\\\bbyte\\\\b","name":"storage.type.byte.go"},{"match":"\\\\berror\\\\b","name":"storage.type.error.go"},{"match":"\\\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\\\b","name":"storage.type.numeric.go"},{"match":"\\\\brune\\\\b","name":"storage.type.rune.go"},{"match":"\\\\bstring\\\\b","name":"storage.type.string.go"},{"match":"\\\\buintptr\\\\b","name":"storage.type.uintptr.go"},{"match":"\\\\bany\\\\b","name":"entity.name.type.any.go"}]},"string_escaped_char":{"patterns":[{"match":"\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\'\\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})","name":"constant.character.escape.go"},{"match":"\\\\\\\\[^0-7xuUabfnrtv\\\\'\\"]","name":"invalid.illegal.unknown-escape.go"}]},"string_literals":{"patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"comment":"Interpreted string literals","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.double.go","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}]}]},"string_placeholder":{"patterns":[{"match":"%(\\\\[\\\\d+\\\\])?([+#\\\\-0\\\\x20]{,2}((\\\\d+|\\\\*)?(\\\\.?(\\\\d+|\\\\*|(\\\\[\\\\d+\\\\])\\\\*?)?(\\\\[\\\\d+\\\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]","name":"constant.other.placeholder.go"}]},"struct_interface_declaration":{"captures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"struct, interface type declarations (related to: struct_variables_types, interface_variables_types)","match":"(?:(?:^\\\\s*)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.]+))"},"struct_variable_types_fields_multi":{"comment":"struct variable and type fields with multi lines","patterns":[{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\bstruct\\\\b)(?:\\\\s*)(\\\\{))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.struct.go"},"3":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"struct in struct types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#struct_variables_types_fields"},{"include":"$self"}]},{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\binterface\\\\b)(?:\\\\s*)(\\\\{))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.interface.go"},"3":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"interface in struct types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#interface_variables_types_field"},{"include":"$self"}]},{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\bfunc\\\\b)(?:\\\\s*)(\\\\())","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.function.go"},"3":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"function in struct types","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"},{"include":"$self"}]},{"include":"#parameter-variable-types"}]},"struct_variables_types":{"begin":"(\\\\bstruct\\\\b)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"keyword.struct.go"},"2":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"Struct variable type","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#struct_variables_types_fields"},{"include":"$self"}]},"struct_variables_types_fields":{"comment":"Struct variable type fields","patterns":[{"include":"#struct_variable_types_fields_multi"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one line - single type","match":"(?:(?<=\\\\{)\\\\s*((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*\\\\[\\\\]]+))\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one line - property variables and types","match":"(?:(?<=\\\\{)\\\\s*((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*\\\\[\\\\]]+))\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"match":"(?:((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))?((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\S]+)(?:\\\\;)?))"}]}},"comment":"one line with semicolon(;) without formatting gofmt - single type | property variables and types","match":"(?:(?<=\\\\{)((?:\\\\s*(?:(?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))?(?:(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\S]+)(?:\\\\;)?))+)\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one type only","match":"(?:((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*]+)\\\\s*)(?:(?=\\\\\`|\\\\/|\\")|$))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"property variables and types","match":"(?:((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))([^\\\\\`\\"\\\\/]+))"}]},"support_functions":{"captures":{"1":{"name":"entity.name.function.support.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"entity.name.function.support.go"}]},"3":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"Support Functions","match":"(?:(?:((?<=\\\\.)\\\\b\\\\w+)|(\\\\b\\\\w+))(\\\\[(?:(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}\\"\\\\']+)(?:(?:\\\\,\\\\s*(?:[\\\\w\\\\.\\\\*\\\\[\\\\]{}]+))*))?\\\\])?(?=\\\\())"},"switch_select_case_variables":{"captures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"#type-declarations"},{"include":"#support_functions"},{"include":"#variable_assignment"},{"match":"\\\\w+","name":"variable.other.go"}]}},"comment":"variables after case control keyword in switch/select expression, to not scope them as property variables","match":"(?:(?:^\\\\s*(\\\\bcase\\\\b))(?:\\\\s+)([\\\\s\\\\S]+(?::)\\\\s*(?:/(?:/|\\\\*).*)?)$)"},"switch_types":{"begin":"(?<=\\\\bswitch\\\\b)(?:\\\\s*)(?:(\\\\w+\\\\s*:=)?\\\\s*([\\\\w\\\\.\\\\*()\\\\[\\\\]+/\\\\-\\\\%<>\\\\|\\\\&]+))(\\\\.\\\\(\\\\btype\\\\b\\\\)\\\\s*)(\\\\{)","beginCaptures":{"1":{"patterns":[{"include":"#operators"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#support_functions"},{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.go"}]},"3":{"patterns":[{"include":"#delimiters"},{"include":"#brackets"},{"match":"\\\\btype\\\\b","name":"keyword.type.go"}]},"4":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"switch type assertions, only highlights types after case keyword","end":"(?:\\\\})","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"captures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"3":{"name":"punctuation.other.colon.go"},"4":{"patterns":[{"include":"#comments"}]}},"comment":"types after case keyword with single line","match":"(?:^\\\\s*(\\\\bcase\\\\b))(?:\\\\s+)([\\\\w\\\\.\\\\,\\\\*=<>!\\\\s]+)(:)(\\\\s*/(?:/|\\\\*)\\\\s*.*)?$"},{"begin":"\\\\bcase\\\\b","beginCaptures":{"0":{"name":"keyword.control.go"}},"comment":"types after case keyword with multi lines","end":":","endCaptures":{"0":{"name":"punctuation.other.colon.go"}},"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},{"include":"$self"}]},"syntax_errors":{"patterns":[{"captures":{"1":{"name":"invalid.illegal.slice.go"}},"comment":"Syntax error using slices","match":"\\\\[\\\\](\\\\s+)"},{"comment":"Syntax error numeric literals","match":"\\\\b0[0-7]*[89]\\\\d*\\\\b","name":"invalid.illegal.numeric.go"}]},"terminators":{"comment":"Terminators","match":";","name":"punctuation.terminator.go"},"type-declarations":{"comment":"includes all type declarations","patterns":[{"include":"#language_constants"},{"include":"#comments"},{"include":"#map_types"},{"include":"#brackets"},{"include":"#delimiters"},{"include":"#keywords"},{"include":"#operators"},{"include":"#runes"},{"include":"#storage_types"},{"include":"#raw_string_literals"},{"include":"#string_literals"},{"include":"#numeric_literals"},{"include":"#terminators"}]},"type-declarations-without-brackets":{"comment":"includes all type declarations without brackets (in some cases, brackets need to be captured manually)","patterns":[{"include":"#language_constants"},{"include":"#comments"},{"include":"#map_types"},{"include":"#delimiters"},{"include":"#keywords"},{"include":"#operators"},{"include":"#runes"},{"include":"#storage_types"},{"include":"#raw_string_literals"},{"include":"#string_literals"},{"include":"#numeric_literals"},{"include":"#terminators"}]},"type_assertion_inline":{"captures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"struct/interface types in-line (type assertion) | switch type keyword","match":"(?:(?<=\\\\.\\\\()(?:(\\\\btype\\\\b)|((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+)?[\\\\w\\\\.\\\\[\\\\]\\\\*]+))(?=\\\\)))"},"var_const_assignment":{"comment":"variable assignment with var and const keyword","patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#generic_types"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"var and const with single type assignment","match":"(?:(?<=\\\\bvar\\\\b|\\\\bconst\\\\b)(?:\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:=)?)?)"},{"begin":"(?:(?<=\\\\bvar\\\\b|\\\\bconst\\\\b)(?:\\\\s*)(\\\\())","beginCaptures":{"1":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"var and const with multi type assignment","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#generic_types"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"match":"(?:(?:^\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:<-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*<-)?\\\\s*)+(?:\\\\([^)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:=)?)?)"},{"include":"$self"}]}]},"variable_assignment":{"comment":"variable assignment","patterns":[{"captures":{"0":{"patterns":[{"include":"#delimiters"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]}},"comment":"variable assignment with :=","match":"\\\\b\\\\w+(?:\\\\,\\\\s*\\\\w+)*(?=\\\\s*:=)"},{"captures":{"0":{"patterns":[{"include":"#delimiters"},{"include":"#operators"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]}},"comment":"variable assignment with =","match":"\\\\b[\\\\w\\\\.\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\*]+)*(?=\\\\s*=(?!=))"}]}},"scopeName":"source.go"}`)), t = [
|
|
3
2
|
e
|
|
4
3
|
];
|
|
5
4
|
export {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
var
|
|
4
|
-
return
|
|
5
|
-
}),
|
|
6
|
-
class
|
|
1
|
+
import { k as L, n as g, o as v, q as E, r as b } from "./index-BXFfc1qh.js";
|
|
2
|
+
import { L as N, _ as j, $ as _, S as p, I as a, P as l, E as m, v as P } from "./_baseUniq-CXqhI00C-BfnSCqya.js";
|
|
3
|
+
var D = L(function(o) {
|
|
4
|
+
return N(j(o, 1, E, !0));
|
|
5
|
+
}), F = "\0", d = "\0", C = "";
|
|
6
|
+
class y {
|
|
7
7
|
constructor(t = {}) {
|
|
8
|
-
this._isDirected =
|
|
8
|
+
this._isDirected = Object.prototype.hasOwnProperty.call(t, "directed") ? t.directed : !0, this._isMultigraph = Object.prototype.hasOwnProperty.call(t, "multigraph") ? t.multigraph : !1, this._isCompound = Object.prototype.hasOwnProperty.call(t, "compound") ? t.compound : !1, this._label = void 0, this._defaultNodeLabelFn = g(void 0), this._defaultEdgeLabelFn = g(void 0), this._nodes = {}, this._isCompound && (this._parent = {}, this._children = {}, this._children[d] = {}), this._in = {}, this._preds = {}, this._out = {}, this._sucs = {}, this._edgeObjs = {}, this._edgeLabels = {};
|
|
9
9
|
}
|
|
10
10
|
/* === Graph functions ========= */
|
|
11
11
|
isDirected() {
|
|
@@ -25,61 +25,58 @@ class w {
|
|
|
25
25
|
}
|
|
26
26
|
/* === Node functions ========== */
|
|
27
27
|
setDefaultNodeLabel(t) {
|
|
28
|
-
return
|
|
28
|
+
return v(t) || (t = g(t)), this._defaultNodeLabelFn = t, this;
|
|
29
29
|
}
|
|
30
30
|
nodeCount() {
|
|
31
31
|
return this._nodeCount;
|
|
32
32
|
}
|
|
33
33
|
nodes() {
|
|
34
|
-
return
|
|
34
|
+
return _(this._nodes);
|
|
35
35
|
}
|
|
36
36
|
sources() {
|
|
37
37
|
var t = this;
|
|
38
38
|
return p(this.nodes(), function(e) {
|
|
39
|
-
return
|
|
39
|
+
return b(t._in[e]);
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
sinks() {
|
|
43
43
|
var t = this;
|
|
44
44
|
return p(this.nodes(), function(e) {
|
|
45
|
-
return
|
|
45
|
+
return b(t._out[e]);
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
setNodes(t, e) {
|
|
49
49
|
var s = arguments, i = this;
|
|
50
|
-
return
|
|
50
|
+
return a(t, function(r) {
|
|
51
51
|
s.length > 1 ? i.setNode(r, e) : i.setNode(r);
|
|
52
52
|
}), this;
|
|
53
53
|
}
|
|
54
54
|
setNode(t, e) {
|
|
55
|
-
return
|
|
55
|
+
return Object.prototype.hasOwnProperty.call(this._nodes, t) ? (arguments.length > 1 && (this._nodes[t] = e), this) : (this._nodes[t] = arguments.length > 1 ? e : this._defaultNodeLabelFn(t), this._isCompound && (this._parent[t] = d, this._children[t] = {}, this._children[d][t] = !0), this._in[t] = {}, this._preds[t] = {}, this._out[t] = {}, this._sucs[t] = {}, ++this._nodeCount, this);
|
|
56
56
|
}
|
|
57
57
|
node(t) {
|
|
58
58
|
return this._nodes[t];
|
|
59
59
|
}
|
|
60
60
|
hasNode(t) {
|
|
61
|
-
return
|
|
61
|
+
return Object.prototype.hasOwnProperty.call(this._nodes, t);
|
|
62
62
|
}
|
|
63
63
|
removeNode(t) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
};
|
|
69
|
-
delete this._nodes[t], this._isCompound && (this._removeFromParentsChildList(t), delete this._parent[t], u(this.children(t), function(i) {
|
|
70
|
-
e.setParent(i);
|
|
71
|
-
}), delete this._children[t]), u(l(this._in[t]), s), delete this._in[t], delete this._preds[t], u(l(this._out[t]), s), delete this._out[t], delete this._sucs[t], --this._nodeCount;
|
|
64
|
+
if (Object.prototype.hasOwnProperty.call(this._nodes, t)) {
|
|
65
|
+
var e = (s) => this.removeEdge(this._edgeObjs[s]);
|
|
66
|
+
delete this._nodes[t], this._isCompound && (this._removeFromParentsChildList(t), delete this._parent[t], a(this.children(t), (s) => {
|
|
67
|
+
this.setParent(s);
|
|
68
|
+
}), delete this._children[t]), a(_(this._in[t]), e), delete this._in[t], delete this._preds[t], a(_(this._out[t]), e), delete this._out[t], delete this._sucs[t], --this._nodeCount;
|
|
72
69
|
}
|
|
73
70
|
return this;
|
|
74
71
|
}
|
|
75
72
|
setParent(t, e) {
|
|
76
73
|
if (!this._isCompound)
|
|
77
74
|
throw new Error("Cannot set parent in a non-compound graph");
|
|
78
|
-
if (
|
|
79
|
-
e =
|
|
75
|
+
if (l(e))
|
|
76
|
+
e = d;
|
|
80
77
|
else {
|
|
81
78
|
e += "";
|
|
82
|
-
for (var s = e; !
|
|
79
|
+
for (var s = e; !l(s); s = this.parent(s))
|
|
83
80
|
if (s === t)
|
|
84
81
|
throw new Error("Setting " + e + " as parent of " + t + " would create a cycle");
|
|
85
82
|
this.setNode(e);
|
|
@@ -92,17 +89,17 @@ class w {
|
|
|
92
89
|
parent(t) {
|
|
93
90
|
if (this._isCompound) {
|
|
94
91
|
var e = this._parent[t];
|
|
95
|
-
if (e !==
|
|
92
|
+
if (e !== d)
|
|
96
93
|
return e;
|
|
97
94
|
}
|
|
98
95
|
}
|
|
99
96
|
children(t) {
|
|
100
|
-
if (
|
|
97
|
+
if (l(t) && (t = d), this._isCompound) {
|
|
101
98
|
var e = this._children[t];
|
|
102
99
|
if (e)
|
|
103
|
-
return
|
|
100
|
+
return _(e);
|
|
104
101
|
} else {
|
|
105
|
-
if (t ===
|
|
102
|
+
if (t === d)
|
|
106
103
|
return this.nodes();
|
|
107
104
|
if (this.hasNode(t))
|
|
108
105
|
return [];
|
|
@@ -111,17 +108,17 @@ class w {
|
|
|
111
108
|
predecessors(t) {
|
|
112
109
|
var e = this._preds[t];
|
|
113
110
|
if (e)
|
|
114
|
-
return
|
|
111
|
+
return _(e);
|
|
115
112
|
}
|
|
116
113
|
successors(t) {
|
|
117
114
|
var e = this._sucs[t];
|
|
118
115
|
if (e)
|
|
119
|
-
return
|
|
116
|
+
return _(e);
|
|
120
117
|
}
|
|
121
118
|
neighbors(t) {
|
|
122
119
|
var e = this.predecessors(t);
|
|
123
120
|
if (e)
|
|
124
|
-
return
|
|
121
|
+
return D(e, this.successors(t));
|
|
125
122
|
}
|
|
126
123
|
isLeaf(t) {
|
|
127
124
|
var e;
|
|
@@ -135,9 +132,9 @@ class w {
|
|
|
135
132
|
});
|
|
136
133
|
e.setGraph(this.graph());
|
|
137
134
|
var s = this;
|
|
138
|
-
|
|
135
|
+
a(this._nodes, function(n, h) {
|
|
139
136
|
t(h) && e.setNode(h, n);
|
|
140
|
-
}),
|
|
137
|
+
}), a(this._edgeObjs, function(n) {
|
|
141
138
|
e.hasNode(n.v) && e.hasNode(n.w) && e.setEdge(n, s.edge(n));
|
|
142
139
|
});
|
|
143
140
|
var i = {};
|
|
@@ -145,13 +142,13 @@ class w {
|
|
|
145
142
|
var h = s.parent(n);
|
|
146
143
|
return h === void 0 || e.hasNode(h) ? (i[n] = h, h) : h in i ? i[h] : r(h);
|
|
147
144
|
}
|
|
148
|
-
return this._isCompound &&
|
|
145
|
+
return this._isCompound && a(e.nodes(), function(n) {
|
|
149
146
|
e.setParent(n, r(n));
|
|
150
147
|
}), e;
|
|
151
148
|
}
|
|
152
149
|
/* === Edge functions ========== */
|
|
153
150
|
setDefaultEdgeLabel(t) {
|
|
154
|
-
return
|
|
151
|
+
return v(t) || (t = g(t)), this._defaultEdgeLabelFn = t, this;
|
|
155
152
|
}
|
|
156
153
|
edgeCount() {
|
|
157
154
|
return this._edgeCount;
|
|
@@ -161,7 +158,7 @@ class w {
|
|
|
161
158
|
}
|
|
162
159
|
setPath(t, e) {
|
|
163
160
|
var s = this, i = arguments;
|
|
164
|
-
return
|
|
161
|
+
return P(t, function(r, n) {
|
|
165
162
|
return i.length > 1 ? s.setEdge(r, n, e) : s.setEdge(r, n), n;
|
|
166
163
|
}), this;
|
|
167
164
|
}
|
|
@@ -171,27 +168,27 @@ class w {
|
|
|
171
168
|
*/
|
|
172
169
|
setEdge() {
|
|
173
170
|
var t, e, s, i, r = !1, n = arguments[0];
|
|
174
|
-
typeof n == "object" && n !== null && "v" in n ? (t = n.v, e = n.w, s = n.name, arguments.length === 2 && (i = arguments[1], r = !0)) : (t = n, e = arguments[1], s = arguments[3], arguments.length > 2 && (i = arguments[2], r = !0)), t = "" + t, e = "" + e,
|
|
171
|
+
typeof n == "object" && n !== null && "v" in n ? (t = n.v, e = n.w, s = n.name, arguments.length === 2 && (i = arguments[1], r = !0)) : (t = n, e = arguments[1], s = arguments[3], arguments.length > 2 && (i = arguments[2], r = !0)), t = "" + t, e = "" + e, l(s) || (s = "" + s);
|
|
175
172
|
var h = c(this._isDirected, t, e, s);
|
|
176
|
-
if (
|
|
173
|
+
if (Object.prototype.hasOwnProperty.call(this._edgeLabels, h))
|
|
177
174
|
return r && (this._edgeLabels[h] = i), this;
|
|
178
|
-
if (!
|
|
175
|
+
if (!l(s) && !this._isMultigraph)
|
|
179
176
|
throw new Error("Cannot set a named edge when isMultigraph = false");
|
|
180
177
|
this.setNode(t), this.setNode(e), this._edgeLabels[h] = r ? i : this._defaultEdgeLabelFn(t, e, s);
|
|
181
|
-
var
|
|
182
|
-
return t =
|
|
178
|
+
var u = M(this._isDirected, t, e, s);
|
|
179
|
+
return t = u.v, e = u.w, Object.freeze(u), this._edgeObjs[h] = u, O(this._preds[e], t), O(this._sucs[t], e), this._in[e][h] = u, this._out[t][h] = u, this._edgeCount++, this;
|
|
183
180
|
}
|
|
184
181
|
edge(t, e, s) {
|
|
185
|
-
var i = arguments.length === 1 ?
|
|
182
|
+
var i = arguments.length === 1 ? f(this._isDirected, arguments[0]) : c(this._isDirected, t, e, s);
|
|
186
183
|
return this._edgeLabels[i];
|
|
187
184
|
}
|
|
188
185
|
hasEdge(t, e, s) {
|
|
189
|
-
var i = arguments.length === 1 ?
|
|
190
|
-
return
|
|
186
|
+
var i = arguments.length === 1 ? f(this._isDirected, arguments[0]) : c(this._isDirected, t, e, s);
|
|
187
|
+
return Object.prototype.hasOwnProperty.call(this._edgeLabels, i);
|
|
191
188
|
}
|
|
192
189
|
removeEdge(t, e, s) {
|
|
193
|
-
var i = arguments.length === 1 ?
|
|
194
|
-
return r && (t = r.v, e = r.w, delete this._edgeLabels[i], delete this._edgeObjs[i],
|
|
190
|
+
var i = arguments.length === 1 ? f(this._isDirected, arguments[0]) : c(this._isDirected, t, e, s), r = this._edgeObjs[i];
|
|
191
|
+
return r && (t = r.v, e = r.w, delete this._edgeLabels[i], delete this._edgeObjs[i], w(this._preds[e], t), w(this._sucs[t], e), delete this._in[e][i], delete this._out[t][i], this._edgeCount--), this;
|
|
195
192
|
}
|
|
196
193
|
inEdges(t, e) {
|
|
197
194
|
var s = this._in[t];
|
|
@@ -217,12 +214,12 @@ class w {
|
|
|
217
214
|
return s.concat(this.outEdges(t, e));
|
|
218
215
|
}
|
|
219
216
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
function
|
|
217
|
+
y.prototype._nodeCount = 0;
|
|
218
|
+
y.prototype._edgeCount = 0;
|
|
219
|
+
function O(o, t) {
|
|
223
220
|
o[t] ? o[t]++ : o[t] = 1;
|
|
224
221
|
}
|
|
225
|
-
function
|
|
222
|
+
function w(o, t) {
|
|
226
223
|
--o[t] || delete o[t];
|
|
227
224
|
}
|
|
228
225
|
function c(o, t, e, s) {
|
|
@@ -231,9 +228,9 @@ function c(o, t, e, s) {
|
|
|
231
228
|
var n = i;
|
|
232
229
|
i = r, r = n;
|
|
233
230
|
}
|
|
234
|
-
return i +
|
|
231
|
+
return i + C + r + C + (l(s) ? F : s);
|
|
235
232
|
}
|
|
236
|
-
function
|
|
233
|
+
function M(o, t, e, s) {
|
|
237
234
|
var i = "" + t, r = "" + e;
|
|
238
235
|
if (!o && i > r) {
|
|
239
236
|
var n = i;
|
|
@@ -242,9 +239,9 @@ function k(o, t, e, s) {
|
|
|
242
239
|
var h = { v: i, w: r };
|
|
243
240
|
return s && (h.name = s), h;
|
|
244
241
|
}
|
|
245
|
-
function
|
|
242
|
+
function f(o, t) {
|
|
246
243
|
return c(o, t.v, t.w, t.name);
|
|
247
244
|
}
|
|
248
245
|
export {
|
|
249
|
-
|
|
246
|
+
y as L
|
|
250
247
|
};
|