@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.
192 lines (191 loc) • 3.48 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: "COMMENT" },
brackets: [["(", ")"]],
autoClosingPairs: [
{
open: "{",
close: "}"
},
{
open: "[",
close: "]"
},
{
open: "(",
close: ")"
},
{
open: "\"",
close: "\""
},
{
open: ":",
close: "."
}
],
surroundingPairs: [
{
open: "{",
close: "}"
},
{
open: "[",
close: "]"
},
{
open: "(",
close: ")"
},
{
open: "`",
close: "`"
},
{
open: "\"",
close: "\""
},
{
open: "'",
close: "'"
},
{
open: ":",
close: "."
}
],
folding: { markers: {
start: /* @__PURE__ */ RegExp("^\\s*(::\\s*|COMMENT\\s+)#region"),
end: /* @__PURE__ */ RegExp("^\\s*(::\\s*|COMMENT\\s+)#endregion")
} }
}, language = {
tokenPostfix: ".lexon",
ignoreCase: !0,
keywords: [
"lexon",
"lex",
"clause",
"terms",
"contracts",
"may",
"pay",
"pays",
"appoints",
"into",
"to"
],
typeKeywords: [
"amount",
"person",
"key",
"time",
"date",
"asset",
"text"
],
operators: [
"less",
"greater",
"equal",
"le",
"gt",
"or",
"and",
"add",
"added",
"subtract",
"subtracted",
"multiply",
"multiplied",
"times",
"divide",
"divided",
"is",
"be",
"certified"
],
symbols: /[=><!~?:&|+\-*\/\^%]+/,
tokenizer: {
root: [
[/^(\s*)(comment:?(?:\s.*|))$/, ["", "comment"]],
[/"/, {
token: "identifier.quote",
bracket: "@open",
next: "@quoted_identifier"
}],
["LEX$", {
token: "keyword",
bracket: "@open",
next: "@identifier_until_period"
}],
["LEXON", {
token: "keyword",
bracket: "@open",
next: "@semver"
}],
[":", {
token: "delimiter",
bracket: "@open",
next: "@identifier_until_period"
}],
[/[a-z_$][\w$]*/, { cases: {
"@operators": "operator",
"@typeKeywords": "keyword.type",
"@keywords": "keyword",
"@default": "identifier"
} }],
{ include: "@whitespace" },
[/[{}()\[\]]/, "@brackets"],
[/[<>](?!@symbols)/, "@brackets"],
[/@symbols/, "delimiter"],
[/\d*\.\d*\.\d*/, "number.semver"],
[/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
[/0[xX][0-9a-fA-F]+/, "number.hex"],
[/\d+/, "number"],
[/[;,.]/, "delimiter"]
],
quoted_identifier: [[/[^\\"]+/, "identifier"], [/"/, {
token: "identifier.quote",
bracket: "@close",
next: "@pop"
}]],
space_identifier_until_period: [[":", "delimiter"], [" ", {
token: "white",
next: "@identifier_rest"
}]],
identifier_until_period: [
{ include: "@whitespace" },
[":", {
token: "delimiter",
next: "@identifier_rest"
}],
[/[^\\.]+/, "identifier"],
[/\./, {
token: "delimiter",
bracket: "@close",
next: "@pop"
}]
],
identifier_rest: [[/[^\\.]+/, "identifier"], [/\./, {
token: "delimiter",
bracket: "@close",
next: "@pop"
}]],
semver: [
{ include: "@whitespace" },
[":", "delimiter"],
[/\d*\.\d*\.\d*/, {
token: "number.semver",
bracket: "@close",
next: "@pop"
}]
],
whitespace: [[/[ \t\r\n]+/, "white"]]
}
};
export { conf, language };