UNPKG

@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.

511 lines (510 loc) • 10.2 kB
/*!----------------------------------------------------------------------------- * 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: "\"", notIn: ["string", "comment"] }, { open: "{", close: "}", notIn: ["string", "comment"] }, { open: "[", close: "]", notIn: ["string", "comment"] }, { open: "(", close: ")", notIn: ["string", "comment"] } ] }, language = { tokenPostfix: ".pats", defaultToken: "invalid", keywords: /* @__PURE__ */ "abstype.abst0ype.absprop.absview.absvtype.absviewtype.absvt0ype.absviewt0ype.as.and.assume.begin.classdec.datasort.datatype.dataprop.dataview.datavtype.dataviewtype.do.end.extern.extype.extvar.exception.fn.fnx.fun.prfn.prfun.praxi.castfn.if.then.else.ifcase.in.infix.infixl.infixr.prefix.postfix.implmnt.implement.primplmnt.primplement.import.let.local.macdef.macrodef.nonfix.symelim.symintr.overload.of.op.rec.sif.scase.sortdef.sta.stacst.stadef.static.staload.dynload.try.tkindef.typedef.propdef.viewdef.vtypedef.viewtypedef.prval.var.prvar.when.where.with.withtype.withprop.withview.withvtype.withviewtype".split("."), keywords_dlr: /* @__PURE__ */ "$delay.$ldelay.$arrpsz.$arrptrsize.$d2ctype.$effmask.$effmask_ntm.$effmask_exn.$effmask_ref.$effmask_wrt.$effmask_all.$extern.$extkind.$extype.$extype_struct.$extval.$extfcall.$extmcall.$literal.$myfilename.$mylocation.$myfunction.$lst.$lst_t.$lst_vt.$list.$list_t.$list_vt.$rec.$rec_t.$rec_vt.$record.$record_t.$record_vt.$tup.$tup_t.$tup_vt.$tuple.$tuple_t.$tuple_vt.$break.$continue.$raise.$showtype.$vcopyenv_v.$vcopyenv_vt.$tempenver.$solver_assert.$solver_verify".split("."), keywords_srp: [ "#if", "#ifdef", "#ifndef", "#then", "#elif", "#elifdef", "#elifndef", "#else", "#endif", "#error", "#prerr", "#print", "#assert", "#undef", "#define", "#include", "#require", "#pragma", "#codegen2", "#codegen3" ], irregular_keyword_list: /* @__PURE__ */ "val+.val-.val.case+.case-.case.addr@.addr.fold@.free@.fix@.fix.lam@.lam.llam@.llam.viewt@ype+.viewt@ype-.viewt@ype.viewtype+.viewtype-.viewtype.view+.view-.view@.view.type+.type-.type.vtype+.vtype-.vtype.vt@ype+.vt@ype-.vt@ype.viewt@ype+.viewt@ype-.viewt@ype.viewtype+.viewtype-.viewtype.prop+.prop-.prop.type+.type-.type.t@ype.t@ype+.t@ype-.abst@ype.abstype.absviewt@ype.absvt@ype.for*.for.while*.while".split("."), keywords_types: [ "bool", "double", "byte", "int", "short", "char", "void", "unit", "long", "float", "string", "strptr" ], keywords_effects: [ "0", "fun", "clo", "prf", "funclo", "cloptr", "cloref", "ref", "ntm", "1" ], operators: [ "@", "!", "|", "`", ":", "$", ".", "=", "#", "~", "..", "...", "=>", "=<>", "=/=>", "=>>", "=/=>>", "<", ">", "><", ".<", ">.", ".<>.", "->", "-<>" ], brackets: [ { open: ",(", close: ")", token: "delimiter.parenthesis" }, { open: "`(", close: ")", token: "delimiter.parenthesis" }, { open: "%(", close: ")", token: "delimiter.parenthesis" }, { open: "'(", close: ")", token: "delimiter.parenthesis" }, { open: "'{", close: "}", token: "delimiter.parenthesis" }, { open: "@(", close: ")", token: "delimiter.parenthesis" }, { open: "@{", close: "}", token: "delimiter.brace" }, { open: "@[", close: "]", token: "delimiter.square" }, { open: "#[", close: "]", token: "delimiter.square" }, { open: "{", close: "}", token: "delimiter.curly" }, { open: "[", close: "]", token: "delimiter.square" }, { open: "(", close: ")", token: "delimiter.parenthesis" }, { open: "<", close: ">", token: "delimiter.angle" } ], symbols: /[=><!~?:&|+\-*\/\^%]+/, IDENTFST: /[a-zA-Z_]/, IDENTRST: /[a-zA-Z0-9_'$]/, symbolic: /[%&+-./:=@~`^|*!$#?<>]/, digit: /[0-9]/, digitseq0: /@digit*/, xdigit: /[0-9A-Za-z]/, xdigitseq0: /@xdigit*/, INTSP: /[lLuU]/, FLOATSP: /[fFlL]/, fexponent: /[eE][+-]?[0-9]+/, fexponent_bin: /[pP][+-]?[0-9]+/, deciexp: /\.[0-9]*@fexponent?/, hexiexp: /\.[0-9a-zA-Z]*@fexponent_bin?/, irregular_keywords: /val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/, ESCHAR: /[ntvbrfa\\\?'"\(\[\{]/, start: "root", tokenizer: { root: [ { regex: /[ \t\r\n]+/, action: { token: "" } }, { regex: /\(\*\)/, action: { token: "invalid" } }, { regex: /\(\*/, action: { token: "comment", next: "lexing_COMMENT_block_ml" } }, { regex: /\(/, action: "@brackets" }, { regex: /\)/, action: "@brackets" }, { regex: /\[/, action: "@brackets" }, { regex: /\]/, action: "@brackets" }, { regex: /\{/, action: "@brackets" }, { regex: /\}/, action: "@brackets" }, { regex: /,\(/, action: "@brackets" }, { regex: /,/, action: { token: "delimiter.comma" } }, { regex: /;/, action: { token: "delimiter.semicolon" } }, { regex: /@\(/, action: "@brackets" }, { regex: /@\[/, action: "@brackets" }, { regex: /@\{/, action: "@brackets" }, { regex: /:</, action: { token: "keyword", next: "@lexing_EFFECT_commaseq0" } }, { regex: /\.@symbolic+/, action: { token: "identifier.sym" } }, { regex: /\.@digit*@fexponent@FLOATSP*/, action: { token: "number.float" } }, { regex: /\.@digit+/, action: { token: "number.float" } }, { regex: /\$@IDENTFST@IDENTRST*/, action: { cases: { "@keywords_dlr": { token: "keyword.dlr" }, "@default": { token: "namespace" } } } }, { regex: /\#@IDENTFST@IDENTRST*/, action: { cases: { "@keywords_srp": { token: "keyword.srp" }, "@default": { token: "identifier" } } } }, { regex: /%\(/, action: { token: "delimiter.parenthesis" } }, { regex: /^%{(#|\^|\$)?/, action: { token: "keyword", next: "@lexing_EXTCODE", nextEmbedded: "text/javascript" } }, { regex: /^%}/, action: { token: "keyword" } }, { regex: /'\(/, action: { token: "delimiter.parenthesis" } }, { regex: /'\[/, action: { token: "delimiter.bracket" } }, { regex: /'\{/, action: { token: "delimiter.brace" } }, [/(')(\\@ESCHAR|\\[xX]@xdigit+|\\@digit+)(')/, [ "string", "string.escape", "string" ]], [/'[^\\']'/, "string"], [ /"/, "string.quote", "@lexing_DQUOTE" ], { regex: /`\(/, action: "@brackets" }, { regex: /\\/, action: { token: "punctuation" } }, { regex: /@irregular_keywords(?!@IDENTRST)/, action: { token: "keyword" } }, { regex: /@IDENTFST@IDENTRST*[<!\[]?/, action: { cases: { "@keywords": { token: "keyword" }, "@keywords_types": { token: "type" }, "@default": { token: "identifier" } } } }, { regex: /\/\/\/\//, action: { token: "comment", next: "@lexing_COMMENT_rest" } }, { regex: /\/\/.*$/, action: { token: "comment" } }, { regex: /\/\*/, action: { token: "comment", next: "@lexing_COMMENT_block_c" } }, { regex: /-<|=</, action: { token: "keyword", next: "@lexing_EFFECT_commaseq0" } }, { regex: /@symbolic+/, action: { cases: { "@operators": "keyword", "@default": "operator" } } }, { regex: /0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/, action: { token: "number.float" } }, { regex: /0[xX]@xdigit+@INTSP*/, action: { token: "number.hex" } }, { regex: /0[0-7]+(?![0-9])@INTSP*/, action: { token: "number.octal" } }, { regex: /@digit+(@fexponent|@deciexp)@FLOATSP*/, action: { token: "number.float" } }, { regex: /@digit@digitseq0@INTSP*/, action: { token: "number.decimal" } }, { regex: /@digit+@INTSP*/, action: { token: "number" } } ], lexing_COMMENT_block_ml: [ [/[^\(\*]+/, "comment"], [ /\(\*/, "comment", "@push" ], [/\(\*/, "comment.invalid"], [ /\*\)/, "comment", "@pop" ], [/\*/, "comment"] ], lexing_COMMENT_block_c: [ [/[^\/*]+/, "comment"], [ /\*\//, "comment", "@pop" ], [/[\/*]/, "comment"] ], lexing_COMMENT_rest: [[ /$/, "comment", "@pop" ], [/.*/, "comment"]], lexing_EFFECT_commaseq0: [ { regex: /@IDENTFST@IDENTRST+|@digit+/, action: { cases: { "@keywords_effects": { token: "type.effect" }, "@default": { token: "identifier" } } } }, { regex: /,/, action: { token: "punctuation" } }, { regex: />/, action: { token: "@rematch", next: "@pop" } } ], lexing_EXTCODE: [{ regex: /^%}/, action: { token: "@rematch", next: "@pop", nextEmbedded: "@pop" } }, { regex: /[^%]+/, action: "" }], lexing_DQUOTE: [ { regex: /"/, action: { token: "string.quote", next: "@pop" } }, { regex: /(\{\$)(@IDENTFST@IDENTRST*)(\})/, action: [ { token: "string.escape" }, { token: "identifier" }, { token: "string.escape" } ] }, { regex: /\\$/, action: { token: "string.escape" } }, { regex: /\\(@ESCHAR|[xX]@xdigit+|@digit+)/, action: { token: "string.escape" } }, { regex: /[^\\"]+/, action: { token: "string" } } ] } }; export { conf, language };