From a25e4fa288dcd099f26b92792d57de1139134f49 Mon Sep 17 00:00:00 2001 From: Sammy filly <136061549+sammyfilly@users.noreply.github.com> Date: Mon, 11 Sep 2023 17:51:15 +0100 Subject: [PATCH] Create Schema item --- Schema item | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Schema item diff --git a/Schema item b/Schema item new file mode 100644 index 0000000000..e9650eb062 --- /dev/null +++ b/Schema item @@ -0,0 +1,34 @@ +monaco.languages.registerCodeLensProvider('json', { + provideCodeLenses: async function (model, token) { + const getWorker = await monaco.languages.json.getWorker(); + const worker = await getWorker(model.uri.toString()); + const schema = await worker.getMatchingSchemas(model.uri.toString()); + return { + lenses: schema + .filter((item) => item.schema.format === 'ipv4') + .map((schemaItem) => { + const start = model.getPositionAt(schemaItem.node.parent.offset); + const end = model.getPositionAt( + schemaItem.node.parent.offset + schemaItem.node.parent.length + ); + return { + range: { + startLineNumber: start.lineNumber, + startColumn: start.column, + endLineNumber: end.lineNumber, + endColumn: end.column, + }, + id: 'First Line', + command: { + id: commandId, + title: 'Select VM', + }, + }; + }), + dispose: () => {}, + }; + }, + resolveCodeLens: function (model, codeLens, token) { + return codeLens; + }, +});