@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.
153 lines (152 loc) • 2.61 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: "#" },
brackets: [
["[", "]"],
["<", ">"],
["(", ")"]
],
autoClosingPairs: [
{
open: "[",
close: "]"
},
{
open: "<",
close: ">"
},
{
open: "(",
close: ")"
}
],
surroundingPairs: [
{
open: "[",
close: "]"
},
{
open: "<",
close: ">"
},
{
open: "(",
close: ")"
}
]
}, language = {
defaultToken: "",
tokenPostfix: ".pla",
brackets: [
{
open: "[",
close: "]",
token: "delimiter.square"
},
{
open: "<",
close: ">",
token: "delimiter.angle"
},
{
open: "(",
close: ")",
token: "delimiter.parenthesis"
}
],
keywords: [
".i",
".o",
".mv",
".ilb",
".ob",
".label",
".type",
".phase",
".pair",
".symbolic",
".symbolic-output",
".kiss",
".p",
".e",
".end"
],
comment: /#.*$/,
identifier: /[a-zA-Z]+[a-zA-Z0-9_\-]*/,
plaContent: /[01\-~\|]+/,
tokenizer: {
root: [
{ include: "@whitespace" },
[/@comment/, "comment"],
[/\.([a-zA-Z_\-]+)/, { cases: {
"@eos": { token: "keyword.$1" },
"@keywords": { cases: {
".type": {
token: "keyword.$1",
next: "@type"
},
"@default": {
token: "keyword.$1",
next: "@keywordArg"
}
} },
"@default": { token: "keyword.$1" }
} }],
[/@identifier/, "identifier"],
[/@plaContent/, "string"]
],
whitespace: [[/[ \t\r\n]+/, ""]],
type: [{ include: "@whitespace" }, [/\w+/, {
token: "type",
next: "@pop"
}]],
keywordArg: [
[/[ \t\r\n]+/, { cases: {
"@eos": {
token: "",
next: "@pop"
},
"@default": ""
} }],
[
/@comment/,
"comment",
"@pop"
],
[/[<>()\[\]]/, { cases: {
"@eos": {
token: "@brackets",
next: "@pop"
},
"@default": "@brackets"
} }],
[/\-?\d+/, { cases: {
"@eos": {
token: "number",
next: "@pop"
},
"@default": "number"
} }],
[/@identifier/, { cases: {
"@eos": {
token: "identifier",
next: "@pop"
},
"@default": "identifier"
} }],
[/[;=]/, { cases: {
"@eos": {
token: "delimiter",
next: "@pop"
},
"@default": "delimiter"
} }]
]
}
};
export { conf, language };