@nuxt/scripts 0.4.3 → 0.4.5

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 (83) hide show
  1. package/dist/client/200.html +20 -19
  2. package/dist/client/404.html +20 -19
  3. package/dist/client/_nuxt/BJn7Ek5W.js +1 -0
  4. package/dist/client/_nuxt/{o5b8QYQO.js → Bfj2ThZ4.js} +1 -1
  5. package/dist/client/_nuxt/Bj0fF4lQ.js +1 -0
  6. package/dist/client/_nuxt/{DGMFlOLs.js → BmSZh3NL.js} +1 -1
  7. package/dist/client/_nuxt/{B9E_xdxs.js → CNkYXcD4.js} +1 -1
  8. package/dist/client/_nuxt/{DsudziMp.js → COIrKlfF.js} +1 -1
  9. package/dist/client/_nuxt/{BvCpKIQU.js → CYb3njua.js} +1 -1
  10. package/dist/client/_nuxt/C_ZPRiAj.js +26 -0
  11. package/dist/client/_nuxt/{B5NHDIr7.js → Cp2HGa90.js} +2 -2
  12. package/dist/client/_nuxt/{B4ACM-c0.js → DCjyzNN-.js} +1 -1
  13. package/dist/client/_nuxt/{DKlGn9uv.js → DGEpfOTx.js} +1 -1
  14. package/dist/client/_nuxt/DHO_A7iW.js +31 -0
  15. package/dist/client/_nuxt/Dd6f7Z5P.js +1 -0
  16. package/dist/client/_nuxt/{B9T-hdPi.js → Dogu0qBF.js} +1 -1
  17. package/dist/client/_nuxt/MN12aA4C.js +1 -0
  18. package/dist/client/_nuxt/{DH8runP0.js → aOK4jV4Z.js} +1 -1
  19. package/dist/client/_nuxt/builds/latest.json +1 -1
  20. package/dist/client/_nuxt/builds/meta/3203087a-f9bf-453f-aef1-d9723b9e1f58.json +1 -0
  21. package/dist/client/_nuxt/{BcF9sHHc.js → o8H-iTt6.js} +2 -2
  22. package/dist/client/_nuxt/xtV5iK4E.js +1 -0
  23. package/dist/client/_nuxt/{P5f3PASf.js → zhgf4ixb.js} +1 -1
  24. package/dist/client/index.html +20 -19
  25. package/dist/module.d.mts +1 -1
  26. package/dist/module.d.ts +1 -1
  27. package/dist/module.json +2 -2
  28. package/dist/registry.d.mts +4 -4
  29. package/dist/registry.d.ts +4 -4
  30. package/dist/runtime/composables/useConsentScriptTrigger.d.ts +1 -1
  31. package/dist/runtime/composables/useElementScriptTrigger.d.ts +1 -1
  32. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +3 -1
  33. package/dist/runtime/registry/{cloudflare-web-analytics.mjs → cloudflare-web-analytics.js} +1 -2
  34. package/dist/runtime/registry/fathom-analytics.d.ts +3 -1
  35. package/dist/runtime/registry/{fathom-analytics.mjs → fathom-analytics.js} +1 -1
  36. package/dist/runtime/registry/google-analytics.d.ts +3 -1
  37. package/dist/runtime/registry/{google-analytics.mjs → google-analytics.js} +1 -1
  38. package/dist/runtime/registry/google-maps.d.ts +3 -1
  39. package/dist/runtime/registry/{google-maps.mjs → google-maps.js} +1 -1
  40. package/dist/runtime/registry/google-tag-manager.d.ts +3 -1
  41. package/dist/runtime/registry/{google-tag-manager.mjs → google-tag-manager.js} +1 -1
  42. package/dist/runtime/registry/hotjar.d.ts +3 -1
  43. package/dist/runtime/registry/{hotjar.mjs → hotjar.js} +1 -1
  44. package/dist/runtime/registry/intercom.d.ts +3 -1
  45. package/dist/runtime/registry/{intercom.mjs → intercom.js} +1 -1
  46. package/dist/runtime/registry/lemon-squeezy.d.ts +3 -1
  47. package/dist/runtime/registry/{lemon-squeezy.mjs → lemon-squeezy.js} +1 -2
  48. package/dist/runtime/registry/matomo-analytics.d.ts +3 -1
  49. package/dist/runtime/registry/{matomo-analytics.mjs → matomo-analytics.js} +1 -2
  50. package/dist/runtime/registry/meta-pixel.d.ts +3 -1
  51. package/dist/runtime/registry/{meta-pixel.mjs → meta-pixel.js} +1 -2
  52. package/dist/runtime/registry/npm.d.ts +4 -2
  53. package/dist/runtime/registry/{npm.mjs → npm.js} +1 -1
  54. package/dist/runtime/registry/plausible-analytics.d.ts +3 -1
  55. package/dist/runtime/registry/{plausible-analytics.mjs → plausible-analytics.js} +1 -1
  56. package/dist/runtime/registry/segment.d.ts +3 -1
  57. package/dist/runtime/registry/{segment.mjs → segment.js} +1 -1
  58. package/dist/runtime/registry/stripe.d.ts +3 -1
  59. package/dist/runtime/registry/{stripe.mjs → stripe.js} +1 -3
  60. package/dist/runtime/registry/vimeo-player.d.ts +3 -1
  61. package/dist/runtime/registry/{vimeo-player.mjs → vimeo-player.js} +1 -1
  62. package/dist/runtime/registry/x-pixel.d.ts +3 -1
  63. package/dist/runtime/registry/{x-pixel.mjs → x-pixel.js} +1 -2
  64. package/dist/runtime/registry/youtube-player.d.ts +3 -1
  65. package/dist/runtime/registry/{youtube-player.mjs → youtube-player.js} +1 -2
  66. package/dist/runtime/types.d.ts +17 -17
  67. package/dist/runtime/utils.d.ts +4 -2
  68. package/package.json +16 -15
  69. package/dist/client/_nuxt/BAMIS8DD.js +0 -1
  70. package/dist/client/_nuxt/Bsp1M94H.js +0 -1
  71. package/dist/client/_nuxt/C9UBdavN.js +0 -1
  72. package/dist/client/_nuxt/D2Id3jI5.js +0 -31
  73. package/dist/client/_nuxt/Db2-y2xY.js +0 -1
  74. package/dist/client/_nuxt/Dz2Ca8U2.js +0 -1
  75. package/dist/client/_nuxt/builds/meta/57975886-3e65-4f06-9b8d-c072a775a94c.json +0 -1
  76. /package/dist/runtime/composables/{useAnalyticsPageEvent.mjs → useAnalyticsPageEvent.js} +0 -0
  77. /package/dist/runtime/composables/{useConsentScriptTrigger.mjs → useConsentScriptTrigger.js} +0 -0
  78. /package/dist/runtime/composables/{useElementScriptTrigger.mjs → useElementScriptTrigger.js} +0 -0
  79. /package/dist/runtime/composables/{useScript.mjs → useScript.js} +0 -0
  80. /package/dist/runtime/{types.mjs → types.js} +0 -0
  81. /package/dist/runtime/{utils.mjs → utils.js} +0 -0
  82. /package/dist/runtime/validation/{mock.mjs → mock.js} +0 -0
  83. /package/dist/runtime/validation/{valibot.mjs → valibot.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { useRegistryScript } from "../utils.mjs";
1
+ import { useRegistryScript } from "../utils.js";
2
2
  import { number, object, optional } from "#nuxt-scripts-validator";
3
3
  export const HotjarOptions = object({
4
4
  id: number(),
@@ -28,4 +28,6 @@ declare global {
28
28
  intercomSettings?: any;
29
29
  }
30
30
  }
31
- export declare function useScriptIntercom<T extends IntercomApi>(_options?: IntercomInput): any;
31
+ export declare function useScriptIntercom<T extends IntercomApi>(_options?: IntercomInput): T & {
32
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
33
+ };
@@ -1,5 +1,5 @@
1
1
  import { joinURL } from "ufo";
2
- import { useRegistryScript } from "../utils.mjs";
2
+ import { useRegistryScript } from "../utils.js";
3
3
  import { literal, number, object, optional, string, union } from "#nuxt-scripts-validator";
4
4
  export const IntercomOptions = object({
5
5
  app_id: string(),
@@ -62,4 +62,6 @@ declare global {
62
62
  LemonSqueezy: LemonSqueezyApi;
63
63
  }
64
64
  }
65
- export declare function useScriptLemonSqueezy<T extends LemonSqueezyApi>(_options?: LemonSqueezyInput): any;
65
+ export declare function useScriptLemonSqueezy<T extends LemonSqueezyApi>(_options?: LemonSqueezyInput): T & {
66
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
67
+ };
@@ -1,9 +1,8 @@
1
- import { useRegistryScript } from "../utils.mjs";
1
+ import { useRegistryScript } from "../utils.js";
2
2
  export function useScriptLemonSqueezy(_options) {
3
3
  return useRegistryScript("lemonSqueezy", () => ({
4
4
  scriptInput: {
5
5
  src: "https://assets.lemonsqueezy.com/lemon.js",
6
- // @ts-expect-error untyped
7
6
  crossorigin: false
8
7
  },
9
8
  scriptOptions: {
@@ -18,5 +18,7 @@ declare global {
18
18
  interface Window extends MatomoAnalyticsApi {
19
19
  }
20
20
  }
21
- export declare function useScriptMatomoAnalytics<T extends MatomoAnalyticsApi>(_options?: MatomoAnalyticsInput): any;
21
+ export declare function useScriptMatomoAnalytics<T extends MatomoAnalyticsApi>(_options?: MatomoAnalyticsInput): T & {
22
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
23
+ };
22
24
  export {};
@@ -1,5 +1,5 @@
1
1
  import { withBase, withHttps } from "ufo";
2
- import { useRegistryScript } from "../utils.mjs";
2
+ import { useRegistryScript } from "../utils.js";
3
3
  import { boolean, object, optional, string } from "#nuxt-scripts-validator";
4
4
  export const MatomoAnalyticsOptions = object({
5
5
  matomoUrl: string(),
@@ -12,7 +12,6 @@ export function useScriptMatomoAnalytics(_options) {
12
12
  return useRegistryScript("matomoAnalytics", (options) => ({
13
13
  scriptInput: {
14
14
  src: withBase(`/matomo.js`, withHttps(options?.matomoUrl)),
15
- // @ts-expect-error untyped TODO fix upstream
16
15
  crossorigin: false
17
16
  },
18
17
  schema: import.meta.dev ? MatomoAnalyticsOptions : void 0,
@@ -38,5 +38,7 @@ export declare const MetaPixelOptions: import("valibot").ObjectSchema<{
38
38
  id: string | number;
39
39
  }>;
40
40
  export type MetaPixelInput = RegistryScriptInput<typeof MetaPixelOptions>;
41
- export declare function useScriptMetaPixel<T extends MetaPixelApi>(_options?: MetaPixelInput): any;
41
+ export declare function useScriptMetaPixel<T extends MetaPixelApi>(_options?: MetaPixelInput): T & {
42
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
43
+ };
42
44
  export {};
@@ -1,4 +1,4 @@
1
- import { useRegistryScript } from "../utils.mjs";
1
+ import { useRegistryScript } from "../utils.js";
2
2
  import { MetaPixelScriptResolver } from "../../registry";
3
3
  import { number, object, string, union } from "#nuxt-scripts-validator";
4
4
  export const MetaPixelOptions = object({
@@ -8,7 +8,6 @@ export function useScriptMetaPixel(_options) {
8
8
  return useRegistryScript("metaPixel", (options) => ({
9
9
  scriptInput: {
10
10
  src: MetaPixelScriptResolver(),
11
- // @ts-expect-error TODO fix upstream
12
11
  crossorigin: false
13
12
  },
14
13
  schema: import.meta.dev ? MetaPixelOptions : void 0,
@@ -6,9 +6,11 @@ export declare const NpmOptions: import("valibot").ObjectSchema<{
6
6
  type: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
7
7
  }, undefined, {
8
8
  packageName: string;
9
- type?: string | undefined;
10
9
  file?: string | undefined;
11
10
  version?: string | undefined;
11
+ type?: string | undefined;
12
12
  }>;
13
13
  export type NpmInput = RegistryScriptInput<typeof NpmOptions>;
14
- export declare function useScriptNpm<T extends Record<string | symbol, any>>(_options: NpmInput): any;
14
+ export declare function useScriptNpm<T extends Record<string | symbol, any>>(_options: NpmInput): T & {
15
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
16
+ };
@@ -1,5 +1,5 @@
1
1
  import { withBase } from "ufo";
2
- import { useRegistryScript } from "../utils.mjs";
2
+ import { useRegistryScript } from "../utils.js";
3
3
  import { object, optional, string } from "#nuxt-scripts-validator";
4
4
  export const NpmOptions = object({
5
5
  packageName: string(),
@@ -17,4 +17,6 @@ declare global {
17
17
  plausible: PlausibleAnalyticsApi;
18
18
  }
19
19
  }
20
- export declare function useScriptPlausibleAnalytics<T extends PlausibleAnalyticsApi>(_options?: PlausibleAnalyticsInput): any;
20
+ export declare function useScriptPlausibleAnalytics<T extends PlausibleAnalyticsApi>(_options?: PlausibleAnalyticsInput): T & {
21
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
22
+ };
@@ -1,4 +1,4 @@
1
- import { useRegistryScript } from "../utils.mjs";
1
+ import { useRegistryScript } from "../utils.js";
2
2
  import { PlausibleAnalyticsScriptResolver } from "../../registry";
3
3
  import { array, literal, object, optional, string, union } from "#nuxt-scripts-validator";
4
4
  const extensions = [
@@ -33,5 +33,7 @@ declare global {
33
33
  interface Window extends SegmentApi {
34
34
  }
35
35
  }
36
- export declare function useScriptSegment<T extends SegmentApi>(_options?: SegmentInput): any;
36
+ export declare function useScriptSegment<T extends SegmentApi>(_options?: SegmentInput): T & {
37
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
38
+ };
37
39
  export {};
@@ -1,4 +1,4 @@
1
- import { useRegistryScript } from "../utils.mjs";
1
+ import { useRegistryScript } from "../utils.js";
2
2
  import { SegmentScriptResolver } from "../../registry";
3
3
  import { object, optional, string } from "#nuxt-scripts-validator";
4
4
  export const SegmentOptions = object({
@@ -13,4 +13,6 @@ declare global {
13
13
  interface Window extends StripeApi {
14
14
  }
15
15
  }
16
- export declare function useScriptStripe<T extends StripeApi>(_options?: StripeInput): any;
16
+ export declare function useScriptStripe<T extends StripeApi>(_options?: StripeInput): T & {
17
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
18
+ };
@@ -1,5 +1,5 @@
1
1
  import { withQuery } from "ufo";
2
- import { useRegistryScript } from "../utils.mjs";
2
+ import { useRegistryScript } from "../utils.js";
3
3
  import { boolean, object, optional } from "#nuxt-scripts-validator";
4
4
  export const StripeOptions = object({
5
5
  advancedFraudSignals: optional(boolean())
@@ -12,9 +12,7 @@ export function useScriptStripe(_options) {
12
12
  typeof options?.advancedFraudSignals === "boolean" && !options?.advancedFraudSignals ? { advancedFraudSignals: false } : {}
13
13
  ),
14
14
  // opt-out of privacy defaults
15
- // @ts-expect-error TODO add types
16
15
  crossorigin: false,
17
- // @ts-expect-error TODO add types
18
16
  referrerpolicy: false
19
17
  },
20
18
  schema: import.meta.dev ? StripeOptions : void 0,
@@ -10,5 +10,7 @@ declare global {
10
10
  interface Window extends VimeoPlayerApi {
11
11
  }
12
12
  }
13
- export declare function useScriptVimeoPlayer<T extends VimeoPlayerApi>(_options?: VimeoPlayerInput): any;
13
+ export declare function useScriptVimeoPlayer<T extends VimeoPlayerApi>(_options?: VimeoPlayerInput): T & {
14
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
15
+ };
14
16
  export {};
@@ -1,5 +1,5 @@
1
1
  import { watch } from "vue";
2
- import { useRegistryScript } from "../utils.mjs";
2
+ import { useRegistryScript } from "../utils.js";
3
3
  import { useHead } from "#imports";
4
4
  export function useScriptVimeoPlayer(_options) {
5
5
  const instance = useRegistryScript("vimeoPlayer", () => ({
@@ -35,5 +35,7 @@ export declare const XPixelOptions: import("valibot").ObjectSchema<{
35
35
  version?: string | undefined;
36
36
  }>;
37
37
  export type XPixelInput = RegistryScriptInput<typeof XPixelOptions>;
38
- export declare function useScriptXPixel<T extends XPixelApi>(_options?: XPixelInput): any;
38
+ export declare function useScriptXPixel<T extends XPixelApi>(_options?: XPixelInput): T & {
39
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
40
+ };
39
41
  export {};
@@ -1,4 +1,4 @@
1
- import { useRegistryScript } from "../utils.mjs";
1
+ import { useRegistryScript } from "../utils.js";
2
2
  import { object, optional, string } from "#nuxt-scripts-validator";
3
3
  export const XPixelOptions = object({
4
4
  id: string(),
@@ -7,7 +7,6 @@ export const XPixelOptions = object({
7
7
  export function useScriptXPixel(_options) {
8
8
  return useRegistryScript("xPixel", (options) => {
9
9
  return {
10
- // @ts-expect-error TODO fix upstream
11
10
  scriptInput: {
12
11
  src: "https://static.ads-twitter.com/uwt.js",
13
12
  crossorigin: false
@@ -11,4 +11,6 @@ declare global {
11
11
  }
12
12
  }
13
13
  export type YouTubePlayerInput = RegistryScriptInput;
14
- export declare function useScriptYouTubePlayer<T extends YouTubePlayerApi>(_options: YouTubePlayerInput): any;
14
+ export declare function useScriptYouTubePlayer<T extends YouTubePlayerApi>(_options: YouTubePlayerInput): T & {
15
+ $script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
16
+ };
@@ -1,12 +1,11 @@
1
1
  import { watch } from "vue";
2
- import { useRegistryScript } from "../utils.mjs";
2
+ import { useRegistryScript } from "../utils.js";
3
3
  import { useHead } from "#imports";
4
4
  export function useScriptYouTubePlayer(_options) {
5
5
  let readyPromise = Promise.resolve();
6
6
  const instance = useRegistryScript("youtubePlayer", () => ({
7
7
  scriptInput: {
8
8
  src: "https://www.youtube.com/iframe_api",
9
- // @ts-expect-error TODO fix types upstream
10
9
  crossorigin: false
11
10
  // crossorigin can't be set or it breaks
12
11
  },
@@ -3,23 +3,23 @@ import type { UseScriptInput, VueScriptInstance } from '@unhead/vue';
3
3
  import type { ComputedRef, Ref } from 'vue';
4
4
  import type { Input, ObjectSchema } from 'valibot';
5
5
  import type { Import } from 'unimport';
6
- import type { SegmentInput } from './registry/segment';
7
- import type { CloudflareWebAnalyticsInput } from './registry/cloudflare-web-analytics';
8
- import type { MetaPixelInput } from './registry/meta-pixel';
9
- import type { FathomAnalyticsInput } from './registry/fathom-analytics';
10
- import type { HotjarInput } from './registry/hotjar';
11
- import type { IntercomInput } from './registry/intercom';
12
- import type { GoogleAnalyticsInput } from './registry/google-analytics';
13
- import type { GoogleMapsInput } from './registry/google-maps';
14
- import type { GoogleTagManagerInput } from './registry/google-tag-manager';
15
- import type { MatomoAnalyticsInput } from './registry/matomo-analytics';
16
- import type { StripeInput } from './registry/stripe';
17
- import type { VimeoPlayerInput } from './registry/vimeo-player';
18
- import type { XPixelInput } from './registry/x-pixel';
19
- import type { YouTubePlayerInput } from './registry/youtube-player';
20
- import type { PlausibleAnalyticsInput } from './registry/plausible-analytics';
21
- import type { NpmInput } from './registry/npm';
22
- import type { LemonSqueezyInput } from './registry/lemon-squeezy';
6
+ import type { SegmentInput } from './registry/segment.js';
7
+ import type { CloudflareWebAnalyticsInput } from './registry/cloudflare-web-analytics.js';
8
+ import type { MetaPixelInput } from './registry/meta-pixel.js';
9
+ import type { FathomAnalyticsInput } from './registry/fathom-analytics.js';
10
+ import type { HotjarInput } from './registry/hotjar.js';
11
+ import type { IntercomInput } from './registry/intercom.js';
12
+ import type { GoogleAnalyticsInput } from './registry/google-analytics.js';
13
+ import type { GoogleMapsInput } from './registry/google-maps.js';
14
+ import type { GoogleTagManagerInput } from './registry/google-tag-manager.js';
15
+ import type { MatomoAnalyticsInput } from './registry/matomo-analytics.js';
16
+ import type { StripeInput } from './registry/stripe.js';
17
+ import type { VimeoPlayerInput } from './registry/vimeo-player.js';
18
+ import type { XPixelInput } from './registry/x-pixel.js';
19
+ import type { YouTubePlayerInput } from './registry/youtube-player.js';
20
+ import type { PlausibleAnalyticsInput } from './registry/plausible-analytics.js';
21
+ import type { NpmInput } from './registry/npm.js';
22
+ import type { LemonSqueezyInput } from './registry/lemon-squeezy.js';
23
23
  export type NuxtUseScriptOptions<T = any> = Omit<UseScriptOptions<T>, 'trigger'> & {
24
24
  /**
25
25
  * The trigger to load the script:
@@ -1,5 +1,5 @@
1
1
  import type { Input, ObjectSchema } from 'valibot';
2
- import type { UseScriptInput } from '@unhead/vue';
2
+ import type { UseScriptInput, VueScriptInstance } from '@unhead/vue';
3
3
  import type { EmptyOptionsSchema, NuxtUseScriptOptions, RegistryScriptInput, ScriptRegistry } from '#nuxt-scripts';
4
4
  type OptionsFn<O extends ObjectSchema<any>> = (options: Input<O>) => ({
5
5
  scriptInput?: UseScriptInput;
@@ -8,5 +8,7 @@ type OptionsFn<O extends ObjectSchema<any>> = (options: Input<O>) => ({
8
8
  clientInit?: () => void;
9
9
  });
10
10
  export declare function scriptRuntimeConfig<T extends keyof ScriptRegistry>(key: T): ScriptRegistry[T];
11
- export declare function useRegistryScript<T extends Record<string | symbol, any>, O extends ObjectSchema<any> = EmptyOptionsSchema>(key: keyof ScriptRegistry | string, optionsFn: OptionsFn<O>, _userOptions?: RegistryScriptInput<O>): any;
11
+ export declare function useRegistryScript<T extends Record<string | symbol, any>, O extends ObjectSchema<any> = EmptyOptionsSchema>(key: keyof ScriptRegistry | string, optionsFn: OptionsFn<O>, _userOptions?: RegistryScriptInput<O>): T & {
12
+ $script: Promise<T> & VueScriptInstance<T>;
13
+ };
12
14
  export {};
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@nuxt/scripts",
3
3
  "type": "module",
4
- "version": "0.4.3",
5
- "packageManager": "pnpm@9.1.1",
4
+ "version": "0.4.5",
5
+ "packageManager": "pnpm@9.1.4",
6
6
  "description": "Load third-party scripts with better performance, privacy and DX in Nuxt Apps.",
7
7
  "author": {
8
8
  "website": "https://harlanzw.com",
@@ -57,15 +57,15 @@
57
57
  ]
58
58
  },
59
59
  "dependencies": {
60
- "@nuxt/devtools-kit": "^1.3.1",
61
- "@nuxt/devtools-ui-kit": "^1.3.1",
60
+ "@nuxt/devtools-kit": "^1.3.2",
61
+ "@nuxt/devtools-ui-kit": "^1.3.2",
62
62
  "@nuxt/kit": "^3.11.2",
63
63
  "@types/google.maps": "^3.55.9",
64
64
  "@types/stripe-v3": "^3.1.33",
65
65
  "@types/vimeo__player": "^2.18.3",
66
66
  "@types/youtube": "^0.0.50",
67
- "@unhead/vue": "^1.9.10",
68
- "@vueuse/core": "^10.9.0",
67
+ "@unhead/vue": "^1.9.12",
68
+ "@vueuse/core": "^10.10.0",
69
69
  "consola": "^3.2.3",
70
70
  "defu": "^6.1.4",
71
71
  "estree-walker": "^3.0.3",
@@ -77,28 +77,29 @@
77
77
  "pathe": "^1.1.2",
78
78
  "pkg-types": "^1.1.1",
79
79
  "semver": "^7.6.2",
80
- "shiki": "^1.5.2",
80
+ "shiki": "^1.6.2",
81
81
  "sirv": "^2.0.4",
82
82
  "std-env": "^3.7.0",
83
83
  "third-party-capital": "^1.0.28",
84
84
  "ufo": "^1.5.3",
85
- "unimport": "^3.7.1",
85
+ "unimport": "^3.7.2",
86
86
  "unplugin": "^1.10.1",
87
87
  "unstorage": "^1.10.2",
88
88
  "valibot": "^0.30.0"
89
89
  },
90
90
  "devDependencies": {
91
- "@antfu/eslint-config": "2.17.0",
92
- "@nuxt/devtools-ui-kit": "^1.3.1",
93
- "@nuxt/module-builder": "^0.6.0",
94
- "@nuxt/test-utils": "3.12.1",
95
- "@unhead/schema": "^1.9.10",
91
+ "@antfu/eslint-config": "2.19.1",
92
+ "@nuxt/devtools-ui-kit": "^1.3.2",
93
+ "@nuxt/module-builder": "^0.7.0",
94
+ "@nuxt/test-utils": "3.13.1",
95
+ "@types/semver": "^7.5.8",
96
+ "@unhead/schema": "^1.9.12",
96
97
  "acorn-loose": "^8.4.0",
97
98
  "bumpp": "^9.4.1",
98
99
  "changelogen": "^0.5.5",
99
- "eslint": "9.2.0",
100
+ "eslint": "9.3.0",
100
101
  "nuxt": "^3.11.2",
101
- "playwright-core": "^1.44.0",
102
+ "playwright-core": "^1.44.1",
102
103
  "typescript": "^5.4.5",
103
104
  "vitest": "^1.6.0",
104
105
  "vue": "^3.4.27",
@@ -1 +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"});var t=[e];export{t as default};
@@ -1 +0,0 @@
1
- const e=Object.freeze({displayName:"Zig",fileTypes:["zig","zon"],name:"zig",patterns:[{include:"#comments"},{include:"#strings"},{include:"#keywords"},{include:"#operators"},{include:"#numbers"},{include:"#support"},{include:"#variables"}],repository:{commentContents:{patterns:[{match:"\\b(TODO|FIXME|XXX|NOTE)\\b:?",name:"keyword.todo.zig"}]},comments:{patterns:[{begin:"//[!/](?=[^/])",end:"$",name:"comment.line.documentation.zig",patterns:[{include:"#commentContents"}]},{begin:"//",end:"$",name:"comment.line.double-slash.zig",patterns:[{include:"#commentContents"}]}]},keywords:{patterns:[{match:"\\binline\\b(?!\\s*\\bfn\\b)",name:"keyword.control.repeat.zig"},{match:"\\b(while|for)\\b",name:"keyword.control.repeat.zig"},{match:"\\b(extern|packed|export|pub|noalias|inline|comptime|volatile|align|linksection|threadlocal|allowzero|noinline|callconv)\\b",name:"keyword.storage.zig"},{match:"\\b(struct|enum|union|opaque)\\b",name:"keyword.structure.zig"},{match:"\\b(asm|unreachable)\\b",name:"keyword.statement.zig"},{match:"\\b(break|return|continue|defer|errdefer)\\b",name:"keyword.control.flow.zig"},{match:"\\b(await|resume|suspend|async|nosuspend)\\b",name:"keyword.control.async.zig"},{match:"\\b(try|catch)\\b",name:"keyword.control.trycatch.zig"},{match:"\\b(if|else|switch|orelse)\\b",name:"keyword.control.conditional.zig"},{match:"\\b(null|undefined)\\b",name:"keyword.constant.default.zig"},{match:"\\b(true|false)\\b",name:"keyword.constant.bool.zig"},{match:"\\b(usingnamespace|test|and|or)\\b",name:"keyword.default.zig"},{match:"\\b(bool|void|noreturn|type|error|anyerror|anyframe|anytype|anyopaque)\\b",name:"keyword.type.zig"},{match:"\\b(f16|f32|f64|f80|f128|u\\d+|i\\d+|isize|usize|comptime_int|comptime_float)\\b",name:"keyword.type.integer.zig"},{match:"\\b(c_char|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|c_longlong|c_ulonglong|c_longdouble)\\b",name:"keyword.type.c.zig"}]},numbers:{patterns:[{match:"\\b0x[0-9a-fA-F][0-9a-fA-F_]*(\\.[0-9a-fA-F][0-9a-fA-F_]*)?([pP][+-]?[0-9a-fA-F_]+)?\\b",name:"constant.numeric.hexfloat.zig"},{match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?\\b",name:"constant.numeric.float.zig"},{match:"\\b[0-9][0-9_]*\\b",name:"constant.numeric.decimal.zig"},{match:"\\b0x[a-fA-F0-9_]+\\b",name:"constant.numeric.hexadecimal.zig"},{match:"\\b0o[0-7_]+\\b",name:"constant.numeric.octal.zig"},{match:"\\b0b[01_]+\\b",name:"constant.numeric.binary.zig"},{match:"\\b[0-9](([eEpP][+-])|[0-9a-zA-Z_])*(\\.(([eEpP][+-])|[0-9a-zA-Z_])*)?([eEpP][+-])?[0-9a-zA-Z_]*\\b",name:"constant.numeric.invalid.zig"}]},operators:{patterns:[{match:"(?<=\\[)\\*c(?=\\])",name:"keyword.operator.c-pointer.zig"},{match:"(\\b(and|or)\\b)|(==|!=|<=|>=|<|>)",name:"keyword.operator.comparison.zig"},{match:"(-%?|\\+%?|\\*%?|/|%)=?",name:"keyword.operator.arithmetic.zig"},{match:"(<<%?|>>|!|&|\\^|\\|)=?",name:"keyword.operator.bitwise.zig"},{match:"(==|\\+\\+|\\*\\*|->)",name:"keyword.operator.special.zig"}]},stringcontent:{patterns:[{match:`\\\\([nrt'"\\\\]|(x[0-9a-fA-F]{2})|(u\\{[0-9a-fA-F]+\\}))`,name:"constant.character.escape.zig"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.zig"}]},strings:{patterns:[{begin:'"',end:'"',name:"string.quoted.double.zig",patterns:[{include:"#stringcontent"}]},{begin:"\\\\\\\\",end:"$",name:"string.multiline.zig"},{match:"'([^'\\\\]|\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'",name:"string.quoted.single.zig"}]},support:{patterns:[{comment:"Built-in functions",match:"@[_a-zA-Z][_a-zA-Z0-9]*",name:"support.function.builtin.zig"}]},variables:{patterns:[{name:"meta.function.declaration.zig",patterns:[{captures:{1:{name:"storage.type.function.zig"},2:{name:"entity.name.type.zig"}},match:"\\b(fn)\\s+([A-Z][a-zA-Z0-9]*)\\b"},{captures:{1:{name:"storage.type.function.zig"},2:{name:"entity.name.function.zig"}},match:"\\b(fn)\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\b"},{begin:'\\b(fn)\\s+@"',beginCaptures:{1:{name:"storage.type.function.zig"}},end:'"',name:"entity.name.function.string.zig",patterns:[{include:"#stringcontent"}]},{match:"\\b(const|var|fn)\\b",name:"keyword.default.zig"}]},{name:"meta.function.call.zig",patterns:[{match:"([A-Z][a-zA-Z0-9]*)(?=\\s*\\()",name:"entity.name.type.zig"},{match:"([_a-zA-Z][_a-zA-Z0-9]*)(?=\\s*\\()",name:"entity.name.function.zig"}]},{name:"meta.variable.zig",patterns:[{match:"\\b[_a-zA-Z][_a-zA-Z0-9]*\\b",name:"variable.zig"},{begin:'@"',end:'"',name:"variable.string.zig",patterns:[{include:"#stringcontent"}]}]}]}},scopeName:"source.zig"});var n=[e];export{n as default};
@@ -1 +0,0 @@
1
- const e=Object.freeze({displayName:"Move",name:"move",patterns:[{include:"#address"},{include:"#comments"},{include:"#module"},{include:"#script"},{include:"#attributes"},{begin:"\\b(while)\\b",comment:"While experiment",name:"keyword.control.while.whaaat.move",while:"[a-z]"}],repository:{"=== DEPRECATED_BELOW ===":{},abilities:{comment:"Ability",match:"\\b(store|key|drop|copy)\\b",name:"support.type.ability.move"},address:{begin:"\\b(address)\\b",beginCaptures:{1:{name:"storage.modifier.type.address.keyword.move"}},comment:"Address block",end:"(?<=})",name:"meta.address_block.move",patterns:[{include:"#comments"},{begin:"(?<=address)",comment:"Address value/const",end:"(?=[{])",name:"meta.address.definition.move",patterns:[{include:"#comments"},{include:"#address_literal"},{comment:"Named Address",match:"\\b(\\w+)\\b",name:"entity.name.type.move"}]},{include:"#module"}]},as:{comment:"Keyword as (highlighted)",match:"\\b(as)\\b",name:"keyword.control.as.move"},"as-import":{comment:"Keyword as in import statement; not highlighted",match:"\\b(as)\\b",name:"meta.import.as.move"},attributes:{match:'#\\[(?:[\\w0-9=,_\\(\\)\\s"\\:=]+)\\]',name:"support.constant.attribute.move"},block:{begin:"{",comment:"Block expression or definition",end:"}",name:"meta.block.move",patterns:[{include:"#expr"}]},"block-comments":{comment:"Supported since https://github.com/diem/diem/pull/3714",patterns:[{begin:"/\\*[\\*!](?![\\*/])",comment:"Block documentation comment",end:"\\*/",name:"comment.block.documentation.move"},{begin:"/\\*",comment:"Block comment",end:"\\*/",name:"comment.block.move"}]},capitalized:{comment:"MyType - capitalized type name",match:"\\b([A-Z][a-zA-Z_0-9]*)\\b",name:"entity.name.type.use.move"},comments:{name:"meta.comments.move",patterns:[{include:"#line-comments"},{include:"#block-comments"}]},const:{begin:"\\b(const)\\b",beginCaptures:{1:{name:"storage.modifier.const.move"}},end:";",name:"meta.const.move",patterns:[{include:"#comments"},{include:"#primitives"},{include:"#literals"},{match:"\\b([\\w_]+)\\b",name:"constant.other.move"}]},control:{comment:"Control flow",match:"\\b(return|while|loop|if|else|break|continue|abort)\\b",name:"keyword.control.move"},entry:{comment:"entry",match:"\\b(entry)\\b",name:"storage.modifier.visibility.entry.move"},enum:{begin:"\\b(enum)\\b",beginCaptures:{1:{name:"keyword.control.enum.move"}},comment:"Enum syntax",end:"(?<=})",name:"meta.enum.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#type_param"},{comment:"Enum name (ident)",match:"\\b[A-Z][a-zA-Z_0-9]*\\b",name:"entity.name.type.enum.move"},{include:"#has"},{include:"#abilities"},{begin:"{",end:"}",name:"meta.enum.definition.move",patterns:[{include:"#comments"},{begin:"\\(",end:"\\)",name:"meta.enum.tuple.move",patterns:[{include:"#comments"},{include:"#types"}]},{begin:"{",end:"}",name:"meta.enum.struct.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#types"}]}]}]},error_const:{match:"\\b(E[A-Z][A-Za-z_]*)\\b",name:"variable.language.error.move"},escaped_identifier:{begin:"`",comment:"Escaped variable",end:"`",name:"variable.language.escaped.move"},expr:{comment:"Aggregate Expression",name:"meta.expression.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#expr_generic"},{include:"#error_const"},{include:"#packed_field"},{include:"#import"},{include:"#as"},{include:"#mut"},{include:"#let"},{include:"#types"},{include:"#literals"},{include:"#control"},{include:"#move_copy"},{include:"#resource_methods"},{include:"#self_access"},{include:"#module_access"},{include:"#label"},{include:"#macro_call"},{include:"#local_call"},{include:"#method_call"},{include:"#path_access"},{match:"\\$(?=[a-z])",name:"keyword.operator.macro.dollar.move"},{match:"(?<=[$])[a-z][A-Z_0-9a-z]*",name:"variable.other.meta.move"},{comment:"ALL_CONST_CAPS",match:"\\b([A-Z][A-Z_]+)\\b",name:"constant.other.move"},{comment:"CustomType",match:"\\b([A-Z][a-zA-Z_0-9]*)\\b",name:"entity.name.type.move"},{include:"#paren"},{include:"#block"}]},expr_generic:{begin:"<(?=([\\sa-z_,0-9A-Z<>]+>))",comment:"< angle brackets >",end:">",name:"meta.expression.generic.type.move",patterns:[{include:"#comments"},{include:"#types"},{include:"#capitalized"},{include:"#expr_generic"}]},friend:{begin:"\\b(friend)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.friend.move",patterns:[{include:"#comments"},{include:"#address_literal"},{comment:"Name of the imported module",match:"\\b([a-zA-Z][A-Za-z_0-9]*)\\b",name:"entity.name.type.module.move"}]},fun:{patterns:[{include:"#fun_signature"},{include:"#block"}]},fun_body:{begin:"{",comment:"Function body",end:"(?<=})",name:"meta.fun_body.move",patterns:[{include:"#expr"}]},fun_call:{begin:"\\b(\\w+)\\s*(?:<[\\w\\s,]+>)?\\s*[(]",beginCaptures:{1:{name:"entity.name.function.call.move"}},comment:"Function call",end:"[)]",name:"meta.fun_call.move",patterns:[{include:"#comments"},{include:"#resource_methods"},{include:"#self_access"},{include:"#module_access"},{include:"#move_copy"},{include:"#literals"},{include:"#fun_call"},{include:"#block"},{include:"#mut"},{include:"#as"}]},fun_signature:{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"storage.modifier.fun.move"}},comment:"Function signature",end:"(?=[;{])",name:"meta.fun_signature.move",patterns:[{include:"#comments"},{include:"#module_access"},{include:"#capitalized"},{include:"#types"},{include:"#mut"},{begin:"(?<=\\bfun)",comment:"Function name",end:"(?=[<(])",name:"meta.function_name.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{match:"\\b(\\w+)\\b",name:"entity.name.function.move"}]},{include:"#type_param"},{begin:"[(]",comment:"Parentheses",end:"[)]",name:"meta.parentheses.move",patterns:[{include:"#comments"},{include:"#self_access"},{include:"#expr_generic"},{include:"#escaped_identifier"},{include:"#module_access"},{include:"#capitalized"},{include:"#types"},{include:"#mut"}]},{comment:"Keyword acquires",match:"\\b(acquires)\\b",name:"storage.modifier"}]},has:{comment:"Has Abilities",match:"\\b(has)\\b",name:"keyword.control.ability.has.move"},has_ability:{begin:"(?<=[})])\\s+(has)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.has.ability.move",patterns:[{include:"#comments"},{include:"#abilities"}]},ident:{match:"\\b([a-zA-Z][A-Z_a-z0-9]*)\\b",name:"meta.identifier.move"},import:{begin:"\\b(use)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.import.move",patterns:[{include:"#comments"},{include:"#use_fun"},{include:"#address_literal"},{include:"#as-import"},{comment:"Uppercase entities",match:"\\b([A-Z]\\w*)\\b",name:"entity.name.type.move"},{begin:"{",comment:"Module members",end:"}",patterns:[{include:"#comments"},{include:"#as-import"},{comment:"Uppercase entities",match:"\\b([A-Z]\\w*)\\b",name:"entity.name.type.move"}]},{comment:"Name of the imported module",match:"\\b(\\w+)\\b",name:"meta.entity.name.type.module.move"}]},label:{comment:"Label",match:"'[a-z][a-z_0-9]*",name:"string.quoted.single.label.move"},let:{comment:"Keyword let",match:"\\b(let)\\b",name:"keyword.control.move"},"line-comments":{begin:"//",comment:"Single-line comment",end:"$",name:"comment.line.double-slash.move"},literals:{comment:"Literals supported in Move",name:"meta.literal.move",patterns:[{comment:"base16 address literal",match:"@0x[A-F0-9a-f]+",name:"support.constant.address.base16.move"},{comment:"named address literal @[ident]",match:"@[a-zA-Z][a-zA-Z_0-9]*",name:"support.constant.address.name.move"},{comment:"Hex literal",match:"0x[_a-fA-F0-9]+(?:u(?:8|16|32|64|128|256))?",name:"constant.numeric.hex.move"},{comment:"Numeric literal",match:"(?<!(?:\\w|(?:(?<!\\.)\\.)))[0-9][_0-9]*(?:\\.(?!\\.)(?:[0-9][_0-9]*)?)?(?:[eE][+\\-]?[_0-9]+)?(?:[u](?:8|16|32|64|128|256))?",name:"constant.numeric.move"},{begin:'\\bb"',comment:"vector ascii bytestring literal",end:'"',name:"meta.vector.literal.ascii.move",patterns:[{comment:"Special symbol escape",match:'\\\\[nrt\\0"]',name:"constant.character.escape.move"},{comment:"HEX Escape",match:"\\\\x[a-fA-F0-9][A-Fa-f0-9]",name:"constant.character.escape.hex.move"},{comment:"ASCII Character",match:"[\\x00-\\x7F]",name:"string.quoted.double.raw.move"}]},{begin:'x"',comment:"vector hex literal",end:'"',name:"meta.vector.literal.hex.move",patterns:[{comment:"vector hex literal",match:"[A-Fa-f0-9]+",name:"constant.character.move"}]},{comment:"bool literal",match:"\\b(?:true|false)\\b",name:"constant.language.boolean.move"},{begin:"vector\\[",comment:"vector literal (macro?)",end:"\\]",name:"meta.vector.literal.macro.move",patterns:[{include:"#expr"}]}]},local_call:{comment:"call to a local / imported fun",match:"\\b([a-z][_a-z0-9]*)(?=[<\\(])",name:"entity.name.function.call.local.move"},macro:{begin:"\\b(macro)\\b",beginCaptures:{1:{name:"keyword.control.macro.move"}},comment:"macro fun [ident] {}",end:"(?<=})",name:"meta.macro.move",patterns:[{include:"#comments"},{include:"#fun"}]},macro_call:{captures:{2:{name:"support.function.macro.move"}},comment:"Macro fun call",match:"(\\b|\\.)([a-z][A-Za-z0-9_]*)!",name:"meta.macro.call"},method_call:{captures:{1:{name:"entity.name.function.call.path.move"}},comment:"<expr>.[ident]<>?() call",match:"\\.([a-z][_a-z0-9]*)(?=[<\\(])",name:"meta.path.call.move"},module:{begin:"\\b(module|spec)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},comment:"Module definition",end:"(?<=})",name:"meta.module.move",patterns:[{include:"#comments"},{begin:"(?<=(module|spec))",comment:"Module name",end:"(?={)",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{begin:"(?<=\\b(module|spec))",comment:"Module namespace / address",end:"(?=[(::){])",name:"constant.other.move"},{begin:"(?<=::)",comment:"Module name",end:"(?=[\\s{])",name:"entity.name.type.move"}]},{begin:"{",comment:"Module scope",end:"}",name:"meta.module_scope.move",patterns:[{include:"#comments"},{include:"#attributes"},{include:"#entry"},{include:"#public-scope"},{include:"#public"},{include:"#native"},{include:"#import"},{include:"#friend"},{include:"#const"},{include:"#struct"},{include:"#has_ability"},{include:"#enum"},{include:"#macro"},{include:"#fun"},{include:"#spec"}]}]},module_access:{captures:{1:{name:"meta.entity.name.type.accessed.module.move"},2:{name:"entity.name.function.call.move"}},comment:"Use of module type or method",match:"\\b(\\w+)::(\\w+)\\b",name:"meta.module_access.move"},move_copy:{comment:"Keywords move and copy",match:"\\b(move|copy)\\b",name:"variable.language.move"},mut:{comment:"Mutable reference and let mut",match:"\\b(mut)\\b",name:"storage.modifier.mut.move"},native:{comment:"native",match:"\\b(native)\\b",name:"storage.modifier.visibility.native.move"},packed_field:{comment:"[ident]: ",match:"[a-z][a-z0-9_]+\\s*:\\s*(?=\\s)",name:"meta.struct.field.move"},paren:{begin:"\\(",end:"\\)",name:"meta.paren.move",patterns:[{include:"#expr"}]},path_access:{comment:"<expr>.[ident] access",match:"\\.[a-z][_a-z0-9]*\\b",name:"meta.path.access.move"},phantom:{comment:"Keyword phantom inside type parameters",match:"\\b(phantom)\\b",name:"keyword.control.phantom.move"},primitives:{comment:"Primitive types",match:"\\b(u8|u16|u32|u64|u128|u256|address|bool|signer)\\b",name:"support.type.primitives.move"},public:{comment:"public",match:"\\b(public)\\b",name:"storage.modifier.visibility.public.move"},"public-scope":{begin:"(?<=\\b(public))\\s*\\(",comment:"public (friend/script/package)",end:"\\)",name:"meta.public.scoped.move",patterns:[{include:"#comments"},{match:"\\b(friend|script|package)\\b",name:"keyword.control.public.scope.move"}]},resource_methods:{comment:"Methods to work with resource",match:"\\b(borrow_global|borrow_global_mut|exists|move_from|move_to_sender|move_to)\\b",name:"support.function.typed.move"},script:{begin:"\\b(script)\\b",beginCaptures:{1:{name:"storage.modifier.script.move"}},end:"(?<=})",name:"meta.script.move",patterns:[{include:"#comments"},{begin:"{",comment:"Script scope",end:"}",name:"meta.script_scope.move",patterns:[{include:"#const"},{include:"#comments"},{include:"#import"},{include:"#fun"}]}]},self_access:{captures:{1:{name:"variable.language.self.move"},2:{name:"entity.name.function.call.move"}},comment:"Use of Self",match:"\\b(Self)::(\\w+)\\b",name:"meta.self_access.move"},spec:{begin:"\\b(spec)\\b",beginCaptures:{1:{name:"storage.modifier.spec.move"}},end:"(?<=[;}])",name:"meta.spec.move",patterns:[{comment:"Spec target",match:"\\b(module|schema|struct|fun)",name:"storage.modifier.spec.target.move"},{comment:"Spec define inline",match:"\\b(define)",name:"storage.modifier.spec.define.move"},{comment:"Target name",match:"\\b(\\w+)\\b",name:"entity.name.function.move"},{begin:"{",comment:"Spec block",end:"}",patterns:[{include:"#comments"},{include:"#spec_block"},{include:"#spec_types"},{include:"#spec_define"},{include:"#spec_keywords"},{include:"#control"},{include:"#fun_call"},{include:"#literals"},{include:"#types"},{include:"#let"}]}]},spec_block:{begin:"{",comment:"Spec block",end:"}",name:"meta.spec_block.move",patterns:[{include:"#comments"},{include:"#spec_block"},{include:"#spec_types"},{include:"#fun_call"},{include:"#literals"},{include:"#control"},{include:"#types"},{include:"#let"}]},spec_define:{begin:"\\b(define)\\b",beginCaptures:{1:{name:"keyword.control.move.spec"}},comment:"Spec define keyword",end:"(?=[;{])",name:"meta.spec_define.move",patterns:[{include:"#comments"},{include:"#spec_types"},{include:"#types"},{begin:"(?<=\\bdefine)",comment:"Function name",end:"(?=[(])",patterns:[{include:"#comments"},{match:"\\b(\\w+)\\b",name:"entity.name.function.move"}]}]},spec_keywords:{match:"\\b(global|pack|unpack|pragma|native|include|ensures|requires|invariant|apply|aborts_if|modifies)\\b",name:"keyword.control.move.spec"},spec_types:{comment:"Spec-only types",match:"\\b(range|num|vector|bool|u8|u16|u32|u64|u128|u256|address)\\b",name:"support.type.vector.move"},struct:{begin:"\\b(struct)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:"(?<=[};\\)])",name:"meta.struct.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#has"},{include:"#abilities"},{comment:"Struct name (ident)",match:"\\b[A-Z][a-zA-Z_0-9]*\\b",name:"entity.name.type.struct.move"},{begin:"\\(",comment:"Positional fields",end:"\\)",name:"meta.struct.paren.move",patterns:[{include:"#comments"},{include:"#capitalized"},{include:"#types"}]},{include:"#type_param"},{begin:"\\(",comment:"Simple struct",end:"(?<=[)])",name:"meta.struct.paren.move",patterns:[{include:"#comments"},{include:"#types"}]},{begin:"{",comment:"Struct body",end:"}",name:"meta.struct.body.move",patterns:[{include:"#comments"},{include:"#self_access"},{include:"#escaped_identifier"},{include:"#module_access"},{include:"#expr_generic"},{include:"#capitalized"},{include:"#types"}]},{include:"#has_ability"}]},struct_pack:{begin:"(?<=[A-Za-z0-9_>])\\s*{",comment:"Struct { field: value... }; identified as generic / ident followed by curly's",end:"}",name:"meta.struct.pack.move",patterns:[{include:"#comments"}]},type_param:{begin:"<",comment:"Generic type param",end:">",name:"meta.generic_param.move",patterns:[{include:"#comments"},{include:"#phantom"},{include:"#capitalized"},{include:"#module_access"},{include:"#abilities"}]},types:{comment:"Built-in types + vector",name:"meta.types.move",patterns:[{include:"#primitives"},{include:"#vector"}]},use_fun:{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"storage.modifier.fun.move"}},comment:"use { fun } internals",end:"(?=;)",name:"meta.import.fun.move",patterns:[{include:"#comments"},{comment:"as keyword",match:"\\b(as)\\b",name:"keyword.control.as.move"},{comment:"Self keyword",match:"\\b(Self)\\b",name:"variable.language.self.use.fun.move"},{comment:"Function name",match:"\\b(_______[a-z][a-z_0-9]+)\\b",name:"entity.name.function.use.move"},{include:"#types"},{include:"#escaped_identifier"},{include:"#capitalized"}]},vector:{comment:"vector type",match:"\\b(vector)\\b",name:"support.type.vector.move"}},scopeName:"source.move"});var n=[e];export{n as default};