@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.
305 lines (304 loc) • 8.6 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: [
["{", "}"],
["[", "]"],
["(", ")"],
["begin", "end"],
["case", "endcase"],
["casex", "endcase"],
["casez", "endcase"],
["checker", "endchecker"],
["class", "endclass"],
["clocking", "endclocking"],
["config", "endconfig"],
["function", "endfunction"],
["generate", "endgenerate"],
["group", "endgroup"],
["interface", "endinterface"],
["module", "endmodule"],
["package", "endpackage"],
["primitive", "endprimitive"],
["program", "endprogram"],
["property", "endproperty"],
["specify", "endspecify"],
["sequence", "endsequence"],
["table", "endtable"],
["task", "endtask"]
],
autoClosingPairs: [
{
open: "[",
close: "]"
},
{
open: "{",
close: "}"
},
{
open: "(",
close: ")"
},
{
open: "'",
close: "'",
notIn: ["string", "comment"]
},
{
open: "\"",
close: "\"",
notIn: ["string"]
}
],
surroundingPairs: [
{
open: "{",
close: "}"
},
{
open: "[",
close: "]"
},
{
open: "(",
close: ")"
},
{
open: "\"",
close: "\""
},
{
open: "'",
close: "'"
}
],
folding: {
offSide: !1,
markers: {
start: /* @__PURE__ */ RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),
end: /* @__PURE__ */ RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")
}
}
}, language = {
defaultToken: "",
tokenPostfix: ".sv",
brackets: [
{
token: "delimiter.curly",
open: "{",
close: "}"
},
{
token: "delimiter.parenthesis",
open: "(",
close: ")"
},
{
token: "delimiter.square",
open: "[",
close: "]"
},
{
token: "delimiter.angle",
open: "<",
close: ">"
}
],
keywords: /* @__PURE__ */ "accept_on.alias.always.always_comb.always_ff.always_latch.and.assert.assign.assume.automatic.before.begin.bind.bins.binsof.bit.break.buf.bufif0.bufif1.byte.case.casex.casez.cell.chandle.checker.class.clocking.cmos.config.const.constraint.context.continue.cover.covergroup.coverpoint.cross.deassign.default.defparam.design.disable.dist.do.edge.else.end.endcase.endchecker.endclass.endclocking.endconfig.endfunction.endgenerate.endgroup.endinterface.endmodule.endpackage.endprimitive.endprogram.endproperty.endspecify.endsequence.endtable.endtask.enum.event.eventually.expect.export.extends.extern.final.first_match.for.force.foreach.forever.fork.forkjoin.function.generate.genvar.global.highz0.highz1.if.iff.ifnone.ignore_bins.illegal_bins.implements.implies.import.incdir.include.initial.inout.input.inside.instance.int.integer.interconnect.interface.intersect.join.join_any.join_none.large.let.liblist.library.local.localparam.logic.longint.macromodule.matches.medium.modport.module.nand.negedge.nettype.new.nexttime.nmos.nor.noshowcancelled.not.notif0.notif1.null.or.output.package.packed.parameter.pmos.posedge.primitive.priority.program.property.protected.pull0.pull1.pulldown.pullup.pulsestyle_ondetect.pulsestyle_onevent.pure.rand.randc.randcase.randsequence.rcmos.real.realtime.ref.reg.reject_on.release.repeat.restrict.return.rnmos.rpmos.rtran.rtranif0.rtranif1.s_always.s_eventually.s_nexttime.s_until.s_until_with.scalared.sequence.shortint.shortreal.showcancelled.signed.small.soft.solve.specify.specparam.static.string.strong.strong0.strong1.struct.super.supply0.supply1.sync_accept_on.sync_reject_on.table.tagged.task.this.throughout.time.timeprecision.timeunit.tran.tranif0.tranif1.tri.tri0.tri1.triand.trior.trireg.type.typedef.union.unique.unique0.unsigned.until.until_with.untyped.use.uwire.var.vectored.virtual.void.wait.wait_order.wand.weak.weak0.weak1.while.wildcard.wire.with.within.wor.xnor.xor".split("."),
builtin_gates: [
"and",
"nand",
"nor",
"or",
"xor",
"xnor",
"buf",
"not",
"bufif0",
"bufif1",
"notif1",
"notif0",
"cmos",
"nmos",
"pmos",
"rcmos",
"rnmos",
"rpmos",
"tran",
"tranif1",
"tranif0",
"rtran",
"rtranif1",
"rtranif0"
],
operators: /* @__PURE__ */ "=.+=.-=.*=./=.%=.&=.|=.^=.<<=.>>+.<<<=.>>>=.?.:.+.-.!.~.&.~&.|.~|.^.~^.^~.+.-.*./.%.==.!=.===.!==.==?.!=?.&&.||.**.<.<=.>.>=.&.|.^.>>.<<.>>>.<<<.++.--.->.<->.inside.dist.::.+:.-:.*>.&&&.|->.|=>.#=#".split("."),
symbols: /[=><!~?:&|+\-*\/\^%#]+/,
escapes: /%%|\\(?:[antvf\\"']|x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/,
identifier: /(?:[a-zA-Z_][a-zA-Z0-9_$\.]*|\\\S+ )/,
systemcall: /[$][a-zA-Z0-9_]+/,
timeunits: /s|ms|us|ns|ps|fs/,
tokenizer: {
root: [
[/^(\s*)(@identifier)/, ["", { cases: {
"@builtin_gates": {
token: "keyword.$2",
next: "@module_instance"
},
table: {
token: "keyword.$2",
next: "@table"
},
"@keywords": { token: "keyword.$2" },
"@default": {
token: "identifier",
next: "@module_instance"
}
} }]],
[/^\s*`include/, {
token: "keyword.directive.include",
next: "@include"
}],
[/^\s*`\s*\w+/, "keyword"],
{ include: "@identifier_or_keyword" },
{ include: "@whitespace" },
[/\(\*.*\*\)/, "annotation"],
[/@systemcall/, "variable.predefined"],
[/[{}()\[\]]/, "@brackets"],
[/[<>](?!@symbols)/, "@brackets"],
[/@symbols/, { cases: {
"@operators": "delimiter",
"@default": ""
} }],
{ include: "@numbers" },
[/[;,.]/, "delimiter"],
{ include: "@strings" }
],
identifier_or_keyword: [[/@identifier/, { cases: {
"@keywords": { token: "keyword.$0" },
"@default": "identifier"
} }]],
numbers: [
[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/, "number.float"],
[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/, "number.float"],
[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/, "number"],
[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/, "number.binary"],
[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/, "number.octal"],
[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/, "number.hex"],
[/1step/, "number"],
[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/, "number"],
[/'[01xXzZ]+/, "number"]
],
module_instance: [
{ include: "@whitespace" },
[/(#?)(\()/, ["", {
token: "@brackets",
next: "@port_connection"
}]],
[/@identifier\s*[;={}\[\],]/, {
token: "@rematch",
next: "@pop"
}],
[/@symbols|[;={}\[\],]/, {
token: "@rematch",
next: "@pop"
}],
[/@identifier/, "type"],
[
/;/,
"delimiter",
"@pop"
]
],
port_connection: [
{ include: "@identifier_or_keyword" },
{ include: "@whitespace" },
[/@systemcall/, "variable.predefined"],
{ include: "@numbers" },
{ include: "@strings" },
[/[,]/, "delimiter"],
[
/\(/,
"@brackets",
"@port_connection"
],
[
/\)/,
"@brackets",
"@pop"
]
],
whitespace: [
[/[ \t\r\n]+/, ""],
[
/\/\*/,
"comment",
"@comment"
],
[/\/\/.*$/, "comment"]
],
comment: [
[/[^\/*]+/, "comment"],
[
/\*\//,
"comment",
"@pop"
],
[/[\/*]/, "comment"]
],
strings: [[/"([^"\\]|\\.)*$/, "string.invalid"], [
/"/,
"string",
"@string"
]],
string: [
[/[^\\"]+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[
/"/,
"string",
"@pop"
]
],
include: [[/(\s*)(")([\w*\/*]*)(.\w*)(")/, [
"",
"string.include.identifier",
"string.include.identifier",
"string.include.identifier",
{
token: "string.include.identifier",
next: "@pop"
}
]], [/(\s*)(<)([\w*\/*]*)(.\w*)(>)/, [
"",
"string.include.identifier",
"string.include.identifier",
"string.include.identifier",
{
token: "string.include.identifier",
next: "@pop"
}
]]],
table: [
{ include: "@whitespace" },
[/[()]/, "@brackets"],
[/[:;]/, "delimiter"],
[/[01\-*?xXbBrRfFpPnN]/, "variable.predefined"],
[
"endtable",
"keyword.endtable",
"@pop"
]
]
}
};
export { conf, language };