-
Notifications
You must be signed in to change notification settings - Fork 2
/
options.ts
69 lines (61 loc) · 2.58 KB
/
options.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import type { SupportOptions } from "prettier";
import {
type AutocompleteStringList,
type StringListToInterfaceKey,
fallbackIndicator,
makeCommentsOptionName,
makeIdentifiersOptionName,
makeTagsOptionName,
} from "../utils.js";
import { language } from "./language.js";
const DEFAULT_COMMENTS_OR_TAGS = ["glsl", "shader"] as const;
const DEFAULT_COMMENTS = DEFAULT_COMMENTS_OR_TAGS;
type Comments = AutocompleteStringList<(typeof DEFAULT_COMMENTS)[number]>;
type DefaultCommentsHolder = StringListToInterfaceKey<typeof DEFAULT_COMMENTS>;
const DEFAULT_TAGS = DEFAULT_COMMENTS_OR_TAGS;
type Tags = AutocompleteStringList<(typeof DEFAULT_TAGS)[number]>;
type DefaultTagsHolder = StringListToInterfaceKey<typeof DEFAULT_TAGS>;
const EMBEDDED_LANGUAGE_IDENTIFIERS = makeIdentifiersOptionName(language);
const EMBEDDED_LANGUAGE_COMMENTS = makeCommentsOptionName(language);
const EMBEDDED_LANGUAGE_TAGS = makeTagsOptionName(language);
export const options = {
[EMBEDDED_LANGUAGE_IDENTIFIERS]: {
category: "Embed",
type: "string",
array: true,
default: [{ value: [...DEFAULT_COMMENTS_OR_TAGS] }],
description:
"Tag or comment identifiers that make their subsequent template literals be identified as embedded GLSL language. This option requires the `prettier-plugin-glsl` plugin.",
deprecated: `Please use \`${EMBEDDED_LANGUAGE_COMMENTS}\` or \`${EMBEDDED_LANGUAGE_TAGS}\`.`,
},
[EMBEDDED_LANGUAGE_COMMENTS]: {
category: "Embed",
type: "string",
array: true,
default: [{ value: [fallbackIndicator] }],
description:
"Block comments that make their subsequent template literals be identified as embedded GLSL language. This option requires the `prettier-plugin-glsl` plugin.",
},
[EMBEDDED_LANGUAGE_TAGS]: {
category: "Embed",
type: "string",
array: true,
default: [{ value: [fallbackIndicator] }],
description:
"Tags that make their subsequent template literals be identified as embedded GLSL language. This option requires the `prettier-plugin-glsl` plugin.",
},
} as const satisfies SupportOptions;
type Options = typeof options;
declare module "../types.js" {
interface EmbeddedOptions extends Options {}
interface EmbeddedDefaultCommentsHolder extends DefaultCommentsHolder {}
interface EmbeddedDefaultTagsHolder extends DefaultTagsHolder {}
interface PluginEmbedOptions {
/**
* @deprecated Please use `embeddedGlslComments` or `embeddedGlslTags`.
*/
[EMBEDDED_LANGUAGE_IDENTIFIERS]?: (Comments[number] | Tags[number])[];
[EMBEDDED_LANGUAGE_COMMENTS]?: Comments;
[EMBEDDED_LANGUAGE_TAGS]?: Tags;
}
}