@kong-ui-public/documentation 0.7.2 → 0.7.4

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.
Files changed (50) hide show
  1. package/dist/arc-BOwQG9_0-DleiJ5MN.js +86 -0
  2. package/dist/{blockDiagram-9f4a6865-IUliCiDO-CB0IBm1m.js → blockDiagram-6b2b5046-Nxmf6ECX-CjmiHCoc.js} +106 -106
  3. package/dist/{c4Diagram-ae766693-CraPSkgX-CsP6MA7_.js → c4Diagram-b947cdbb-Cqv3kxuJ-BXRu2bPz.js} +132 -133
  4. package/dist/{channel-BN6QTnj4-CfiMWXq0.js → channel-b8lMD3zZ-Ds1AntZz.js} +1 -1
  5. package/dist/{classDiagram-fb54d2a0-DXWl4-1y-CoIPJ9Tf.js → classDiagram-35230388-cNSawuF--DF1WKJvq.js} +7 -8
  6. package/dist/{classDiagram-v2-a2b738ad-CuRy1r-r-SMHLTRcJ.js → classDiagram-v2-412acd34-DL9yPzEL-1zjaSugS.js} +8 -8
  7. package/dist/{clone-DPlFlx1_-B6OhGku3.js → clone-DA9j_md9-DOEHuNxk.js} +1 -1
  8. package/dist/{createText-ca0c5216-BJXIFjUv-B9Xp5z9K.js → createText-423428c9-Bi8tqKOA-BAeSkls4.js} +1 -2
  9. package/dist/documentation.es.js +2 -2
  10. package/dist/documentation.umd.js +724 -995
  11. package/dist/{edges-066a5561-DyIiUH3I-B88mxBJO.js → edges-d417c7a0-CyiospL7-DxH-v6Cl.js} +27 -28
  12. package/dist/{erDiagram-09d1c15f-DaNxb97t-DI2sOo4s.js → erDiagram-0ea73325-BWWWgAmd-aPslvlbz.js} +38 -38
  13. package/dist/{flowDb-c1833063-4TreIkwu-DLOEDd2f.js → flowDb-d35e309a-BQRCRAKf-Cf6biv5M.js} +4 -4
  14. package/dist/{flowDiagram-b222e15a-Bz6kEL6X-B4McfssH.js → flowDiagram-d949d7c1-D_OK65PK-DS0CyGIC.js} +329 -337
  15. package/dist/{flowDiagram-v2-13329dc7-BSJVxEBD-CR0v6C6O.js → flowDiagram-v2-49332944-CYs4MQAb-C9m-G3JY.js} +5 -5
  16. package/dist/{flowchart-elk-definition-ae0efee6-D_SQlTEw-DHjq3NxL.js → flowchart-elk-definition-27cc417a-OqMBrUum-CbH3NCkB.js} +12750 -12752
  17. package/dist/{ganttDiagram-b62c793e-w82uNNex-OPrei_7k.js → ganttDiagram-5c869e3b-Cu9aCqHh-De0u-Oas.js} +477 -488
  18. package/dist/gitGraphDiagram-b9d81de9-DVB2N99Y-C2np-enA.js +1262 -0
  19. package/dist/go-BEtjQGEI-BEtjQGEI.js +7 -0
  20. package/dist/{graph-Bb1vku7A-CjMAyaMV.js → graph-Ctghcdhb-CqAdUKOZ.js} +3 -3
  21. package/dist/{index-01f381cb-DFAckdb4-DP_D7ZMM.js → index-8fae9850-CdUaE101-uMPVRleJ.js} +11 -11
  22. package/dist/{index-74HaIrFw.js → index-BRYBB2aM.js} +6920 -6981
  23. package/dist/{infoDiagram-94cd232f-iYUDXeae-DbxyZ1YG.js → infoDiagram-db7b18fc-MHPWI9K2-Cy6tzigE.js} +16 -16
  24. package/dist/{journeyDiagram-6625b456-D9SzlG49-D9WC6928.js → journeyDiagram-d5636530-O6dkdrZq-BghpQv6u.js} +42 -42
  25. package/dist/{latex-CoJDAuLL-lJGSmtOO.js → latex-BOFs-Cxs-XUibdaju.js} +1 -1
  26. package/dist/{layout-BXWpVE1y-Dpdx9MjN.js → layout-Bf4siL6f-B27qrAUf.js} +110 -110
  27. package/dist/{line-cygqshb4-ChLkD5zh.js → line-Bs4J8z8n-kq8RtDQA.js} +1 -1
  28. package/dist/{linear-c7VKFbmv-Bcl7PKrY.js → linear-DG5qhwMV-BSSd8kt2.js} +21 -21
  29. package/dist/{mindmap-definition-307c710a-Dtax51Qo-DiTPR9DS.js → mindmap-definition-377f8f1f-BJZNhhv8-Cinm-UDt.js} +6496 -6729
  30. package/dist/{pieDiagram-bb1d19e5-MIBQswLW-DwEeDM9B.js → pieDiagram-b0208e96-12B2qtCQ-Bl-9vJIA.js} +68 -68
  31. package/dist/{quadrantDiagram-c759a472-CUBvKLS1-BFYNBXmR.js → quadrantDiagram-0332be45-B77W50pM-bQiH7XpR.js} +2 -2
  32. package/dist/{requirementDiagram-87253d64-BZrSGm9j-BTMRMufk.js → requirementDiagram-bf7890df-BfPNYjQ5-CGF46ifn.js} +30 -30
  33. package/dist/{sankeyDiagram-707fac0f-BMrqHGsv-B27LQLYG.js → sankeyDiagram-0acdec17-D5aZuYoJ-DIWEEtuf.js} +22 -22
  34. package/dist/{sequenceDiagram-6894f283-CKZurmNK-kn3T54cJ.js → sequenceDiagram-c18d009d-DE6VyN7w-6UaAYk4p.js} +808 -841
  35. package/dist/{stateDiagram-5dee940d-uylU1OS0-DApYcfZ7.js → stateDiagram-43596fc0-CfGH1LmM-km5kjci0.js} +54 -54
  36. package/dist/{stateDiagram-v2-1992cada-JYJWGRv5-C-8aN2Zs.js → stateDiagram-v2-2ead4f9c-CvDoRhMn-CkUl-Lcu.js} +12 -12
  37. package/dist/style.css +1 -1
  38. package/dist/{styles-b83b31c9-BkcEKpp1-AMZ_2CDs.js → styles-6860f46c-CJplL-uW-BFTTeCMF.js} +19 -19
  39. package/dist/{styles-483fbfea-_Tntk7zw-BMvdfSW3.js → styles-7383a064-N1ljH9gq-D7Iipjtf.js} +137 -140
  40. package/dist/{styles-0784dbeb-CN_Kv1lZ-BqcZ7Gdy.js → styles-b2c874b6-CKJLyUE4-2C22cylE.js} +24 -24
  41. package/dist/{svgDrawCommon-5e1cfd1d--PZSQhO7-VrjnCid8.js → svgDrawCommon-0ee1b4e9-Dc25Bs_w-QhIkJ1Xp.js} +4 -4
  42. package/dist/{timeline-definition-bf702344-DVMY6q6d-BYAHqkvN.js → timeline-definition-d977decf-8C3XuDC--DAD2knZY.js} +2 -2
  43. package/dist/{vue-Djs4WzmL-BDWKKO52.js → vue-DoU_Nr9K-Cj2gXb1y.js} +2 -2
  44. package/dist/{vue-html-CdlOxrsR-C0P0LsFn.js → vue-html-iC7i5f9n-Cfh5ktA3.js} +1 -1
  45. package/dist/{xychartDiagram-f11f50a6-CfFXg3YO-BJuC_16u.js → xychartDiagram-e50adddc-BRQAut2i-DBHY1QQ6.js} +22 -22
  46. package/package.json +5 -5
  47. package/dist/arc-Db-G4La6-9oHI8HT5.js +0 -86
  48. package/dist/gitGraphDiagram-942e62fe-DN0JwANo-r5Axb-YL.js +0 -1264
  49. package/dist/go-DYNyFS5n-DYNyFS5n.js +0 -7
  50. package/dist/katex-BQC_klMa-CaeA20wX.js +0 -11636
@@ -1,7 +0,0 @@
1
- const e = Object.freeze({ 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*)((?![\\[\\]]+)[[:alnum:]\\-\\_\\!\\.\\[\\]\\<\\>\\=\\*/\\+\\%\\:]+)(?:\\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" }] }, { captures: { 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" }] }, 4: { patterns: [{ include: "$self" }] }, 5: { name: "punctuation.definition.end.bracket.round.go" } }, comment: "make keyword", match: "(?:(\\bmake\\b)(?:(\\()((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?:[\\w\\.\\*\\[\\]\\{\\}]+)?(?:\\[(?:[^\\]]+)?\\])?(?:[\\w\\.\\*\\[\\]\\{\\}]+)?)?((?:\\,\\s*(?:[\\w\\.\\(\\)/\\+\\-\\<\\>\\&\\|\\%\\*]+)?)+)?(\\))))" }] }, 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\\.\\[\\]\\*\\&]+)\\))(?=\\())" }, 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\\.]+))?)", 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: "#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])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\w))?(?:\\n|$)|\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))|\\G((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[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])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[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])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[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])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[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])([0-9](?:[0-9]|((?<=[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" }] }, 2: { patterns: [{ include: "#type-declarations" }, { match: "\\w+", name: "variable.other.go" }, { include: "$self" }] }, 3: { patterns: [{ include: "#type-declarations" }, { match: "\\w+", name: "variable.other.property.field.go" }, { include: "$self" }] }, 4: { patterns: [{ captures: { 1: { patterns: [{ include: "#type-declarations" }, { match: "\\w+", name: "variable.other.go" }] }, 2: { patterns: [{ include: "#type-declarations" }, { match: "\\w+", name: "variable.other.property.field.go" }] } }, match: "([\\w\\.\\*\\&\\[\\]]+)(\\.\\w+)" }, { include: "$self" }] } }, comment: "Property variables in struct | parameter field in struct initialization", match: "(?:(?:((?:\\b[\\w\\.]+)(?:\\:(?!\\=))))(?:(?:\\s*([\\w\\.\\*\\&\\[\\]]+)(\\.\\w+)(?![\\w\\.\\*\\&\\[\\]]*(?:\\{|\\()))((?:\\s*(?:\\<|\\>|\\<\\=|\\>\\=|\\=\\=|\\!\\=|\\|\\||\\&\\&|\\+|/|\\-|\\*|\\%|\\||\\&)\\s*(?:[\\w\\.\\*\\&\\[\\]]+)(?:\\.\\w+)(?![\\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\\.\\-\\*\\[\\]]+))?)", 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" }] }, 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*)+)?(?<!\\,\\s*)(?:[\\w\\.\\*]+)\\s*(?:(?:(?:".*")|(?:\\`.*\\`))\\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+))([\\s\\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 = [
3
- e
4
- ];
5
- export {
6
- t as default
7
- };