@nuxt/scripts 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/200.html +11 -11
- package/dist/client/404.html +11 -11
- package/dist/client/_nuxt/{C0cterrC.js → BB1wM0JV.js} +1 -1
- package/dist/client/_nuxt/BJn7Ek5W.js +1 -0
- package/dist/client/_nuxt/{o5b8QYQO.js → Bfj2ThZ4.js} +1 -1
- package/dist/client/_nuxt/Bj0fF4lQ.js +1 -0
- package/dist/client/_nuxt/{DGMFlOLs.js → BmSZh3NL.js} +1 -1
- package/dist/client/_nuxt/{B5NHDIr7.js → Cp2HGa90.js} +2 -2
- package/dist/client/_nuxt/{Bf6Ng02J.js → D3J95Otb.js} +3 -3
- package/dist/client/_nuxt/{BsZo98M5.js → Gn7Sk0ke.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/e7e8b021-1e94-4c86-ad2e-d6ac965b2190.json +1 -0
- package/dist/client/_nuxt/{ISosJq17.js → ixTSYuOP.js} +1 -1
- package/dist/client/_nuxt/{P5f3PASf.js → zhgf4ixb.js} +1 -1
- package/dist/client/index.html +11 -11
- package/dist/module.json +1 -1
- package/dist/registry.d.mts +1 -9
- package/dist/registry.d.ts +1 -9
- package/dist/registry.mjs +28 -24
- package/dist/runtime/components/ScriptGoogleAdsense.vue +50 -0
- package/dist/runtime/composables/useAnalyticsPageEvent.d.ts +4 -1
- package/dist/runtime/composables/useElementScriptTrigger.js +2 -0
- package/dist/runtime/registry/cloudflare-web-analytics.d.ts +16 -1
- package/dist/runtime/registry/fathom-analytics.d.ts +28 -1
- package/dist/runtime/registry/google-adsense.d.ts +30 -0
- package/dist/runtime/registry/google-adsense.js +37 -0
- package/dist/runtime/registry/google-analytics.d.ts +8 -1
- package/dist/runtime/registry/google-analytics.js +4 -2
- package/dist/runtime/registry/google-maps.d.ts +9 -1
- package/dist/runtime/registry/google-tag-manager.d.ts +5 -1
- package/dist/runtime/registry/hotjar.d.ts +7 -1
- package/dist/runtime/registry/intercom.d.ts +19 -1
- package/dist/runtime/registry/matomo-analytics.d.ts +11 -1
- package/dist/runtime/registry/meta-pixel.d.ts +5 -1
- package/dist/runtime/registry/meta-pixel.js +1 -2
- package/dist/runtime/registry/npm.d.ts +11 -1
- package/dist/runtime/registry/plausible-analytics.d.ts +7 -1
- package/dist/runtime/registry/plausible-analytics.js +2 -2
- package/dist/runtime/registry/segment.d.ts +7 -1
- package/dist/runtime/registry/segment.js +2 -2
- package/dist/runtime/registry/stripe.d.ts +5 -1
- package/dist/runtime/registry/x-pixel.d.ts +7 -1
- package/dist/runtime/utils.d.ts +1 -1
- package/package.json +3 -2
- package/dist/client/_nuxt/BAMIS8DD.js +0 -1
- package/dist/client/_nuxt/Db2-y2xY.js +0 -1
- package/dist/client/_nuxt/builds/meta/3255a134-7caf-4d76-96f4-05475e276415.json +0 -1
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { type Input } from '#nuxt-scripts-validator';
|
|
2
2
|
import type { RegistryScriptInput } from '#nuxt-scripts';
|
|
3
|
-
export declare const IntercomOptions:
|
|
3
|
+
export declare const IntercomOptions: import("valibot").ObjectSchema<{
|
|
4
|
+
app_id: import("valibot").StringSchema<string>;
|
|
5
|
+
api_base: import("valibot").OptionalSchema<import("valibot").UnionSchema<(import("valibot").LiteralSchema<"https://api-iam.intercom.io", "https://api-iam.intercom.io"> | import("valibot").LiteralSchema<"https://api-iam.eu.intercom.io", "https://api-iam.eu.intercom.io"> | import("valibot").LiteralSchema<"https://api-iam.au.intercom.io", "https://api-iam.au.intercom.io">)[], "https://api-iam.intercom.io" | "https://api-iam.eu.intercom.io" | "https://api-iam.au.intercom.io">, undefined, "https://api-iam.intercom.io" | "https://api-iam.eu.intercom.io" | "https://api-iam.au.intercom.io" | undefined>;
|
|
6
|
+
name: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
|
|
7
|
+
email: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
|
|
8
|
+
user_id: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
|
|
9
|
+
alignment: import("valibot").OptionalSchema<import("valibot").UnionSchema<(import("valibot").LiteralSchema<"left", "left"> | import("valibot").LiteralSchema<"right", "right">)[], "left" | "right">, undefined, "left" | "right" | undefined>;
|
|
10
|
+
horizontal_padding: import("valibot").OptionalSchema<import("valibot").NumberSchema<number>, undefined, number | undefined>;
|
|
11
|
+
vertical_padding: import("valibot").OptionalSchema<import("valibot").NumberSchema<number>, undefined, number | undefined>;
|
|
12
|
+
}, undefined, {
|
|
13
|
+
app_id: string;
|
|
14
|
+
name?: string | undefined;
|
|
15
|
+
api_base?: "https://api-iam.intercom.io" | "https://api-iam.eu.intercom.io" | "https://api-iam.au.intercom.io" | undefined;
|
|
16
|
+
email?: string | undefined;
|
|
17
|
+
user_id?: string | undefined;
|
|
18
|
+
alignment?: "left" | "right" | undefined;
|
|
19
|
+
horizontal_padding?: number | undefined;
|
|
20
|
+
vertical_padding?: number | undefined;
|
|
21
|
+
}>;
|
|
4
22
|
export type IntercomInput = RegistryScriptInput<typeof IntercomOptions>;
|
|
5
23
|
export interface IntercomApi {
|
|
6
24
|
Intercom: ((event: 'boot', data?: Input<typeof IntercomOptions>) => void) & ((event: 'shutdown') => void) & ((event: 'update', options?: Input<typeof IntercomOptions>) => void) & ((event: 'hide') => void) & ((event: 'show') => void) & ((event: 'showSpace', spaceName: 'home' | 'messages' | 'help' | 'news' | 'tasks' | 'tickets' | string) => void) & ((event: 'showMessages') => void) & ((event: 'showNewMessage', content?: string) => void) & ((event: 'onHide', fn: () => void) => void) & ((event: 'onShow', fn: () => void) => void) & ((event: 'onUnreadCountChange', fn: () => void) => void) & ((event: 'trackEvent', eventName: string, metadata?: Record<string, any>) => void) & ((event: 'getVisitorId') => Promise<string>) & ((event: 'startTour', tourId: string | number) => void) & ((event: 'showArticle', articleId: string | number) => void) & ((event: 'showNews', newsItemId: string | number) => void) & ((event: 'startSurvey', surveyId: string | number) => void) & ((event: 'startChecklist', checklistId: string | number) => void) & ((event: 'showTicket', ticketId: string | number) => void) & ((event: 'showConversation', conversationId: string | number) => void) & ((event: 'onUserEmailSupplied', fn: () => void) => void) & ((event: string, ...params: any[]) => void);
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import type { RegistryScriptInput } from '#nuxt-scripts';
|
|
2
|
-
export declare const MatomoAnalyticsOptions:
|
|
2
|
+
export declare const MatomoAnalyticsOptions: import("valibot").ObjectSchema<{
|
|
3
|
+
matomoUrl: import("valibot").StringSchema<string>;
|
|
4
|
+
siteId: import("valibot").StringSchema<string>;
|
|
5
|
+
trackPageView: import("valibot").OptionalSchema<import("valibot").BooleanSchema<boolean>, undefined, boolean | undefined>;
|
|
6
|
+
enableLinkTracking: import("valibot").OptionalSchema<import("valibot").BooleanSchema<boolean>, undefined, boolean | undefined>;
|
|
7
|
+
}, undefined, {
|
|
8
|
+
matomoUrl: string;
|
|
9
|
+
siteId: string;
|
|
10
|
+
trackPageView?: boolean | undefined;
|
|
11
|
+
enableLinkTracking?: boolean | undefined;
|
|
12
|
+
}>;
|
|
3
13
|
export type MatomoAnalyticsInput = RegistryScriptInput<typeof MatomoAnalyticsOptions, false>;
|
|
4
14
|
interface MatomoAnalyticsApi {
|
|
5
15
|
_paq: unknown[];
|
|
@@ -32,7 +32,11 @@ declare global {
|
|
|
32
32
|
interface Window extends MetaPixelApi {
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
export declare const MetaPixelOptions:
|
|
35
|
+
export declare const MetaPixelOptions: import("valibot").ObjectSchema<{
|
|
36
|
+
id: import("valibot").UnionSchema<(import("valibot").StringSchema<string> | import("valibot").NumberSchema<number>)[], string | number>;
|
|
37
|
+
}, undefined, {
|
|
38
|
+
id: string | number;
|
|
39
|
+
}>;
|
|
36
40
|
export type MetaPixelInput = RegistryScriptInput<typeof MetaPixelOptions>;
|
|
37
41
|
export declare function useScriptMetaPixel<T extends MetaPixelApi>(_options?: MetaPixelInput): T & {
|
|
38
42
|
$script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useRegistryScript } from "../utils.js";
|
|
2
|
-
import { MetaPixelScriptResolver } from "../../registry";
|
|
3
2
|
import { number, object, string, union } from "#nuxt-scripts-validator";
|
|
4
3
|
export const MetaPixelOptions = object({
|
|
5
4
|
id: union([string(), number()])
|
|
@@ -7,7 +6,7 @@ export const MetaPixelOptions = object({
|
|
|
7
6
|
export function useScriptMetaPixel(_options) {
|
|
8
7
|
return useRegistryScript("metaPixel", (options) => ({
|
|
9
8
|
scriptInput: {
|
|
10
|
-
src:
|
|
9
|
+
src: "https://connect.facebook.net/en_US/fbevents.js",
|
|
11
10
|
crossorigin: false
|
|
12
11
|
},
|
|
13
12
|
schema: import.meta.dev ? MetaPixelOptions : void 0,
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import type { RegistryScriptInput } from '#nuxt-scripts';
|
|
2
|
-
export declare const NpmOptions:
|
|
2
|
+
export declare const NpmOptions: import("valibot").ObjectSchema<{
|
|
3
|
+
packageName: import("valibot").StringSchema<string>;
|
|
4
|
+
file: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
|
|
5
|
+
version: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
|
|
6
|
+
type: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
|
|
7
|
+
}, undefined, {
|
|
8
|
+
packageName: string;
|
|
9
|
+
file?: string | undefined;
|
|
10
|
+
version?: string | undefined;
|
|
11
|
+
type?: string | undefined;
|
|
12
|
+
}>;
|
|
3
13
|
export type NpmInput = RegistryScriptInput<typeof NpmOptions>;
|
|
4
14
|
export declare function useScriptNpm<T extends Record<string | symbol, any>>(_options: NpmInput): T & {
|
|
5
15
|
$script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { RegistryScriptInput } from '#nuxt-scripts';
|
|
2
|
-
export declare const PlausibleAnalyticsOptions:
|
|
2
|
+
export declare const PlausibleAnalyticsOptions: import("valibot").ObjectSchema<{
|
|
3
|
+
domain: import("valibot").StringSchema<string>;
|
|
4
|
+
extension: import("valibot").OptionalSchema<import("valibot").UnionSchema<(import("valibot").UnionSchema<(import("valibot").LiteralSchema<"hash", "hash"> | import("valibot").LiteralSchema<"outbound-links", "outbound-links"> | import("valibot").LiteralSchema<"file-downloads", "file-downloads"> | import("valibot").LiteralSchema<"tagged-events", "tagged-events"> | import("valibot").LiteralSchema<"revenue", "revenue"> | import("valibot").LiteralSchema<"pageview-props", "pageview-props"> | import("valibot").LiteralSchema<"compat", "compat"> | import("valibot").LiteralSchema<"local", "local"> | import("valibot").LiteralSchema<"manual", "manual">)[], "manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local"> | import("valibot").ArraySchema<import("valibot").UnionSchema<(import("valibot").LiteralSchema<"hash", "hash"> | import("valibot").LiteralSchema<"outbound-links", "outbound-links"> | import("valibot").LiteralSchema<"file-downloads", "file-downloads"> | import("valibot").LiteralSchema<"tagged-events", "tagged-events"> | import("valibot").LiteralSchema<"revenue", "revenue"> | import("valibot").LiteralSchema<"pageview-props", "pageview-props"> | import("valibot").LiteralSchema<"compat", "compat"> | import("valibot").LiteralSchema<"local", "local"> | import("valibot").LiteralSchema<"manual", "manual">)[], "manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local">, ("manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local")[]>)[], "manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local" | ("manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local")[]>, undefined, "manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local" | ("manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local")[] | undefined>;
|
|
5
|
+
}, undefined, {
|
|
6
|
+
domain: string;
|
|
7
|
+
extension?: "manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local" | ("manual" | "hash" | "outbound-links" | "file-downloads" | "tagged-events" | "revenue" | "pageview-props" | "compat" | "local")[] | undefined;
|
|
8
|
+
}>;
|
|
3
9
|
export type PlausibleAnalyticsInput = RegistryScriptInput<typeof PlausibleAnalyticsOptions, false>;
|
|
4
10
|
export interface PlausibleAnalyticsApi {
|
|
5
11
|
plausible: ((event: '404', options: Record<string, any>) => void) & ((event: 'event', options: Record<string, any>) => void) & ((...params: any[]) => void) & {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useRegistryScript } from "../utils.js";
|
|
2
|
-
import { PlausibleAnalyticsScriptResolver } from "../../registry";
|
|
3
2
|
import { array, literal, object, optional, string, union } from "#nuxt-scripts-validator";
|
|
4
3
|
const extensions = [
|
|
5
4
|
literal("hash"),
|
|
@@ -19,9 +18,10 @@ export const PlausibleAnalyticsOptions = object({
|
|
|
19
18
|
});
|
|
20
19
|
export function useScriptPlausibleAnalytics(_options) {
|
|
21
20
|
return useRegistryScript("plausibleAnalytics", (options) => {
|
|
21
|
+
const extensions2 = Array.isArray(options?.extension) ? options.extension.join(".") : [options?.extension];
|
|
22
22
|
return {
|
|
23
23
|
scriptInput: {
|
|
24
|
-
"src":
|
|
24
|
+
"src": options?.extension ? `https://plausible.io/js/script.${extensions2}.js` : "https://plausible.io/js/script.js",
|
|
25
25
|
"data-domain": options?.domain
|
|
26
26
|
},
|
|
27
27
|
schema: import.meta.dev ? PlausibleAnalyticsOptions : void 0,
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { RegistryScriptInput } from '#nuxt-scripts';
|
|
2
|
-
export declare const SegmentOptions:
|
|
2
|
+
export declare const SegmentOptions: import("valibot").ObjectSchema<{
|
|
3
|
+
writeKey: import("valibot").StringSchema<string>;
|
|
4
|
+
analyticsKey: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
|
|
5
|
+
}, undefined, {
|
|
6
|
+
writeKey: string;
|
|
7
|
+
analyticsKey?: string | undefined;
|
|
8
|
+
}>;
|
|
3
9
|
export type SegmentInput = RegistryScriptInput<typeof SegmentOptions>;
|
|
4
10
|
interface AnalyticsApi {
|
|
5
11
|
track: (event: string, properties?: Record<string, any>) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { joinURL } from "ufo";
|
|
1
2
|
import { useRegistryScript } from "../utils.js";
|
|
2
|
-
import { SegmentScriptResolver } from "../../registry";
|
|
3
3
|
import { object, optional, string } from "#nuxt-scripts-validator";
|
|
4
4
|
export const SegmentOptions = object({
|
|
5
5
|
writeKey: string(),
|
|
@@ -12,7 +12,7 @@ export function useScriptSegment(_options) {
|
|
|
12
12
|
return {
|
|
13
13
|
scriptInput: {
|
|
14
14
|
"data-global-segment-analytics-key": k,
|
|
15
|
-
"src":
|
|
15
|
+
"src": joinURL("https://cdn.segment.com/analytics.js/v1", options?.writeKey || "", "analytics.min.js")
|
|
16
16
|
},
|
|
17
17
|
clientInit: import.meta.server ? void 0 : () => {
|
|
18
18
|
window[k] = window[k] || [];
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/// <reference types="stripe-v3" />
|
|
2
2
|
import type { RegistryScriptInput } from '#nuxt-scripts';
|
|
3
|
-
export declare const StripeOptions:
|
|
3
|
+
export declare const StripeOptions: import("valibot").ObjectSchema<{
|
|
4
|
+
advancedFraudSignals: import("valibot").OptionalSchema<import("valibot").BooleanSchema<boolean>, undefined, boolean | undefined>;
|
|
5
|
+
}, undefined, {
|
|
6
|
+
advancedFraudSignals?: boolean | undefined;
|
|
7
|
+
}>;
|
|
4
8
|
export type StripeInput = RegistryScriptInput<typeof StripeOptions, false>;
|
|
5
9
|
export interface StripeApi {
|
|
6
10
|
Stripe: stripe.StripeStatic;
|
|
@@ -27,7 +27,13 @@ declare global {
|
|
|
27
27
|
interface Window extends XPixelApi {
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
export declare const XPixelOptions:
|
|
30
|
+
export declare const XPixelOptions: import("valibot").ObjectSchema<{
|
|
31
|
+
id: import("valibot").StringSchema<string>;
|
|
32
|
+
version: import("valibot").OptionalSchema<import("valibot").StringSchema<string>, undefined, string | undefined>;
|
|
33
|
+
}, undefined, {
|
|
34
|
+
id: string;
|
|
35
|
+
version?: string | undefined;
|
|
36
|
+
}>;
|
|
31
37
|
export type XPixelInput = RegistryScriptInput<typeof XPixelOptions>;
|
|
32
38
|
export declare function useScriptXPixel<T extends XPixelApi>(_options?: XPixelInput): T & {
|
|
33
39
|
$script: Promise<T> & import("@unhead/vue").VueScriptInstance<T>;
|
package/dist/runtime/utils.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type OptionsFn<O extends ObjectSchema<any>> = (options: Input<O>) => ({
|
|
|
7
7
|
schema?: O;
|
|
8
8
|
clientInit?: () => void;
|
|
9
9
|
});
|
|
10
|
-
export declare function scriptRuntimeConfig<T extends keyof ScriptRegistry>(key: T): ScriptRegistry;
|
|
10
|
+
export declare function scriptRuntimeConfig<T extends keyof ScriptRegistry>(key: T): ScriptRegistry[T];
|
|
11
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
12
|
$script: Promise<T> & VueScriptInstance<T>;
|
|
13
13
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxt/scripts",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.6",
|
|
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": {
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"bugs": {
|
|
18
18
|
"url": "https://github.com/nuxt/scripts/issues"
|
|
19
19
|
},
|
|
20
|
+
"sideEffects": false,
|
|
20
21
|
"exports": {
|
|
21
22
|
".": {
|
|
22
23
|
"types": "./dist/types.d.ts",
|
|
@@ -77,7 +78,7 @@
|
|
|
77
78
|
"pathe": "^1.1.2",
|
|
78
79
|
"pkg-types": "^1.1.1",
|
|
79
80
|
"semver": "^7.6.2",
|
|
80
|
-
"shiki": "^1.6.
|
|
81
|
+
"shiki": "^1.6.2",
|
|
81
82
|
"sirv": "^2.0.4",
|
|
82
83
|
"std-env": "^3.7.0",
|
|
83
84
|
"third-party-capital": "^1.0.28",
|
|
@@ -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
|
-
import e from"./BXfENWL6.js";const t=Object.freeze({displayName:"TeX",name:"tex",patterns:[{begin:"(?<=^\\s*)((\\\\)iffalse)",beginCaptures:{1:{name:"keyword.control.tex"},2:{name:"punctuation.definition.keyword.tex"}},contentName:"comment.line.percentage.tex",end:"(?<=^\\s*)((\\\\)(?:else|fi))",endCaptures:{1:{name:"keyword.control.tex"},2:{name:"punctuation.definition.keyword.tex"}},patterns:[{include:"#comment"},{include:"#conditionals"}]},{captures:{1:{name:"punctuation.definition.keyword.tex"}},match:"(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])",name:"keyword.control.tex"},{captures:{1:{name:"keyword.control.catcode.tex"},2:{name:"punctuation.definition.keyword.tex"},3:{name:"punctuation.separator.key-value.tex"},4:{name:"constant.numeric.category.tex"}},match:"((\\\\)catcode)`(?:\\\\)?.(=)(\\d+)",name:"meta.catcode.tex"},{include:"#comment"},{match:"[\\[\\]]",name:"punctuation.definition.brackets.tex"},{begin:"(\\$\\$|\\$)",beginCaptures:{1:{name:"punctuation.definition.string.begin.tex"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.tex"}},name:"meta.math.block.tex support.class.math.block.tex",patterns:[{match:"\\\\\\$",name:"constant.character.escape.tex"},{include:"#math"},{include:"$self"}]},{match:"\\\\\\\\",name:"keyword.control.newline.tex"},{captures:{1:{name:"punctuation.definition.function.tex"}},match:"(\\\\)(?:[,;]|(?:[\\p{Alphabetic}@]+(?:(?:_[\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*)?))",name:"support.function.general.tex"},{captures:{1:{name:"punctuation.definition.keyword.tex"}},match:"(\\\\)[^a-zA-Z@]",name:"constant.character.escape.tex"}],repository:{braces:{begin:"(?<!\\\\)\\{",beginCaptures:{0:{name:"punctuation.group.begin.tex"}},end:"(?<!\\\\)\\}",endCaptures:{0:{name:"punctuation.group.end.tex"}},name:"meta.group.braces.tex",patterns:[{include:"#braces"}]},comment:{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tex"}},end:"(?!\\G)",patterns:[{begin:"%:?",beginCaptures:{0:{name:"punctuation.definition.comment.tex"}},end:"$\\n?",name:"comment.line.percentage.tex"},{begin:"^(%!TEX) (\\S*) =",beginCaptures:{1:{name:"punctuation.definition.comment.tex"}},end:"$\\n?",name:"comment.line.percentage.directive.tex"}]},conditionals:{begin:"(?<=^\\s*)\\\\if[a-z]*",end:"(?<=^\\s*)\\\\fi",patterns:[{include:"#comment"},{include:"#conditionals"}]},math:{patterns:[{begin:"((\\\\)(?:text|mbox))(\\{)",beginCaptures:{1:{name:"constant.other.math.tex"},2:{name:"punctuation.definition.function.tex"},3:{name:"punctuation.definition.arguments.begin.tex meta.text.normal.tex"}},contentName:"meta.text.normal.tex",end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.tex meta.text.normal.tex"}},patterns:[{include:"#math"},{include:"$self"}]},{match:"\\\\{|\\\\}",name:"punctuation.math.bracket.pair.tex"},{match:"\\\\(left|right|((big|bigg|Big|Bigg)[lr]?))([\\(\\[\\<\\>\\]\\)\\.\\|]|\\\\[{}|]|\\\\[lr]?[Vv]ert|\\\\[lr]angle)",name:"punctuation.math.bracket.pair.big.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)(?![a-zA-Z@])",name:"constant.character.math.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\b",name:"constant.character.math.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\b",name:"constant.other.math.tex"},{begin:"((\\\\)Sexpr(\\{))",beginCaptures:{1:{name:"support.function.sexpr.math.tex"},2:{name:"punctuation.definition.function.math.tex"},3:{name:"punctuation.section.embedded.begin.math.tex"}},contentName:"support.function.sexpr.math.tex",end:"(((\\})))",endCaptures:{1:{name:"support.function.sexpr.math.tex"},2:{name:"punctuation.section.embedded.end.math.tex"},3:{name:"source.r"}},name:"meta.embedded.line.r",patterns:[{begin:"\\G(?!\\})",end:"(?=\\})",name:"source.r",patterns:[{include:"source.r"}]}]},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(?!begin\\{|verb)([A-Za-z]+)",name:"constant.other.general.math.tex"},{match:"(?<!\\\\)\\{",name:"punctuation.math.begin.bracket.curly.tex"},{match:"(?<!\\\\)\\}",name:"punctuation.math.end.bracket.curly.tex"},{match:"(?<!\\\\)\\(",name:"punctuation.math.begin.bracket.round.tex"},{match:"(?<!\\\\)\\)",name:"punctuation.math.end.bracket.round.tex"},{match:"(([0-9]*[\\.][0-9]+)|[0-9]+)",name:"constant.numeric.math.tex"},{match:"[\\+\\*/_\\^-]",name:"punctuation.math.operator.tex"}]}},scopeName:"text.tex",embeddedLangs:["r"]});var n=[...e,t];export{n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"3255a134-7caf-4d76-96f4-05475e276415","timestamp":1717331889974,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|