@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.
207 lines (206 loc) • 3.18 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 = {
comments: {
lineComment: "--",
blockComment: ["--[[", "]]"]
},
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: ".lua",
keywords: [
"and",
"break",
"do",
"else",
"elseif",
"end",
"false",
"for",
"function",
"goto",
"if",
"in",
"local",
"nil",
"not",
"or",
"repeat",
"return",
"then",
"true",
"until",
"while"
],
brackets: [
{
token: "delimiter.bracket",
open: "{",
close: "}"
},
{
token: "delimiter.array",
open: "[",
close: "]"
},
{
token: "delimiter.parenthesis",
open: "(",
close: ")"
}
],
operators: [
"+",
"-",
"*",
"/",
"%",
"^",
"#",
"==",
"~=",
"<=",
">=",
"<",
">",
"=",
";",
":",
",",
".",
"..",
"..."
],
symbols: /[=><!~?:&|+\-*\/\^%]+/,
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
tokenizer: {
root: [
[/[a-zA-Z_]\w*/, { cases: {
"@keywords": { token: "keyword.$0" },
"@default": "identifier"
} }],
{ include: "@whitespace" },
[/(,)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/, [
"delimiter",
"",
"key",
"",
"delimiter"
]],
[/({)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/, [
"@brackets",
"",
"key",
"",
"delimiter"
]],
[/[{}()\[\]]/, "@brackets"],
[/@symbols/, { cases: {
"@operators": "delimiter",
"@default": ""
} }],
[/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"],
[/\d+?/, "number"],
[/[;,.]/, "delimiter"],
[/"([^"\\]|\\.)*$/, "string.invalid"],
[/'([^'\\]|\\.)*$/, "string.invalid"],
[
/"/,
"string",
"@string.\""
],
[
/'/,
"string",
"@string.'"
]
],
whitespace: [
[/[ \t\r\n]+/, ""],
[
/--\[([=]*)\[/,
"comment",
"@comment.$1"
],
[/--.*$/, "comment"]
],
comment: [
[/[^\]]+/, "comment"],
[/\]([=]*)\]/, { cases: {
"$1==$S2": {
token: "comment",
next: "@pop"
},
"@default": "comment"
} }],
[/./, "comment"]
],
string: [
[/[^\\"']+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[/["']/, { cases: {
"$#==$S2": {
token: "string",
next: "@pop"
},
"@default": "string"
} }]
]
}
};
export { conf, language };