@graphql-hive/laboratory
Version:
[Hive](https://the-guild.dev/graphql/hive) is a fully open-source schema registry, analytics, metrics and gateway for [GraphQL federation](https://the-guild.dev/graphql/hive/federation) and other GraphQL APIs.
198 lines (197 loc) • 3 kB
JavaScript
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
* Released under the MIT license
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/
var conf = {
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [
{
open: "{",
close: "}"
},
{
open: "[",
close: "]"
},
{
open: "(",
close: ")"
},
{
open: "\"",
close: "\""
},
{
open: "'",
close: "'"
}
],
surroundingPairs: [
{
open: "{",
close: "}"
},
{
open: "[",
close: "]"
},
{
open: "(",
close: ")"
},
{
open: "\"",
close: "\""
},
{
open: "'",
close: "'"
}
]
}, language = {
defaultToken: "",
tokenPostfix: ".dockerfile",
variable: /\${?[\w]+}?/,
tokenizer: {
root: [
{ include: "@whitespace" },
{ include: "@comment" },
[/(ONBUILD)(\s+)/, ["keyword", ""]],
[/(ENV)(\s+)([\w]+)/, [
"keyword",
"",
{
token: "variable",
next: "@arguments"
}
]],
[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/, {
token: "keyword",
next: "@arguments"
}]
],
arguments: [
{ include: "@whitespace" },
{ include: "@strings" },
[/(@variable)/, { cases: {
"@eos": {
token: "variable",
next: "@popall"
},
"@default": "variable"
} }],
[/\\/, { cases: {
"@eos": "",
"@default": ""
} }],
[/./, { cases: {
"@eos": {
token: "",
next: "@popall"
},
"@default": ""
} }]
],
whitespace: [[/\s+/, { cases: {
"@eos": {
token: "",
next: "@popall"
},
"@default": ""
} }]],
comment: [[
/(^#.*$)/,
"comment",
"@popall"
]],
strings: [
[
/\\'$/,
"",
"@popall"
],
[/\\'/, ""],
[
/'$/,
"string",
"@popall"
],
[
/'/,
"string",
"@stringBody"
],
[
/"$/,
"string",
"@popall"
],
[
/"/,
"string",
"@dblStringBody"
]
],
stringBody: [
[/[^\\\$']/, { cases: {
"@eos": {
token: "string",
next: "@popall"
},
"@default": "string"
} }],
[/\\./, "string.escape"],
[
/'$/,
"string",
"@popall"
],
[
/'/,
"string",
"@pop"
],
[/(@variable)/, "variable"],
[/\\$/, "string"],
[
/$/,
"string",
"@popall"
]
],
dblStringBody: [
[/[^\\\$"]/, { cases: {
"@eos": {
token: "string",
next: "@popall"
},
"@default": "string"
} }],
[/\\./, "string.escape"],
[
/"$/,
"string",
"@popall"
],
[
/"/,
"string",
"@pop"
],
[/(@variable)/, "variable"],
[/\\$/, "string"],
[
/$/,
"string",
"@popall"
]
]
}
};
export { conf, language };