From f660309a77be3e2ae0456b3db2a3d39ffb3fe75b Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Mon, 8 Jul 2024 16:45:53 +0800 Subject: [PATCH 01/30] wip for volar support --- .gitignore | 3 + .npmrc | 1 + .../bin/slidev-language-server.js | 8 + packages/language-server/package.json | 18 ++ packages/language-server/src/index.ts | 20 ++ .../language-server/src/languagePlugin.ts | 50 ++++ packages/language-server/src/protocol.ts | 1 + packages/language-server/tsconfig.json | 22 ++ packages/language-server/tsconfig.tsbuildinfo | 1 + packages/vscode/package.json | 2 + packages/vscode/src/index.ts | 42 +++- packages/vscode/tsup.config.ts | 37 ++- pnpm-lock.yaml | 235 ++++++++++++++++++ 13 files changed, 437 insertions(+), 3 deletions(-) create mode 100755 packages/language-server/bin/slidev-language-server.js create mode 100644 packages/language-server/package.json create mode 100644 packages/language-server/src/index.ts create mode 100644 packages/language-server/src/languagePlugin.ts create mode 100644 packages/language-server/src/protocol.ts create mode 100644 packages/language-server/tsconfig.json create mode 100644 packages/language-server/tsconfig.tsbuildinfo diff --git a/.gitignore b/.gitignore index 3e84df1943..3387584132 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,6 @@ packages/create-app/template/snippets packages/slidev/README.md slides-export.md *slides-export.pptx + +# temp +out diff --git a/.npmrc b/.npmrc index 84342cc2de..b6a607cf6c 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,4 @@ shamefully-hoist=true ignore-workspace-root-check=true strict-peer-dependencies=false +link-workspace-packages=true diff --git a/packages/language-server/bin/slidev-language-server.js b/packages/language-server/bin/slidev-language-server.js new file mode 100755 index 0000000000..d18b06411d --- /dev/null +++ b/packages/language-server/bin/slidev-language-server.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node +if (process.argv.includes("--version")) { + const pkgJSON = require("../package.json"); + console.log(`${pkgJSON["version"]}`); +} +else { + require("../out/index.js"); +} diff --git a/packages/language-server/package.json b/packages/language-server/package.json new file mode 100644 index 0000000000..848b4c5908 --- /dev/null +++ b/packages/language-server/package.json @@ -0,0 +1,18 @@ +{ + "name": "@slidev/language-server", + "version": "0.49.16", + "main": "out/index.js", + "license": "MIT", + "files": [ + "out/**/*.js", + "out/**/*.d.ts" + ], + "bin": { + "slidev-language-server": "./bin/slidev-language-server.js" + }, + "dependencies": { + "@slidev/parser": "0.49.16", + "@volar/language-server": "~2.4.0-alpha.15", + "volar-service-yaml": "volar-2.4" + } +} \ No newline at end of file diff --git a/packages/language-server/src/index.ts b/packages/language-server/src/index.ts new file mode 100644 index 0000000000..865b8b973c --- /dev/null +++ b/packages/language-server/src/index.ts @@ -0,0 +1,20 @@ +import { createConnection, createServer, createSimpleProject } from '@volar/language-server/node'; +import { create as createYamlPlugin } from 'volar-service-yaml'; +import { slidevLanguagePlugin } from './languagePlugin'; + +const connection = createConnection(); +const server = createServer(connection); + +connection.onInitialize(params => { + return server.initialize( + params, + createSimpleProject([slidevLanguagePlugin]), + [createYamlPlugin()], + ) +}); + +connection.onInitialized(server.initialized); + +connection.onShutdown(server.shutdown); + +connection.listen(); diff --git a/packages/language-server/src/languagePlugin.ts b/packages/language-server/src/languagePlugin.ts new file mode 100644 index 0000000000..51c1c264ed --- /dev/null +++ b/packages/language-server/src/languagePlugin.ts @@ -0,0 +1,50 @@ +import type { LanguagePlugin, VirtualCode } from '@volar/language-core'; +import type * as ts from 'typescript'; +import { URI } from 'vscode-uri'; + +export const slidevLanguagePlugin: LanguagePlugin = { + getLanguageId() { + return undefined; + }, + createVirtualCode(_uri, languageId, snapshot) { + if (languageId === 'markdown') { + return { + id: 'root', + languageId: 'markdown', + mappings: [], + embeddedCodes: [...getEmbeddedCodes(snapshot)], + snapshot, + }; + } + }, +}; + +function* getEmbeddedCodes(snapshot: ts.IScriptSnapshot): Generator { + const blocks = snapshot.getText(0, snapshot.getLength()).matchAll(/---\n([\s\S]*?)\n---/g); + let i = 0; + for (const block of blocks) { + yield { + id: 'yaml_' + i++, + languageId: 'yaml', + snapshot: { + getText: (start, end) => block[1].substring(start, end), + getLength: () => block[1].length, + getChangeRange: () => undefined, + }, + mappings: [{ + sourceOffsets: [block.index], + generatedOffsets: [0], + lengths: [block[1].length], + data: { + verification: true, + completion: true, + semantic: true, + navigation: true, + structure: true, + format: true, + }, + }], + embeddedCodes: [], + } + } +} diff --git a/packages/language-server/src/protocol.ts b/packages/language-server/src/protocol.ts new file mode 100644 index 0000000000..d72c990e7c --- /dev/null +++ b/packages/language-server/src/protocol.ts @@ -0,0 +1 @@ +export * from '@volar/language-server/protocol'; diff --git a/packages/language-server/tsconfig.json b/packages/language-server/tsconfig.json new file mode 100644 index 0000000000..49596ac3ca --- /dev/null +++ b/packages/language-server/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ES2021", + "lib": [ + "ES2021", + ], + "module": "Node16", + "sourceMap": true, + "composite": true, + "declaration": true, + "strict": true, + "skipLibCheck": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "baseUrl": "./", + "outDir": "out", + "rootDir": "src" + }, + "include": [ + "src" + ], +} \ No newline at end of file diff --git a/packages/language-server/tsconfig.tsbuildinfo b/packages/language-server/tsconfig.tsbuildinfo new file mode 100644 index 0000000000..cf73d0d6f3 --- /dev/null +++ b/packages/language-server/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@volar+source-map@2.4.0-alpha.15/node_modules/@volar/source-map/lib/sourcemap.d.ts","../../node_modules/.pnpm/@volar+source-map@2.4.0-alpha.15/node_modules/@volar/source-map/lib/translateoffset.d.ts","../../node_modules/.pnpm/@volar+source-map@2.4.0-alpha.15/node_modules/@volar/source-map/index.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/lib/linkedcodemap.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/lib/types.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/lib/editorfeatures.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/lib/utils.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/index.d.ts","../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/linkedmap.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/sharedarraycancellation.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messagebuffer.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolder.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typehierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinevalue.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayhint.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinecompletion.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/umd/uri.d.ts","../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/umd/utils.d.ts","../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/umd/index.d.ts","../../node_modules/.pnpm/vscode-languageserver-textdocument@1.0.11/node_modules/vscode-languageserver-textdocument/lib/umd/main.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/typescript.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/utils/urimap.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/types.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/languageservice.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/features/providerenameedits.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/utils/transform.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/index.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/typings/thenable.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/dom-events.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/progress.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/configuration.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/workspacefolder.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/callhierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/semantictokens.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/showdocument.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/fileoperations.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/linkededitingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/typehierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/inlinevalue.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/foldingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/inlayhint.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/diagnostic.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/textdocuments.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/notebook.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/moniker.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/server.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/node/files.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/node/main.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/node.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/node.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/inlinecompletion.proposed.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/node/main.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/node.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/protocol.d.ts","../../node_modules/.pnpm/@volar+snapshot-document@2.4.0-alpha.15/node_modules/@volar/snapshot-document/lib/snapshotdocument.d.ts","../../node_modules/.pnpm/@volar+snapshot-document@2.4.0-alpha.15/node_modules/@volar/snapshot-document/index.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/server.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/types.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/index.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/project/simpleproject.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/common.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/node/proxylanguageservice.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/node/decoratelanguageservicehost.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/node/decorateprogram.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/node/proxycreateprogram.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/protocol/createsys.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/protocol/createproject.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/index.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/project/typescriptprojectls.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/project/typescriptproject.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/node.d.ts","../../node_modules/.pnpm/vscode-json-languageservice@4.1.8/node_modules/vscode-json-languageservice/lib/umd/jsoncontributions.d.ts","../../node_modules/.pnpm/vscode-json-languageservice@4.1.8/node_modules/vscode-json-languageservice/lib/umd/jsonschema.d.ts","../../node_modules/.pnpm/vscode-json-languageservice@4.1.8/node_modules/vscode-json-languageservice/lib/umd/jsonlanguagetypes.d.ts","../../node_modules/.pnpm/vscode-json-languageservice@4.1.8/node_modules/vscode-json-languageservice/lib/umd/jsonlanguageservice.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/yamltypes.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/jsonschema.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/line-counter.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/errors.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/doc/applyreviver.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/log.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/tojs.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/scalar.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/collection.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/yamlmap.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/yamlseq.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/types.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/schema.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/doc/createnode.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/addpairtojsmap.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/pair.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/tags.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/options.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/stringify/stringify.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/node.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/cst-scalar.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/cst-stringify.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/cst-visit.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/cst.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/alias.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/doc/document.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/doc/directives.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/compose/composer.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/lexer.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/parser.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/public-api.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/visit.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/index.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/jsonasttypes.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/parser/jsonparser07.d.ts","../../node_modules/.pnpm/vscode-languageserver-types@3.16.0/node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolders.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/progress.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/configuration.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/workspacefolders.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/callhierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/semantictokens.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/showdocument.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/fileoperations.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/linkededitingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/moniker.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/server.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/api.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/requesttypes.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/services/yamlschemaservice.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/telemetry.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/utils/parseutils.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/utils/textbuffer.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/parser/yaml-documents.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/parser/yamlparser07.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/yamlsettings.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/yamllanguageservice.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/index.d.ts","../../node_modules/.pnpm/volar-service-yaml@0.0.59_@volar+language-service@2.4.0-alpha.15/node_modules/volar-service-yaml/index.d.ts","./src/languageplugin.ts","./src/index.ts","./src/protocol.ts","../../node_modules/.pnpm/@types+braces@3.0.4/node_modules/@types/braces/index.d.ts","../../node_modules/.pnpm/@types+cli-progress@3.11.6/node_modules/@types/cli-progress/index.d.ts","../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/index.d.ts","../../node_modules/.pnpm/@types+d3-time@3.0.3/node_modules/@types/d3-time/index.d.ts","../../node_modules/.pnpm/@types+d3-scale@4.0.8/node_modules/@types/d3-scale/index.d.ts","../../node_modules/.pnpm/@types+d3-scale-chromatic@3.0.3/node_modules/@types/d3-scale-chromatic/index.d.ts","../../node_modules/.pnpm/@types+ms@0.7.34/node_modules/@types/ms/index.d.ts","../../node_modules/.pnpm/@types+debug@4.1.12/node_modules/@types/debug/index.d.ts","../../node_modules/.pnpm/@types+eslint@8.56.10/node_modules/@types/eslint/helpers.d.ts","../../node_modules/.pnpm/@types+estree@1.0.5/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/@types+eslint@8.56.10/node_modules/@types/eslint/index.d.ts","../../node_modules/.pnpm/@types+file-saver@2.0.7/node_modules/@types/file-saver/index.d.ts","../../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/index.d.ts","../../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/utils.d.ts","../../node_modules/.pnpm/@types+fs-extra@11.0.4/node_modules/@types/fs-extra/index.d.ts","../../node_modules/.pnpm/@types+unist@3.0.2/node_modules/@types/unist/index.d.ts","../../node_modules/.pnpm/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../../node_modules/.pnpm/@types+http-cache-semantics@4.0.4/node_modules/@types/http-cache-semantics/index.d.ts","../../node_modules/.pnpm/@types+js-yaml@4.0.9/node_modules/@types/js-yaml/index.d.ts","../../node_modules/.pnpm/@types+katex@0.16.7/node_modules/@types/katex/index.d.ts","../../node_modules/.pnpm/@types+linkify-it@5.0.0/node_modules/@types/linkify-it/build/index.cjs.d.ts","../../node_modules/.pnpm/@types+linkify-it@5.0.0/node_modules/@types/linkify-it/index.d.ts","../../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/build/index.cjs.d.ts","../../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/dist/index.cjs.d.ts","../../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/index.d.ts","../../node_modules/.pnpm/@types+unist@2.0.10/node_modules/@types/unist/index.d.ts","../../node_modules/.pnpm/@types+mdast@3.0.15/node_modules/@types/mdast/index.d.ts","../../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/index.d.ts","../../node_modules/.pnpm/@types+micromatch@4.0.9/node_modules/@types/micromatch/index.d.ts","../../node_modules/.pnpm/@types+normalize-package-data@2.4.4/node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/.pnpm/@types+plantuml-encoder@1.4.2/node_modules/@types/plantuml-encoder/index.d.ts","../../node_modules/.pnpm/@types+prismjs@1.26.4/node_modules/@types/prismjs/index.d.ts","../../node_modules/.pnpm/kleur@3.0.3/node_modules/kleur/kleur.d.ts","../../node_modules/.pnpm/@types+prompts@2.4.9/node_modules/@types/prompts/index.d.ts","../../node_modules/.pnpm/@types+recordrtc@5.6.14/node_modules/@types/recordrtc/index.d.ts","../../node_modules/.pnpm/@types+resolve@1.20.6/node_modules/@types/resolve/index.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/classes/semver.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/parse.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/valid.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/clean.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/inc.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/diff.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/major.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/minor.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/patch.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/compare.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/sort.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/gt.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/lt.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/eq.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/neq.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/gte.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/lte.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/classes/range.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/index.d.ts","../../node_modules/.pnpm/@types+sinonjs__fake-timers@8.1.1/node_modules/@types/sinonjs__fake-timers/index.d.ts","../../node_modules/.pnpm/@types+sizzle@2.3.8/node_modules/@types/sizzle/index.d.ts","../../node_modules/.pnpm/@types+vscode@1.89.0/node_modules/@types/vscode/index.d.ts","../../node_modules/.pnpm/@types+web-bluetooth@0.0.20/node_modules/@types/web-bluetooth/index.d.ts","../../node_modules/.pnpm/@types+yargs-parser@21.0.3/node_modules/@types/yargs-parser/index.d.ts","../../node_modules/.pnpm/@types+yargs@17.0.32/node_modules/@types/yargs/index.d.ts","../../node_modules/.pnpm/@types+yauzl@2.10.3/node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"acb5c4265d1460e01bd57248d4d8cc8c69cfef23f1ccdf799ac1a70ed30d0d16","impliedFormat":1},{"version":"6f4d0a9ca605541143eb0631dcefbfefc3b49da8dd8d80cc964659ff47f2a3f2","impliedFormat":1},{"version":"e61776e5f97c6a6d1de4e0cbf58d63bb3e68040d2e043d2d5c180fd7a5cd646f","impliedFormat":1},{"version":"30482615b0ddb5167db981fd9a628ab56384635cfbc2538b5940bb9b938d3b8b","impliedFormat":1},{"version":"5d0bfcbc0c1acbf406ab3437c083e6b2ebe87804787d41a35844b24551eec219","impliedFormat":1},{"version":"a8c5aa89d1a68fb61de3746c66a9766a24834316228d4e1ab399c271186aca4e","impliedFormat":1},{"version":"acc26b070224f4f010e831dc6eb50f3d6fc8de88404940b5a8d9c0333a945ba1","impliedFormat":1},{"version":"164aed1e775036445ff37f063e4d355f42e6ec2719db5865fcab77c552a96109","impliedFormat":1},{"version":"2e900e22ef301dafb3a35df7aaab4f139bf1602c8e5dc0bb0ca8b24305af388e","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"b716daa9737308e83fc9d3826cac21b3a6c12ff420b5e89415d1ca396616f1b6","impliedFormat":1},{"version":"cab0ba78dc961d90d639ccaf3d56c484e584056da39dc0d9bdaf1957be965f72","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"886e183dd0199e7de45d6308ac3e2185dac6f83283d1b8200ea62cf5c43966a1","impliedFormat":1},{"version":"392dd7b1117b588cba36c04909efd24b0458980506e8e8c1966114f8989058e2","impliedFormat":1},{"version":"e445daedeac3005da51d0a3e3258be16096e1c0116701e8979272aaf7aba5fb4","impliedFormat":1},{"version":"2d79ae695899e28c4dba32ba39268a1eafc556f3f183175a355424fae553585a","impliedFormat":1},{"version":"3ca7b2e8012b9a6be09fafd62f8f3937388b9e1600a59c98887d2b11f6d01b43","impliedFormat":1},{"version":"b138b3f30708386023a7dc9981bb867808e5ff3383429ac7f69b7bfd0dcc5bd5","impliedFormat":1},{"version":"2ff2789ae43f9c056917e7516a02ad07c4cc1cafff3c68ff6b7ff8df623fd259","impliedFormat":1},{"version":"13ec544ab0a3a7ff96afac1016f55b264c812428e37d595dc33b688296435469","impliedFormat":1},{"version":"4962729121c2cb97a4481cdb06dfc720a79a3bc2fc9330ff2bcf604cfc541177","impliedFormat":1},{"version":"d576ef1b6aa804d0f0e8dfb3f6149b576788b598054aa2e15d5a7f7f52faf371","impliedFormat":1},{"version":"5bf947093bfad8e98456c28106a9db37d9276261a7b82fa04f4dc8119bab7f8e","impliedFormat":1},{"version":"bac171d09621591ee5fcddc28e031b348b0e038d12cc1ca2cf99cbaa27479999","impliedFormat":1},{"version":"eec5fe9863d12133a6b4803b62741054a3481fc0fcbf2be6bf26c681935cdfdc","impliedFormat":1},{"version":"05f6b2b3bef27dfc0e2464197510d08f275f2464363b441def7f309cbf42f51d","impliedFormat":1},{"version":"00f191fd642e8130d5b77fb11f76f4762eb86ac1cbe9b89b4ff63ab95be58baa","impliedFormat":1},{"version":"33e11cee43184a95afe9a450f7dde6bd2b6a03fc9643f898268e8594c266554a","impliedFormat":1},{"version":"45f441bf74e920f6909ca6874037fdd10f06644c341b99fd7cfd041ea565ce1f","impliedFormat":1},{"version":"f8d1db1f521b60c8d9fd9b49d230ce6981ff7468c63e6ac27f82ed7b67500e67","impliedFormat":1},{"version":"b5d49f459d2efc77cff4ab27d929aa67d0c9121bc20763d84942c7fca2cc7b8f","impliedFormat":1},{"version":"96c0c4b30165eaedb3ade3b4e9f491113a1816c448d67fff542b2793bf565b04","impliedFormat":1},{"version":"29a456c61c3d93e36f5eba4c0ed567d7896a9c08a38b537c3fc192a99d03b348","impliedFormat":1},{"version":"9381d5bdf7197cc4f732243e22762d27508daf7fcab0fff7339fe4660c11f382","impliedFormat":1},{"version":"0a61f7b50171225629903175e062d3f43225e6eba24eb2e50f88ca05fb441aa6","impliedFormat":1},{"version":"818d9a0841c884447fbd61b934c6743aea1fa6f1c0159ef44ef55b8f02b9120f","impliedFormat":1},{"version":"77afb3c5f47b721ab94b2b2faace898f0b4e1e4f7cec679baeaa2f9a6f530079","impliedFormat":1},{"version":"80ca6e12029d689b45326d13816c8374a1b3804a57e67940da2a2e9ed0689917","impliedFormat":1},{"version":"daad4c291d7d4ab0ca94693295f33533c6fc44c9ab31806a949367207c4b27fe","impliedFormat":1},{"version":"6ae49bf0bdc093ec209b0d2ae86a903be5813093dc25f612b9f84d85c3d43ba4","impliedFormat":1},{"version":"656106ddbe4e00bd32af2c46abb1a8c9abbb8679fbf29adc637c053620286034","impliedFormat":1},{"version":"ddf3f680de453b300dd1c47e136b8ade3857d2c357635efeb0f9977d81d1e96d","impliedFormat":1},{"version":"dfc345d92b6d08863b239b8d025ea513df322af74e221d62f4bdbe217d08f69d","impliedFormat":1},{"version":"7d40ae7bd3141e4fbad1572e9461e44eb631f3c3db8429d78a26ac7359d6e4e5","impliedFormat":1},{"version":"2f3aa6fb84e6955886902a6a8818e4bff9c79b97356773bd6ac2ff3993c097a2","impliedFormat":1},{"version":"c0c205fec8b10f3ad0e65af65dd20ea7cf633df0964c84305e375ccdc4f5557e","impliedFormat":1},{"version":"08724e39439dbc02bdba9768f84736ed132bb02a04fbce0a2cdfc91f42e90505","impliedFormat":1},{"version":"657e6dc684415721980e91e97785f1b8e6da4134e194de757d2d3733c54b4f06","impliedFormat":1},{"version":"bad1bc59cf9ba7f2b8efc0f7342b141843cbf3d3d791fa13df4ff9b86db26df9","impliedFormat":1},{"version":"a2ca9f3aee02a7fa0ec6f80afc09c5465191e5ca513be720bf858f5da275e66b","impliedFormat":1},{"version":"96a56b3bbf8346c584c5d58db4fb8adc58982e4e9f2929488ad5aeb89ddc19f8","impliedFormat":1},{"version":"8eb142d9d0e29220c562296bdbed6b2c228df84589ce5d0c74ed7c333c1ba6cd","impliedFormat":1},{"version":"cc1cae0a4b760e3f7a999aa701cab8506d072dc2ce735a8d66a166bced7a50a9","impliedFormat":1},{"version":"8241456dfd6dc2f37249912777b27ea61f87c1e143769bf4929537fb2557cc92","impliedFormat":1},{"version":"075e2eb330132cc65fb737773b548c9e85736e58165adebe15e8d316d9b5ec7c","impliedFormat":1},{"version":"cb95d593566dd1c94319efb696ff35de2dd449439fd0143e2744b19fccb963f8","impliedFormat":1},{"version":"44b0e7ce4a8a0f4e4b591e63b6d30979e65ba58e727c713a8fa327e25538c467","impliedFormat":1},{"version":"f4f7b1679db9853bac6e1b0aeeecb99ad7da0c4630de71a7c04bd80501662ce0","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"e7be367719c613d580d4b27fdf8fe64c9736f48217f4b322c0d63b2971460918","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"392eadc2af403dd10b4debfbc655c089a7fa6a9750caeb770cfb30051e55e848","affectsGlobalScope":true,"impliedFormat":1},{"version":"62f1c00d3d246e0e3cf0224f91e122d560428ec1ccc36bb51d4574a84f1dbad0","impliedFormat":1},{"version":"53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6","impliedFormat":1},{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"c48c503c6b3f63baf18257e9a87559b5602a4e960107c762586d2a6a62b64a18","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"0364f8bb461d6e84252412d4e5590feda4eb582f77d47f7a024a7a9ff105dfdc","impliedFormat":1},{"version":"5433f7f77cd1fd53f45bd82445a4e437b2f6a72a32070e907530a4fea56c30c8","impliedFormat":1},{"version":"d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"9a30b7fefd7f8abbca4828d481c61c18e40fe5ff107e113b1c1fcd2c8dcf2743","affectsGlobalScope":true,"impliedFormat":1},{"version":"173b6275a81ebdb283b180654890f46516c21199734fed01a773b1c168b8c45c","impliedFormat":1},{"version":"304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","impliedFormat":1},{"version":"1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","impliedFormat":1},{"version":"98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","impliedFormat":1},{"version":"c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","impliedFormat":1},{"version":"2eaa31492906bc8525aff3c3ec2236e22d90b0dfeee77089f196cd0adf0b3e3b","impliedFormat":1},{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f5814f29dbaf8bacd1764aebdf1c8a6eb86381f6a188ddbac0fcbaab855ce52","impliedFormat":1},{"version":"a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","impliedFormat":1},{"version":"d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900","impliedFormat":1},{"version":"1d4d78c8b23c9ddaaaa49485e6adc2ec01086dfe5d8d4d36ca4cdc98d2f7e74a","affectsGlobalScope":true,"impliedFormat":1},{"version":"44fc16356b81c0463cc7d7b2b35dcf324d8144136f5bc5ce73ced86f2b3475b5","affectsGlobalScope":true,"impliedFormat":1},{"version":"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","impliedFormat":1},{"version":"6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","impliedFormat":1},{"version":"56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","impliedFormat":1},{"version":"139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","impliedFormat":1},{"version":"7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","impliedFormat":1},{"version":"2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927","impliedFormat":1},{"version":"7da97d603bf3dd0000f56467c56cb6efaf5f94692980474925fae6c33412b12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","impliedFormat":1},{"version":"9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","impliedFormat":1},{"version":"e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","impliedFormat":1},{"version":"b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0","impliedFormat":1},{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"7245af181218216bacb01fbdf51095617a51661f20d77178c69a377e16fb69ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","impliedFormat":1},{"version":"4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"8704423bf338bff381ebc951ed819935d0252d90cd6de7dffe5b0a5debb65d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c6929fd7cbf38499b6a600b91c3b603d1d78395046dc3499b2b92d01418b94b","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","impliedFormat":1},{"version":"f1f23acd4a8193453749f69d4432f5f122d6d572b793a8b630dd12fe80b0c3d3","impliedFormat":1},{"version":"7662d6994d28c9ebbe61b88cc35c3d705804351eedbf363df30ea9fe8c4961dc","impliedFormat":1},{"version":"1fb68106bddae35448e5279095461a4b54c4bbb42787cd629f70924b17e9a11e","impliedFormat":1},{"version":"46a9b0122b230cb2fab65999ba92f98a16fd8f1c25efaed47141cbf5056f6928","impliedFormat":1},{"version":"5a9a4741aa510bdee406441f77186c6d2005be78e78c2e0da8201d9991950164","impliedFormat":1},{"version":"351bbf43d585484825ee6c4b4805aac137ffc8e8a3b9812af99945a202db7c02","impliedFormat":1},{"version":"3990ae796cc23fb9829eae206eff1eddded9465504467a4433f2509e18ef1aed","impliedFormat":1},{"version":"b557ea3605e52406e35eeea468cb96f25b1ca906f2055f376597f0b02492d94c","impliedFormat":1},{"version":"f384bb303dbc114af6460e7cb30b766cc92eed33fccb331126b08bb63f15a034","impliedFormat":1},{"version":"8a9bd1cf8c1f75435f83595b43737c135e7f73bde39ba4c9339dc6a31e8bb069","impliedFormat":1},{"version":"aa7747ab234b18813944ecdd61683a696025cd4f6970d7749d370080d4f9b349","impliedFormat":1},{"version":"8274bfd5de49f9f072be2f39c34e390101a8b69844e55eda36c7df23ba6d03e2","impliedFormat":1},{"version":"f8b482dddda55dd6677d7895a3fef8cd9d067f8c36c63cc7fe93b82a6dd4f10c","impliedFormat":1},{"version":"71d11ad1f05b0b90e95591fa85c1c8043e590d67972dcaba9b50435a0c04d8fa","impliedFormat":1},{"version":"5c74e3eee30bb7899eebe784e3c05cb29f1bed3efb2a3b4599b66173fda4aa30","impliedFormat":1},{"version":"a980ce9470dc95ac355d7efb729f9cfb0564505eba96da4bbde504299efb833a","impliedFormat":1},{"version":"72a33e518e5b98cd9c9dc8ee294f7507bf2a8938f491b0cf49c8ae582b966b3a","impliedFormat":1},{"version":"a58402dc75738c188a741ccca86ccf898b0af98d305ad075c428171f193a6cd5","impliedFormat":1},{"version":"67d37ef881a81aefe3a0f70f78e3835be950f2359487d3eb61b0a3bb9af172bc","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d789022bf705385490fe89811bc7850225c207f37dd706ada2509eb1d8f31f12","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"173838811f6dcba587706efd87358f804261549bc02c455d31818328c1af97ad","impliedFormat":1},{"version":"483ff04f1796aef40323f47ca3f03bf53492a2878508c8d7be98cdb4fae151f3","impliedFormat":1},{"version":"abd02654e7ae1f70f68ec509b2c3c1e388c0142d169ba37a157f558709efe2a1","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"10663993b4ea28a91e9b254f3d9f4bf07c4648f0295e78520712a74181193ca8","impliedFormat":1},{"version":"e1bd89448b0c84f457f4e3d4d1d1e10a6649a801ee38d38e8e00ff8c02288e1a","impliedFormat":1},{"version":"43cf1bedeebd62a722c59f64fd6dfcf00d2dc61d34e43df5bda685b4c371a028","impliedFormat":1},{"version":"f80aacd9c52d6cb57bc768d31b80696f7afd29649fa909f5db5a151cdb84e60e","impliedFormat":1},{"version":"ce4b304c6f0626204f587582ef5d87d5d3852b3960616cfddbde91a4b1e684f4","impliedFormat":1},{"version":"62d7505bed35104521502937eae5b9a9dc2e4605c503c8360f6e05773eb431c3","impliedFormat":1},{"version":"b6a2ff800285b098c10db21f575ec573b2146d44a99d4ca9905688be2a10e4ca","impliedFormat":1},{"version":"d9633e38b7bdec8d02cfdf26407f4f1a17ee19ad152373c50282f9e21aabfcbd","impliedFormat":1},{"version":"7c3017ce8167bc4348113eb0e7c86006cdc782152eec38329650baea9ce1b420","impliedFormat":1},{"version":"b71a031704ef5d87d8a67611835077a341214832e096af33072b3aaf9aa1ad87","impliedFormat":1},{"version":"52677ff121ade9bf5219f9988724545058af547dc77ce6792cb4128e7aab9b67","impliedFormat":1},{"version":"a77e22a8eb04e73d2eb68bcf4d2b10274765361d62695f6463fe2857896b8dc0","impliedFormat":1},{"version":"607261009780709c3c49b391bedec7e02d4a280f3bec07adc045ddd7ab3b865c","impliedFormat":1},{"version":"3328e0933bdc17e62ea687ee5d188b292c73a6a83225b44959a1498503a57036","impliedFormat":1},{"version":"29336658851edd747fa293358abe60579cf18884679281b27e118d49ab440599","impliedFormat":1},{"version":"2aa6b550253f77aa245a03802f0de2aeb11455d241924e7b3607c35be05a9769","impliedFormat":1},{"version":"b49a21ec7dea62a11237127eec1a8f598b9c69ae1d0c5b411f1fd2f7560d4df4","impliedFormat":1},{"version":"45c129339ca4fa35a6bc950620c5c17fec5d97f812e86f89ae03be5b3b900ddf","impliedFormat":1},{"version":"5217ca5c5e094fa32f60e1e7ab53d48fe80f51419da2e86473e90d29c6834427","impliedFormat":1},{"version":"e02ae29730ed9bcae2d8c2fbd8878aa0b6e6cf86e172c1aa7e152efd30db6db3","impliedFormat":1},{"version":"103beae831c78a92b13f67cd37b23935d309605a78e241739a171ee728e242ab","impliedFormat":1},{"version":"8b134f5b6f5afaa8ec4331438fbf9393ebecc012182e60496ea279deb1ed4525","impliedFormat":1},{"version":"cc2939382060ab53f5f1d26d2f2a93f94c034b762a89bbf4cb8a207cf4505c09","impliedFormat":1},{"version":"a0e2d6e086872c0e5848cf0b952a375bb738690d241ea3c806c2ab44e04e7638","impliedFormat":1},{"version":"3dfcd0a3bfa70b53135db3cf2e4ddcb7eccc3e4418ce833ae24eecd06928328f","impliedFormat":1},{"version":"b26f93d773cf3aa4dc421c45323adccaead92598594a56f4a84d77910ee4f510","impliedFormat":1},{"version":"bc41a8e33caf4d193b0c49ec70d1e8db5ce3312eafe5447c6c1d5a2084fece12","impliedFormat":1},{"version":"7c33f11a56ba4e79efc4ddae85f8a4a888e216d2bf66c863f344d403437ffc74","impliedFormat":1},{"version":"2bb86e343b4109c784b11070735fa881af5c870a409a3b87b13800ca2afef421","impliedFormat":1},{"version":"fc9d4e784c9e7569911d8a6a01e1de90617942639c7c260beffdef1548b1ce06","impliedFormat":1},{"version":"37c1aeea4ec8df37bbe5d96bda46831acab3f70b2001ec9f51cb3146a101de89","impliedFormat":1},{"version":"5ac83af1a323158abc8627462fe987f7c67f957f88cdcf2237ae4dddc26677a8","impliedFormat":1},{"version":"df486e591f21d229d75df323fb9cf34f4b5cdbccee6a9b42227be738a13755d6","impliedFormat":1},{"version":"69ebf923204206eecef4310dc8bf28ab07feddaa3542066cdafbe67adf45f811","impliedFormat":1},{"version":"ae8189514ed306971ac9aa7d917487ee51dc3590aa5735f23c1d71811c373ea6","impliedFormat":1},{"version":"6de9d8858034d3197c1525e1c29c942cf7912f807d4d7f14dea247b7c05b59b0","impliedFormat":1},{"version":"394b4927dcc6eda44eb759f395da17b6e07f4daf272216b5cfc92eb32239f561","impliedFormat":1},{"version":"1adcc285d2d477ec6c51d0282d891fdf9d04a5fa8dfa479eab153ae17376f1b4","impliedFormat":1},{"version":"0ad294cdc42fb1f99cc94db8f77364ddc516643d9c69d4e66942f2cfd783213b","impliedFormat":1},{"version":"3956f34170e48abf902bc81055fb35a7e8b87109dbf3ca272d096d6d42cf7b84","impliedFormat":1},{"version":"f3acf8cff186f71a3a9b2da63f1378de6fe68a8578cb47d097776143cc84cd7d","impliedFormat":1},{"version":"1db170e5dad144b639ddf3d32710491c583f48c6e522580c8d5a8c249a611338","impliedFormat":1},{"version":"960923ce078ecfef6e5c34468cdba5c552b064c0db7cb0fdd3eafd1bb9d3d7e9","impliedFormat":1},{"version":"42f034630b3a866d4a88b37cf0f8357b36af2f7298b319d536b7413ba99f979b","impliedFormat":1},{"version":"33d1d46d7789bebdf9b78cd54f39022aad5d7d1d03a58bdad4fe98658acfef06","impliedFormat":1},{"version":"b3956ba310c0bcd45b1c77455a9754a35b49642be91bfbb412e04d378fad83a1","impliedFormat":1},{"version":"052854468e3d8142f440fa9a0da1d743abef903dff09597025d07703c25b601e","impliedFormat":1},{"version":"284147c679272283a4bea7ccaecbbab198bb1854e19269b2e59d4b5cedd5894a","impliedFormat":1},{"version":"325994b6f6c7598c73bbd0294bf1e3f1e229772669b3c8a08fe3170442f600b8","impliedFormat":1},{"version":"581656e45b2555b764e2880a39859e25ac6c0c9a74cff83dd22d3859b2231982","impliedFormat":1},{"version":"843563f951d16e850a0be806010f630a4a71f0a55810bb9aced67c6d7774bf2f","impliedFormat":1},{"version":"9af1c478e5403b39b922df9132d779bc6e1ef88cafec17fcecf26356d90ecbd6","impliedFormat":1},{"version":"a95a6135f2d195c93d930ba01049c33579328e55612477c0ae5652429d3974ad","impliedFormat":1},{"version":"24ead5861f4400218aeaafa477082022f244e3df46d18831411f3a47fc3ff515","impliedFormat":1},{"version":"65ce9342063fcf793e7baea7526a5a9a2f6ce05dea0cf4ae726d02eae2b98fa3","impliedFormat":1},{"version":"b932682e049f41e294a3429aca3b0adb4d2eed8047b4c22f91565e9353d6940c","impliedFormat":1},{"version":"5a1755f317ac2c0d708fbf7c1dbf076ba3a31f624c534b44275c9c43033fdc2e","impliedFormat":1},{"version":"37f95ca94bcf0f1dd998ff9908700f87e5ffcdd01797cea96b1ca70606bf958c","impliedFormat":1},{"version":"be743f644e6ee8e0c862e0104b43d002943abbfe4a6719d9a2d3fb26b4439bc5","impliedFormat":1},{"version":"a337b9716b16c46e80a8810209cb162d32af16c6c93b331edcc01cdce5d82eba","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"58bdd5fd93f39bae19f34924ad304608ee37b6c6b357a57823ddfd2585a56d0f","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"b61ebe734dabd3ca10247807bfa4585ed51c889282e5decd152eea86daea7383","impliedFormat":1},{"version":"41a35a21d3c9c0450229cf41be783285f3c01edd84039a41ffd162d42a93a576","impliedFormat":1},{"version":"ec9d55888e353f9b5cdda761308dffc7eeb6aa0b7b25d328c64d3776a1cf2a7e","impliedFormat":1},{"version":"9686c9ade71de53d81ee3e41ff7450d08bd08fff4f545af39e37eeda228745d6","impliedFormat":1},{"version":"78fbf5d1265bdca3b2e54323d63678e3f73fecf70c05d988966a683da4cdf2f8","impliedFormat":1},{"version":"37c0fd48eb043fdc395435716585587815f63afc66159588db8ed6c25a5f0636","impliedFormat":1},{"version":"7cd0faa5800c730d5e9387a5ad312732d95d0a3bd5a67e266721f36ae1068a91","impliedFormat":1},{"version":"03a931e4fb1e8b851a171b246a8aeba575fcdecde60c914b23f472af5beb29b0","impliedFormat":1},{"version":"f22230ec7c2b08a8f8dc110bacd30c910701cb7347b3129b9cf12f6e28130656","impliedFormat":1},{"version":"73623979b2b6f47b9af0efea985d91197a3c3303466ed786163757f0aa6b45bc","impliedFormat":1},{"version":"ad91f5cc45805d17ac94b01428f82b182c6ff0ebe6343d72fd298945478d203d","impliedFormat":1},{"version":"df4ba08679bfd850b787d662118aae3c4741dcaa661cf8689a768dab462cfd90","impliedFormat":1},{"version":"4acc4bccbdec774c58992a87f3ac2731f9d38c821520d06b4d53911898d0e3ec","impliedFormat":1},{"version":"94d6422d3c3faf923fbdff1ce7457a25f9b0b55e8a2fe0fefa8bfa7a89cf6676","impliedFormat":1},{"version":"1c775cb43c5edae0a7b4a5e543c07baab07f751e5cccc60a22c5bc3f6e38309c","impliedFormat":1},{"version":"0eef4cf077011e3d1839dfb93ab894cd611cf552c26eb995c822e8d9b71d93a1","impliedFormat":1},{"version":"f356e7999affebf5745d8ffdf0cb70426bc966da461166408099e4dac35e98c2","impliedFormat":1},{"version":"254265a792bdf31050dc2524733465d3ace0b179779e1ff8a97b2752a9b56656","impliedFormat":1},{"version":"1b85664bf562d2d216d71b940d8097600b4ed626f67528c868ced65dbe7288e6","impliedFormat":1},{"version":"7891c7290f213b63911a1391b3dfe08c9bfa54d401f28e167d0c57553eee80c0","impliedFormat":1},{"version":"707db20cf8a4ee166e63861c0a7d355b44595555e0248565479e745f6c1034d0","impliedFormat":1},{"version":"2a9788e7789f4ab603d4d3982fe5a98ff51b699b8ec4653fceb3192e147337dc","impliedFormat":1},{"version":"5bee6b675b1a0ece9d5082d438e923f112343685d4bc54b20a4dfbed09dbe323","impliedFormat":1},{"version":"ebd7209e5b648af7b6e3677280368b3c8ccef579a27c2386f7f5d376f1e14533","impliedFormat":1},{"version":"60f5fe888f5364424f9cdf43eef013cdcd6827cbec1d6d20fa191f5ebe827afd","impliedFormat":1},{"version":"aca0e55a2961b519f8857517e2cdf6085f024bb10c6961e120c80b76569fc4d7","impliedFormat":1},{"version":"26245b1b8452c300347a31b37a052c3244a36393dec03facfa4b31a8d8687184","impliedFormat":1},{"version":"f1f23acd4a8193453749f69d4432f5f122d6d572b793a8b630dd12fe80b0c3d3","impliedFormat":1},{"version":"7662d6994d28c9ebbe61b88cc35c3d705804351eedbf363df30ea9fe8c4961dc","impliedFormat":1},{"version":"1fb68106bddae35448e5279095461a4b54c4bbb42787cd629f70924b17e9a11e","impliedFormat":1},{"version":"9acd551d1b5fb8a4ea4bfd65e8fcc8beca89a4b98fc1a9321924308256383565","impliedFormat":1},{"version":"a7024322dc86e43685c5564b438decad7557de62baae80b062fee78752c3b2f4","impliedFormat":1},{"version":"351bbf43d585484825ee6c4b4805aac137ffc8e8a3b9812af99945a202db7c02","impliedFormat":1},{"version":"a0116a0ba37624acef486fba35bd5530c8c25415798c8908a35e5f72913d2365","impliedFormat":1},{"version":"3bd2fc1b877ba4f9c91fca3231333471f3ff0edf85e146eaafdff2bc42c9a44c","impliedFormat":1},{"version":"387a6dc0d57a9f602d0d7f2f4ba88b65540c1c19d84088157610ca0176793a03","impliedFormat":1},{"version":"7078f6149d25fa110b2bd24dece6754520e5984a2dd014875bef7ebe91016617","impliedFormat":1},{"version":"3b4ba8322f73cc571cd57e55199b909e04b5da79d00d58a3a20fd71463f8c081","impliedFormat":1},{"version":"7f0820b26c5352d7b5b638a2c5724fa32a57170242e122042e76ef2bdfd2acb0","impliedFormat":1},{"version":"4d265f93b1cbc28de09dc5d2e23e7f657c41c94e31d6f7702a2ebf575abf6850","impliedFormat":1},{"version":"698b60673a9dc847504cc8fd93e4e3873716dc1e8e1c6e739d88443116e68a3a","impliedFormat":1},{"version":"9efb29be5efc6f2ebbc563e5fc669210f0c5e066912878d2d70430f17ae3d74b","impliedFormat":1},{"version":"24a8671563a590262456e0079740f279e15e8647dc40245389476eecee7f5eee","impliedFormat":1},{"version":"5b5f7b75c275d55cb364fde1994aa6fcabc8a37d0619f7547c1472be2d995af0","impliedFormat":1},{"version":"33032e35679c2607f999d37fa166d29b196c859fce5e422ad2e0e05dc2a157e8","impliedFormat":1},{"version":"7b47e8bc93a21919458e66779b1695ff3dbf552db1f9179728c1f69c4f1f4bcb","impliedFormat":1},{"version":"2095ec8279898a373e3081eb660aca6821e46061dda39b78e2ff7f9a046bf224","impliedFormat":1},{"version":"840f0f283c240215cb883055aa58be12a99159b0eea349124f6bdbd37a2b1e75","impliedFormat":1},{"version":"ff9095e8035390d3c5e51445722c8a4f1d57a182b5bed8957e58877f12e846dd","impliedFormat":1},{"version":"e1bd6432e4e89ac8b18999c6ad660f943208bb1786588dba2fab04ad00159a62","signature":"91bd730422a4bb4843341302f6b64cdbfe4476fb2615ba116fc55fe1b7896c6a","impliedFormat":1},{"version":"16bf1ffaf7bfb7569111db16648db717a03c0e383c420a227f0a9a822f89a447","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"5b4234d676c1c7d138c1eae5f930d7462af0bbfbb603cf79329a4e631554da0f","impliedFormat":1},{"version":"9837b03c1d83ad529d419be65655a1cb85c097f13703936ec6be1ee43ec9ef5f","impliedFormat":1},{"version":"c0e5b4df115963b8a8dcd5b56ff9dc046ddec110de138dba29b00e2b02fa03a9","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"432a61971738da04b67e04e08390ac124cc543479083709896b2071d0a790066","impliedFormat":1},{"version":"1ba55e9efbea1dcf7a6563969ff406de1a9a865cbbdaea2714f090fff163e2b5","impliedFormat":1},{"version":"309715f2bcee4af51e6425b264deaa2f5f0bda74f86099a2112b596c8697e888","impliedFormat":1},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","impliedFormat":1},{"version":"ba854883a418fca4343b51cb93718d481770f3b81e978bbf6378a2385264e55c","impliedFormat":1},{"version":"211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","impliedFormat":1},{"version":"5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","impliedFormat":1},{"version":"880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","impliedFormat":1},{"version":"7a1dd1e9c8bf5e23129495b10718b280340c7500570e0cfe5cffcdee51e13e48","impliedFormat":1},{"version":"8cbbb12bfb321de8bd58ba74329f683d82e4e0abb56d998c7f1eef2e764a74c8","impliedFormat":1},{"version":"742f21debb3937c3839a63245648238555bdab1ea095d43fd10c88a64029bf76","impliedFormat":1},{"version":"7cfdf3b9a5ba934a058bfc9390c074104dc7223b7e3c16fd5335206d789bc3d3","impliedFormat":1},{"version":"0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","impliedFormat":1},{"version":"6dfd0aeb128f03ebaa66306bf1fc753bf434f47373900fc2205660fae499ac2e","impliedFormat":1},{"version":"a109c4289d59d9019cfe1eeab506fe57817ee549499b02a83a7e9d3bdf662d63","impliedFormat":1},{"version":"6d09838b65c3c780513878793fc394ae29b8595d9e4729246d14ce69abc71140","impliedFormat":1},{"version":"202f8582ee3cd89e06c4a17d8aabb925ff8550370559c771d1cc3ec3934071c2","impliedFormat":1},{"version":"5d30565583300c9256072a013ac0318cc603ff769b4c5cafc222394ea93963e1","impliedFormat":1},{"version":"33a0782502805f6dac67362b4290250e29755139a9c0d93a42e9da3a6e282e85","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"6be361c303ad5b42401bb74f16ddebd4a32ae30197f295035b4099848081c0c3","impliedFormat":1},{"version":"c271193e426325d9acab2f99997bb9f5f2dff850ec8c7c011c5abafe5af83b5f","impliedFormat":1},{"version":"6ab263df6465e2ed8f1d02922bae18bb5b407020767de021449a4c509859b22e","impliedFormat":1},{"version":"6805621d9f970cda51ab1516e051febe5f3ec0e45b371c7ad98ac2700d13d57c","impliedFormat":1},{"version":"34b97b31fde4a69f5fbb734783103064f1ffae897e6b7dde785072561c09a0e3","impliedFormat":1},{"version":"5aca5a3bc07d2e16b6824a76c30378d6fb1b92e915d854315e1d1bd2d00974c9","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"550650516d34048712520ffb1fce4a02f2d837761ee45c7d9868a7a35e7b0343","impliedFormat":1},{"version":"06c5dad693aebbff00bd89fccb92bce6c132a6aa6033bb805560fa101e4fe77b","impliedFormat":1},{"version":"f4b59577879efe9854a8ea980f49febdb0a45e0a7b0ad0d8973b785e6b6898f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"6451264601a58c77b5f347234485ce0ac09e9fafcc5228a3c60f5ccb3fc8524e","affectsGlobalScope":true,"impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"5d30d04a14ed8527ac5d654dc345a4db11b593334c11a65efb6e4facc5484a0e","impliedFormat":1},{"version":"74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185","impliedFormat":1}],"root":[[337,339]],"options":{"composite":true,"declaration":true,"module":100,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./out","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":8},"fileIdsList":[[160,198],[163,198],[343],[346],[348,349,350],[161,198,353,354],[356],[161,190,198],[361],[361,363],[364],[366],[363],[340],[111],[147],[148,153,182],[149,154,160,161,168,179,190],[149,150,160,168],[151,191],[152,153,161,169],[153,179,187],[154,156,160,168],[147,155],[156,157],[160],[158,160],[147,160],[160,161,162,179,190],[160,161,162,175,179,182],[145,148,195],[156,160,163,168,179,190],[160,161,163,164,168,179,187,190],[163,165,179,187,190],[111,112,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197],[160,166],[167,190,195],[156,160,168,179],[169],[170],[147,171],[168,169,172,189,195],[173],[174],[160,175,176],[175,177,191,193],[148,160,179,180,181,182],[148,179,181],[179,180],[182],[183],[147,179],[160,185,186],[185,186],[153,168,179,187],[188],[168,189],[148,163,174,190],[153,191],[179,192],[167,193],[194],[148,153,160,162,171,179,190,193,195],[179,196],[198],[179,198,373],[377,416],[377,401,416],[416],[377],[377,402,416],[377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415],[402,416],[421],[160,179,198],[53,54,55,56,57],[55],[53],[53,54],[55,105,222,225,229],[101,109,229,239],[101,103,109,229,239,240],[101,103,109,229,239],[101,109,222,227,229,239],[101,109,228,239],[101,103,109,221,224,226,228,230,231,239,241],[58,98,109,239],[58,104,105,106,107,108,239],[98,101,105],[58,98,101,105,239],[58,98,101,102,103,104,106,239],[98,101,102,105],[101],[226],[98,102,103],[51,52],[58,101,103,109,232,233,234,235,236,237,238,239],[58,103,239],[58,103,237,239],[101,103,109,239],[122,126,190],[122,179,190],[117],[119,122,187,190],[168,187],[117,198],[119,122,168,190],[114,115,118,121,148,160,179,190],[114,120],[118,122,148,182,190,198],[148,198],[138,148,198],[116,117,198],[122],[116,117,118,119,120,121,122,123,124,126,127,128,129,130,131,132,133,134,135,136,137,139,140,141,142,143,144],[122,129,130],[120,122,130,131],[121],[114,117,122],[122,126,130,131],[126],[120,122,125,190],[114,119,120,122,126,129],[148,179],[117,122,138,148,195,198],[109,239,335],[246],[59,245],[59,102,243,244],[285,286,287,288,289,291,292,293,294],[287,288],[286,287,288,289,292,293],[286,291],[287],[286,288,290,291,295],[286,288,290,291],[287,290],[60,61,62,63,64,65,66,67,68,69,70,71,72],[63,64],[61,63,64,65,68,69],[61,67],[63],[67],[61,64,66,67,73],[61,64,66,67],[63,66],[61,65,70],[73,149,168,195,198],[217],[284,295,296,312,313],[295,296],[295],[284,295,296,312],[295,296,312],[284,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311],[284,295,296],[296,312],[59,73,74,96,97],[73,74],[73],[59,73,74,96],[59,73,74],[59,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],[74,96],[59,74,96],[98,198,218],[219],[314,315,319,324],[314,324],[314,315,316,317,318,319,320,321,322,323],[98,199,203,212,213,215,221],[98,215],[98,212,215],[98,199,200,201,202,203,204,205,206,207,208,209,210,211,213,214],[98],[110,198,215,216,220,222],[223],[99,100],[99],[59,246,334],[281],[246,247],[59,102,246,248,281,282],[102,281,282,283,329,330,332],[102,331],[247,248,283,326,334],[245],[59,102],[59,102,246,247,248,325,327,328,332,333],[247,325,327,334],[101,102,198,248,325,326,332,334],[250,264,266,270,272,273],[258,259,266,272],[272],[250,254,256,257,259,262,264,266,271,273],[249],[249,250,254,256,257,258,259,262,263,264,266,270,271,272,274,275,276,277,278,279,280],[253,256,262],[253,254,256,257,265,266,270,272],[259,266],[254,256,257,262,265,270,271,272],[253,254,256,257,259,260,261,265,266,270,271],[253,266,270],[265,266,272],[253,254,255,259,262,265,266,270],[249,251,252,254,258,259,262,263,266,273],[250,254,266,270],[270],[267,268,269],[251,264,266,272,274],[258,262,264,266],[258,264],[254,256,257,259,260,264,265,266],[253,257,258,281],[253,254,256,258,259,262,265],[264,271,272],[254,256,257,262,266,271,272],[242,336,337],[58,101,103,239],[225]],"referencedMap":[[341,1],[342,2],[344,3],[347,4],[351,5],[355,6],[357,7],[353,8],[362,9],[364,10],[365,11],[367,12],[368,13],[369,14],[111,15],[112,15],[147,16],[148,17],[149,18],[150,19],[151,20],[152,21],[153,22],[154,23],[155,24],[156,25],[157,25],[159,26],[158,27],[160,28],[161,29],[162,30],[146,31],[163,32],[164,33],[165,34],[198,35],[166,36],[167,37],[168,38],[169,39],[170,40],[171,41],[172,42],[173,43],[174,44],[175,45],[176,45],[177,46],[179,47],[181,48],[180,49],[182,50],[183,51],[184,52],[185,53],[186,54],[187,55],[188,56],[189,57],[190,58],[191,59],[192,60],[193,61],[194,62],[195,63],[196,64],[371,65],[374,66],[401,67],[402,68],[377,69],[380,69],[399,67],[400,67],[390,67],[389,70],[387,67],[382,67],[395,67],[393,67],[397,67],[381,67],[394,67],[398,67],[383,67],[384,67],[396,67],[378,67],[385,67],[386,67],[388,67],[392,67],[403,71],[391,67],[379,67],[416,72],[410,71],[412,73],[411,71],[404,71],[405,71],[407,71],[409,71],[413,73],[414,73],[406,73],[408,73],[422,74],[423,75],[58,76],[56,77],[54,78],[55,79],[230,80],[231,81],[241,82],[240,83],[228,84],[229,85],[242,86],[225,87],[109,88],[107,89],[106,90],[105,91],[108,92],[104,93],[227,94],[226,95],[53,96],[239,97],[234,98],[235,98],[236,98],[233,98],[238,99],[237,100],[129,101],[136,102],[128,101],[143,103],[120,104],[119,105],[142,65],[137,106],[140,107],[122,108],[121,109],[117,110],[116,111],[139,112],[118,113],[123,114],[127,114],[145,115],[144,114],[131,116],[132,117],[134,118],[130,119],[133,120],[138,65],[125,121],[126,122],[135,123],[115,124],[141,125],[336,126],[243,127],[246,128],[245,129],[295,130],[289,131],[294,132],[290,133],[288,134],[292,135],[293,136],[291,137],[73,138],[65,139],[70,140],[66,141],[64,142],[72,143],[68,144],[69,145],[67,146],[71,147],[217,148],[218,149],[314,150],[313,151],[296,152],[306,153],[301,153],[300,154],[312,155],[303,153],[310,156],[302,153],[297,153],[309,153],[311,157],[305,156],[304,153],[307,153],[308,156],[298,153],[299,151],[98,158],[97,159],[74,160],[84,161],[79,161],[78,162],[96,163],[81,161],[93,161],[88,162],[80,161],[75,161],[92,161],[95,161],[91,161],[87,161],[89,164],[94,165],[83,162],[82,161],[85,161],[86,162],[76,161],[90,161],[77,162],[219,166],[220,167],[325,168],[318,169],[316,169],[321,169],[322,169],[323,169],[315,169],[319,169],[324,170],[320,169],[317,169],[222,171],[202,172],[200,172],[211,172],[205,172],[209,172],[210,172],[221,172],[208,172],[206,172],[214,172],[213,173],[199,172],[203,172],[215,174],[204,172],[212,175],[207,172],[201,172],[223,176],[224,177],[101,178],[100,179],[335,180],[282,181],[248,182],[283,183],[331,184],[332,185],[327,186],[329,187],[330,188],[334,189],[326,190],[333,191],[274,192],[260,193],[273,194],[272,195],[250,196],[281,197],[261,198],[271,199],[255,200],[266,201],[262,202],[254,203],[253,204],[256,205],[257,205],[264,206],[267,207],[268,208],[269,208],[270,209],[276,208],[277,210],[259,211],[263,212],[258,213],[278,214],[279,215],[265,216],[280,217],[338,218],[337,219],[339,220]],"latestChangedDtsFile":"./out/protocol.d.ts"},"version":"5.5.3"} \ No newline at end of file diff --git a/packages/vscode/package.json b/packages/vscode/package.json index e17308c8c1..2bad9728e2 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -355,10 +355,12 @@ }, "devDependencies": { "@antfu/utils": "^0.7.10", + "@slidev/language-server": "workspace:^", "@slidev/parser": "workspace:*", "@slidev/types": "workspace:*", "@types/node": "^20.14.10", "@types/vscode": "~1.89.0", + "@volar/vscode": "^2.4.0-alpha.15", "@vue/reactivity": "^3.4.31", "@vue/runtime-core": "^3.4.31", "@vue/shared": "^3.4.31", diff --git a/packages/vscode/src/index.ts b/packages/vscode/src/index.ts index 6d7858b2eb..312d5e5fcf 100644 --- a/packages/vscode/src/index.ts +++ b/packages/vscode/src/index.ts @@ -1,5 +1,5 @@ import { effectScope, shallowRef } from '@vue/runtime-core' -import type { ExtensionContext } from 'vscode' +import { ExtensionContext, Uri } from 'vscode' import { useCommands } from './commands' import { useGlobalConfigurations } from './configs' import { activeEntry, useProjects } from './projects' @@ -9,9 +9,14 @@ import { useLogger } from './views/logger' import { usePreviewWebview } from './views/previewWebview' import { useSlidesTree } from './views/slidesTree' import { useProjectsTree } from './views/projectsTree' +import { LanguageClient, LanguageClientOptions, ServerOptions, TransportKind } from '@volar/vscode/node'; +import { createLabsInfo } from '@volar/vscode'; +import * as serverProtocol from '@slidev/language-server/out/protocol'; const scope = effectScope() +let client: LanguageClient; + export const extCtx = shallowRef(undefined!) export async function activate(ext: ExtensionContext) { @@ -36,6 +41,41 @@ export async function activate(ext: ExtensionContext) { logger.info('Slidev activated.') logger.info(`Entry: ${activeEntry.value}`) }) + + return await startLanguageServer(ext); +} + +async function startLanguageServer(ext: ExtensionContext) { + const serverModule = Uri.joinPath(ext.extensionUri, 'node_modules', '@slidev', 'language-server', 'bin', 'slidev-language-server.js'); + const runOptions = { execArgv: [] }; + const debugOptions = { execArgv: ['--nolazy', '--inspect=' + 6009] }; + const serverOptions: ServerOptions = { + run: { + module: serverModule.fsPath, + transport: TransportKind.ipc, + options: runOptions + }, + debug: { + module: serverModule.fsPath, + transport: TransportKind.ipc, + options: debugOptions + }, + }; + const clientOptions: LanguageClientOptions = { + documentSelector: [{ language: 'markdown' }], + }; + client = new LanguageClient( + 'slidev-language-server', + 'Slidev Language Server', + serverOptions, + clientOptions, + ); + await client.start(); + + const labsInfo = createLabsInfo(serverProtocol); + labsInfo.addLanguageClient(client); + console.log(labsInfo.extensionExports); + return labsInfo.extensionExports; } export async function deactivate() { diff --git a/packages/vscode/tsup.config.ts b/packages/vscode/tsup.config.ts index bbf4f4a722..6422825910 100644 --- a/packages/vscode/tsup.config.ts +++ b/packages/vscode/tsup.config.ts @@ -3,7 +3,7 @@ import { join, resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { defineConfig } from 'tsup' -export default defineConfig({ +export default defineConfig([{ entry: ['src/index.ts'], format: ['cjs'], target: 'node18', @@ -34,4 +34,37 @@ export default defineConfig({ for (const file of ['logo-mono.svg', 'logo-mono-dark.svg', 'logo.png', 'logo.svg']) copyFileSync(resolve(assetsDir, file), resolve(resDir, file)) }, -}) +}, { + entry: ['node_modules/@slidev/language-server/src/index.ts'], + outDir: 'dist/server', + format: ['cjs'], + target: 'node18', + clean: true, + // minify: true, + external: [ + '@slidev/language-server/out/protocol', + ], + plugins: [ + { + name: 'alias', + esbuildOptions(options) { + options.alias ||= {} + options.alias['@vue/runtime-core'] = fileURLToPath(new URL('../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js', import.meta.url)) + options.alias['@vue/reactivity'] = fileURLToPath(new URL('../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js', import.meta.url)) + options.alias['@vue/shared'] = fileURLToPath(new URL('../../node_modules/@vue/shared/dist/shared.esm-bundler.js', import.meta.url)) + options.plugins ??= [] + options.plugins.push({ + name: 'umd2esm', + setup(build) { + build.onResolve({ filter: /^(vscode-.*-languageservice|jsonc-parser)/ }, args => { + const pathUmdMay = require.resolve(args.path, { paths: [args.resolveDir] }) + // Call twice the replace is to solve the problem of the path in Windows + const pathEsm = pathUmdMay.replace('/umd/', '/esm/').replace('\\umd\\', '\\esm\\') + return { path: pathEsm } + }); + }, + }) + }, + }, + ], +}]) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 150f4c601e..1537ef018a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -427,6 +427,18 @@ importers: specifier: ^2.4.2 version: 2.4.2 + packages/language-server: + dependencies: + '@slidev/parser': + specifier: 0.49.16 + version: link:../parser + '@volar/language-server': + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 + volar-service-yaml: + specifier: volar-2.4 + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) + packages/parser: dependencies: '@antfu/utils': @@ -715,6 +727,9 @@ importers: '@antfu/utils': specifier: ^0.7.10 version: 0.7.10 + '@slidev/language-server': + specifier: workspace:^ + version: link:../language-server '@slidev/parser': specifier: workspace:* version: link:../parser @@ -727,6 +742,9 @@ importers: '@types/vscode': specifier: ~1.89.0 version: 1.89.0 + '@volar/vscode': + specifier: ^2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/reactivity': specifier: ^3.4.31 version: 3.4.31 @@ -2209,12 +2227,24 @@ packages: '@volar/language-core@2.4.0-alpha.15': resolution: {integrity: sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==} + '@volar/language-server@2.4.0-alpha.15': + resolution: {integrity: sha512-epaF7Rllb29nr25F8hX5bq7ivgStNZzXGkhuPlHCUM+Ij/aQnsBeYQsfm7EttPqqO3abCctpRWyd+icklFEBoQ==} + + '@volar/language-service@2.4.0-alpha.15': + resolution: {integrity: sha512-H5T5JvvqvWhG0PvvKPTM0nczTbTKQ+U87a8r0eahlH/ySi2HvIHO/7PiNKLxKqLNsiT8SX4U3QcGC8ZaNcC07g==} + + '@volar/snapshot-document@2.4.0-alpha.15': + resolution: {integrity: sha512-8lnX0eZ7/lM+hakO5kspWABi4nijppxTy9XU0f9ns2lZ/JCE0t9EurNNiOaw4MWFO9USr0H72Ut0LCB9o4rpqA==} + '@volar/source-map@2.4.0-alpha.15': resolution: {integrity: sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==} '@volar/typescript@2.4.0-alpha.15': resolution: {integrity: sha512-U3StRBbDuxV6Woa4hvGS4kz3XcOzrWUKgFdEFN+ba1x3eaYg7+ytau8ul05xgA+UNGLXXsKur7fTUhDFyISk0w==} + '@volar/vscode@2.4.0-alpha.15': + resolution: {integrity: sha512-apzZqZrCKO9tDWRzsy4EWUgywMzlVhIqDWP3HrXIjDuRKCFG7x8tgfqoDHOSs5M8aIo2BHk1akzCinobLkpFbw==} + '@vscode/vsce@2.26.1': resolution: {integrity: sha512-QOG6Ht7V93nhwcBxPWcG33UK0qDGEoJdg0xtVeaTN27W6PGdMJUJGTPhB/sNHUIFKwvwzv/zMAHvDgMNXbcwlA==} engines: {node: '>= 16'} @@ -2424,6 +2454,9 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + algoliasearch@4.22.1: resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} @@ -4207,6 +4240,9 @@ packages: json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} @@ -4707,6 +4743,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -5152,6 +5192,11 @@ packages: peerDependencies: prettier: ^3.2.4 + prettier@2.8.7: + resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} + engines: {node: '>=10.13.0'} + hasBin: true + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -5288,6 +5333,12 @@ packages: resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} hasBin: true + request-light@0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + request-progress@3.0.0: resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} @@ -5295,6 +5346,10 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -6177,6 +6232,56 @@ packages: jsdom: optional: true + volar-service-yaml@0.0.59: + resolution: {integrity: sha512-7Pi7XWnmgcWmdW7essscHn2+CcG1BEgnNjEE/31GaycwvLu4rPF+Xztzc0ErZLSFW3F2EBPzaecWfrGL2l4NGQ==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-json-languageservice@4.1.8: + resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} + engines: {npm: '>=7.0.0'} + + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageclient@9.0.1: + resolution: {integrity: sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==} + engines: {vscode: ^1.82.0} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} @@ -6303,6 +6408,14 @@ packages: resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} engines: {node: ^14.17.0 || >=16.0.0} + yaml-language-server@1.15.0: + resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} + hasBin: true + + yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} + yaml@2.4.5: resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} @@ -8098,6 +8211,31 @@ snapshots: dependencies: '@volar/source-map': 2.4.0-alpha.15 + '@volar/language-server@2.4.0-alpha.15': + dependencies: + '@volar/language-core': 2.4.0-alpha.15 + '@volar/language-service': 2.4.0-alpha.15 + '@volar/snapshot-document': 2.4.0-alpha.15 + '@volar/typescript': 2.4.0-alpha.15 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + + '@volar/language-service@2.4.0-alpha.15': + dependencies: + '@volar/language-core': 2.4.0-alpha.15 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + + '@volar/snapshot-document@2.4.0-alpha.15': + dependencies: + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + '@volar/source-map@2.4.0-alpha.15': {} '@volar/typescript@2.4.0-alpha.15': @@ -8106,6 +8244,13 @@ snapshots: path-browserify: 1.0.1 vscode-uri: 3.0.8 + '@volar/vscode@2.4.0-alpha.15': + dependencies: + '@volar/language-server': 2.4.0-alpha.15 + path-browserify: 1.0.1 + vscode-languageclient: 9.0.1 + vscode-nls: 5.2.0 + '@vscode/vsce@2.26.1': dependencies: '@azure/identity': 4.2.0 @@ -8403,6 +8548,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@8.16.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + algoliasearch@4.22.1: dependencies: '@algolia/cache-browser-local-storage': 4.22.1 @@ -10360,6 +10512,8 @@ snapshots: json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-schema@0.4.0: {} json-stable-stringify-without-jsonify@1.0.1: {} @@ -11152,6 +11306,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -11587,6 +11745,9 @@ snapshots: '@slidev/parser': 0.47.5 prettier: 3.3.2 + prettier@2.8.7: + optional: true + prettier@2.8.8: {} prettier@3.3.2: {} @@ -11725,12 +11886,18 @@ snapshots: dependencies: jsesc: 0.5.0 + request-light@0.5.8: {} + + request-light@0.7.0: {} + request-progress@3.0.0: dependencies: throttleit: 1.0.1 require-directory@2.1.1: {} + require-from-string@2.0.2: {} + requires-port@1.0.0: {} resolve-alpn@1.2.1: {} @@ -12750,6 +12917,57 @@ snapshots: - supports-color - terser + volar-service-yaml@0.0.59(@volar/language-service@2.4.0-alpha.15): + dependencies: + vscode-uri: 3.0.8 + yaml-language-server: 1.15.0 + optionalDependencies: + '@volar/language-service': 2.4.0-alpha.15 + + vscode-json-languageservice@4.1.8: + dependencies: + jsonc-parser: 3.2.1 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + + vscode-jsonrpc@6.0.0: {} + + vscode-jsonrpc@8.2.0: {} + + vscode-languageclient@9.0.1: + dependencies: + minimatch: 5.1.6 + semver: 7.6.2 + vscode-languageserver-protocol: 3.17.5 + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.11: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + vscode-uri@3.0.8: {} vue-demi@0.14.8(vue@3.4.31(typescript@5.5.3)): @@ -12880,6 +13098,23 @@ snapshots: lodash: 4.17.21 yaml: 2.4.5 + yaml-language-server@1.15.0: + dependencies: + ajv: 8.16.0 + lodash: 4.17.21 + request-light: 0.5.8 + vscode-json-languageservice: 4.1.8 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + yaml: 2.2.2 + optionalDependencies: + prettier: 2.8.7 + + yaml@2.2.2: {} + yaml@2.4.5: {} yargs-parser@21.1.1: {} From 0f7096465a2600e27d53f561759e22f7296605f2 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Tue, 9 Jul 2024 22:51:43 +0800 Subject: [PATCH 02/30] chore: update --- .vscode/settings.json | 6 +- eslint.config.js | 1 + .../bin/slidev-language-server.js | 8 -- packages/language-server/package.json | 18 ---- packages/language-server/src/index.ts | 20 ---- .../language-server/src/languagePlugin.ts | 50 --------- packages/language-server/src/protocol.ts | 1 - packages/language-server/tsconfig.json | 22 ---- packages/language-server/tsconfig.tsbuildinfo | 1 - packages/vscode/language-server/bin.ts | 9 ++ packages/vscode/language-server/index.ts | 20 ++++ .../vscode/language-server/languagePlugin.ts | 50 +++++++++ packages/vscode/language-server/protocol.ts | 1 + packages/vscode/package.json | 53 +++++++++- packages/vscode/src/index.ts | 39 +++---- .../vscode/syntax/language-configuration.json | 57 ++++++++++ packages/vscode/syntax/slidev.example.md | 32 ++++++ packages/vscode/syntax/slidev.tmLanguage.json | 23 ++++ packages/vscode/tsup.config.ts | 75 +++++-------- pnpm-lock.yaml | 100 ++++++++---------- 20 files changed, 342 insertions(+), 244 deletions(-) delete mode 100755 packages/language-server/bin/slidev-language-server.js delete mode 100644 packages/language-server/package.json delete mode 100644 packages/language-server/src/index.ts delete mode 100644 packages/language-server/src/languagePlugin.ts delete mode 100644 packages/language-server/src/protocol.ts delete mode 100644 packages/language-server/tsconfig.json delete mode 100644 packages/language-server/tsconfig.tsbuildinfo create mode 100644 packages/vscode/language-server/bin.ts create mode 100644 packages/vscode/language-server/index.ts create mode 100644 packages/vscode/language-server/languagePlugin.ts create mode 100644 packages/vscode/language-server/protocol.ts create mode 100644 packages/vscode/syntax/language-configuration.json create mode 100644 packages/vscode/syntax/slidev.example.md create mode 100644 packages/vscode/syntax/slidev.tmLanguage.json diff --git a/.vscode/settings.json b/.vscode/settings.json index b75f8166c1..79309d59d9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -46,5 +46,9 @@ "jsonc", "yaml" ], - "vitest.disableWorkspaceWarning": true + "vitest.disableWorkspaceWarning": true, + "slidev.include": [ + "**/slides.md", + "packages/vscode/syntax/slidev.example.md" + ] } diff --git a/eslint.config.js b/eslint.config.js index 3892ce8bd2..11f0ecb0d3 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -17,6 +17,7 @@ export default antfu( '**/template.md', '**/example.md', 'test/fixtures/markdown/**/*.md', + 'packages/vscode/language/slidev.example.md', ], }, }, diff --git a/packages/language-server/bin/slidev-language-server.js b/packages/language-server/bin/slidev-language-server.js deleted file mode 100755 index d18b06411d..0000000000 --- a/packages/language-server/bin/slidev-language-server.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node -if (process.argv.includes("--version")) { - const pkgJSON = require("../package.json"); - console.log(`${pkgJSON["version"]}`); -} -else { - require("../out/index.js"); -} diff --git a/packages/language-server/package.json b/packages/language-server/package.json deleted file mode 100644 index 848b4c5908..0000000000 --- a/packages/language-server/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@slidev/language-server", - "version": "0.49.16", - "main": "out/index.js", - "license": "MIT", - "files": [ - "out/**/*.js", - "out/**/*.d.ts" - ], - "bin": { - "slidev-language-server": "./bin/slidev-language-server.js" - }, - "dependencies": { - "@slidev/parser": "0.49.16", - "@volar/language-server": "~2.4.0-alpha.15", - "volar-service-yaml": "volar-2.4" - } -} \ No newline at end of file diff --git a/packages/language-server/src/index.ts b/packages/language-server/src/index.ts deleted file mode 100644 index 865b8b973c..0000000000 --- a/packages/language-server/src/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createConnection, createServer, createSimpleProject } from '@volar/language-server/node'; -import { create as createYamlPlugin } from 'volar-service-yaml'; -import { slidevLanguagePlugin } from './languagePlugin'; - -const connection = createConnection(); -const server = createServer(connection); - -connection.onInitialize(params => { - return server.initialize( - params, - createSimpleProject([slidevLanguagePlugin]), - [createYamlPlugin()], - ) -}); - -connection.onInitialized(server.initialized); - -connection.onShutdown(server.shutdown); - -connection.listen(); diff --git a/packages/language-server/src/languagePlugin.ts b/packages/language-server/src/languagePlugin.ts deleted file mode 100644 index 51c1c264ed..0000000000 --- a/packages/language-server/src/languagePlugin.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { LanguagePlugin, VirtualCode } from '@volar/language-core'; -import type * as ts from 'typescript'; -import { URI } from 'vscode-uri'; - -export const slidevLanguagePlugin: LanguagePlugin = { - getLanguageId() { - return undefined; - }, - createVirtualCode(_uri, languageId, snapshot) { - if (languageId === 'markdown') { - return { - id: 'root', - languageId: 'markdown', - mappings: [], - embeddedCodes: [...getEmbeddedCodes(snapshot)], - snapshot, - }; - } - }, -}; - -function* getEmbeddedCodes(snapshot: ts.IScriptSnapshot): Generator { - const blocks = snapshot.getText(0, snapshot.getLength()).matchAll(/---\n([\s\S]*?)\n---/g); - let i = 0; - for (const block of blocks) { - yield { - id: 'yaml_' + i++, - languageId: 'yaml', - snapshot: { - getText: (start, end) => block[1].substring(start, end), - getLength: () => block[1].length, - getChangeRange: () => undefined, - }, - mappings: [{ - sourceOffsets: [block.index], - generatedOffsets: [0], - lengths: [block[1].length], - data: { - verification: true, - completion: true, - semantic: true, - navigation: true, - structure: true, - format: true, - }, - }], - embeddedCodes: [], - } - } -} diff --git a/packages/language-server/src/protocol.ts b/packages/language-server/src/protocol.ts deleted file mode 100644 index d72c990e7c..0000000000 --- a/packages/language-server/src/protocol.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '@volar/language-server/protocol'; diff --git a/packages/language-server/tsconfig.json b/packages/language-server/tsconfig.json deleted file mode 100644 index 49596ac3ca..0000000000 --- a/packages/language-server/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2021", - "lib": [ - "ES2021", - ], - "module": "Node16", - "sourceMap": true, - "composite": true, - "declaration": true, - "strict": true, - "skipLibCheck": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "baseUrl": "./", - "outDir": "out", - "rootDir": "src" - }, - "include": [ - "src" - ], -} \ No newline at end of file diff --git a/packages/language-server/tsconfig.tsbuildinfo b/packages/language-server/tsconfig.tsbuildinfo deleted file mode 100644 index cf73d0d6f3..0000000000 --- a/packages/language-server/tsconfig.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@volar+source-map@2.4.0-alpha.15/node_modules/@volar/source-map/lib/sourcemap.d.ts","../../node_modules/.pnpm/@volar+source-map@2.4.0-alpha.15/node_modules/@volar/source-map/lib/translateoffset.d.ts","../../node_modules/.pnpm/@volar+source-map@2.4.0-alpha.15/node_modules/@volar/source-map/index.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/lib/linkedcodemap.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/lib/types.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/lib/editorfeatures.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/lib/utils.d.ts","../../node_modules/.pnpm/@volar+language-core@2.4.0-alpha.15/node_modules/@volar/language-core/index.d.ts","../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/linkedmap.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/sharedarraycancellation.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messagebuffer.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolder.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typehierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinevalue.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayhint.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinecompletion.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/umd/uri.d.ts","../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/umd/utils.d.ts","../../node_modules/.pnpm/vscode-uri@3.0.8/node_modules/vscode-uri/lib/umd/index.d.ts","../../node_modules/.pnpm/vscode-languageserver-textdocument@1.0.11/node_modules/vscode-languageserver-textdocument/lib/umd/main.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/typescript.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/utils/urimap.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/types.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/languageservice.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/features/providerenameedits.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/lib/utils/transform.d.ts","../../node_modules/.pnpm/@volar+language-service@2.4.0-alpha.15/node_modules/@volar/language-service/index.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/typings/thenable.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/dom-events.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@20.14.10/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/progress.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/configuration.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/workspacefolder.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/callhierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/semantictokens.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/showdocument.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/fileoperations.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/linkededitingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/typehierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/inlinevalue.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/foldingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/inlayhint.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/diagnostic.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/textdocuments.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/notebook.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/moniker.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/server.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/node/files.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/node/main.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/node.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/node.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/inlinecompletion.proposed.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/lib/node/main.d.ts","../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver/node.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/protocol.d.ts","../../node_modules/.pnpm/@volar+snapshot-document@2.4.0-alpha.15/node_modules/@volar/snapshot-document/lib/snapshotdocument.d.ts","../../node_modules/.pnpm/@volar+snapshot-document@2.4.0-alpha.15/node_modules/@volar/snapshot-document/index.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/server.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/types.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/index.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/project/simpleproject.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/common.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/node/proxylanguageservice.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/node/decoratelanguageservicehost.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/node/decorateprogram.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/node/proxycreateprogram.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/protocol/createsys.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/lib/protocol/createproject.d.ts","../../node_modules/.pnpm/@volar+typescript@2.4.0-alpha.15/node_modules/@volar/typescript/index.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/project/typescriptprojectls.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/lib/project/typescriptproject.d.ts","../../node_modules/.pnpm/@volar+language-server@2.4.0-alpha.15/node_modules/@volar/language-server/node.d.ts","../../node_modules/.pnpm/vscode-json-languageservice@4.1.8/node_modules/vscode-json-languageservice/lib/umd/jsoncontributions.d.ts","../../node_modules/.pnpm/vscode-json-languageservice@4.1.8/node_modules/vscode-json-languageservice/lib/umd/jsonschema.d.ts","../../node_modules/.pnpm/vscode-json-languageservice@4.1.8/node_modules/vscode-json-languageservice/lib/umd/jsonlanguagetypes.d.ts","../../node_modules/.pnpm/vscode-json-languageservice@4.1.8/node_modules/vscode-json-languageservice/lib/umd/jsonlanguageservice.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/yamltypes.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/jsonschema.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/line-counter.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/errors.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/doc/applyreviver.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/log.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/tojs.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/scalar.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/collection.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/yamlmap.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/yamlseq.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/types.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/schema.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/doc/createnode.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/addpairtojsmap.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/pair.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/tags.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/options.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/stringify/stringify.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/node.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/cst-scalar.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/cst-stringify.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/cst-visit.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/cst.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/nodes/alias.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/doc/document.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/doc/directives.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/compose/composer.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/lexer.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/parse/parser.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/public-api.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/visit.d.ts","../../node_modules/.pnpm/yaml@2.2.2/node_modules/yaml/dist/index.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/jsonasttypes.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/parser/jsonparser07.d.ts","../../node_modules/.pnpm/vscode-languageserver-types@3.16.0/node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/.pnpm/vscode-jsonrpc@6.0.0/node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolders.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/.pnpm/vscode-languageserver-protocol@3.16.0/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/progress.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/configuration.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/workspacefolders.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/callhierarchy.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/semantictokens.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/showdocument.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/fileoperations.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/linkededitingrange.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/moniker.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/server.d.ts","../../node_modules/.pnpm/vscode-languageserver@7.0.0/node_modules/vscode-languageserver/lib/common/api.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/requesttypes.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/services/yamlschemaservice.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/telemetry.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/utils/parseutils.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/utils/textbuffer.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/parser/yaml-documents.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/parser/yamlparser07.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/yamlsettings.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/languageservice/yamllanguageservice.d.ts","../../node_modules/.pnpm/yaml-language-server@1.15.0/node_modules/yaml-language-server/out/server/src/index.d.ts","../../node_modules/.pnpm/volar-service-yaml@0.0.59_@volar+language-service@2.4.0-alpha.15/node_modules/volar-service-yaml/index.d.ts","./src/languageplugin.ts","./src/index.ts","./src/protocol.ts","../../node_modules/.pnpm/@types+braces@3.0.4/node_modules/@types/braces/index.d.ts","../../node_modules/.pnpm/@types+cli-progress@3.11.6/node_modules/@types/cli-progress/index.d.ts","../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/index.d.ts","../../node_modules/.pnpm/@types+d3-time@3.0.3/node_modules/@types/d3-time/index.d.ts","../../node_modules/.pnpm/@types+d3-scale@4.0.8/node_modules/@types/d3-scale/index.d.ts","../../node_modules/.pnpm/@types+d3-scale-chromatic@3.0.3/node_modules/@types/d3-scale-chromatic/index.d.ts","../../node_modules/.pnpm/@types+ms@0.7.34/node_modules/@types/ms/index.d.ts","../../node_modules/.pnpm/@types+debug@4.1.12/node_modules/@types/debug/index.d.ts","../../node_modules/.pnpm/@types+eslint@8.56.10/node_modules/@types/eslint/helpers.d.ts","../../node_modules/.pnpm/@types+estree@1.0.5/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/@types+eslint@8.56.10/node_modules/@types/eslint/index.d.ts","../../node_modules/.pnpm/@types+file-saver@2.0.7/node_modules/@types/file-saver/index.d.ts","../../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/index.d.ts","../../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/utils.d.ts","../../node_modules/.pnpm/@types+fs-extra@11.0.4/node_modules/@types/fs-extra/index.d.ts","../../node_modules/.pnpm/@types+unist@3.0.2/node_modules/@types/unist/index.d.ts","../../node_modules/.pnpm/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../../node_modules/.pnpm/@types+http-cache-semantics@4.0.4/node_modules/@types/http-cache-semantics/index.d.ts","../../node_modules/.pnpm/@types+js-yaml@4.0.9/node_modules/@types/js-yaml/index.d.ts","../../node_modules/.pnpm/@types+katex@0.16.7/node_modules/@types/katex/index.d.ts","../../node_modules/.pnpm/@types+linkify-it@5.0.0/node_modules/@types/linkify-it/build/index.cjs.d.ts","../../node_modules/.pnpm/@types+linkify-it@5.0.0/node_modules/@types/linkify-it/index.d.ts","../../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/build/index.cjs.d.ts","../../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/dist/index.cjs.d.ts","../../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/index.d.ts","../../node_modules/.pnpm/@types+unist@2.0.10/node_modules/@types/unist/index.d.ts","../../node_modules/.pnpm/@types+mdast@3.0.15/node_modules/@types/mdast/index.d.ts","../../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/index.d.ts","../../node_modules/.pnpm/@types+micromatch@4.0.9/node_modules/@types/micromatch/index.d.ts","../../node_modules/.pnpm/@types+normalize-package-data@2.4.4/node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/.pnpm/@types+plantuml-encoder@1.4.2/node_modules/@types/plantuml-encoder/index.d.ts","../../node_modules/.pnpm/@types+prismjs@1.26.4/node_modules/@types/prismjs/index.d.ts","../../node_modules/.pnpm/kleur@3.0.3/node_modules/kleur/kleur.d.ts","../../node_modules/.pnpm/@types+prompts@2.4.9/node_modules/@types/prompts/index.d.ts","../../node_modules/.pnpm/@types+recordrtc@5.6.14/node_modules/@types/recordrtc/index.d.ts","../../node_modules/.pnpm/@types+resolve@1.20.6/node_modules/@types/resolve/index.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/classes/semver.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/parse.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/valid.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/clean.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/inc.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/diff.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/major.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/minor.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/patch.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/compare.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/sort.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/gt.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/lt.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/eq.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/neq.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/gte.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/lte.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/classes/range.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/.pnpm/@types+semver@7.5.8/node_modules/@types/semver/index.d.ts","../../node_modules/.pnpm/@types+sinonjs__fake-timers@8.1.1/node_modules/@types/sinonjs__fake-timers/index.d.ts","../../node_modules/.pnpm/@types+sizzle@2.3.8/node_modules/@types/sizzle/index.d.ts","../../node_modules/.pnpm/@types+vscode@1.89.0/node_modules/@types/vscode/index.d.ts","../../node_modules/.pnpm/@types+web-bluetooth@0.0.20/node_modules/@types/web-bluetooth/index.d.ts","../../node_modules/.pnpm/@types+yargs-parser@21.0.3/node_modules/@types/yargs-parser/index.d.ts","../../node_modules/.pnpm/@types+yargs@17.0.32/node_modules/@types/yargs/index.d.ts","../../node_modules/.pnpm/@types+yauzl@2.10.3/node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"acb5c4265d1460e01bd57248d4d8cc8c69cfef23f1ccdf799ac1a70ed30d0d16","impliedFormat":1},{"version":"6f4d0a9ca605541143eb0631dcefbfefc3b49da8dd8d80cc964659ff47f2a3f2","impliedFormat":1},{"version":"e61776e5f97c6a6d1de4e0cbf58d63bb3e68040d2e043d2d5c180fd7a5cd646f","impliedFormat":1},{"version":"30482615b0ddb5167db981fd9a628ab56384635cfbc2538b5940bb9b938d3b8b","impliedFormat":1},{"version":"5d0bfcbc0c1acbf406ab3437c083e6b2ebe87804787d41a35844b24551eec219","impliedFormat":1},{"version":"a8c5aa89d1a68fb61de3746c66a9766a24834316228d4e1ab399c271186aca4e","impliedFormat":1},{"version":"acc26b070224f4f010e831dc6eb50f3d6fc8de88404940b5a8d9c0333a945ba1","impliedFormat":1},{"version":"164aed1e775036445ff37f063e4d355f42e6ec2719db5865fcab77c552a96109","impliedFormat":1},{"version":"2e900e22ef301dafb3a35df7aaab4f139bf1602c8e5dc0bb0ca8b24305af388e","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"b716daa9737308e83fc9d3826cac21b3a6c12ff420b5e89415d1ca396616f1b6","impliedFormat":1},{"version":"cab0ba78dc961d90d639ccaf3d56c484e584056da39dc0d9bdaf1957be965f72","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"886e183dd0199e7de45d6308ac3e2185dac6f83283d1b8200ea62cf5c43966a1","impliedFormat":1},{"version":"392dd7b1117b588cba36c04909efd24b0458980506e8e8c1966114f8989058e2","impliedFormat":1},{"version":"e445daedeac3005da51d0a3e3258be16096e1c0116701e8979272aaf7aba5fb4","impliedFormat":1},{"version":"2d79ae695899e28c4dba32ba39268a1eafc556f3f183175a355424fae553585a","impliedFormat":1},{"version":"3ca7b2e8012b9a6be09fafd62f8f3937388b9e1600a59c98887d2b11f6d01b43","impliedFormat":1},{"version":"b138b3f30708386023a7dc9981bb867808e5ff3383429ac7f69b7bfd0dcc5bd5","impliedFormat":1},{"version":"2ff2789ae43f9c056917e7516a02ad07c4cc1cafff3c68ff6b7ff8df623fd259","impliedFormat":1},{"version":"13ec544ab0a3a7ff96afac1016f55b264c812428e37d595dc33b688296435469","impliedFormat":1},{"version":"4962729121c2cb97a4481cdb06dfc720a79a3bc2fc9330ff2bcf604cfc541177","impliedFormat":1},{"version":"d576ef1b6aa804d0f0e8dfb3f6149b576788b598054aa2e15d5a7f7f52faf371","impliedFormat":1},{"version":"5bf947093bfad8e98456c28106a9db37d9276261a7b82fa04f4dc8119bab7f8e","impliedFormat":1},{"version":"bac171d09621591ee5fcddc28e031b348b0e038d12cc1ca2cf99cbaa27479999","impliedFormat":1},{"version":"eec5fe9863d12133a6b4803b62741054a3481fc0fcbf2be6bf26c681935cdfdc","impliedFormat":1},{"version":"05f6b2b3bef27dfc0e2464197510d08f275f2464363b441def7f309cbf42f51d","impliedFormat":1},{"version":"00f191fd642e8130d5b77fb11f76f4762eb86ac1cbe9b89b4ff63ab95be58baa","impliedFormat":1},{"version":"33e11cee43184a95afe9a450f7dde6bd2b6a03fc9643f898268e8594c266554a","impliedFormat":1},{"version":"45f441bf74e920f6909ca6874037fdd10f06644c341b99fd7cfd041ea565ce1f","impliedFormat":1},{"version":"f8d1db1f521b60c8d9fd9b49d230ce6981ff7468c63e6ac27f82ed7b67500e67","impliedFormat":1},{"version":"b5d49f459d2efc77cff4ab27d929aa67d0c9121bc20763d84942c7fca2cc7b8f","impliedFormat":1},{"version":"96c0c4b30165eaedb3ade3b4e9f491113a1816c448d67fff542b2793bf565b04","impliedFormat":1},{"version":"29a456c61c3d93e36f5eba4c0ed567d7896a9c08a38b537c3fc192a99d03b348","impliedFormat":1},{"version":"9381d5bdf7197cc4f732243e22762d27508daf7fcab0fff7339fe4660c11f382","impliedFormat":1},{"version":"0a61f7b50171225629903175e062d3f43225e6eba24eb2e50f88ca05fb441aa6","impliedFormat":1},{"version":"818d9a0841c884447fbd61b934c6743aea1fa6f1c0159ef44ef55b8f02b9120f","impliedFormat":1},{"version":"77afb3c5f47b721ab94b2b2faace898f0b4e1e4f7cec679baeaa2f9a6f530079","impliedFormat":1},{"version":"80ca6e12029d689b45326d13816c8374a1b3804a57e67940da2a2e9ed0689917","impliedFormat":1},{"version":"daad4c291d7d4ab0ca94693295f33533c6fc44c9ab31806a949367207c4b27fe","impliedFormat":1},{"version":"6ae49bf0bdc093ec209b0d2ae86a903be5813093dc25f612b9f84d85c3d43ba4","impliedFormat":1},{"version":"656106ddbe4e00bd32af2c46abb1a8c9abbb8679fbf29adc637c053620286034","impliedFormat":1},{"version":"ddf3f680de453b300dd1c47e136b8ade3857d2c357635efeb0f9977d81d1e96d","impliedFormat":1},{"version":"dfc345d92b6d08863b239b8d025ea513df322af74e221d62f4bdbe217d08f69d","impliedFormat":1},{"version":"7d40ae7bd3141e4fbad1572e9461e44eb631f3c3db8429d78a26ac7359d6e4e5","impliedFormat":1},{"version":"2f3aa6fb84e6955886902a6a8818e4bff9c79b97356773bd6ac2ff3993c097a2","impliedFormat":1},{"version":"c0c205fec8b10f3ad0e65af65dd20ea7cf633df0964c84305e375ccdc4f5557e","impliedFormat":1},{"version":"08724e39439dbc02bdba9768f84736ed132bb02a04fbce0a2cdfc91f42e90505","impliedFormat":1},{"version":"657e6dc684415721980e91e97785f1b8e6da4134e194de757d2d3733c54b4f06","impliedFormat":1},{"version":"bad1bc59cf9ba7f2b8efc0f7342b141843cbf3d3d791fa13df4ff9b86db26df9","impliedFormat":1},{"version":"a2ca9f3aee02a7fa0ec6f80afc09c5465191e5ca513be720bf858f5da275e66b","impliedFormat":1},{"version":"96a56b3bbf8346c584c5d58db4fb8adc58982e4e9f2929488ad5aeb89ddc19f8","impliedFormat":1},{"version":"8eb142d9d0e29220c562296bdbed6b2c228df84589ce5d0c74ed7c333c1ba6cd","impliedFormat":1},{"version":"cc1cae0a4b760e3f7a999aa701cab8506d072dc2ce735a8d66a166bced7a50a9","impliedFormat":1},{"version":"8241456dfd6dc2f37249912777b27ea61f87c1e143769bf4929537fb2557cc92","impliedFormat":1},{"version":"075e2eb330132cc65fb737773b548c9e85736e58165adebe15e8d316d9b5ec7c","impliedFormat":1},{"version":"cb95d593566dd1c94319efb696ff35de2dd449439fd0143e2744b19fccb963f8","impliedFormat":1},{"version":"44b0e7ce4a8a0f4e4b591e63b6d30979e65ba58e727c713a8fa327e25538c467","impliedFormat":1},{"version":"f4f7b1679db9853bac6e1b0aeeecb99ad7da0c4630de71a7c04bd80501662ce0","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"e7be367719c613d580d4b27fdf8fe64c9736f48217f4b322c0d63b2971460918","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"392eadc2af403dd10b4debfbc655c089a7fa6a9750caeb770cfb30051e55e848","affectsGlobalScope":true,"impliedFormat":1},{"version":"62f1c00d3d246e0e3cf0224f91e122d560428ec1ccc36bb51d4574a84f1dbad0","impliedFormat":1},{"version":"53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6","impliedFormat":1},{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"c48c503c6b3f63baf18257e9a87559b5602a4e960107c762586d2a6a62b64a18","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"0364f8bb461d6e84252412d4e5590feda4eb582f77d47f7a024a7a9ff105dfdc","impliedFormat":1},{"version":"5433f7f77cd1fd53f45bd82445a4e437b2f6a72a32070e907530a4fea56c30c8","impliedFormat":1},{"version":"d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"9a30b7fefd7f8abbca4828d481c61c18e40fe5ff107e113b1c1fcd2c8dcf2743","affectsGlobalScope":true,"impliedFormat":1},{"version":"173b6275a81ebdb283b180654890f46516c21199734fed01a773b1c168b8c45c","impliedFormat":1},{"version":"304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","impliedFormat":1},{"version":"1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","impliedFormat":1},{"version":"98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","impliedFormat":1},{"version":"c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","impliedFormat":1},{"version":"2eaa31492906bc8525aff3c3ec2236e22d90b0dfeee77089f196cd0adf0b3e3b","impliedFormat":1},{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f5814f29dbaf8bacd1764aebdf1c8a6eb86381f6a188ddbac0fcbaab855ce52","impliedFormat":1},{"version":"a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","impliedFormat":1},{"version":"d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900","impliedFormat":1},{"version":"1d4d78c8b23c9ddaaaa49485e6adc2ec01086dfe5d8d4d36ca4cdc98d2f7e74a","affectsGlobalScope":true,"impliedFormat":1},{"version":"44fc16356b81c0463cc7d7b2b35dcf324d8144136f5bc5ce73ced86f2b3475b5","affectsGlobalScope":true,"impliedFormat":1},{"version":"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","impliedFormat":1},{"version":"6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","impliedFormat":1},{"version":"56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","impliedFormat":1},{"version":"139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","impliedFormat":1},{"version":"7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","impliedFormat":1},{"version":"2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927","impliedFormat":1},{"version":"7da97d603bf3dd0000f56467c56cb6efaf5f94692980474925fae6c33412b12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","impliedFormat":1},{"version":"9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","impliedFormat":1},{"version":"e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","impliedFormat":1},{"version":"b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0","impliedFormat":1},{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"7245af181218216bacb01fbdf51095617a51661f20d77178c69a377e16fb69ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","impliedFormat":1},{"version":"4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"8704423bf338bff381ebc951ed819935d0252d90cd6de7dffe5b0a5debb65d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c6929fd7cbf38499b6a600b91c3b603d1d78395046dc3499b2b92d01418b94b","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","impliedFormat":1},{"version":"f1f23acd4a8193453749f69d4432f5f122d6d572b793a8b630dd12fe80b0c3d3","impliedFormat":1},{"version":"7662d6994d28c9ebbe61b88cc35c3d705804351eedbf363df30ea9fe8c4961dc","impliedFormat":1},{"version":"1fb68106bddae35448e5279095461a4b54c4bbb42787cd629f70924b17e9a11e","impliedFormat":1},{"version":"46a9b0122b230cb2fab65999ba92f98a16fd8f1c25efaed47141cbf5056f6928","impliedFormat":1},{"version":"5a9a4741aa510bdee406441f77186c6d2005be78e78c2e0da8201d9991950164","impliedFormat":1},{"version":"351bbf43d585484825ee6c4b4805aac137ffc8e8a3b9812af99945a202db7c02","impliedFormat":1},{"version":"3990ae796cc23fb9829eae206eff1eddded9465504467a4433f2509e18ef1aed","impliedFormat":1},{"version":"b557ea3605e52406e35eeea468cb96f25b1ca906f2055f376597f0b02492d94c","impliedFormat":1},{"version":"f384bb303dbc114af6460e7cb30b766cc92eed33fccb331126b08bb63f15a034","impliedFormat":1},{"version":"8a9bd1cf8c1f75435f83595b43737c135e7f73bde39ba4c9339dc6a31e8bb069","impliedFormat":1},{"version":"aa7747ab234b18813944ecdd61683a696025cd4f6970d7749d370080d4f9b349","impliedFormat":1},{"version":"8274bfd5de49f9f072be2f39c34e390101a8b69844e55eda36c7df23ba6d03e2","impliedFormat":1},{"version":"f8b482dddda55dd6677d7895a3fef8cd9d067f8c36c63cc7fe93b82a6dd4f10c","impliedFormat":1},{"version":"71d11ad1f05b0b90e95591fa85c1c8043e590d67972dcaba9b50435a0c04d8fa","impliedFormat":1},{"version":"5c74e3eee30bb7899eebe784e3c05cb29f1bed3efb2a3b4599b66173fda4aa30","impliedFormat":1},{"version":"a980ce9470dc95ac355d7efb729f9cfb0564505eba96da4bbde504299efb833a","impliedFormat":1},{"version":"72a33e518e5b98cd9c9dc8ee294f7507bf2a8938f491b0cf49c8ae582b966b3a","impliedFormat":1},{"version":"a58402dc75738c188a741ccca86ccf898b0af98d305ad075c428171f193a6cd5","impliedFormat":1},{"version":"67d37ef881a81aefe3a0f70f78e3835be950f2359487d3eb61b0a3bb9af172bc","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d789022bf705385490fe89811bc7850225c207f37dd706ada2509eb1d8f31f12","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"173838811f6dcba587706efd87358f804261549bc02c455d31818328c1af97ad","impliedFormat":1},{"version":"483ff04f1796aef40323f47ca3f03bf53492a2878508c8d7be98cdb4fae151f3","impliedFormat":1},{"version":"abd02654e7ae1f70f68ec509b2c3c1e388c0142d169ba37a157f558709efe2a1","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"10663993b4ea28a91e9b254f3d9f4bf07c4648f0295e78520712a74181193ca8","impliedFormat":1},{"version":"e1bd89448b0c84f457f4e3d4d1d1e10a6649a801ee38d38e8e00ff8c02288e1a","impliedFormat":1},{"version":"43cf1bedeebd62a722c59f64fd6dfcf00d2dc61d34e43df5bda685b4c371a028","impliedFormat":1},{"version":"f80aacd9c52d6cb57bc768d31b80696f7afd29649fa909f5db5a151cdb84e60e","impliedFormat":1},{"version":"ce4b304c6f0626204f587582ef5d87d5d3852b3960616cfddbde91a4b1e684f4","impliedFormat":1},{"version":"62d7505bed35104521502937eae5b9a9dc2e4605c503c8360f6e05773eb431c3","impliedFormat":1},{"version":"b6a2ff800285b098c10db21f575ec573b2146d44a99d4ca9905688be2a10e4ca","impliedFormat":1},{"version":"d9633e38b7bdec8d02cfdf26407f4f1a17ee19ad152373c50282f9e21aabfcbd","impliedFormat":1},{"version":"7c3017ce8167bc4348113eb0e7c86006cdc782152eec38329650baea9ce1b420","impliedFormat":1},{"version":"b71a031704ef5d87d8a67611835077a341214832e096af33072b3aaf9aa1ad87","impliedFormat":1},{"version":"52677ff121ade9bf5219f9988724545058af547dc77ce6792cb4128e7aab9b67","impliedFormat":1},{"version":"a77e22a8eb04e73d2eb68bcf4d2b10274765361d62695f6463fe2857896b8dc0","impliedFormat":1},{"version":"607261009780709c3c49b391bedec7e02d4a280f3bec07adc045ddd7ab3b865c","impliedFormat":1},{"version":"3328e0933bdc17e62ea687ee5d188b292c73a6a83225b44959a1498503a57036","impliedFormat":1},{"version":"29336658851edd747fa293358abe60579cf18884679281b27e118d49ab440599","impliedFormat":1},{"version":"2aa6b550253f77aa245a03802f0de2aeb11455d241924e7b3607c35be05a9769","impliedFormat":1},{"version":"b49a21ec7dea62a11237127eec1a8f598b9c69ae1d0c5b411f1fd2f7560d4df4","impliedFormat":1},{"version":"45c129339ca4fa35a6bc950620c5c17fec5d97f812e86f89ae03be5b3b900ddf","impliedFormat":1},{"version":"5217ca5c5e094fa32f60e1e7ab53d48fe80f51419da2e86473e90d29c6834427","impliedFormat":1},{"version":"e02ae29730ed9bcae2d8c2fbd8878aa0b6e6cf86e172c1aa7e152efd30db6db3","impliedFormat":1},{"version":"103beae831c78a92b13f67cd37b23935d309605a78e241739a171ee728e242ab","impliedFormat":1},{"version":"8b134f5b6f5afaa8ec4331438fbf9393ebecc012182e60496ea279deb1ed4525","impliedFormat":1},{"version":"cc2939382060ab53f5f1d26d2f2a93f94c034b762a89bbf4cb8a207cf4505c09","impliedFormat":1},{"version":"a0e2d6e086872c0e5848cf0b952a375bb738690d241ea3c806c2ab44e04e7638","impliedFormat":1},{"version":"3dfcd0a3bfa70b53135db3cf2e4ddcb7eccc3e4418ce833ae24eecd06928328f","impliedFormat":1},{"version":"b26f93d773cf3aa4dc421c45323adccaead92598594a56f4a84d77910ee4f510","impliedFormat":1},{"version":"bc41a8e33caf4d193b0c49ec70d1e8db5ce3312eafe5447c6c1d5a2084fece12","impliedFormat":1},{"version":"7c33f11a56ba4e79efc4ddae85f8a4a888e216d2bf66c863f344d403437ffc74","impliedFormat":1},{"version":"2bb86e343b4109c784b11070735fa881af5c870a409a3b87b13800ca2afef421","impliedFormat":1},{"version":"fc9d4e784c9e7569911d8a6a01e1de90617942639c7c260beffdef1548b1ce06","impliedFormat":1},{"version":"37c1aeea4ec8df37bbe5d96bda46831acab3f70b2001ec9f51cb3146a101de89","impliedFormat":1},{"version":"5ac83af1a323158abc8627462fe987f7c67f957f88cdcf2237ae4dddc26677a8","impliedFormat":1},{"version":"df486e591f21d229d75df323fb9cf34f4b5cdbccee6a9b42227be738a13755d6","impliedFormat":1},{"version":"69ebf923204206eecef4310dc8bf28ab07feddaa3542066cdafbe67adf45f811","impliedFormat":1},{"version":"ae8189514ed306971ac9aa7d917487ee51dc3590aa5735f23c1d71811c373ea6","impliedFormat":1},{"version":"6de9d8858034d3197c1525e1c29c942cf7912f807d4d7f14dea247b7c05b59b0","impliedFormat":1},{"version":"394b4927dcc6eda44eb759f395da17b6e07f4daf272216b5cfc92eb32239f561","impliedFormat":1},{"version":"1adcc285d2d477ec6c51d0282d891fdf9d04a5fa8dfa479eab153ae17376f1b4","impliedFormat":1},{"version":"0ad294cdc42fb1f99cc94db8f77364ddc516643d9c69d4e66942f2cfd783213b","impliedFormat":1},{"version":"3956f34170e48abf902bc81055fb35a7e8b87109dbf3ca272d096d6d42cf7b84","impliedFormat":1},{"version":"f3acf8cff186f71a3a9b2da63f1378de6fe68a8578cb47d097776143cc84cd7d","impliedFormat":1},{"version":"1db170e5dad144b639ddf3d32710491c583f48c6e522580c8d5a8c249a611338","impliedFormat":1},{"version":"960923ce078ecfef6e5c34468cdba5c552b064c0db7cb0fdd3eafd1bb9d3d7e9","impliedFormat":1},{"version":"42f034630b3a866d4a88b37cf0f8357b36af2f7298b319d536b7413ba99f979b","impliedFormat":1},{"version":"33d1d46d7789bebdf9b78cd54f39022aad5d7d1d03a58bdad4fe98658acfef06","impliedFormat":1},{"version":"b3956ba310c0bcd45b1c77455a9754a35b49642be91bfbb412e04d378fad83a1","impliedFormat":1},{"version":"052854468e3d8142f440fa9a0da1d743abef903dff09597025d07703c25b601e","impliedFormat":1},{"version":"284147c679272283a4bea7ccaecbbab198bb1854e19269b2e59d4b5cedd5894a","impliedFormat":1},{"version":"325994b6f6c7598c73bbd0294bf1e3f1e229772669b3c8a08fe3170442f600b8","impliedFormat":1},{"version":"581656e45b2555b764e2880a39859e25ac6c0c9a74cff83dd22d3859b2231982","impliedFormat":1},{"version":"843563f951d16e850a0be806010f630a4a71f0a55810bb9aced67c6d7774bf2f","impliedFormat":1},{"version":"9af1c478e5403b39b922df9132d779bc6e1ef88cafec17fcecf26356d90ecbd6","impliedFormat":1},{"version":"a95a6135f2d195c93d930ba01049c33579328e55612477c0ae5652429d3974ad","impliedFormat":1},{"version":"24ead5861f4400218aeaafa477082022f244e3df46d18831411f3a47fc3ff515","impliedFormat":1},{"version":"65ce9342063fcf793e7baea7526a5a9a2f6ce05dea0cf4ae726d02eae2b98fa3","impliedFormat":1},{"version":"b932682e049f41e294a3429aca3b0adb4d2eed8047b4c22f91565e9353d6940c","impliedFormat":1},{"version":"5a1755f317ac2c0d708fbf7c1dbf076ba3a31f624c534b44275c9c43033fdc2e","impliedFormat":1},{"version":"37f95ca94bcf0f1dd998ff9908700f87e5ffcdd01797cea96b1ca70606bf958c","impliedFormat":1},{"version":"be743f644e6ee8e0c862e0104b43d002943abbfe4a6719d9a2d3fb26b4439bc5","impliedFormat":1},{"version":"a337b9716b16c46e80a8810209cb162d32af16c6c93b331edcc01cdce5d82eba","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"58bdd5fd93f39bae19f34924ad304608ee37b6c6b357a57823ddfd2585a56d0f","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"b61ebe734dabd3ca10247807bfa4585ed51c889282e5decd152eea86daea7383","impliedFormat":1},{"version":"41a35a21d3c9c0450229cf41be783285f3c01edd84039a41ffd162d42a93a576","impliedFormat":1},{"version":"ec9d55888e353f9b5cdda761308dffc7eeb6aa0b7b25d328c64d3776a1cf2a7e","impliedFormat":1},{"version":"9686c9ade71de53d81ee3e41ff7450d08bd08fff4f545af39e37eeda228745d6","impliedFormat":1},{"version":"78fbf5d1265bdca3b2e54323d63678e3f73fecf70c05d988966a683da4cdf2f8","impliedFormat":1},{"version":"37c0fd48eb043fdc395435716585587815f63afc66159588db8ed6c25a5f0636","impliedFormat":1},{"version":"7cd0faa5800c730d5e9387a5ad312732d95d0a3bd5a67e266721f36ae1068a91","impliedFormat":1},{"version":"03a931e4fb1e8b851a171b246a8aeba575fcdecde60c914b23f472af5beb29b0","impliedFormat":1},{"version":"f22230ec7c2b08a8f8dc110bacd30c910701cb7347b3129b9cf12f6e28130656","impliedFormat":1},{"version":"73623979b2b6f47b9af0efea985d91197a3c3303466ed786163757f0aa6b45bc","impliedFormat":1},{"version":"ad91f5cc45805d17ac94b01428f82b182c6ff0ebe6343d72fd298945478d203d","impliedFormat":1},{"version":"df4ba08679bfd850b787d662118aae3c4741dcaa661cf8689a768dab462cfd90","impliedFormat":1},{"version":"4acc4bccbdec774c58992a87f3ac2731f9d38c821520d06b4d53911898d0e3ec","impliedFormat":1},{"version":"94d6422d3c3faf923fbdff1ce7457a25f9b0b55e8a2fe0fefa8bfa7a89cf6676","impliedFormat":1},{"version":"1c775cb43c5edae0a7b4a5e543c07baab07f751e5cccc60a22c5bc3f6e38309c","impliedFormat":1},{"version":"0eef4cf077011e3d1839dfb93ab894cd611cf552c26eb995c822e8d9b71d93a1","impliedFormat":1},{"version":"f356e7999affebf5745d8ffdf0cb70426bc966da461166408099e4dac35e98c2","impliedFormat":1},{"version":"254265a792bdf31050dc2524733465d3ace0b179779e1ff8a97b2752a9b56656","impliedFormat":1},{"version":"1b85664bf562d2d216d71b940d8097600b4ed626f67528c868ced65dbe7288e6","impliedFormat":1},{"version":"7891c7290f213b63911a1391b3dfe08c9bfa54d401f28e167d0c57553eee80c0","impliedFormat":1},{"version":"707db20cf8a4ee166e63861c0a7d355b44595555e0248565479e745f6c1034d0","impliedFormat":1},{"version":"2a9788e7789f4ab603d4d3982fe5a98ff51b699b8ec4653fceb3192e147337dc","impliedFormat":1},{"version":"5bee6b675b1a0ece9d5082d438e923f112343685d4bc54b20a4dfbed09dbe323","impliedFormat":1},{"version":"ebd7209e5b648af7b6e3677280368b3c8ccef579a27c2386f7f5d376f1e14533","impliedFormat":1},{"version":"60f5fe888f5364424f9cdf43eef013cdcd6827cbec1d6d20fa191f5ebe827afd","impliedFormat":1},{"version":"aca0e55a2961b519f8857517e2cdf6085f024bb10c6961e120c80b76569fc4d7","impliedFormat":1},{"version":"26245b1b8452c300347a31b37a052c3244a36393dec03facfa4b31a8d8687184","impliedFormat":1},{"version":"f1f23acd4a8193453749f69d4432f5f122d6d572b793a8b630dd12fe80b0c3d3","impliedFormat":1},{"version":"7662d6994d28c9ebbe61b88cc35c3d705804351eedbf363df30ea9fe8c4961dc","impliedFormat":1},{"version":"1fb68106bddae35448e5279095461a4b54c4bbb42787cd629f70924b17e9a11e","impliedFormat":1},{"version":"9acd551d1b5fb8a4ea4bfd65e8fcc8beca89a4b98fc1a9321924308256383565","impliedFormat":1},{"version":"a7024322dc86e43685c5564b438decad7557de62baae80b062fee78752c3b2f4","impliedFormat":1},{"version":"351bbf43d585484825ee6c4b4805aac137ffc8e8a3b9812af99945a202db7c02","impliedFormat":1},{"version":"a0116a0ba37624acef486fba35bd5530c8c25415798c8908a35e5f72913d2365","impliedFormat":1},{"version":"3bd2fc1b877ba4f9c91fca3231333471f3ff0edf85e146eaafdff2bc42c9a44c","impliedFormat":1},{"version":"387a6dc0d57a9f602d0d7f2f4ba88b65540c1c19d84088157610ca0176793a03","impliedFormat":1},{"version":"7078f6149d25fa110b2bd24dece6754520e5984a2dd014875bef7ebe91016617","impliedFormat":1},{"version":"3b4ba8322f73cc571cd57e55199b909e04b5da79d00d58a3a20fd71463f8c081","impliedFormat":1},{"version":"7f0820b26c5352d7b5b638a2c5724fa32a57170242e122042e76ef2bdfd2acb0","impliedFormat":1},{"version":"4d265f93b1cbc28de09dc5d2e23e7f657c41c94e31d6f7702a2ebf575abf6850","impliedFormat":1},{"version":"698b60673a9dc847504cc8fd93e4e3873716dc1e8e1c6e739d88443116e68a3a","impliedFormat":1},{"version":"9efb29be5efc6f2ebbc563e5fc669210f0c5e066912878d2d70430f17ae3d74b","impliedFormat":1},{"version":"24a8671563a590262456e0079740f279e15e8647dc40245389476eecee7f5eee","impliedFormat":1},{"version":"5b5f7b75c275d55cb364fde1994aa6fcabc8a37d0619f7547c1472be2d995af0","impliedFormat":1},{"version":"33032e35679c2607f999d37fa166d29b196c859fce5e422ad2e0e05dc2a157e8","impliedFormat":1},{"version":"7b47e8bc93a21919458e66779b1695ff3dbf552db1f9179728c1f69c4f1f4bcb","impliedFormat":1},{"version":"2095ec8279898a373e3081eb660aca6821e46061dda39b78e2ff7f9a046bf224","impliedFormat":1},{"version":"840f0f283c240215cb883055aa58be12a99159b0eea349124f6bdbd37a2b1e75","impliedFormat":1},{"version":"ff9095e8035390d3c5e51445722c8a4f1d57a182b5bed8957e58877f12e846dd","impliedFormat":1},{"version":"e1bd6432e4e89ac8b18999c6ad660f943208bb1786588dba2fab04ad00159a62","signature":"91bd730422a4bb4843341302f6b64cdbfe4476fb2615ba116fc55fe1b7896c6a","impliedFormat":1},{"version":"16bf1ffaf7bfb7569111db16648db717a03c0e383c420a227f0a9a822f89a447","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"5b4234d676c1c7d138c1eae5f930d7462af0bbfbb603cf79329a4e631554da0f","impliedFormat":1},{"version":"9837b03c1d83ad529d419be65655a1cb85c097f13703936ec6be1ee43ec9ef5f","impliedFormat":1},{"version":"c0e5b4df115963b8a8dcd5b56ff9dc046ddec110de138dba29b00e2b02fa03a9","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"432a61971738da04b67e04e08390ac124cc543479083709896b2071d0a790066","impliedFormat":1},{"version":"1ba55e9efbea1dcf7a6563969ff406de1a9a865cbbdaea2714f090fff163e2b5","impliedFormat":1},{"version":"309715f2bcee4af51e6425b264deaa2f5f0bda74f86099a2112b596c8697e888","impliedFormat":1},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","impliedFormat":1},{"version":"ba854883a418fca4343b51cb93718d481770f3b81e978bbf6378a2385264e55c","impliedFormat":1},{"version":"211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","impliedFormat":1},{"version":"5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","impliedFormat":1},{"version":"880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","impliedFormat":1},{"version":"7a1dd1e9c8bf5e23129495b10718b280340c7500570e0cfe5cffcdee51e13e48","impliedFormat":1},{"version":"8cbbb12bfb321de8bd58ba74329f683d82e4e0abb56d998c7f1eef2e764a74c8","impliedFormat":1},{"version":"742f21debb3937c3839a63245648238555bdab1ea095d43fd10c88a64029bf76","impliedFormat":1},{"version":"7cfdf3b9a5ba934a058bfc9390c074104dc7223b7e3c16fd5335206d789bc3d3","impliedFormat":1},{"version":"0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","impliedFormat":1},{"version":"6dfd0aeb128f03ebaa66306bf1fc753bf434f47373900fc2205660fae499ac2e","impliedFormat":1},{"version":"a109c4289d59d9019cfe1eeab506fe57817ee549499b02a83a7e9d3bdf662d63","impliedFormat":1},{"version":"6d09838b65c3c780513878793fc394ae29b8595d9e4729246d14ce69abc71140","impliedFormat":1},{"version":"202f8582ee3cd89e06c4a17d8aabb925ff8550370559c771d1cc3ec3934071c2","impliedFormat":1},{"version":"5d30565583300c9256072a013ac0318cc603ff769b4c5cafc222394ea93963e1","impliedFormat":1},{"version":"33a0782502805f6dac67362b4290250e29755139a9c0d93a42e9da3a6e282e85","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"6be361c303ad5b42401bb74f16ddebd4a32ae30197f295035b4099848081c0c3","impliedFormat":1},{"version":"c271193e426325d9acab2f99997bb9f5f2dff850ec8c7c011c5abafe5af83b5f","impliedFormat":1},{"version":"6ab263df6465e2ed8f1d02922bae18bb5b407020767de021449a4c509859b22e","impliedFormat":1},{"version":"6805621d9f970cda51ab1516e051febe5f3ec0e45b371c7ad98ac2700d13d57c","impliedFormat":1},{"version":"34b97b31fde4a69f5fbb734783103064f1ffae897e6b7dde785072561c09a0e3","impliedFormat":1},{"version":"5aca5a3bc07d2e16b6824a76c30378d6fb1b92e915d854315e1d1bd2d00974c9","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"550650516d34048712520ffb1fce4a02f2d837761ee45c7d9868a7a35e7b0343","impliedFormat":1},{"version":"06c5dad693aebbff00bd89fccb92bce6c132a6aa6033bb805560fa101e4fe77b","impliedFormat":1},{"version":"f4b59577879efe9854a8ea980f49febdb0a45e0a7b0ad0d8973b785e6b6898f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"6451264601a58c77b5f347234485ce0ac09e9fafcc5228a3c60f5ccb3fc8524e","affectsGlobalScope":true,"impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"5d30d04a14ed8527ac5d654dc345a4db11b593334c11a65efb6e4facc5484a0e","impliedFormat":1},{"version":"74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185","impliedFormat":1}],"root":[[337,339]],"options":{"composite":true,"declaration":true,"module":100,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./out","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":8},"fileIdsList":[[160,198],[163,198],[343],[346],[348,349,350],[161,198,353,354],[356],[161,190,198],[361],[361,363],[364],[366],[363],[340],[111],[147],[148,153,182],[149,154,160,161,168,179,190],[149,150,160,168],[151,191],[152,153,161,169],[153,179,187],[154,156,160,168],[147,155],[156,157],[160],[158,160],[147,160],[160,161,162,179,190],[160,161,162,175,179,182],[145,148,195],[156,160,163,168,179,190],[160,161,163,164,168,179,187,190],[163,165,179,187,190],[111,112,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197],[160,166],[167,190,195],[156,160,168,179],[169],[170],[147,171],[168,169,172,189,195],[173],[174],[160,175,176],[175,177,191,193],[148,160,179,180,181,182],[148,179,181],[179,180],[182],[183],[147,179],[160,185,186],[185,186],[153,168,179,187],[188],[168,189],[148,163,174,190],[153,191],[179,192],[167,193],[194],[148,153,160,162,171,179,190,193,195],[179,196],[198],[179,198,373],[377,416],[377,401,416],[416],[377],[377,402,416],[377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415],[402,416],[421],[160,179,198],[53,54,55,56,57],[55],[53],[53,54],[55,105,222,225,229],[101,109,229,239],[101,103,109,229,239,240],[101,103,109,229,239],[101,109,222,227,229,239],[101,109,228,239],[101,103,109,221,224,226,228,230,231,239,241],[58,98,109,239],[58,104,105,106,107,108,239],[98,101,105],[58,98,101,105,239],[58,98,101,102,103,104,106,239],[98,101,102,105],[101],[226],[98,102,103],[51,52],[58,101,103,109,232,233,234,235,236,237,238,239],[58,103,239],[58,103,237,239],[101,103,109,239],[122,126,190],[122,179,190],[117],[119,122,187,190],[168,187],[117,198],[119,122,168,190],[114,115,118,121,148,160,179,190],[114,120],[118,122,148,182,190,198],[148,198],[138,148,198],[116,117,198],[122],[116,117,118,119,120,121,122,123,124,126,127,128,129,130,131,132,133,134,135,136,137,139,140,141,142,143,144],[122,129,130],[120,122,130,131],[121],[114,117,122],[122,126,130,131],[126],[120,122,125,190],[114,119,120,122,126,129],[148,179],[117,122,138,148,195,198],[109,239,335],[246],[59,245],[59,102,243,244],[285,286,287,288,289,291,292,293,294],[287,288],[286,287,288,289,292,293],[286,291],[287],[286,288,290,291,295],[286,288,290,291],[287,290],[60,61,62,63,64,65,66,67,68,69,70,71,72],[63,64],[61,63,64,65,68,69],[61,67],[63],[67],[61,64,66,67,73],[61,64,66,67],[63,66],[61,65,70],[73,149,168,195,198],[217],[284,295,296,312,313],[295,296],[295],[284,295,296,312],[295,296,312],[284,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311],[284,295,296],[296,312],[59,73,74,96,97],[73,74],[73],[59,73,74,96],[59,73,74],[59,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],[74,96],[59,74,96],[98,198,218],[219],[314,315,319,324],[314,324],[314,315,316,317,318,319,320,321,322,323],[98,199,203,212,213,215,221],[98,215],[98,212,215],[98,199,200,201,202,203,204,205,206,207,208,209,210,211,213,214],[98],[110,198,215,216,220,222],[223],[99,100],[99],[59,246,334],[281],[246,247],[59,102,246,248,281,282],[102,281,282,283,329,330,332],[102,331],[247,248,283,326,334],[245],[59,102],[59,102,246,247,248,325,327,328,332,333],[247,325,327,334],[101,102,198,248,325,326,332,334],[250,264,266,270,272,273],[258,259,266,272],[272],[250,254,256,257,259,262,264,266,271,273],[249],[249,250,254,256,257,258,259,262,263,264,266,270,271,272,274,275,276,277,278,279,280],[253,256,262],[253,254,256,257,265,266,270,272],[259,266],[254,256,257,262,265,270,271,272],[253,254,256,257,259,260,261,265,266,270,271],[253,266,270],[265,266,272],[253,254,255,259,262,265,266,270],[249,251,252,254,258,259,262,263,266,273],[250,254,266,270],[270],[267,268,269],[251,264,266,272,274],[258,262,264,266],[258,264],[254,256,257,259,260,264,265,266],[253,257,258,281],[253,254,256,258,259,262,265],[264,271,272],[254,256,257,262,266,271,272],[242,336,337],[58,101,103,239],[225]],"referencedMap":[[341,1],[342,2],[344,3],[347,4],[351,5],[355,6],[357,7],[353,8],[362,9],[364,10],[365,11],[367,12],[368,13],[369,14],[111,15],[112,15],[147,16],[148,17],[149,18],[150,19],[151,20],[152,21],[153,22],[154,23],[155,24],[156,25],[157,25],[159,26],[158,27],[160,28],[161,29],[162,30],[146,31],[163,32],[164,33],[165,34],[198,35],[166,36],[167,37],[168,38],[169,39],[170,40],[171,41],[172,42],[173,43],[174,44],[175,45],[176,45],[177,46],[179,47],[181,48],[180,49],[182,50],[183,51],[184,52],[185,53],[186,54],[187,55],[188,56],[189,57],[190,58],[191,59],[192,60],[193,61],[194,62],[195,63],[196,64],[371,65],[374,66],[401,67],[402,68],[377,69],[380,69],[399,67],[400,67],[390,67],[389,70],[387,67],[382,67],[395,67],[393,67],[397,67],[381,67],[394,67],[398,67],[383,67],[384,67],[396,67],[378,67],[385,67],[386,67],[388,67],[392,67],[403,71],[391,67],[379,67],[416,72],[410,71],[412,73],[411,71],[404,71],[405,71],[407,71],[409,71],[413,73],[414,73],[406,73],[408,73],[422,74],[423,75],[58,76],[56,77],[54,78],[55,79],[230,80],[231,81],[241,82],[240,83],[228,84],[229,85],[242,86],[225,87],[109,88],[107,89],[106,90],[105,91],[108,92],[104,93],[227,94],[226,95],[53,96],[239,97],[234,98],[235,98],[236,98],[233,98],[238,99],[237,100],[129,101],[136,102],[128,101],[143,103],[120,104],[119,105],[142,65],[137,106],[140,107],[122,108],[121,109],[117,110],[116,111],[139,112],[118,113],[123,114],[127,114],[145,115],[144,114],[131,116],[132,117],[134,118],[130,119],[133,120],[138,65],[125,121],[126,122],[135,123],[115,124],[141,125],[336,126],[243,127],[246,128],[245,129],[295,130],[289,131],[294,132],[290,133],[288,134],[292,135],[293,136],[291,137],[73,138],[65,139],[70,140],[66,141],[64,142],[72,143],[68,144],[69,145],[67,146],[71,147],[217,148],[218,149],[314,150],[313,151],[296,152],[306,153],[301,153],[300,154],[312,155],[303,153],[310,156],[302,153],[297,153],[309,153],[311,157],[305,156],[304,153],[307,153],[308,156],[298,153],[299,151],[98,158],[97,159],[74,160],[84,161],[79,161],[78,162],[96,163],[81,161],[93,161],[88,162],[80,161],[75,161],[92,161],[95,161],[91,161],[87,161],[89,164],[94,165],[83,162],[82,161],[85,161],[86,162],[76,161],[90,161],[77,162],[219,166],[220,167],[325,168],[318,169],[316,169],[321,169],[322,169],[323,169],[315,169],[319,169],[324,170],[320,169],[317,169],[222,171],[202,172],[200,172],[211,172],[205,172],[209,172],[210,172],[221,172],[208,172],[206,172],[214,172],[213,173],[199,172],[203,172],[215,174],[204,172],[212,175],[207,172],[201,172],[223,176],[224,177],[101,178],[100,179],[335,180],[282,181],[248,182],[283,183],[331,184],[332,185],[327,186],[329,187],[330,188],[334,189],[326,190],[333,191],[274,192],[260,193],[273,194],[272,195],[250,196],[281,197],[261,198],[271,199],[255,200],[266,201],[262,202],[254,203],[253,204],[256,205],[257,205],[264,206],[267,207],[268,208],[269,208],[270,209],[276,208],[277,210],[259,211],[263,212],[258,213],[278,214],[279,215],[265,216],[280,217],[338,218],[337,219],[339,220]],"latestChangedDtsFile":"./out/protocol.d.ts"},"version":"5.5.3"} \ No newline at end of file diff --git a/packages/vscode/language-server/bin.ts b/packages/vscode/language-server/bin.ts new file mode 100644 index 0000000000..8370da9fc4 --- /dev/null +++ b/packages/vscode/language-server/bin.ts @@ -0,0 +1,9 @@ +#!/usr/bin/env node +/* eslint-disable no-console */ +import process from 'node:process' +import { version } from '../package.json' + +if (process.argv.includes('--version')) + console.log(version) +else + import('./index.js') diff --git a/packages/vscode/language-server/index.ts b/packages/vscode/language-server/index.ts new file mode 100644 index 0000000000..51c14d8fdf --- /dev/null +++ b/packages/vscode/language-server/index.ts @@ -0,0 +1,20 @@ +import { createConnection, createServer, createSimpleProject } from '@volar/language-server/node' +import { create as createYamlPlugin } from 'volar-service-yaml' +import { slidevLanguagePlugin } from './languagePlugin' + +const connection = createConnection() +const server = createServer(connection) + +connection.onInitialize((params) => { + return server.initialize( + params, + createSimpleProject([slidevLanguagePlugin]), + [createYamlPlugin()], + ) +}) + +connection.onInitialized(server.initialized) + +connection.onShutdown(server.shutdown) + +connection.listen() diff --git a/packages/vscode/language-server/languagePlugin.ts b/packages/vscode/language-server/languagePlugin.ts new file mode 100644 index 0000000000..fe9c45752b --- /dev/null +++ b/packages/vscode/language-server/languagePlugin.ts @@ -0,0 +1,50 @@ +import type { LanguagePlugin, VirtualCode } from '@volar/language-core' +import type * as ts from 'typescript' +import type { URI } from 'vscode-uri' + +export const slidevLanguagePlugin: LanguagePlugin = { + getLanguageId() { + return undefined + }, + createVirtualCode(_uri, languageId, snapshot) { + if (languageId === 'markdown') { + return { + id: 'root', + languageId: 'markdown', + mappings: [], + embeddedCodes: [...getEmbeddedCodes(snapshot)], + snapshot, + } + } + }, +} + +function* getEmbeddedCodes(snapshot: ts.IScriptSnapshot): Generator { + const blocks = snapshot.getText(0, snapshot.getLength()).matchAll(/---\n([\s\S]*?)\n---/g) + let i = 0 + for (const block of blocks) { + yield { + id: `yaml_${i++}`, + languageId: 'yaml', + snapshot: { + getText: (start, end) => block[1].substring(start, end), + getLength: () => block[1].length, + getChangeRange: () => undefined, + }, + mappings: [{ + sourceOffsets: [block.index], + generatedOffsets: [0], + lengths: [block[1].length], + data: { + verification: true, + completion: true, + semantic: true, + navigation: true, + structure: true, + format: true, + }, + }], + embeddedCodes: [], + } + } +} diff --git a/packages/vscode/language-server/protocol.ts b/packages/vscode/language-server/protocol.ts new file mode 100644 index 0000000000..3cd434e888 --- /dev/null +++ b/packages/vscode/language-server/protocol.ts @@ -0,0 +1 @@ +export * from '@volar/language-server/protocol' diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 2bad9728e2..6629d7f33c 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -23,7 +23,54 @@ "activationEvents": [ "onStartupFinished" ], + "extensionDependencies": [ + "Vue.volar" + ], "contributes": { + "languages": [ + { + "id": "markdown", + "configuration": "./language/language-configuration.json" + } + ], + "grammars": [ + { + "scopeName": "markdown.vue.codeblock", + "path": "./syntaxes/markdown-vue.json", + "injectTo": [ + "text.html.markdown" + ], + "embeddedLanguages": { + "meta.embedded.block.vue": "vue", + "source.vue": "vue", + "text": "plaintext", + "text.html.derivative": "html", + "text.html.markdown": "markdown", + "text.pug": "jade", + "source.css": "css", + "source.css.scss": "scss", + "source.css.less": "less", + "source.sass": "sass", + "source.stylus": "stylus", + "source.postcss": "postcss", + "source.js": "javascript", + "source.ts": "typescript", + "source.js.jsx": "javascriptreact", + "source.tsx": "typescriptreact", + "source.coffee": "coffeescript", + "meta.tag.js": "jsx-tags", + "meta.tag.tsx": "jsx-tags", + "meta.tag.without-attributes.js": "jsx-tags", + "meta.tag.without-attributes.tsx": "jsx-tags", + "source.json": "json", + "source.json.comments": "jsonc", + "source.json5": "json5", + "source.yaml": "yaml", + "source.toml": "toml", + "source.graphql": "graphql" + } + } + ], "commands": [ { "command": "slidev.enable-extension", @@ -355,16 +402,18 @@ }, "devDependencies": { "@antfu/utils": "^0.7.10", - "@slidev/language-server": "workspace:^", "@slidev/parser": "workspace:*", "@slidev/types": "workspace:*", "@types/node": "^20.14.10", "@types/vscode": "~1.89.0", + "@volar/language-server": "~2.4.0-alpha.15", "@volar/vscode": "^2.4.0-alpha.15", "@vue/reactivity": "^3.4.31", "@vue/runtime-core": "^3.4.31", "@vue/shared": "^3.4.31", "get-port-please": "^3.1.2", - "ovsx": "^0.9.1" + "mlly": "^1.7.1", + "ovsx": "^0.9.1", + "volar-service-yaml": "^0.0.59" } } diff --git a/packages/vscode/src/index.ts b/packages/vscode/src/index.ts index 312d5e5fcf..fbbf76fd62 100644 --- a/packages/vscode/src/index.ts +++ b/packages/vscode/src/index.ts @@ -1,5 +1,10 @@ import { effectScope, shallowRef } from '@vue/runtime-core' -import { ExtensionContext, Uri } from 'vscode' +import type { ExtensionContext } from 'vscode' +import { Uri } from 'vscode' +import type { LanguageClientOptions, ServerOptions } from '@volar/vscode/node' +import { LanguageClient, TransportKind } from '@volar/vscode/node' +import { createLabsInfo } from '@volar/vscode' +import * as serverProtocol from '../language-server/protocol' import { useCommands } from './commands' import { useGlobalConfigurations } from './configs' import { activeEntry, useProjects } from './projects' @@ -9,13 +14,10 @@ import { useLogger } from './views/logger' import { usePreviewWebview } from './views/previewWebview' import { useSlidesTree } from './views/slidesTree' import { useProjectsTree } from './views/projectsTree' -import { LanguageClient, LanguageClientOptions, ServerOptions, TransportKind } from '@volar/vscode/node'; -import { createLabsInfo } from '@volar/vscode'; -import * as serverProtocol from '@slidev/language-server/out/protocol'; const scope = effectScope() -let client: LanguageClient; +let client: LanguageClient export const extCtx = shallowRef(undefined!) @@ -42,40 +44,39 @@ export async function activate(ext: ExtensionContext) { logger.info(`Entry: ${activeEntry.value}`) }) - return await startLanguageServer(ext); + return await startLanguageServer(ext) } async function startLanguageServer(ext: ExtensionContext) { - const serverModule = Uri.joinPath(ext.extensionUri, 'node_modules', '@slidev', 'language-server', 'bin', 'slidev-language-server.js'); - const runOptions = { execArgv: [] }; - const debugOptions = { execArgv: ['--nolazy', '--inspect=' + 6009] }; + const serverModule = Uri.joinPath(ext.extensionUri, 'dist', 'language-server.cjs') + const runOptions = { execArgv: [] } + const debugOptions = { execArgv: ['--nolazy', `--inspect=${6009}`] } const serverOptions: ServerOptions = { run: { module: serverModule.fsPath, transport: TransportKind.ipc, - options: runOptions + options: runOptions, }, debug: { module: serverModule.fsPath, transport: TransportKind.ipc, - options: debugOptions + options: debugOptions, }, - }; + } const clientOptions: LanguageClientOptions = { documentSelector: [{ language: 'markdown' }], - }; + } client = new LanguageClient( 'slidev-language-server', 'Slidev Language Server', serverOptions, clientOptions, - ); - await client.start(); + ) + await client.start() - const labsInfo = createLabsInfo(serverProtocol); - labsInfo.addLanguageClient(client); - console.log(labsInfo.extensionExports); - return labsInfo.extensionExports; + const labsInfo = createLabsInfo(serverProtocol) + labsInfo.addLanguageClient(client) + return labsInfo.extensionExports } export async function deactivate() { diff --git a/packages/vscode/syntax/language-configuration.json b/packages/vscode/syntax/language-configuration.json new file mode 100644 index 0000000000..200592d184 --- /dev/null +++ b/packages/vscode/syntax/language-configuration.json @@ -0,0 +1,57 @@ +// Ported from https://github.com/vuejs/language-tools/blob/master/extensions/vscode/languages/markdown-language-configuration.json +{ + "autoClosingPairs": [ + // html + { + "open": "{", + "close": "}" + }, + { + "open": "[", + "close": "]" + }, + { + "open": "(", + "close": ")" + }, + { + "open": "'", + "close": "'" + }, + { + "open": "\"", + "close": "\"" + }, + { + "open": "", + "notIn": [ + "comment", + "string" + ] + }, + // javascript + // commented to fix https://github.com/vuejs/language-tools/issues/1428 + // { + // "open": "`", + // "close": "`", + // "notIn": [ + // "string", + // "comment" + // ] + // }, + { + "open": "/**", + "close": " */", + "notIn": [ + "string" + ] + } + ], + "colorizedBracketPairs": [ + [ + "{{", + "}}" + ] + ] +} diff --git a/packages/vscode/syntax/slidev.example.md b/packages/vscode/syntax/slidev.example.md new file mode 100644 index 0000000000..3539a40d87 --- /dev/null +++ b/packages/vscode/syntax/slidev.example.md @@ -0,0 +1,32 @@ +--- +foo: a +bar: 1 +--- + +# Title + +**Hello** World + +```ts +console.log('Hello World') +``` + +--- +layout: center +--- + +# Centerered + +--- + +## src: 1 + +--- + +# Another + +<<< @/a.js + +--- + +# Last diff --git a/packages/vscode/syntax/slidev.tmLanguage.json b/packages/vscode/syntax/slidev.tmLanguage.json new file mode 100644 index 0000000000..8f6561c21d --- /dev/null +++ b/packages/vscode/syntax/slidev.tmLanguage.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "fileTypes": [], + "injectionSelector": "L:text.html.markdown", + "patterns": [ + { + "include": "#vue-code-block" + } + ], + "repository": { + "frontMatter": { + "begin": "^-{3}\\s*$", + "contentName": "meta.embedded.block.frontmatter", + "end": "(^|\\G)-{3}|\\.{3}\\s*$", + "patterns": [ + { + "include": "source.yaml" + } + ] + } + }, + "scopeName": "markdown.vue.codeblock" +} diff --git a/packages/vscode/tsup.config.ts b/packages/vscode/tsup.config.ts index 6422825910..5248b6925f 100644 --- a/packages/vscode/tsup.config.ts +++ b/packages/vscode/tsup.config.ts @@ -1,28 +1,38 @@ import { copyFileSync, existsSync, mkdirSync } from 'node:fs' -import { join, resolve } from 'node:path' +import { join } from 'node:path' import { fileURLToPath } from 'node:url' import { defineConfig } from 'tsup' +import { resolvePath } from 'mlly' -export default defineConfig([{ - entry: ['src/index.ts'], +export default defineConfig({ + entry: { + 'index': 'src/index.ts', + 'language-server': 'language-server/bin.ts', + }, format: ['cjs'], target: 'node18', clean: true, - minify: true, + // minify: true, external: [ 'vscode', ], - plugins: [ - { - name: 'alias', - esbuildOptions(options) { - options.alias ||= {} - options.alias['@vue/runtime-core'] = fileURLToPath(new URL('../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js', import.meta.url)) - options.alias['@vue/reactivity'] = fileURLToPath(new URL('../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js', import.meta.url)) - options.alias['@vue/shared'] = fileURLToPath(new URL('../../node_modules/@vue/shared/dist/shared.esm-bundler.js', import.meta.url)) - }, + esbuildOptions(options) { + options.alias ||= {} + options.alias['@vue/runtime-core'] = fileURLToPath(new URL('../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js', import.meta.url)) + options.alias['@vue/reactivity'] = fileURLToPath(new URL('../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js', import.meta.url)) + options.alias['@vue/shared'] = fileURLToPath(new URL('../../node_modules/@vue/shared/dist/shared.esm-bundler.js', import.meta.url)) + }, + esbuildPlugins: [{ + name: 'umd2esm', + setup(build) { + build.onResolve({ filter: /^(vscode-.*-languageservice|jsonc-parser)/ }, async (args) => { + const pathUmdMay = await resolvePath(args.path, { url: args.resolveDir }) + // Call twice the replace is to solve the problem of the path in Windows + const pathEsm = pathUmdMay.replace('/umd/', '/esm/').replace('\\umd\\', '\\esm\\') + return { path: pathEsm } + }) }, - ], + }], async onSuccess() { const assetsDir = join(__dirname, '../../assets') const resDir = join(__dirname, './dist/res') @@ -32,39 +42,6 @@ export default defineConfig([{ mkdirSync(iconsDir, { recursive: true }) for (const file of ['logo-mono.svg', 'logo-mono-dark.svg', 'logo.png', 'logo.svg']) - copyFileSync(resolve(assetsDir, file), resolve(resDir, file)) + copyFileSync(join(assetsDir, file), join(resDir, file)) }, -}, { - entry: ['node_modules/@slidev/language-server/src/index.ts'], - outDir: 'dist/server', - format: ['cjs'], - target: 'node18', - clean: true, - // minify: true, - external: [ - '@slidev/language-server/out/protocol', - ], - plugins: [ - { - name: 'alias', - esbuildOptions(options) { - options.alias ||= {} - options.alias['@vue/runtime-core'] = fileURLToPath(new URL('../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js', import.meta.url)) - options.alias['@vue/reactivity'] = fileURLToPath(new URL('../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js', import.meta.url)) - options.alias['@vue/shared'] = fileURLToPath(new URL('../../node_modules/@vue/shared/dist/shared.esm-bundler.js', import.meta.url)) - options.plugins ??= [] - options.plugins.push({ - name: 'umd2esm', - setup(build) { - build.onResolve({ filter: /^(vscode-.*-languageservice|jsonc-parser)/ }, args => { - const pathUmdMay = require.resolve(args.path, { paths: [args.resolveDir] }) - // Call twice the replace is to solve the problem of the path in Windows - const pathEsm = pathUmdMay.replace('/umd/', '/esm/').replace('\\umd\\', '\\esm\\') - return { path: pathEsm } - }); - }, - }) - }, - }, - ], -}]) +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1537ef018a..b612d596e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -427,18 +427,6 @@ importers: specifier: ^2.4.2 version: 2.4.2 - packages/language-server: - dependencies: - '@slidev/parser': - specifier: 0.49.16 - version: link:../parser - '@volar/language-server': - specifier: ~2.4.0-alpha.15 - version: 2.4.0-alpha.15 - volar-service-yaml: - specifier: volar-2.4 - version: 0.0.59(@volar/language-service@2.4.0-alpha.15) - packages/parser: dependencies: '@antfu/utils': @@ -512,7 +500,7 @@ importers: version: 3.7.0 debug: specifier: ^4.3.5 - version: 4.3.5(supports-color@8.1.1) + version: 4.3.5(supports-color@5.5.0) fast-deep-equal: specifier: ^3.1.3 version: 3.1.3 @@ -727,9 +715,6 @@ importers: '@antfu/utils': specifier: ^0.7.10 version: 0.7.10 - '@slidev/language-server': - specifier: workspace:^ - version: link:../language-server '@slidev/parser': specifier: workspace:* version: link:../parser @@ -742,6 +727,9 @@ importers: '@types/vscode': specifier: ~1.89.0 version: 1.89.0 + '@volar/language-server': + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@volar/vscode': specifier: ^2.4.0-alpha.15 version: 2.4.0-alpha.15 @@ -757,9 +745,15 @@ importers: get-port-please: specifier: ^3.1.2 version: 3.1.2 + mlly: + specifier: ^1.7.1 + version: 1.7.1 ovsx: specifier: ^0.9.1 version: 0.9.1 + volar-service-yaml: + specifier: ^0.0.59 + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) packages: @@ -6723,7 +6717,7 @@ snapshots: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -6920,7 +6914,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7166,7 +7160,7 @@ snapshots: '@eslint/config-array@0.17.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7174,7 +7168,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -7245,7 +7239,7 @@ snapshots: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.5.2 '@iconify/types': 1.1.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) kolorist: 1.8.0 local-pkg: 0.4.3 transitivePeerDependencies: @@ -7256,7 +7250,7 @@ snapshots: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.10 '@iconify/types': 2.0.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) kolorist: 1.8.0 local-pkg: 0.5.0 mlly: 1.7.1 @@ -7786,7 +7780,7 @@ snapshots: '@typescript-eslint/types': 8.0.0-alpha.40 '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.40 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) eslint: 9.6.0 optionalDependencies: typescript: 5.5.3 @@ -7807,7 +7801,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -7823,7 +7817,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -7838,7 +7832,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.0.0-alpha.40 '@typescript-eslint/visitor-keys': 8.0.0-alpha.40 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -7887,7 +7881,7 @@ snapshots: '@typescript/vfs@1.5.0': dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -8487,7 +8481,7 @@ snapshots: '@windicss/config@1.9.3': dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) jiti: 1.21.6 windicss: 3.5.6 transitivePeerDependencies: @@ -8497,7 +8491,7 @@ snapshots: dependencies: '@antfu/utils': 0.7.10 '@windicss/config': 1.9.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) fast-glob: 3.3.2 magic-string: 0.30.10 micromatch: 4.0.7 @@ -8527,7 +8521,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -9579,7 +9573,7 @@ snapshots: eslint-plugin-import-x@0.5.3(eslint@9.6.0)(typescript@5.5.3): dependencies: '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) doctrine: 3.0.0 eslint: 9.6.0 eslint-import-resolver-node: 0.3.9 @@ -9598,7 +9592,7 @@ snapshots: '@es-joy/jsdoccomment': 0.43.1 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) escape-string-regexp: 4.0.0 eslint: 9.6.0 esquery: 1.5.0 @@ -9666,7 +9660,7 @@ snapshots: eslint-plugin-toml@0.11.1(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) eslint: 9.6.0 eslint-compat-utils: 0.5.0(eslint@9.6.0) lodash: 4.17.21 @@ -9730,7 +9724,7 @@ snapshots: eslint-plugin-yml@1.14.0(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) eslint: 9.6.0 eslint-compat-utils: 0.5.0(eslint@9.6.0) lodash: 4.17.21 @@ -9773,7 +9767,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) escape-string-regexp: 4.0.0 eslint-scope: 8.0.1 eslint-visitor-keys: 4.0.0 @@ -10010,7 +10004,7 @@ snapshots: follow-redirects@1.15.6(debug@4.3.5): optionalDependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) foreground-child@3.1.1: dependencies: @@ -10275,7 +10269,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -10293,7 +10287,7 @@ snapshots: https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -10331,7 +10325,7 @@ snapshots: importx@0.3.10: dependencies: bundle-require: 5.0.0(esbuild@0.20.2) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) esbuild: 0.20.2 jiti: 1.21.6 pathe: 1.1.2 @@ -10648,7 +10642,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) execa: 8.0.1 lilconfig: 3.1.1 listr2: 8.2.1 @@ -11230,7 +11224,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -11238,7 +11232,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -11260,7 +11254,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -12382,7 +12376,7 @@ snapshots: bundle-require: 4.0.2(esbuild@0.21.5) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) esbuild: 0.21.5 execa: 5.1.1 globby: 11.1.0 @@ -12620,7 +12614,7 @@ snapshots: '@antfu/install-pkg': 0.3.3 '@antfu/utils': 0.7.10 '@iconify/utils': 2.1.25 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) kolorist: 1.8.0 local-pkg: 0.5.0 unplugin: 1.10.1 @@ -12635,7 +12629,7 @@ snapshots: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.13.2) chokidar: 3.6.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -12750,7 +12744,7 @@ snapshots: vite-node@1.6.0(@types/node@20.14.10): dependencies: cac: 6.7.14 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) pathe: 1.1.2 picocolors: 1.0.1 vite: 5.3.3(@types/node@20.14.10) @@ -12768,7 +12762,7 @@ snapshots: dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.13.2) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 open: 10.1.0 @@ -12787,7 +12781,7 @@ snapshots: '@antfu/utils': 0.7.10 axios: 1.7.2(debug@4.3.5) blueimp-md5: 2.19.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) fs-extra: 11.2.0 magic-string: 0.30.10 vite: 5.3.3(@types/node@20.14.10) @@ -12805,7 +12799,7 @@ snapshots: vite-plugin-vue-server-ref@0.4.2(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.5.3)): dependencies: '@antfu/utils': 0.7.10 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) klona: 2.0.6 mlly: 1.7.1 ufo: 1.5.3 @@ -12817,7 +12811,7 @@ snapshots: vite-plugin-windicss@1.9.3(vite@5.3.3(@types/node@20.14.10)): dependencies: '@windicss/plugin-utils': 1.9.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) kolorist: 1.8.0 vite: 5.3.3(@types/node@20.14.10) windicss: 3.5.6 @@ -12893,7 +12887,7 @@ snapshots: '@vitest/utils': 1.6.0 acorn-walk: 8.3.2 chai: 4.4.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -12976,7 +12970,7 @@ snapshots: vue-eslint-parser@9.4.3(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) eslint: 9.6.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 From 1cfac4658e39220ee0e351c86ee1619a528b3e49 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:53:24 +0000 Subject: [PATCH 03/30] [autofix.ci] apply automated fixes --- packages/vscode/syntax/slidev.example.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vscode/syntax/slidev.example.md b/packages/vscode/syntax/slidev.example.md index 3539a40d87..800b97f59c 100644 --- a/packages/vscode/syntax/slidev.example.md +++ b/packages/vscode/syntax/slidev.example.md @@ -12,8 +12,8 @@ console.log('Hello World') ``` --- -layout: center ---- + +## layout: center # Centerered From e4e8e2134523adffca67485e7a828f598f43ef2f Mon Sep 17 00:00:00 2001 From: _Kerman Date: Tue, 9 Jul 2024 22:55:19 +0800 Subject: [PATCH 04/30] chore: minor updates --- eslint.config.js | 4 +++- packages/vscode/language-server/languagePlugin.ts | 2 +- packages/vscode/syntax/slidev.example.md | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 11f0ecb0d3..dadea9abe7 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -2,6 +2,9 @@ import antfu from '@antfu/eslint-config' export default antfu( { + ignores: [ + 'packages/vscode/language/slidev.example.md', + ], overrides: { vue: { 'vue/no-v-text-v-html-on-component': 'off', @@ -17,7 +20,6 @@ export default antfu( '**/template.md', '**/example.md', 'test/fixtures/markdown/**/*.md', - 'packages/vscode/language/slidev.example.md', ], }, }, diff --git a/packages/vscode/language-server/languagePlugin.ts b/packages/vscode/language-server/languagePlugin.ts index fe9c45752b..f8d8d7af2b 100644 --- a/packages/vscode/language-server/languagePlugin.ts +++ b/packages/vscode/language-server/languagePlugin.ts @@ -24,7 +24,7 @@ function* getEmbeddedCodes(snapshot: ts.IScriptSnapshot): Generator let i = 0 for (const block of blocks) { yield { - id: `yaml_${i++}`, + id: `frontmatter_${i++}`, languageId: 'yaml', snapshot: { getText: (start, end) => block[1].substring(start, end), diff --git a/packages/vscode/syntax/slidev.example.md b/packages/vscode/syntax/slidev.example.md index 800b97f59c..3539a40d87 100644 --- a/packages/vscode/syntax/slidev.example.md +++ b/packages/vscode/syntax/slidev.example.md @@ -12,8 +12,8 @@ console.log('Hello World') ``` --- - -## layout: center +layout: center +--- # Centerered From 06969a1e8fc2ab670ea630f299220bb519105c2f Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:56:42 +0000 Subject: [PATCH 05/30] [autofix.ci] apply automated fixes --- packages/vscode/syntax/slidev.example.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vscode/syntax/slidev.example.md b/packages/vscode/syntax/slidev.example.md index 3539a40d87..800b97f59c 100644 --- a/packages/vscode/syntax/slidev.example.md +++ b/packages/vscode/syntax/slidev.example.md @@ -12,8 +12,8 @@ console.log('Hello World') ``` --- -layout: center ---- + +## layout: center # Centerered From 1008b102e59a470c91e99649827fe96c247432de Mon Sep 17 00:00:00 2001 From: _Kerman Date: Tue, 9 Jul 2024 22:57:01 +0800 Subject: [PATCH 06/30] chore: fix eslint config --- eslint.config.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index dadea9abe7..afa512b712 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -2,9 +2,6 @@ import antfu from '@antfu/eslint-config' export default antfu( { - ignores: [ - 'packages/vscode/language/slidev.example.md', - ], overrides: { vue: { 'vue/no-v-text-v-html-on-component': 'off', @@ -20,6 +17,7 @@ export default antfu( '**/template.md', '**/example.md', 'test/fixtures/markdown/**/*.md', + 'packages/vscode/syntax/slidev.example.md', ], }, }, From 3c853acd038217cca87d2ef6f65457700ce5db34 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Wed, 10 Jul 2024 01:08:09 +0800 Subject: [PATCH 07/30] wip: syntax highlighting --- packages/vscode/package.json | 7 +- packages/vscode/syntax/slidev.example.md | 18 +++-- packages/vscode/syntax/slidev.tmLanguage.json | 80 +++++++++++++++++-- 3 files changed, 89 insertions(+), 16 deletions(-) diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 6629d7f33c..56965911af 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -35,8 +35,8 @@ ], "grammars": [ { - "scopeName": "markdown.vue.codeblock", - "path": "./syntaxes/markdown-vue.json", + "scopeName": "markdown.slidev.codeblock", + "path": "./syntax/slidev.tmLanguage.json", "injectTo": [ "text.html.markdown" ], @@ -67,7 +67,8 @@ "source.json5": "json5", "source.yaml": "yaml", "source.toml": "toml", - "source.graphql": "graphql" + "source.graphql": "graphql", + "meta.objectliteral.ts": "typescript" } } ], diff --git a/packages/vscode/syntax/slidev.example.md b/packages/vscode/syntax/slidev.example.md index 800b97f59c..201edaea85 100644 --- a/packages/vscode/syntax/slidev.example.md +++ b/packages/vscode/syntax/slidev.example.md @@ -7,25 +7,29 @@ bar: 1 **Hello** World -```ts +[](./a) + +```ts {a} console.log('Hello World') ``` --- +layout: center -## layout: center +text: 1 +--- # Centerered --- - -## src: 1 - +src: ../../../demo/starter/slides.md --- -# Another +# Import Snippets -<<< @/a.js +<<< @/snippets/snippet.js {2,3|5} +<<< @/snippets/snippet.js {2,3|5}{lines:true} +<<< @/snippets/snippet.js ts {monaco-run}{height:'200px'} --- diff --git a/packages/vscode/syntax/slidev.tmLanguage.json b/packages/vscode/syntax/slidev.tmLanguage.json index 8f6561c21d..676f0f63a0 100644 --- a/packages/vscode/syntax/slidev.tmLanguage.json +++ b/packages/vscode/syntax/slidev.tmLanguage.json @@ -4,14 +4,82 @@ "injectionSelector": "L:text.html.markdown", "patterns": [ { - "include": "#vue-code-block" + "include": "#import-snippet" + }, + { + "include": "#slide-frontmatter" } ], "repository": { - "frontMatter": { - "begin": "^-{3}\\s*$", - "contentName": "meta.embedded.block.frontmatter", - "end": "(^|\\G)-{3}|\\.{3}\\s*$", + "import-snippet": { + "match": "^(<<<)\\s*(\\S+)(\\s+[\\w-]+)?(?:\\s*(\\{)([^}]*)(\\}))?(?:\\s*(\\{.*\\}))?", + "name": "meta.import_snippet.block.slidev", + "captures": { + "1": { + "name": "punctuation.definition.slidev" + }, + "2": { + "name": "meta.link.inline.slidev" + }, + "3": { + "name": "import_snippet.block.language.slidev" + }, + "4": { + "name": "punctuation.separator.range.slidev" + }, + "5": { + "name": "meta.range_or_monaco.slidev", + "patterns": [ + { + "include": "#monaco-type" + }, + { + "include": "#range-with-steps" + } + ] + }, + "6": { + "name": "punctuation.separator.range.slidev" + }, + "7": { + "name": "meta.objectliteral.ts" + } + } + }, + "range-with-steps": { + "match": "([^|]*)(\\|)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#range" + } + ] + }, + "2": { + "name": "punctuation.separator.steps.slidev" + } + } + }, + "range": { + "match": "(\\d+)([,-])?", + "captures": { + "1": { + "name": "constant.numeric.range.slidev" + }, + "2": { + "name": "punctuation.separator.range.slidev" + } + } + }, + "monaco-type": { + "match": "monaco(-(run|write|diff))?", + "name": "keyword.monaco.slidev" + }, + "slide-frontmatter": { + "begin": "(^|\\G)---.*$", + "contentName": "meta.embedded.block.frontmatter.slidev", + "end": "\\A\\s*$|(^|\\G)---.*$", "patterns": [ { "include": "source.yaml" @@ -19,5 +87,5 @@ ] } }, - "scopeName": "markdown.vue.codeblock" + "scopeName": "markdown.slidev.codeblock" } From eba2d8449e08bbbc316ecd114960738786401114 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Wed, 10 Jul 2024 11:48:30 +0800 Subject: [PATCH 08/30] feat: use Slidev parser to generate virtual code --- packages/parser/src/core.ts | 88 +++++++++++++++-- .../vscode/language-server/languagePlugin.ts | 95 +++++++++++++------ packages/vscode/syntax/slidev.example.md | 20 ++-- 3 files changed, 160 insertions(+), 43 deletions(-) diff --git a/packages/parser/src/core.ts b/packages/parser/src/core.ts index 395e37bbe3..aa6fbcb9a3 100644 --- a/packages/parser/src/core.ts +++ b/packages/parser/src/core.ts @@ -2,6 +2,11 @@ import YAML from 'yaml' import { ensurePrefix } from '@antfu/utils' import type { FrontmatterStyle, SlidevDetectedFeatures, SlidevMarkdown, SlidevPreparserExtension, SourceSlideInfo } from '@slidev/types' +export interface SlidevParserOptions { + noParseYAML?: boolean + preserveCR?: boolean +} + export function stringify(data: SlidevMarkdown) { return `${data.slides.map(stringifySlide).join('\n').trim()}\n` } @@ -30,7 +35,7 @@ export function prettify(data: SlidevMarkdown) { return data } -function matter(code: string) { +function matter(code: string, options: SlidevParserOptions) { let type: FrontmatterStyle | undefined let raw: string | undefined @@ -50,13 +55,13 @@ function matter(code: string) { }) } - const doc = YAML.parseDocument(raw || '') + const doc = raw && !options.noParseYAML ? YAML.parseDocument(raw) : undefined return { type, raw, doc, - data: doc.toJSON(), + data: doc?.toJSON(), content, } } @@ -70,8 +75,8 @@ export function detectFeatures(code: string): SlidevDetectedFeatures { } } -export function parseSlide(raw: string): Omit { - const matterResult = matter(raw) +export function parseSlide(raw: string, options: SlidevParserOptions = {}): Omit { + const matterResult = matter(raw, options) let note: string | undefined const frontmatter = matterResult.data || {} let content = matterResult.content.trim() @@ -115,8 +120,9 @@ export async function parse( markdown: string, filepath: string, extensions?: SlidevPreparserExtension[], + options: SlidevParserOptions = {}, ): Promise { - const lines = markdown.split(/\r?\n/g) + const lines = markdown.split(options.preserveCR ? '\n' : /\r?\n/g) const slides: SourceSlideInfo[] = [] let start = 0 @@ -127,7 +133,7 @@ export async function parse( return const raw = lines.slice(start, end).join('\n') const slide: SourceSlideInfo = { - ...parseSlide(raw), + ...parseSlide(raw, options), filepath, index: slides.length, start, @@ -195,6 +201,74 @@ export async function parse( } } +export function parseSync( + markdown: string, + filepath: string, + options: SlidevParserOptions = {}, +): SlidevMarkdown { + const lines = markdown.split(options.preserveCR ? '\n' : /\r?\n/g) + const slides: SourceSlideInfo[] = [] + + let start = 0 + let contentStart = 0 + + function slice(end: number) { + if (start === end) + return + const raw = lines.slice(start, end).join('\n') + const slide: SourceSlideInfo = { + ...parseSlide(raw, options), + filepath, + index: slides.length, + start, + contentStart, + end, + } + slides.push(slide) + start = end + 1 + contentStart = end + 1 + } + + for (let i = 0; i < lines.length; i++) { + const line = lines[i].trimEnd() + if (line.startsWith('---')) { + slice(i) + + const next = lines[i + 1] + // found frontmatter, skip next dash + if (line[3] !== '-' && next?.trim()) { + start = i + for (i += 1; i < lines.length; i++) { + if (lines[i].trimEnd() === '---') + break + } + contentStart = i + 1 + } + } + // skip code block + else if (line.trimStart().startsWith('```')) { + const codeBlockLevel = line.match(/^\s*`+/)![0] + let j = i + 1 + for (; j < lines.length; j++) { + if (lines[j].startsWith(codeBlockLevel)) + break + } + // Update i only when code block ends + if (j !== lines.length) + i = j + } + } + + if (start <= lines.length - 1) + slice(lines.length) + + return { + filepath, + raw: markdown, + slides, + } +} + function scanMonacoReferencedMods(md: string) { const types = new Set() const deps = new Set() diff --git a/packages/vscode/language-server/languagePlugin.ts b/packages/vscode/language-server/languagePlugin.ts index f8d8d7af2b..69573ebc0c 100644 --- a/packages/vscode/language-server/languagePlugin.ts +++ b/packages/vscode/language-server/languagePlugin.ts @@ -1,50 +1,89 @@ import type { LanguagePlugin, VirtualCode } from '@volar/language-core' -import type * as ts from 'typescript' +import { parseSync } from '@slidev/parser' import type { URI } from 'vscode-uri' +import type { SlidevMarkdown } from '@slidev/types' export const slidevLanguagePlugin: LanguagePlugin = { getLanguageId() { return undefined }, - createVirtualCode(_uri, languageId, snapshot) { + createVirtualCode(uri, languageId, snapshot) { if (languageId === 'markdown') { + const source = snapshot.getText(0, snapshot.getLength()) + const parsed = parseSync(source, uri.fsPath, { + noParseYAML: true, + preserveCR: true, + }) return { id: 'root', languageId: 'markdown', mappings: [], - embeddedCodes: [...getEmbeddedCodes(snapshot)], + embeddedCodes: [...getEmbeddedCodes(parsed)], snapshot, } } }, } -function* getEmbeddedCodes(snapshot: ts.IScriptSnapshot): Generator { - const blocks = snapshot.getText(0, snapshot.getLength()).matchAll(/---\n([\s\S]*?)\n---/g) - let i = 0 - for (const block of blocks) { - yield { - id: `frontmatter_${i++}`, - languageId: 'yaml', - snapshot: { - getText: (start, end) => block[1].substring(start, end), - getLength: () => block[1].length, - getChangeRange: () => undefined, - }, - mappings: [{ - sourceOffsets: [block.index], - generatedOffsets: [0], - lengths: [block[1].length], - data: { - verification: true, - completion: true, - semantic: true, - navigation: true, - structure: true, - format: true, +function* getEmbeddedCodes(parsed: SlidevMarkdown): Generator { + const lines = parsed.raw.split('\n') + function lineToPos(line: number) { + let pos = 0 + for (let i = 0; i <= line; i++) { + pos += lines[i].length + 1 + } + return pos + } + for (const { frontmatterRaw, start, contentStart, content, index } of parsed.slides) { + if (frontmatterRaw != null) { + yield { + id: `frontmatter_${index}`, + languageId: 'yaml', + snapshot: { + getText: (start, end) => frontmatterRaw.substring(start, end), + getLength: () => frontmatterRaw.length, + getChangeRange: () => undefined, }, - }], - embeddedCodes: [], + mappings: [{ + sourceOffsets: [lineToPos(start)], + generatedOffsets: [0], + lengths: [frontmatterRaw.length], + data: { + verification: true, + completion: true, + semantic: true, + navigation: true, + structure: true, + format: true, + }, + }], + embeddedCodes: [], + } + } + if (content) { + yield { + id: `content_${index}`, + languageId: 'markdown', + snapshot: { + getText: (start, end) => content.substring(start, end), + getLength: () => content.length, + getChangeRange: () => undefined, + }, + mappings: [{ + sourceOffsets: [lineToPos(contentStart)], + generatedOffsets: [0], + lengths: [content.length], + data: { + verification: true, + completion: true, + semantic: true, + navigation: true, + structure: true, + format: true, + }, + }], + embeddedCodes: [], + } } } } diff --git a/packages/vscode/syntax/slidev.example.md b/packages/vscode/syntax/slidev.example.md index 201edaea85..2bbbab7e02 100644 --- a/packages/vscode/syntax/slidev.example.md +++ b/packages/vscode/syntax/slidev.example.md @@ -14,15 +14,9 @@ console.log('Hello World') ``` --- -layout: center - -text: 1 +src: ../../../demo/starter/slides.md --- -# Centerered - ---- -src: ../../../demo/starter/slides.md --- # Import Snippets @@ -33,4 +27,14 @@ src: ../../../demo/starter/slides.md --- -# Last +# Vue Component + +
+ + +--- +layout: center +text: 1 +--- + +# Centerered From 6ee6c8e8a2c36f9ed05c64bc9597e5facaf8a0cf Mon Sep 17 00:00:00 2001 From: _Kerman Date: Wed, 10 Jul 2024 12:41:42 +0800 Subject: [PATCH 09/30] test: update snapshot --- test/__snapshots__/parser.test.ts.snap | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/test/__snapshots__/parser.test.ts.snap b/test/__snapshots__/parser.test.ts.snap index 5676ad4ac9..bf1f01fcdb 100644 --- a/test/__snapshots__/parser.test.ts.snap +++ b/test/__snapshots__/parser.test.ts.snap @@ -216,7 +216,7 @@ This is note "end": 27, "filepath": "frontmatter.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 2, @@ -307,7 +307,7 @@ Also part of the code block "end": 50, "filepath": "frontmatter.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 4, @@ -454,7 +454,7 @@ Content 3 "end": 81, "filepath": "frontmatter.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 7, @@ -694,7 +694,7 @@ console.log('Hello World') "end": 10, "filepath": "minimal.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -741,7 +741,7 @@ console.log('Hello World') "end": 19, "filepath": "minimal.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 1, @@ -775,7 +775,7 @@ Nice to meet you "end": 23, "filepath": "minimal.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 2, @@ -886,7 +886,7 @@ exports[`md parser > multi-entries.md > slides 1`] = ` "end": 2, "filepath": "sub/page1.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -918,7 +918,7 @@ src: sub/page1.md "end": 2, "filepath": "sub/page1.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1066,7 +1066,7 @@ background: https://sli.dev/demo-cover.png#34 "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1129,7 +1129,7 @@ background: https://sli.dev/demo-cover.png#34 "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1175,7 +1175,7 @@ background: https://sli.dev/demo-cover.png#34 "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1309,7 +1309,7 @@ background: https://sli.dev/demo-cover.png#14 "end": 2, "filepath": "sub/page1.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1408,7 +1408,7 @@ src: page2.md "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1493,7 +1493,7 @@ background: https://sli.dev/demo-cover.png#14 "end": 2, "filepath": "sub/page1.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1525,7 +1525,7 @@ src: /sub/page1.md "end": 2, "filepath": "sub/page1.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1586,7 +1586,7 @@ background: https://sli.dev/demo-cover.png#14 "end": 2, "filepath": "sub/page1.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1685,7 +1685,7 @@ src: page2.md "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1886,7 +1886,7 @@ background: https://sli.dev/demo-cover.png#14 "end": 2, "filepath": "sub/page1.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -1985,7 +1985,7 @@ src: page2.md "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -2070,7 +2070,7 @@ background: https://sli.dev/demo-cover.png#14 "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -2132,7 +2132,7 @@ src: ../sub/pages3-4.md "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -2193,7 +2193,7 @@ background: https://sli.dev/demo-cover.png#14 "end": 2, "filepath": "sub/page1.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -2292,7 +2292,7 @@ src: page2.md "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -2377,7 +2377,7 @@ background: https://sli.dev/demo-cover.png#14 "end": 2, "filepath": "sub/pages3-4.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 0, @@ -2484,7 +2484,7 @@ $x+2$ "end": 25, "filepath": "multi-entries.md", "frontmatter": {}, - "frontmatterDoc": null, + "frontmatterDoc": undefined, "frontmatterRaw": undefined, "frontmatterStyle": undefined, "index": 4, From 5ffc47b4cd5ac5c64934a2ffd29fe4ade843c0a4 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Wed, 10 Jul 2024 19:14:39 +0800 Subject: [PATCH 10/30] wip: slide frontmatter syntax --- packages/vscode/syntax/slidev.tmLanguage.json | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/vscode/syntax/slidev.tmLanguage.json b/packages/vscode/syntax/slidev.tmLanguage.json index 676f0f63a0..a5251c26eb 100644 --- a/packages/vscode/syntax/slidev.tmLanguage.json +++ b/packages/vscode/syntax/slidev.tmLanguage.json @@ -77,14 +77,21 @@ "name": "keyword.monaco.slidev" }, "slide-frontmatter": { - "begin": "(^|\\G)---.*$", + "begin": "^(---).*$", "contentName": "meta.embedded.block.frontmatter.slidev", - "end": "\\A\\s*$|(^|\\G)---.*$", + "end": "", "patterns": [ { - "include": "source.yaml" + "begin": "^(?=[:space:]*\\S)", + "end": "(^|\\G)(?=---)", + "patterns": [ + { + "include": "source.yaml" + } + ] } - ] + ], + "name": "markup.frontmatter.block.slidev" } }, "scopeName": "markdown.slidev.codeblock" From c3a4492f6b306152dc4eceff68330c2481147306 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Thu, 11 Jul 2024 22:13:07 +0800 Subject: [PATCH 11/30] wip: slide frontmatter syntax --- packages/vscode/syntax/slidev.tmLanguage.json | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/packages/vscode/syntax/slidev.tmLanguage.json b/packages/vscode/syntax/slidev.tmLanguage.json index a5251c26eb..9b0d62db13 100644 --- a/packages/vscode/syntax/slidev.tmLanguage.json +++ b/packages/vscode/syntax/slidev.tmLanguage.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "fileTypes": [], - "injectionSelector": "L:text.html.markdown", + "injectionSelector": "L:text.html.markdown -markup.frontmatter.slidev", "patterns": [ { "include": "#import-snippet" @@ -77,21 +77,31 @@ "name": "keyword.monaco.slidev" }, "slide-frontmatter": { - "begin": "^(---).*$", - "contentName": "meta.embedded.block.frontmatter.slidev", - "end": "", + "begin": "(^|\\G)(---).*$", + "beginCaptures": { + "2": { + "name": "punctuation.definition.frontmatter.slidev" + } + }, + "end": "(^|\\G)(---).*$|^\\s*$", + "endCaptures": { + "2": { + "name": "punctuation.definition.frontmatter.slidev" + } + }, + "name": "markup.frontmatter.slidev", "patterns": [ { - "begin": "^(?=[:space:]*\\S)", - "end": "(^|\\G)(?=---)", + "begin": "(^|\\G)(\\s*)(.*)", + "contentName": "meta.embedded.block.yaml", "patterns": [ { "include": "source.yaml" } - ] + ], + "while": "(^|\\G)(?!(---.*|\\s*)$)" } - ], - "name": "markup.frontmatter.block.slidev" + ] } }, "scopeName": "markdown.slidev.codeblock" From b1d41e34b87e96ddfd64b684f165052284d5d502 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Thu, 11 Jul 2024 23:02:56 +0800 Subject: [PATCH 12/30] fix frontmatter syntax --- packages/vscode/syntax/slidev.tmLanguage.json | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/packages/vscode/syntax/slidev.tmLanguage.json b/packages/vscode/syntax/slidev.tmLanguage.json index 9b0d62db13..39bd9d5f19 100644 --- a/packages/vscode/syntax/slidev.tmLanguage.json +++ b/packages/vscode/syntax/slidev.tmLanguage.json @@ -83,23 +83,24 @@ "name": "punctuation.definition.frontmatter.slidev" } }, - "end": "(^|\\G)(---).*$|^\\s*$", - "endCaptures": { - "2": { - "name": "punctuation.definition.frontmatter.slidev" - } - }, + "end": "(?=^\\s*$)", "name": "markup.frontmatter.slidev", "patterns": [ { - "begin": "(^|\\G)(\\s*)(.*)", - "contentName": "meta.embedded.block.yaml", + "begin": "(?=^(?!\\s*$))", + "end": "(?=^\\s*$)", "patterns": [ { - "include": "source.yaml" + "begin": "\\G", + "end": "(?=(^|\\G)(---).*$)", + "contentName": "meta.embedded.block.yaml", + "patterns": [ + { + "include": "source.yaml" + } + ] } - ], - "while": "(^|\\G)(?!(---.*|\\s*)$)" + ] } ] } From ba68f13e5ebd28086f97f7358aa2ba3eb0b9f9e3 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Thu, 11 Jul 2024 23:55:02 +0800 Subject: [PATCH 13/30] feat: split grammar files --- packages/vscode/package.json | 55 +++++++++---------- packages/vscode/syntaxes/codeblock.json | 30 ++++++++++ .../language-configuration.json | 0 packages/vscode/syntaxes/markdown.json | 14 +++++ .../{syntax => syntaxes}/slidev.example.md | 19 ++++++- .../slidev.tmLanguage.json | 33 ++++++----- packages/vscode/syntaxes/tsconfig.json | 10 ++++ 7 files changed, 114 insertions(+), 47 deletions(-) create mode 100644 packages/vscode/syntaxes/codeblock.json rename packages/vscode/{syntax => syntaxes}/language-configuration.json (100%) create mode 100644 packages/vscode/syntaxes/markdown.json rename packages/vscode/{syntax => syntaxes}/slidev.example.md (62%) rename packages/vscode/{syntax => syntaxes}/slidev.tmLanguage.json (83%) create mode 100644 packages/vscode/syntaxes/tsconfig.json diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 56965911af..1380ce5630 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -31,44 +31,39 @@ { "id": "markdown", "configuration": "./language/language-configuration.json" + }, + { + "id": "slidev" } ], "grammars": [ { - "scopeName": "markdown.slidev.codeblock", - "path": "./syntax/slidev.tmLanguage.json", + "language": "slidev", + "scopeName": "source.slidev", + "path": "./syntaxes/slidev.tmLanguage.json", + "embeddedLanguages": { + "source.ts": "typescript", + "source.yaml": "yaml" + } + }, + { + "path": "./syntaxes/markdown.json", + "scopeName": "inject-to-markdown.main.slidev", "injectTo": [ "text.html.markdown" ], "embeddedLanguages": { - "meta.embedded.block.vue": "vue", - "source.vue": "vue", - "text": "plaintext", - "text.html.derivative": "html", - "text.html.markdown": "markdown", - "text.pug": "jade", - "source.css": "css", - "source.css.scss": "scss", - "source.css.less": "less", - "source.sass": "sass", - "source.stylus": "stylus", - "source.postcss": "postcss", - "source.js": "javascript", - "source.ts": "typescript", - "source.js.jsx": "javascriptreact", - "source.tsx": "typescriptreact", - "source.coffee": "coffeescript", - "meta.tag.js": "jsx-tags", - "meta.tag.tsx": "jsx-tags", - "meta.tag.without-attributes.js": "jsx-tags", - "meta.tag.without-attributes.tsx": "jsx-tags", - "source.json": "json", - "source.json.comments": "jsonc", - "source.json5": "json5", - "source.yaml": "yaml", - "source.toml": "toml", - "source.graphql": "graphql", - "meta.objectliteral.ts": "typescript" + "source.slidev": "slidev" + } + }, + { + "path": "./syntaxes/codeblock.json", + "scopeName": "inject-to-markdown.codeblock.slidev", + "injectTo": [ + "fenced_code.block.language.attributes.markdown" + ], + "embeddedLanguages": { + "source.slidev": "slidev" } } ], diff --git a/packages/vscode/syntaxes/codeblock.json b/packages/vscode/syntaxes/codeblock.json new file mode 100644 index 0000000000..b2cb02be9a --- /dev/null +++ b/packages/vscode/syntaxes/codeblock.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "fileTypes": [], + "injectionSelector": "L:fenced_code.block.language.attributes.markdown", + "patterns": [ + { + "match": "\\s*(\\{)([^}]*)(\\})", + "name": "meta.range_or_monaco.slidev", + "captures": { + "1": { + "name": "punctuation.definition.range_or_monaco.slidev" + }, + "2": { + "patterns": [ + { + "include": "source.slidev#monaco-type" + }, + { + "include": "source.slidev#range-with-steps" + } + ] + }, + "3": { + "name": "punctuation.definition.range_or_monaco.slidev" + } + } + } + ], + "scopeName": "inject-to-markdown.codeblock.slidev" +} diff --git a/packages/vscode/syntax/language-configuration.json b/packages/vscode/syntaxes/language-configuration.json similarity index 100% rename from packages/vscode/syntax/language-configuration.json rename to packages/vscode/syntaxes/language-configuration.json diff --git a/packages/vscode/syntaxes/markdown.json b/packages/vscode/syntaxes/markdown.json new file mode 100644 index 0000000000..b55a6f0970 --- /dev/null +++ b/packages/vscode/syntaxes/markdown.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "fileTypes": [], + "injectionSelector": "L:text.html.markdown -markup.frontmatter.slidev", + "patterns": [ + { + "include": "source.slidev#import-snippet" + }, + { + "include": "source.slidev#slide-frontmatter" + } + ], + "scopeName": "inject-to-markdown.main.slidev" +} diff --git a/packages/vscode/syntax/slidev.example.md b/packages/vscode/syntaxes/slidev.example.md similarity index 62% rename from packages/vscode/syntax/slidev.example.md rename to packages/vscode/syntaxes/slidev.example.md index 2bbbab7e02..2b41409663 100644 --- a/packages/vscode/syntax/slidev.example.md +++ b/packages/vscode/syntaxes/slidev.example.md @@ -15,15 +15,18 @@ console.log('Hello World') --- src: ../../../demo/starter/slides.md +s: 1 --- +a: 23 + --- # Import Snippets <<< @/snippets/snippet.js {2,3|5} <<< @/snippets/snippet.js {2,3|5}{lines:true} -<<< @/snippets/snippet.js ts {monaco-run}{height:'200px'} +<<< @/snippets/snippet.js ts {monaco-run}{lines: true} --- @@ -37,4 +40,16 @@ layout: center text: 1 --- -# Centerered +# Code block + +```ts {1,2|3} +const a = 1 +``` + +```ts twoslash {1,2|3} +const a = 1 +``` + +```ts {moanco-run}{showOutputAt: '+1'} +const a = 1 +``` diff --git a/packages/vscode/syntax/slidev.tmLanguage.json b/packages/vscode/syntaxes/slidev.tmLanguage.json similarity index 83% rename from packages/vscode/syntax/slidev.tmLanguage.json rename to packages/vscode/syntaxes/slidev.tmLanguage.json index 39bd9d5f19..1086b8ada5 100644 --- a/packages/vscode/syntax/slidev.tmLanguage.json +++ b/packages/vscode/syntaxes/slidev.tmLanguage.json @@ -1,15 +1,8 @@ { "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "fileTypes": [], - "injectionSelector": "L:text.html.markdown -markup.frontmatter.slidev", - "patterns": [ - { - "include": "#import-snippet" - }, - { - "include": "#slide-frontmatter" - } - ], + "name": "Slidev", + "scopeName": "source.slidev", + "patterns": [], "repository": { "import-snippet": { "match": "^(<<<)\\s*(\\S+)(\\s+[\\w-]+)?(?:\\s*(\\{)([^}]*)(\\}))?(?:\\s*(\\{.*\\}))?", @@ -19,7 +12,7 @@ "name": "punctuation.definition.slidev" }, "2": { - "name": "meta.link.inline.slidev" + "name": "string.path.snippet.slidev" }, "3": { "name": "import_snippet.block.language.slidev" @@ -33,6 +26,9 @@ { "include": "#monaco-type" }, + { + "include": "#monaco-write" + }, { "include": "#range-with-steps" } @@ -42,7 +38,11 @@ "name": "punctuation.separator.range.slidev" }, "7": { - "name": "meta.objectliteral.ts" + "patterns": [ + { + "include": "source.ts#object-literal" + } + ] } } }, @@ -73,7 +73,11 @@ } }, "monaco-type": { - "match": "monaco(-(run|write|diff))?", + "match": "monaco(-(run|diff))?", + "name": "keyword.monaco.slidev" + }, + "monaco-write": { + "match": "monaco-write", "name": "keyword.monaco.slidev" }, "slide-frontmatter": { @@ -104,6 +108,5 @@ } ] } - }, - "scopeName": "markdown.slidev.codeblock" + } } diff --git a/packages/vscode/syntaxes/tsconfig.json b/packages/vscode/syntaxes/tsconfig.json new file mode 100644 index 0000000000..88d9c9d549 --- /dev/null +++ b/packages/vscode/syntaxes/tsconfig.json @@ -0,0 +1,10 @@ +{ + "include": [ + "*.ts", + "*.vue", + "*.md" + ], + "vueCompilerOptions": { + "vitePressExtensions": [".md"] + } +} From 20685f1de8e0ee2961a4b90c78c09d9025765062 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 02:36:25 +0000 Subject: [PATCH 14/30] [autofix.ci] apply automated fixes --- packages/vscode/syntaxes/slidev.example.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/vscode/syntaxes/slidev.example.md b/packages/vscode/syntaxes/slidev.example.md index 2b41409663..1366a26407 100644 --- a/packages/vscode/syntaxes/slidev.example.md +++ b/packages/vscode/syntaxes/slidev.example.md @@ -14,8 +14,10 @@ console.log('Hello World') ``` --- + src: ../../../demo/starter/slides.md s: 1 + --- a: 23 @@ -36,8 +38,10 @@ a: 23 --- + layout: center text: 1 + --- # Code block From cacad3a912788a7bef01a47ba7761df353099f37 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Fri, 12 Jul 2024 10:41:38 +0800 Subject: [PATCH 15/30] chore: fix linter config --- eslint.config.js | 2 +- packages/vscode/syntaxes/slidev.example.md | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index afa512b712..bd4fcbe640 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -17,7 +17,7 @@ export default antfu( '**/template.md', '**/example.md', 'test/fixtures/markdown/**/*.md', - 'packages/vscode/syntax/slidev.example.md', + 'packages/vscode/syntaxes/slidev.example.md', ], }, }, diff --git a/packages/vscode/syntaxes/slidev.example.md b/packages/vscode/syntaxes/slidev.example.md index 1366a26407..ebbab94eb1 100644 --- a/packages/vscode/syntaxes/slidev.example.md +++ b/packages/vscode/syntaxes/slidev.example.md @@ -14,10 +14,8 @@ console.log('Hello World') ``` --- - src: ../../../demo/starter/slides.md s: 1 - --- a: 23 From e8613102fdbf9b741c592e31d9a06df899ec23bd Mon Sep 17 00:00:00 2001 From: _Kerman Date: Fri, 12 Jul 2024 20:24:03 +0800 Subject: [PATCH 16/30] feat: format yaml block --- .../vscode/language-server/import-meta-url.ts | 2 + packages/vscode/language-server/index.ts | 3 +- .../vscode/language-server/prettierPlugin.ts | 11 ++ packages/vscode/package.json | 2 + packages/vscode/syntaxes/slidev.example.md | 4 - packages/vscode/tsup.config.ts | 7 +- pnpm-lock.yaml | 105 +++++++++++------- 7 files changed, 86 insertions(+), 48 deletions(-) create mode 100644 packages/vscode/language-server/import-meta-url.ts create mode 100644 packages/vscode/language-server/prettierPlugin.ts diff --git a/packages/vscode/language-server/import-meta-url.ts b/packages/vscode/language-server/import-meta-url.ts new file mode 100644 index 0000000000..18d9319126 --- /dev/null +++ b/packages/vscode/language-server/import-meta-url.ts @@ -0,0 +1,2 @@ +// eslint-disable-next-line no-var, ts/no-require-imports, import/no-mutable-exports +export var import_meta_url = require('node:url').pathToFileURL(__filename) diff --git a/packages/vscode/language-server/index.ts b/packages/vscode/language-server/index.ts index 51c14d8fdf..39df7df725 100644 --- a/packages/vscode/language-server/index.ts +++ b/packages/vscode/language-server/index.ts @@ -1,6 +1,7 @@ import { createConnection, createServer, createSimpleProject } from '@volar/language-server/node' import { create as createYamlPlugin } from 'volar-service-yaml' import { slidevLanguagePlugin } from './languagePlugin' +import { create as createPrettierPlugin } from './prettierPlugin' const connection = createConnection() const server = createServer(connection) @@ -9,7 +10,7 @@ connection.onInitialize((params) => { return server.initialize( params, createSimpleProject([slidevLanguagePlugin]), - [createYamlPlugin()], + [createYamlPlugin(), createPrettierPlugin()], ) }) diff --git a/packages/vscode/language-server/prettierPlugin.ts b/packages/vscode/language-server/prettierPlugin.ts new file mode 100644 index 0000000000..3c6cadc170 --- /dev/null +++ b/packages/vscode/language-server/prettierPlugin.ts @@ -0,0 +1,11 @@ +import { create as createPrettierPlugin } from 'volar-service-prettier' +import prettier from 'prettier' + +export function create() { + return createPrettierPlugin( + prettier, + { + documentSelector: ['yaml'], + }, + ) +} diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 1380ce5630..4a73bff697 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -410,6 +410,8 @@ "get-port-please": "^3.1.2", "mlly": "^1.7.1", "ovsx": "^0.9.1", + "prettier": "^3.3.2", + "volar-service-prettier": "^0.0.54", "volar-service-yaml": "^0.0.59" } } diff --git a/packages/vscode/syntaxes/slidev.example.md b/packages/vscode/syntaxes/slidev.example.md index ebbab94eb1..2c64365a26 100644 --- a/packages/vscode/syntaxes/slidev.example.md +++ b/packages/vscode/syntaxes/slidev.example.md @@ -18,8 +18,6 @@ src: ../../../demo/starter/slides.md s: 1 --- -a: 23 - --- # Import Snippets @@ -36,10 +34,8 @@ a: 23 --- - layout: center text: 1 - --- # Code block diff --git a/packages/vscode/tsup.config.ts b/packages/vscode/tsup.config.ts index 5248b6925f..f02c684a3c 100644 --- a/packages/vscode/tsup.config.ts +++ b/packages/vscode/tsup.config.ts @@ -12,7 +12,8 @@ export default defineConfig({ format: ['cjs'], target: 'node18', clean: true, - // minify: true, + minify: true, + sourcemap: true, external: [ 'vscode', ], @@ -22,6 +23,10 @@ export default defineConfig({ options.alias['@vue/reactivity'] = fileURLToPath(new URL('../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js', import.meta.url)) options.alias['@vue/shared'] = fileURLToPath(new URL('../../node_modules/@vue/shared/dist/shared.esm-bundler.js', import.meta.url)) }, + inject: ['./language-server/import-meta-url.ts'], + define: { + 'import.meta.url': 'import_meta_url', + }, esbuildPlugins: [{ name: 'umd2esm', setup(build) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b612d596e3..bbcc3c99a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -500,7 +500,7 @@ importers: version: 3.7.0 debug: specifier: ^4.3.5 - version: 4.3.5(supports-color@5.5.0) + version: 4.3.5(supports-color@8.1.1) fast-deep-equal: specifier: ^3.1.3 version: 3.1.3 @@ -751,9 +751,15 @@ importers: ovsx: specifier: ^0.9.1 version: 0.9.1 + prettier: + specifier: ^3.3.2 + version: 3.3.2 + volar-service-prettier: + specifier: ^0.0.54 + version: 0.0.54(prettier@3.3.2) volar-service-yaml: specifier: ^0.0.59 - version: 0.0.59(@volar/language-service@2.4.0-alpha.15) + version: 0.0.59 packages: @@ -6226,6 +6232,17 @@ packages: jsdom: optional: true + volar-service-prettier@0.0.54: + resolution: {integrity: sha512-DGE16JEeCEECiyt7TXcVpDEhJN0N96sRw9N7Fhk+WyhAztju8F5jO2qIJV9CGyN1AfkUdB+1mwuy+RTho7RHxg==} + peerDependencies: + '@volar/language-service': ~2.3.1 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + volar-service-yaml@0.0.59: resolution: {integrity: sha512-7Pi7XWnmgcWmdW7essscHn2+CcG1BEgnNjEE/31GaycwvLu4rPF+Xztzc0ErZLSFW3F2EBPzaecWfrGL2l4NGQ==} peerDependencies: @@ -6717,7 +6734,7 @@ snapshots: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -6914,7 +6931,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7160,7 +7177,7 @@ snapshots: '@eslint/config-array@0.17.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7168,7 +7185,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -7239,7 +7256,7 @@ snapshots: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.5.2 '@iconify/types': 1.1.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 0.4.3 transitivePeerDependencies: @@ -7250,7 +7267,7 @@ snapshots: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.10 '@iconify/types': 2.0.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 0.5.0 mlly: 1.7.1 @@ -7780,7 +7797,7 @@ snapshots: '@typescript-eslint/types': 8.0.0-alpha.40 '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.40 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) eslint: 9.6.0 optionalDependencies: typescript: 5.5.3 @@ -7801,7 +7818,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -7817,7 +7834,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -7832,7 +7849,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.0.0-alpha.40 '@typescript-eslint/visitor-keys': 8.0.0-alpha.40 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -7881,7 +7898,7 @@ snapshots: '@typescript/vfs@1.5.0': dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -8481,7 +8498,7 @@ snapshots: '@windicss/config@1.9.3': dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) jiti: 1.21.6 windicss: 3.5.6 transitivePeerDependencies: @@ -8491,7 +8508,7 @@ snapshots: dependencies: '@antfu/utils': 0.7.10 '@windicss/config': 1.9.3 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) fast-glob: 3.3.2 magic-string: 0.30.10 micromatch: 4.0.7 @@ -8521,7 +8538,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9573,7 +9590,7 @@ snapshots: eslint-plugin-import-x@0.5.3(eslint@9.6.0)(typescript@5.5.3): dependencies: '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) doctrine: 3.0.0 eslint: 9.6.0 eslint-import-resolver-node: 0.3.9 @@ -9592,7 +9609,7 @@ snapshots: '@es-joy/jsdoccomment': 0.43.1 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint: 9.6.0 esquery: 1.5.0 @@ -9660,7 +9677,7 @@ snapshots: eslint-plugin-toml@0.11.1(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) eslint: 9.6.0 eslint-compat-utils: 0.5.0(eslint@9.6.0) lodash: 4.17.21 @@ -9724,7 +9741,7 @@ snapshots: eslint-plugin-yml@1.14.0(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) eslint: 9.6.0 eslint-compat-utils: 0.5.0(eslint@9.6.0) lodash: 4.17.21 @@ -9767,7 +9784,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.0.1 eslint-visitor-keys: 4.0.0 @@ -10004,7 +10021,7 @@ snapshots: follow-redirects@1.15.6(debug@4.3.5): optionalDependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) foreground-child@3.1.1: dependencies: @@ -10269,7 +10286,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -10287,7 +10304,7 @@ snapshots: https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -10325,7 +10342,7 @@ snapshots: importx@0.3.10: dependencies: bundle-require: 5.0.0(esbuild@0.20.2) - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) esbuild: 0.20.2 jiti: 1.21.6 pathe: 1.1.2 @@ -10642,7 +10659,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) execa: 8.0.1 lilconfig: 3.1.1 listr2: 8.2.1 @@ -11224,7 +11241,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -11232,7 +11249,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -11254,7 +11271,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -12376,7 +12393,7 @@ snapshots: bundle-require: 4.0.2(esbuild@0.21.5) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) esbuild: 0.21.5 execa: 5.1.1 globby: 11.1.0 @@ -12614,7 +12631,7 @@ snapshots: '@antfu/install-pkg': 0.3.3 '@antfu/utils': 0.7.10 '@iconify/utils': 2.1.25 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 0.5.0 unplugin: 1.10.1 @@ -12629,7 +12646,7 @@ snapshots: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.13.2) chokidar: 3.6.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -12744,7 +12761,7 @@ snapshots: vite-node@1.6.0(@types/node@20.14.10): dependencies: cac: 6.7.14 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.0.1 vite: 5.3.3(@types/node@20.14.10) @@ -12762,7 +12779,7 @@ snapshots: dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.13.2) - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 open: 10.1.0 @@ -12781,7 +12798,7 @@ snapshots: '@antfu/utils': 0.7.10 axios: 1.7.2(debug@4.3.5) blueimp-md5: 2.19.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) fs-extra: 11.2.0 magic-string: 0.30.10 vite: 5.3.3(@types/node@20.14.10) @@ -12799,7 +12816,7 @@ snapshots: vite-plugin-vue-server-ref@0.4.2(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.5.3)): dependencies: '@antfu/utils': 0.7.10 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) klona: 2.0.6 mlly: 1.7.1 ufo: 1.5.3 @@ -12811,7 +12828,7 @@ snapshots: vite-plugin-windicss@1.9.3(vite@5.3.3(@types/node@20.14.10)): dependencies: '@windicss/plugin-utils': 1.9.3 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) kolorist: 1.8.0 vite: 5.3.3(@types/node@20.14.10) windicss: 3.5.6 @@ -12887,7 +12904,7 @@ snapshots: '@vitest/utils': 1.6.0 acorn-walk: 8.3.2 chai: 4.4.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -12911,12 +12928,16 @@ snapshots: - supports-color - terser - volar-service-yaml@0.0.59(@volar/language-service@2.4.0-alpha.15): + volar-service-prettier@0.0.54(prettier@3.3.2): dependencies: vscode-uri: 3.0.8 - yaml-language-server: 1.15.0 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.15 + prettier: 3.3.2 + + volar-service-yaml@0.0.59: + dependencies: + vscode-uri: 3.0.8 + yaml-language-server: 1.15.0 vscode-json-languageservice@4.1.8: dependencies: @@ -12970,7 +12991,7 @@ snapshots: vue-eslint-parser@9.4.3(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5(supports-color@8.1.1) eslint: 9.6.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 From 38667cd721fb1ee2c30cf17103aa893be7725779 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sat, 13 Jul 2024 12:24:59 +0800 Subject: [PATCH 17/30] wip: restart language server on files change --- packages/vscode/src/index.ts | 49 ++++------------------- packages/vscode/src/languageClient.ts | 56 +++++++++++++++++++++++++++ packages/vscode/src/projects.ts | 4 +- 3 files changed, 66 insertions(+), 43 deletions(-) create mode 100644 packages/vscode/src/languageClient.ts diff --git a/packages/vscode/src/index.ts b/packages/vscode/src/index.ts index fbbf76fd62..ef99f4fb4c 100644 --- a/packages/vscode/src/index.ts +++ b/packages/vscode/src/index.ts @@ -1,10 +1,5 @@ import { effectScope, shallowRef } from '@vue/runtime-core' import type { ExtensionContext } from 'vscode' -import { Uri } from 'vscode' -import type { LanguageClientOptions, ServerOptions } from '@volar/vscode/node' -import { LanguageClient, TransportKind } from '@volar/vscode/node' -import { createLabsInfo } from '@volar/vscode' -import * as serverProtocol from '../language-server/protocol' import { useCommands } from './commands' import { useGlobalConfigurations } from './configs' import { activeEntry, useProjects } from './projects' @@ -14,17 +9,16 @@ import { useLogger } from './views/logger' import { usePreviewWebview } from './views/previewWebview' import { useSlidesTree } from './views/slidesTree' import { useProjectsTree } from './views/projectsTree' +import { useLanguageClient } from './languageClient' const scope = effectScope() -let client: LanguageClient - export const extCtx = shallowRef(undefined!) export async function activate(ext: ExtensionContext) { extCtx.value = ext - scope.run(() => { + return scope.run(() => { // states useGlobalConfigurations() useProjects() @@ -39,44 +33,15 @@ export async function activate(ext: ExtensionContext) { useAnnotations() useFoldings() + // language server + const labsInfo = useLanguageClient() + const logger = useLogger() logger.info('Slidev activated.') logger.info(`Entry: ${activeEntry.value}`) - }) - return await startLanguageServer(ext) -} - -async function startLanguageServer(ext: ExtensionContext) { - const serverModule = Uri.joinPath(ext.extensionUri, 'dist', 'language-server.cjs') - const runOptions = { execArgv: [] } - const debugOptions = { execArgv: ['--nolazy', `--inspect=${6009}`] } - const serverOptions: ServerOptions = { - run: { - module: serverModule.fsPath, - transport: TransportKind.ipc, - options: runOptions, - }, - debug: { - module: serverModule.fsPath, - transport: TransportKind.ipc, - options: debugOptions, - }, - } - const clientOptions: LanguageClientOptions = { - documentSelector: [{ language: 'markdown' }], - } - client = new LanguageClient( - 'slidev-language-server', - 'Slidev Language Server', - serverOptions, - clientOptions, - ) - await client.start() - - const labsInfo = createLabsInfo(serverProtocol) - labsInfo.addLanguageClient(client) - return labsInfo.extensionExports + return labsInfo + }) } export async function deactivate() { diff --git a/packages/vscode/src/languageClient.ts b/packages/vscode/src/languageClient.ts new file mode 100644 index 0000000000..92d63c6a15 --- /dev/null +++ b/packages/vscode/src/languageClient.ts @@ -0,0 +1,56 @@ +import { createLabsInfo } from '@volar/vscode' +import type { LanguageClientOptions, ServerOptions } from '@volar/vscode/node' +import { LanguageClient, TransportKind } from '@volar/vscode/node' +import { watch } from '@vue/runtime-core' +import { Uri } from 'vscode' +import * as serverProtocol from '../language-server/protocol' +import { slidevFiles } from './projects' +import { extCtx } from '.' + +export function useLanguageClient() { + const serverModule = Uri.joinPath(extCtx.value.extensionUri, 'dist', 'language-server.cjs') + const runOptions = { execArgv: [] } + const debugOptions = { execArgv: ['--nolazy', `--inspect=${6009}`] } + const serverOptions: ServerOptions = { + run: { + module: serverModule.fsPath, + transport: TransportKind.ipc, + options: runOptions, + }, + debug: { + module: serverModule.fsPath, + transport: TransportKind.ipc, + options: debugOptions, + }, + } + + const labsInfo = createLabsInfo(serverProtocol) + + watch( + () => slidevFiles.value.join('\n'), + (_, __, onCleanup) => { + if (!slidevFiles.value.length) + return + const clientOptions: LanguageClientOptions = { + // documentSelector: [{ language: 'markdown' }], + documentSelector: slidevFiles.value.map(path => ({ language: 'markdown', pattern: path })), + } + const client = new LanguageClient( + 'slidev-language-server', + 'Slidev Language Server', + serverOptions, + clientOptions, + ) + const startPromise = client.start().then(() => { + labsInfo.addLanguageClient(client) + }) + onCleanup(async () => { + await startPromise + client.stop() + }) + }, + { immediate: true }, + ) + + return labsInfo.extensionExports +} diff --git a/packages/vscode/src/projects.ts b/packages/vscode/src/projects.ts index f02c4d061f..9c9a24e240 100644 --- a/packages/vscode/src/projects.ts +++ b/packages/vscode/src/projects.ts @@ -18,6 +18,7 @@ export interface SlidevProject { } export const projects = reactive(new Map()) +export const slidevFiles = computed(() => [...projects.values()].flatMap(p => Object.keys(p.data.markdownFiles))) export const activeEntry = ref(null) export const activeProject = computed(() => activeEntry.value ? projects.get(activeEntry.value) : undefined) export const activeSlidevData = computed(() => activeProject.value?.data) @@ -80,7 +81,8 @@ export function useProjects() { const path = slash(uri.fsPath).toLowerCase() logger.info(`File ${path} changed.`) const startMs = Date.now() - pendingUpdate && (pendingUpdate.cancelled = true) + if (pendingUpdate) + pendingUpdate.cancelled = true const thisUpdate = pendingUpdate = { cancelled: false } const effects: (() => void)[] = [] for (const project of projects.values()) { From 09909fa8eaea5516589ac7ca846471323c6548eb Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sat, 13 Jul 2024 12:48:37 +0800 Subject: [PATCH 18/30] fix: language server restarter --- packages/vscode/src/languageClient.ts | 49 ++++++++++++++------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/packages/vscode/src/languageClient.ts b/packages/vscode/src/languageClient.ts index 92d63c6a15..e6acd6aff4 100644 --- a/packages/vscode/src/languageClient.ts +++ b/packages/vscode/src/languageClient.ts @@ -1,13 +1,17 @@ import { createLabsInfo } from '@volar/vscode' -import type { LanguageClientOptions, ServerOptions } from '@volar/vscode/node' +import type { ServerOptions } from '@volar/vscode/node' import { LanguageClient, TransportKind } from '@volar/vscode/node' +import { computed } from '@vue/reactivity' import { watch } from '@vue/runtime-core' -import { Uri } from 'vscode' +import { Uri, window } from 'vscode' import * as serverProtocol from '../language-server/protocol' import { slidevFiles } from './projects' +import { useLogger } from './views/logger' import { extCtx } from '.' export function useLanguageClient() { + const logger = useLogger() + const serverModule = Uri.joinPath(extCtx.value.extensionUri, 'dist', 'language-server.cjs') const runOptions = { execArgv: [] } const debugOptions = { execArgv: ['--nolazy', `--inspect=${6009}`] } @@ -24,33 +28,30 @@ export function useLanguageClient() { }, } - const labsInfo = createLabsInfo(serverProtocol) + const documentSelector = computed(() => slidevFiles.value.map(path => ({ language: 'markdown', pattern: path }))) + + const client = new LanguageClient( + 'slidev-language-server', + 'Slidev Language Server', + serverOptions, + { documentSelector: documentSelector.value }, + ) + + async function restart() { + await client.stop() + client.clientOptions.documentSelector = documentSelector.value + await client.start() + } watch( () => slidevFiles.value.join('\n'), - (_, __, onCleanup) => { - if (!slidevFiles.value.length) - return - const clientOptions: LanguageClientOptions = { - // documentSelector: [{ language: 'markdown' }], - documentSelector: slidevFiles.value.map(path => ({ language: 'markdown', pattern: path })), - } - const client = new LanguageClient( - 'slidev-language-server', - 'Slidev Language Server', - serverOptions, - clientOptions, - ) - const startPromise = client.start().then(() => { - labsInfo.addLanguageClient(client) - }) - onCleanup(async () => { - await startPromise - client.stop() - }) + () => { + logger.info('Slidev files changed, restarting language server...') + window.setStatusBarMessage('Restarting Slidev server...', restart()) }, - { immediate: true }, ) + const labsInfo = createLabsInfo(serverProtocol) + labsInfo.addLanguageClient(client) return labsInfo.extensionExports } From ff3d13d44f0dcd5391846b63b78e989a8a033bdd Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sat, 13 Jul 2024 21:16:48 +0800 Subject: [PATCH 19/30] chore: fix lockfile --- pnpm-lock.yaml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 22188bfdaa..a135f8a21a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -733,15 +733,6 @@ importers: '@volar/vscode': specifier: ^2.4.0-alpha.15 version: 2.4.0-alpha.15 - '@vue/reactivity': - specifier: ^3.4.31 - version: 3.4.31 - '@vue/runtime-core': - specifier: ^3.4.31 - version: 3.4.31 - '@vue/shared': - specifier: ^3.4.31 - version: 3.4.31 get-port-please: specifier: ^3.1.2 version: 3.1.2 @@ -754,15 +745,15 @@ importers: prettier: specifier: ^3.3.2 version: 3.3.2 + reactive-vscode: + specifier: 0.2.0-beta.3 + version: 0.2.0-beta.3(@types/vscode@1.89.0) volar-service-prettier: specifier: ^0.0.54 version: 0.0.54(prettier@3.3.2) volar-service-yaml: specifier: ^0.0.59 version: 0.0.59 - reactive-vscode: - specifier: 0.2.0-beta.3 - version: 0.2.0-beta.3(@types/vscode@1.89.0) packages: From 49cfc7ef2275de65e153cf980b7831ed0603c7eb Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sat, 13 Jul 2024 23:43:11 +0800 Subject: [PATCH 20/30] fix --- packages/vscode/.vscodeignore | 3 +++ packages/vscode/src/languageClient.ts | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/vscode/.vscodeignore b/packages/vscode/.vscodeignore index 920ba9f8b0..ce5aeb012e 100644 --- a/packages/vscode/.vscodeignore +++ b/packages/vscode/.vscodeignore @@ -1,5 +1,8 @@ .vscode/** .vscode-test/** +node_modules/** +language-server/** +scripts/** src/** tsup.config.ts *.map diff --git a/packages/vscode/src/languageClient.ts b/packages/vscode/src/languageClient.ts index e6acd6aff4..5323abba71 100644 --- a/packages/vscode/src/languageClient.ts +++ b/packages/vscode/src/languageClient.ts @@ -3,16 +3,14 @@ import type { ServerOptions } from '@volar/vscode/node' import { LanguageClient, TransportKind } from '@volar/vscode/node' import { computed } from '@vue/reactivity' import { watch } from '@vue/runtime-core' +import { extensionContext } from 'reactive-vscode' import { Uri, window } from 'vscode' import * as serverProtocol from '../language-server/protocol' import { slidevFiles } from './projects' -import { useLogger } from './views/logger' -import { extCtx } from '.' +import { logger } from './views/logger' export function useLanguageClient() { - const logger = useLogger() - - const serverModule = Uri.joinPath(extCtx.value.extensionUri, 'dist', 'language-server.cjs') + const serverModule = Uri.joinPath(extensionContext.value!.extensionUri, 'dist', 'language-server.cjs') const runOptions = { execArgv: [] } const debugOptions = { execArgv: ['--nolazy', `--inspect=${6009}`] } const serverOptions: ServerOptions = { @@ -30,12 +28,19 @@ export function useLanguageClient() { const documentSelector = computed(() => slidevFiles.value.map(path => ({ language: 'markdown', pattern: path }))) + logger.info('Starting Slidev language server...') const client = new LanguageClient( 'slidev-language-server', 'Slidev Language Server', serverOptions, { documentSelector: documentSelector.value }, ) + async function start() { + await client.start() + const labsInfo = createLabsInfo(serverProtocol) + labsInfo.addLanguageClient(client) + return labsInfo.extensionExports + } async function restart() { await client.stop() @@ -51,7 +56,5 @@ export function useLanguageClient() { }, ) - const labsInfo = createLabsInfo(serverProtocol) - labsInfo.addLanguageClient(client) - return labsInfo.extensionExports + return start() } From 78766422ffbbc1427bdfecfe41caca91ba225f73 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sun, 14 Jul 2024 00:22:26 +0800 Subject: [PATCH 21/30] chore: update --- packages/vscode/package.json | 2 +- packages/vscode/src/languageClient.ts | 28 +++++++++++-------- .../vscode/syntaxes/.vscode/settings.json | 6 ++++ pnpm-lock.yaml | 18 ++++++------ 4 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 packages/vscode/syntaxes/.vscode/settings.json diff --git a/packages/vscode/package.json b/packages/vscode/package.json index b91b2cd02a..a3ca85ec4a 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -408,7 +408,7 @@ "mlly": "^1.7.1", "ovsx": "^0.9.1", "prettier": "^3.3.2", - "reactive-vscode": "0.2.0-beta.4", + "reactive-vscode": "0.2.0-beta.5", "volar-service-prettier": "^0.0.54", "volar-service-yaml": "^0.0.59" } diff --git a/packages/vscode/src/languageClient.ts b/packages/vscode/src/languageClient.ts index 5323abba71..78e4bc5294 100644 --- a/packages/vscode/src/languageClient.ts +++ b/packages/vscode/src/languageClient.ts @@ -1,9 +1,7 @@ import { createLabsInfo } from '@volar/vscode' import type { ServerOptions } from '@volar/vscode/node' import { LanguageClient, TransportKind } from '@volar/vscode/node' -import { computed } from '@vue/reactivity' -import { watch } from '@vue/runtime-core' -import { extensionContext } from 'reactive-vscode' +import { computed, extensionContext, watch } from 'reactive-vscode' import { Uri, window } from 'vscode' import * as serverProtocol from '../language-server/protocol' import { slidevFiles } from './projects' @@ -35,26 +33,32 @@ export function useLanguageClient() { serverOptions, { documentSelector: documentSelector.value }, ) - async function start() { + + let shouldStop = false + async function doRestart() { + if (shouldStop) + await client.stop() + client.clientOptions.documentSelector = documentSelector.value await client.start() - const labsInfo = createLabsInfo(serverProtocol) - labsInfo.addLanguageClient(client) - return labsInfo.extensionExports + shouldStop = true } + let restartPromise: Promise | undefined async function restart() { - await client.stop() - client.clientOptions.documentSelector = documentSelector.value - await client.start() + await restartPromise + restartPromise = doRestart() + await restartPromise } watch( () => slidevFiles.value.join('\n'), () => { - logger.info('Slidev files changed, restarting language server...') + logger.info('Starting language server...') window.setStatusBarMessage('Restarting Slidev server...', restart()) }, ) - return start() + const labsInfo = createLabsInfo(serverProtocol) + labsInfo.addLanguageClient(client) + return labsInfo.extensionExports } diff --git a/packages/vscode/syntaxes/.vscode/settings.json b/packages/vscode/syntaxes/.vscode/settings.json new file mode 100644 index 0000000000..a11c29c24e --- /dev/null +++ b/packages/vscode/syntaxes/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "slidev.include": [ + "**/slides.md", + "slidev.example.md" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4e08a8b57..4e067c6e9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -746,8 +746,8 @@ importers: specifier: ^3.3.2 version: 3.3.2 reactive-vscode: - specifier: 0.2.0-beta.4 - version: 0.2.0-beta.4(@types/vscode@1.89.0) + specifier: 0.2.0-beta.5 + version: 0.2.0-beta.5(@types/vscode@1.89.0) volar-service-prettier: specifier: ^0.0.54 version: 0.0.54(prettier@3.3.2) @@ -1607,8 +1607,8 @@ packages: '@polka/url@1.0.0-next.24': resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} - '@reactive-vscode/reactivity@0.2.0-beta.4': - resolution: {integrity: sha512-g7z9tYRxUAqE5u/r9nLP6hkubUjY6/lp2S6Pr9vqnmxe+1LCXBoOjc97YHVd/BlGNiDsQrt9UbECvVohEoumuw==} + '@reactive-vscode/reactivity@0.2.0-beta.5': + resolution: {integrity: sha512-Cqp+CDFA+bYTV/U8o7e8WqTGs9PyOXNkz2x1cKd8nvn7y96p7rNgd0BqE/9L7qbwINCdqxGEoJx6E4Hk0MJJxw==} '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} @@ -5288,8 +5288,8 @@ packages: react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - reactive-vscode@0.2.0-beta.4: - resolution: {integrity: sha512-o7AdxVQj0QFbpC95Zz4ZcxmxbvA0fSRgMgoTSk8o1sqVun6VVctK+Nigt87aMFjR7StLpJ+rFpmzASR2s/Ryxw==} + reactive-vscode@0.2.0-beta.5: + resolution: {integrity: sha512-A0UTr+TVy8VjWaCUNGvgyKxlK4YuS8uXmjc8qGIvPNk6HJqk3TU/dzjoDQ4aRWBW0nmlKAhyAY/nFDsKaXMv8A==} peerDependencies: '@types/vscode': ^1.89.0 @@ -7411,7 +7411,7 @@ snapshots: '@polka/url@1.0.0-next.24': {} - '@reactive-vscode/reactivity@0.2.0-beta.4': {} + '@reactive-vscode/reactivity@0.2.0-beta.5': {} '@rollup/pluginutils@4.2.1': dependencies: @@ -11846,9 +11846,9 @@ snapshots: react-is@18.2.0: {} - reactive-vscode@0.2.0-beta.4(@types/vscode@1.89.0): + reactive-vscode@0.2.0-beta.5(@types/vscode@1.89.0): dependencies: - '@reactive-vscode/reactivity': 0.2.0-beta.4 + '@reactive-vscode/reactivity': 0.2.0-beta.5 '@types/vscode': 1.89.0 read-pkg-up@7.0.1: From 4a9fed2768aa8e1811be3c5b0ff3ab0d2c1c496a Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sun, 14 Jul 2024 20:01:45 +0800 Subject: [PATCH 22/30] fix package.json --- packages/vscode/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vscode/package.json b/packages/vscode/package.json index a3ca85ec4a..a6db836d97 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -60,7 +60,7 @@ "path": "./syntaxes/codeblock.json", "scopeName": "inject-to-markdown.codeblock.slidev", "injectTo": [ - "fenced_code.block.language.attributes.markdown" + "text.html.markdown" ], "embeddedLanguages": { "source.slidev": "slidev" @@ -393,7 +393,7 @@ "publish": "esno scripts/publish.ts", "pack": "vsce package --no-dependencies", "build": "tsup --env.NODE_ENV production --treeshake", - "dev": "tsup --watch ./src --env.NODE_ENV development", + "dev": "tsup --watch ./src --watch ./language-server --env.NODE_ENV development", "vscode:prepublish": "nr build" }, "devDependencies": { From e944a73adde8b7b6c8fa6e51106c08f48e48563b Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sun, 14 Jul 2024 20:03:46 +0800 Subject: [PATCH 23/30] fix: language client start logic --- packages/vscode/src/languageClient.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/vscode/src/languageClient.ts b/packages/vscode/src/languageClient.ts index 78e4bc5294..ab6d32a56d 100644 --- a/packages/vscode/src/languageClient.ts +++ b/packages/vscode/src/languageClient.ts @@ -34,27 +34,31 @@ export function useLanguageClient() { { documentSelector: documentSelector.value }, ) - let shouldStop = false - async function doRestart() { + async function doStart(shouldStop: boolean) { if (shouldStop) await client.stop() client.clientOptions.documentSelector = documentSelector.value await client.start() - shouldStop = true } let restartPromise: Promise | undefined - async function restart() { + async function start(shouldStop: boolean) { await restartPromise - restartPromise = doRestart() + restartPromise = doStart(shouldStop) await restartPromise } + let shouldStop = false watch( () => slidevFiles.value.join('\n'), - () => { - logger.info('Starting language server...') - window.setStatusBarMessage('Restarting Slidev server...', restart()) + (files) => { + if (files.length === 0 && !shouldStop) + return + if (shouldStop) + window.setStatusBarMessage(`Restarting Slidev language server...`, start(true)) + else + start(false) + shouldStop = true }, ) From 0c1ba0e51fe61ebf78e29c947015af300d669703 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sun, 14 Jul 2024 20:03:59 +0800 Subject: [PATCH 24/30] chore: update --- .vscode/launch.json | 3 ++- packages/vscode/syntaxes/slidev.example.md | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index d8aac753e2..cb05a7f180 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,7 +6,8 @@ "type": "extensionHost", "request": "launch", "args": [ - "--extensionDevelopmentPath=${workspaceFolder}/packages/vscode" + "--extensionDevelopmentPath=${workspaceFolder}/packages/vscode", + "--folder-uri=${workspaceRoot}/packages/vscode/syntaxes" ], "outFiles": [ "${workspaceFolder}/out/**/*.js" diff --git a/packages/vscode/syntaxes/slidev.example.md b/packages/vscode/syntaxes/slidev.example.md index 2c64365a26..733528e335 100644 --- a/packages/vscode/syntaxes/slidev.example.md +++ b/packages/vscode/syntaxes/slidev.example.md @@ -30,8 +30,13 @@ s: 1 # Vue Component -
- +
+ + + --- layout: center @@ -51,3 +56,7 @@ const a = 1 ```ts {moanco-run}{showOutputAt: '+1'} const a = 1 ``` + +$$ +\lambda = 1 +$$ From c2f0e9440daea2a6d85413136ffebd482b304370 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sun, 14 Jul 2024 23:15:28 +0800 Subject: [PATCH 25/30] chore: update --- packages/vscode/language-server/index.ts | 6 +++--- .../{prettierPlugin.ts => prettierService.ts} | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename packages/vscode/language-server/{prettierPlugin.ts => prettierService.ts} (100%) diff --git a/packages/vscode/language-server/index.ts b/packages/vscode/language-server/index.ts index 39df7df725..b27267509b 100644 --- a/packages/vscode/language-server/index.ts +++ b/packages/vscode/language-server/index.ts @@ -1,7 +1,7 @@ import { createConnection, createServer, createSimpleProject } from '@volar/language-server/node' -import { create as createYamlPlugin } from 'volar-service-yaml' +import { create as createYamlService } from 'volar-service-yaml' import { slidevLanguagePlugin } from './languagePlugin' -import { create as createPrettierPlugin } from './prettierPlugin' +import { create as createPrettierService } from './prettierService' const connection = createConnection() const server = createServer(connection) @@ -10,7 +10,7 @@ connection.onInitialize((params) => { return server.initialize( params, createSimpleProject([slidevLanguagePlugin]), - [createYamlPlugin(), createPrettierPlugin()], + [createYamlService(), createPrettierService()], ) }) diff --git a/packages/vscode/language-server/prettierPlugin.ts b/packages/vscode/language-server/prettierService.ts similarity index 100% rename from packages/vscode/language-server/prettierPlugin.ts rename to packages/vscode/language-server/prettierService.ts From 8ed62547d02f206869c97af47eb551633994ea77 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Mon, 15 Jul 2024 15:57:50 +0800 Subject: [PATCH 26/30] chore: update --- packages/vscode/package.json | 6 +- packages/vscode/syntaxes/codeblock.json | 104 +++++++++++++++--- packages/vscode/syntaxes/slidev.example.md | 4 +- .../vscode/syntaxes/slidev.tmLanguage.json | 2 +- 4 files changed, 94 insertions(+), 22 deletions(-) diff --git a/packages/vscode/package.json b/packages/vscode/package.json index a6db836d97..8118f4132d 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -23,9 +23,6 @@ "activationEvents": [ "onStartupFinished" ], - "extensionDependencies": [ - "Vue.volar" - ], "contributes": { "languages": [ { @@ -63,7 +60,8 @@ "text.html.markdown" ], "embeddedLanguages": { - "source.slidev": "slidev" + "source.slidev": "slidev", + "source.ts": "typescript" } } ], diff --git a/packages/vscode/syntaxes/codeblock.json b/packages/vscode/syntaxes/codeblock.json index b2cb02be9a..a25d3bbf95 100644 --- a/packages/vscode/syntaxes/codeblock.json +++ b/packages/vscode/syntaxes/codeblock.json @@ -1,30 +1,104 @@ { "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "fileTypes": [], - "injectionSelector": "L:fenced_code.block.language.attributes.markdown", + "injectionSelector": "L:fenced_code.block.language.attributes.markdown -markup.frontmatter.slidev", "patterns": [ { - "match": "\\s*(\\{)([^}]*)(\\})", - "name": "meta.range_or_monaco.slidev", - "captures": { - "1": { - "name": "punctuation.definition.range_or_monaco.slidev" + "match": ".+", + "name": "keyword.twoslash.slidev" + }, + { + "include": "#codeblock-attributes" + } + ], + "repository": { + "fenced_code_block_ts": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" }, - "2": { + "5": { + "name": "fenced_code.block.language.attributes.markdown", "patterns": [ { - "include": "source.slidev#monaco-type" - }, - { - "include": "source.slidev#range-with-steps" + "include": "#codeblock-attributes" } ] - }, + } + }, + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "endCaptures": { "3": { - "name": "punctuation.definition.range_or_monaco.slidev" + "name": "punctuation.definition.markdown" } - } + }, + "name": "markup.fenced_code.block.markdown", + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "contentName": "meta.embedded.block.typescript", + "patterns": [ + { + "include": "source.ts" + } + ], + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" + } + ] + }, + "codeblock-attributes": { + "patterns": [ + { + "match": "\\s*(\\{)([^}]*)(\\})\\s*(.*)$", + "captures": { + "1": { + "name": "punctuation.definition.range_or_monaco.slidev" + }, + "2": { + "name": "meta.range_or_monaco.slidev", + "patterns": [ + { + "include": "source.slidev#monaco-type" + }, + { + "include": "source.slidev#range-with-steps" + } + ] + }, + "3": { + "name": "punctuation.definition.range_or_monaco.slidev" + }, + "4": { + "patterns": [ + { + "match": "twoslash", + "name": "keyword.twoslash.slidev" + }, + { + "begin": "(?=\\{)", + "end": "(?<=\\})(\\s*twoslash)?$", + "endCaptures": { + "1": { + "name": "keyword.twoslash.slidev" + } + }, + "contentName": "meta.embedded.block.code_block_options.slidev", + "patterns": [ + { + "include": "source.ts#object-literal" + } + ] + } + ] + } + } + } + ] } - ], + }, "scopeName": "inject-to-markdown.codeblock.slidev" } diff --git a/packages/vscode/syntaxes/slidev.example.md b/packages/vscode/syntaxes/slidev.example.md index 733528e335..ba193f8fc3 100644 --- a/packages/vscode/syntaxes/slidev.example.md +++ b/packages/vscode/syntaxes/slidev.example.md @@ -49,11 +49,11 @@ text: 1 const a = 1 ``` -```ts twoslash {1,2|3} +```ts {1,2|3}{foo:'bar'} twoslash const a = 1 ``` -```ts {moanco-run}{showOutputAt: '+1'} +```ts {monaco-run}{showOutputAt: '+1'} const a = 1 ``` diff --git a/packages/vscode/syntaxes/slidev.tmLanguage.json b/packages/vscode/syntaxes/slidev.tmLanguage.json index 1086b8ada5..ef8c34e0c1 100644 --- a/packages/vscode/syntaxes/slidev.tmLanguage.json +++ b/packages/vscode/syntaxes/slidev.tmLanguage.json @@ -62,7 +62,7 @@ } }, "range": { - "match": "(\\d+)([,-])?", + "match": "(\\d+|\\*)([,-])?", "captures": { "1": { "name": "constant.numeric.range.slidev" From 6a20591047fb7f2ddd341e0e5e6c834cce51ff84 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Wed, 17 Jul 2024 18:44:19 +0800 Subject: [PATCH 27/30] fix: codeblock syntax injection --- .gitignore | 4 +- packages/vscode/package.json | 56 ++++++++++ packages/vscode/syntaxes/codeblock-patch.ts | 52 ++++++++++ packages/vscode/syntaxes/codeblock.json | 108 ++++++-------------- packages/vscode/syntaxes/slidev.example.md | 10 +- packages/vscode/tsup.config.ts | 8 +- pnpm-lock.yaml | 84 ++++++++------- 7 files changed, 201 insertions(+), 121 deletions(-) create mode 100644 packages/vscode/syntaxes/codeblock-patch.ts diff --git a/.gitignore b/.gitignore index 3387584132..a1e7a1492d 100644 --- a/.gitignore +++ b/.gitignore @@ -20,8 +20,6 @@ packages/create-app/template/pages packages/create-app/template/slides.md packages/create-app/template/snippets packages/slidev/README.md +packages/vscode/syntaxes/codeblock-patch.json slides-export.md *slides-export.pptx - -# temp -out diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 8118f4132d..fe2afd2b00 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -63,6 +63,61 @@ "source.slidev": "slidev", "source.ts": "typescript" } + }, + { + "path": "./syntaxes/codeblock-patch.json", + "scopeName": "inject-to-markdown.codeblock.patch.slidev", + "injectTo": [ + "text.html.markdown" + ], + "embeddedLanguages": { + "source.slidev": "slidev", + "meta.embedded.block.html": "html", + "source.js": "javascript", + "source.css": "css", + "meta.embedded.block.frontmatter": "yaml", + "meta.embedded.block.css": "css", + "meta.embedded.block.ini": "ini", + "meta.embedded.block.java": "java", + "meta.embedded.block.lua": "lua", + "meta.embedded.block.makefile": "makefile", + "meta.embedded.block.perl": "perl", + "meta.embedded.block.r": "r", + "meta.embedded.block.ruby": "ruby", + "meta.embedded.block.php": "php", + "meta.embedded.block.sql": "sql", + "meta.embedded.block.vs_net": "vs_net", + "meta.embedded.block.xml": "xml", + "meta.embedded.block.xsl": "xsl", + "meta.embedded.block.yaml": "yaml", + "meta.embedded.block.dosbatch": "dosbatch", + "meta.embedded.block.clojure": "clojure", + "meta.embedded.block.coffee": "coffee", + "meta.embedded.block.c": "c", + "meta.embedded.block.cpp": "cpp", + "meta.embedded.block.diff": "diff", + "meta.embedded.block.dockerfile": "dockerfile", + "meta.embedded.block.go": "go", + "meta.embedded.block.groovy": "groovy", + "meta.embedded.block.pug": "jade", + "meta.embedded.block.javascript": "javascript", + "meta.embedded.block.json": "json", + "meta.embedded.block.jsonc": "jsonc", + "meta.embedded.block.latex": "latex", + "meta.embedded.block.less": "less", + "meta.embedded.block.objc": "objc", + "meta.embedded.block.scss": "scss", + "meta.embedded.block.perl6": "perl6", + "meta.embedded.block.powershell": "powershell", + "meta.embedded.block.python": "python", + "meta.embedded.block.rust": "rust", + "meta.embedded.block.scala": "scala", + "meta.embedded.block.shellscript": "shellscript", + "meta.embedded.block.typescript": "typescript", + "meta.embedded.block.typescriptreact": "typescriptreact", + "meta.embedded.block.csharp": "csharp", + "meta.embedded.block.fsharp": "fsharp" + } } ], "commands": [ @@ -407,6 +462,7 @@ "ovsx": "^0.9.1", "prettier": "^3.3.2", "reactive-vscode": "0.2.0-beta.5", + "tm-grammars": "^1.13.11", "volar-service-prettier": "^0.0.54", "volar-service-yaml": "^0.0.59" } diff --git a/packages/vscode/syntaxes/codeblock-patch.ts b/packages/vscode/syntaxes/codeblock-patch.ts new file mode 100644 index 0000000000..e94196ac27 --- /dev/null +++ b/packages/vscode/syntaxes/codeblock-patch.ts @@ -0,0 +1,52 @@ +import { readFileSync } from 'node:fs' +import { join } from 'node:path' + +const Markdown = JSON.parse( + readFileSync(join(__dirname, '../node_modules/tm-grammars/grammars/markdown.json'), 'utf8'), +) + +const base = { + $schema: 'https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json', + fileTypes: [], + injectionSelector: 'L:text.html.markdown -markup.frontmatter.slidev -markup.fenced_code.block.markdown', + patterns: [ + ], + repository: { + fenced_code_block_unknown: { + begin: '(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)', + beginCaptures: { + 3: { + name: 'punctuation.definition.markdown', + }, + 4: { + name: 'fenced_code.block.language.attributes.markdown', + patterns: [], + }, + }, + end: '(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$', + endCaptures: { + 3: { + name: 'punctuation.definition.markdown', + }, + }, + name: 'markup.fenced_code.block.markdown', + }, + }, + scopeName: 'inject-to-markdown.codeblock.patch.slidev', +} as any + +export function generateCodeblockPatch() { + for (const [k, v] of Object.entries(Markdown.repository) as any) { + if (!k.startsWith('fenced_code_block_') || k === 'fenced_code_block_unknown') + continue + v.beginCaptures[5].patterns = [] + base.patterns.push(v) + } + + base.patterns.push( + { + include: '#fenced_code_block_unknown', + }, + ) + return base +} diff --git a/packages/vscode/syntaxes/codeblock.json b/packages/vscode/syntaxes/codeblock.json index a25d3bbf95..c467c061f8 100644 --- a/packages/vscode/syntaxes/codeblock.json +++ b/packages/vscode/syntaxes/codeblock.json @@ -1,104 +1,58 @@ { "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "fileTypes": [], - "injectionSelector": "L:fenced_code.block.language.attributes.markdown -markup.frontmatter.slidev", + "injectionSelector": "L:fenced_code.block.language.attributes.markdown -meta.code_block_attrs.slidev", "patterns": [ { - "match": ".+", + "match": "twoslash", "name": "keyword.twoslash.slidev" }, { - "include": "#codeblock-attributes" - } - ], - "repository": { - "fenced_code_block_ts": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" + "match": "\\s*(\\{)([^}]*)(\\})\\s*(.*)$", + "name": "meta.code_block_attrs.slidev", + "captures": { + "1": { + "name": "punctuation.definition.range_or_monaco.slidev" }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown", + "2": { + "name": "meta.range_or_monaco.slidev", "patterns": [ { - "include": "#codeblock-attributes" + "include": "source.slidev#monaco-type" + }, + { + "include": "source.slidev#range-with-steps" } ] - } - }, - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "endCaptures": { + }, "3": { - "name": "punctuation.definition.markdown" - } - }, - "name": "markup.fenced_code.block.markdown", - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "contentName": "meta.embedded.block.typescript", + "name": "punctuation.definition.range_or_monaco.slidev" + }, + "4": { "patterns": [ { - "include": "source.ts" - } - ], - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)" - } - ] - }, - "codeblock-attributes": { - "patterns": [ - { - "match": "\\s*(\\{)([^}]*)(\\})\\s*(.*)$", - "captures": { - "1": { - "name": "punctuation.definition.range_or_monaco.slidev" + "match": "twoslash", + "name": "keyword.twoslash.slidev" }, - "2": { - "name": "meta.range_or_monaco.slidev", - "patterns": [ - { - "include": "source.slidev#monaco-type" - }, - { - "include": "source.slidev#range-with-steps" + { + "begin": "(?=\\{)", + "end": "(?<=\\})(\\s*twoslash)?$", + "endCaptures": { + "1": { + "name": "keyword.twoslash.slidev" } - ] - }, - "3": { - "name": "punctuation.definition.range_or_monaco.slidev" - }, - "4": { + }, + "contentName": "meta.embedded.block.code_block_options.ts", "patterns": [ { - "match": "twoslash", - "name": "keyword.twoslash.slidev" - }, - { - "begin": "(?=\\{)", - "end": "(?<=\\})(\\s*twoslash)?$", - "endCaptures": { - "1": { - "name": "keyword.twoslash.slidev" - } - }, - "contentName": "meta.embedded.block.code_block_options.slidev", - "patterns": [ - { - "include": "source.ts#object-literal" - } - ] + "include": "source.ts#object-literal" } ] } - } + ] } - ] + } } - }, + ], "scopeName": "inject-to-markdown.codeblock.slidev" } diff --git a/packages/vscode/syntaxes/slidev.example.md b/packages/vscode/syntaxes/slidev.example.md index ba193f8fc3..021c9c2a97 100644 --- a/packages/vscode/syntaxes/slidev.example.md +++ b/packages/vscode/syntaxes/slidev.example.md @@ -49,11 +49,17 @@ text: 1 const a = 1 ``` -```ts {1,2|3}{foo:'bar'} twoslash +```ts twoslash const a = 1 ``` -```ts {monaco-run}{showOutputAt: '+1'} +```vue {monaco-run}{showOutputAt: '+1'} + +``` + +```ts {monaco-run}{showOutputAt: '+1'} twoslash const a = 1 ``` diff --git a/packages/vscode/tsup.config.ts b/packages/vscode/tsup.config.ts index fffb001106..7d8440cae6 100644 --- a/packages/vscode/tsup.config.ts +++ b/packages/vscode/tsup.config.ts @@ -1,7 +1,8 @@ -import { copyFileSync, existsSync, mkdirSync } from 'node:fs' +import { copyFileSync, existsSync, mkdirSync, writeFileSync } from 'node:fs' import { join } from 'node:path' import { defineConfig } from 'tsup' import { resolvePath } from 'mlly' +import { generateCodeblockPatch } from './syntaxes/codeblock-patch' export default defineConfig({ entry: { @@ -40,5 +41,10 @@ export default defineConfig({ for (const file of ['logo-mono.svg', 'logo-mono-dark.svg', 'logo.png', 'logo.svg']) copyFileSync(join(assetsDir, file), join(resDir, file)) + + writeFileSync( + join(__dirname, 'syntaxes/codeblock-patch.json'), + JSON.stringify(generateCodeblockPatch(), null, 2), + ) }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e067c6e9a..ac833fe1fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -500,7 +500,7 @@ importers: version: 3.7.0 debug: specifier: ^4.3.5 - version: 4.3.5(supports-color@8.1.1) + version: 4.3.5(supports-color@5.5.0) fast-deep-equal: specifier: ^3.1.3 version: 3.1.3 @@ -748,6 +748,9 @@ importers: reactive-vscode: specifier: 0.2.0-beta.5 version: 0.2.0-beta.5(@types/vscode@1.89.0) + tm-grammars: + specifier: ^1.13.11 + version: 1.13.11 volar-service-prettier: specifier: ^0.0.54 version: 0.0.54(prettier@3.3.2) @@ -5775,6 +5778,9 @@ packages: resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} + tm-grammars@1.13.11: + resolution: {integrity: sha512-qZysArHMEbWF27pI914n8RpkFj8t1zNwXoEzJfzE6eknxOrPeRea+z6N9rZvhqIO0vrS7qBjoE/u8zibO+gYBA==} + tmp@0.2.3: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} @@ -6736,7 +6742,7 @@ snapshots: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -6933,7 +6939,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7179,7 +7185,7 @@ snapshots: '@eslint/config-array@0.17.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7187,7 +7193,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -7258,7 +7264,7 @@ snapshots: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.5.2 '@iconify/types': 1.1.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) kolorist: 1.8.0 local-pkg: 0.4.3 transitivePeerDependencies: @@ -7269,7 +7275,7 @@ snapshots: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.10 '@iconify/types': 2.0.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) kolorist: 1.8.0 local-pkg: 0.5.0 mlly: 1.7.1 @@ -7801,7 +7807,7 @@ snapshots: '@typescript-eslint/types': 8.0.0-alpha.40 '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.40 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) eslint: 9.6.0 optionalDependencies: typescript: 5.5.3 @@ -7822,7 +7828,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -7838,7 +7844,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -7853,7 +7859,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.0.0-alpha.40 '@typescript-eslint/visitor-keys': 8.0.0-alpha.40 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -7902,7 +7908,7 @@ snapshots: '@typescript/vfs@1.5.0': dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -8502,7 +8508,7 @@ snapshots: '@windicss/config@1.9.3': dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) jiti: 1.21.6 windicss: 3.5.6 transitivePeerDependencies: @@ -8512,7 +8518,7 @@ snapshots: dependencies: '@antfu/utils': 0.7.10 '@windicss/config': 1.9.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) fast-glob: 3.3.2 magic-string: 0.30.10 micromatch: 4.0.7 @@ -8542,7 +8548,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -9594,7 +9600,7 @@ snapshots: eslint-plugin-import-x@0.5.3(eslint@9.6.0)(typescript@5.5.3): dependencies: '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) doctrine: 3.0.0 eslint: 9.6.0 eslint-import-resolver-node: 0.3.9 @@ -9613,7 +9619,7 @@ snapshots: '@es-joy/jsdoccomment': 0.43.1 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) escape-string-regexp: 4.0.0 eslint: 9.6.0 esquery: 1.5.0 @@ -9681,7 +9687,7 @@ snapshots: eslint-plugin-toml@0.11.1(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) eslint: 9.6.0 eslint-compat-utils: 0.5.0(eslint@9.6.0) lodash: 4.17.21 @@ -9745,7 +9751,7 @@ snapshots: eslint-plugin-yml@1.14.0(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) eslint: 9.6.0 eslint-compat-utils: 0.5.0(eslint@9.6.0) lodash: 4.17.21 @@ -9788,7 +9794,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) escape-string-regexp: 4.0.0 eslint-scope: 8.0.1 eslint-visitor-keys: 4.0.0 @@ -10025,7 +10031,7 @@ snapshots: follow-redirects@1.15.6(debug@4.3.5): optionalDependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) foreground-child@3.1.1: dependencies: @@ -10290,7 +10296,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -10308,7 +10314,7 @@ snapshots: https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -10346,7 +10352,7 @@ snapshots: importx@0.3.10: dependencies: bundle-require: 5.0.0(esbuild@0.20.2) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) esbuild: 0.20.2 jiti: 1.21.6 pathe: 1.1.2 @@ -10663,7 +10669,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) execa: 8.0.1 lilconfig: 3.1.1 listr2: 8.2.1 @@ -11245,7 +11251,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -11253,7 +11259,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -11275,7 +11281,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -12350,6 +12356,8 @@ snapshots: tinyspy@2.2.0: {} + tm-grammars@1.13.11: {} + tmp@0.2.3: {} to-fast-properties@2.0.0: {} @@ -12402,7 +12410,7 @@ snapshots: bundle-require: 4.0.2(esbuild@0.21.5) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) esbuild: 0.21.5 execa: 5.1.1 globby: 11.1.0 @@ -12640,7 +12648,7 @@ snapshots: '@antfu/install-pkg': 0.3.3 '@antfu/utils': 0.7.10 '@iconify/utils': 2.1.25 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) kolorist: 1.8.0 local-pkg: 0.5.0 unplugin: 1.10.1 @@ -12655,7 +12663,7 @@ snapshots: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.13.2) chokidar: 3.6.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -12770,7 +12778,7 @@ snapshots: vite-node@1.6.0(@types/node@20.14.10): dependencies: cac: 6.7.14 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) pathe: 1.1.2 picocolors: 1.0.1 vite: 5.3.3(@types/node@20.14.10) @@ -12788,7 +12796,7 @@ snapshots: dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.13.2) - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 open: 10.1.0 @@ -12807,7 +12815,7 @@ snapshots: '@antfu/utils': 0.7.10 axios: 1.7.2(debug@4.3.5) blueimp-md5: 2.19.0 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) fs-extra: 11.2.0 magic-string: 0.30.10 vite: 5.3.3(@types/node@20.14.10) @@ -12825,7 +12833,7 @@ snapshots: vite-plugin-vue-server-ref@0.4.2(vite@5.3.3(@types/node@20.14.10))(vue@3.4.31(typescript@5.5.3)): dependencies: '@antfu/utils': 0.7.10 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) klona: 2.0.6 mlly: 1.7.1 ufo: 1.5.3 @@ -12837,7 +12845,7 @@ snapshots: vite-plugin-windicss@1.9.3(vite@5.3.3(@types/node@20.14.10)): dependencies: '@windicss/plugin-utils': 1.9.3 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) kolorist: 1.8.0 vite: 5.3.3(@types/node@20.14.10) windicss: 3.5.6 @@ -12913,7 +12921,7 @@ snapshots: '@vitest/utils': 1.6.0 acorn-walk: 8.3.2 chai: 4.4.1 - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -13000,7 +13008,7 @@ snapshots: vue-eslint-parser@9.4.3(eslint@9.6.0): dependencies: - debug: 4.3.5(supports-color@8.1.1) + debug: 4.3.5(supports-color@5.5.0) eslint: 9.6.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 From 5d900e0137af8d775dd243e2ac6041a6d28cc62b Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sat, 20 Jul 2024 19:34:53 +0200 Subject: [PATCH 28/30] feat: support schema --- package.json | 1 + packages/types/src/config.ts | 158 ++--- packages/vscode/language-server/index.ts | 26 +- .../vscode/language-server/languagePlugin.ts | 1 + .../language-server/volar-service-yaml.ts | 199 ++++++ packages/vscode/package.json | 3 +- packages/vscode/schema/headmatter.json | 613 ++++++++++++++++++ packages/vscode/scripts/schema.ts | 12 + pnpm-lock.yaml | 68 ++ 9 files changed, 1002 insertions(+), 79 deletions(-) create mode 100644 packages/vscode/language-server/volar-service-yaml.ts create mode 100644 packages/vscode/schema/headmatter.json create mode 100644 packages/vscode/scripts/schema.ts diff --git a/package.json b/package.json index df010e4f32..64d99b5861 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "shiki": "^1.10.2", "simple-git-hooks": "^2.11.1", "taze": "^0.14.2", + "ts-json-schema-generator": "^2.3.0", "tsup": "^8.1.0", "typescript": "^5.5.3", "vite": "^5.3.3", diff --git a/packages/types/src/config.ts b/packages/types/src/config.ts index c7bc4223cc..d3725d71f3 100644 --- a/packages/types/src/config.ts +++ b/packages/types/src/config.ts @@ -2,152 +2,108 @@ import type { TransitionGroupProps } from 'vue' import type { ExportArgs } from './cli' import type { SlidevThemeConfig } from './types' -export interface SlidevConfig { - title: string +export interface Headmatter { + /** + * Title of the slides + */ + title?: string /** * String template to compose title * * @example "%s - Slidev" - to suffix " - Slidev" to all pages * @default '%s - Slidev' */ - titleTemplate: string + titleTemplate?: string /** * Theme to use for the slides * * @see https://sli.dev/themes/use.html * @default 'default' */ - theme: string + theme?: string /** * List of Slidev addons * * @default [] */ - addons: string[] + addons?: string[] /** * Download remote assets in local using vite-plugin-remote-assets * * @default false */ - remoteAssets: boolean | 'dev' | 'build' - /** - * Enable Monaco - * - * @see https://sli.dev/custom/config-monaco.html - * @default true - */ - monaco: boolean | 'dev' | 'build' - /** - * Where to load monaco types from - * - * - `cdn` - load from CDN with `@typescript/ata` - * - `local` - load from local node_modules - * - * @default 'local' - */ - monacoTypesSource: 'cdn' | 'local' | 'none' - /** - * Additional node packages to load as monaco types - * - * @default [] - */ - monacoTypesAdditionalPackages: string[] - /** - * Packages to ignore when loading monaco types - * - * @default [] - */ - monacoTypesIgnorePackages: string[] - /** - * Additional local modules to load as dependencies of monaco runnable - * - * @default [] - */ - monacoRunAdditionalDeps: string[] + remoteAssets?: boolean | 'dev' | 'build' /** * Show a download button in the SPA build, * could also be a link to custom pdf * * @default false */ - download: boolean | string - /** - * Options for export - * - * @default {} - */ - export: ResolvedExportOptions + download?: boolean | string /** * Show a copy button in code blocks * * @default true */ - codeCopy: boolean + codeCopy?: boolean /** * Information shows on the built SPA * Can be a markdown string * * @default false */ - info: string | boolean + info?: string | boolean /** * Prefer highlighter * * @see https://sli.dev/custom/config-highlighter.html * @default shiki */ - highlighter: 'shiki' | 'prism' + highlighter?: 'shiki' | 'prism' /** * Enable Twoslash * * @default true */ - twoslash: boolean | 'dev' | 'build' + twoslash?: boolean | 'dev' | 'build' /** * Show line numbers in code blocks * * @default false */ - lineNumbers: boolean + lineNumbers?: boolean /** * Force slides color schema * * @default 'auto' */ - colorSchema: 'dark' | 'light' | 'all' | 'auto' + colorSchema?: 'dark' | 'light' | 'all' | 'auto' /** * Router mode for vue-router * * @default 'history' */ - routerMode: 'hash' | 'history' + routerMode?: 'hash' | 'history' /** * Aspect ratio for slides * should be like `16/9` or `1:1` * * @default '16/9' */ - aspectRatio: number + aspectRatio?: number /** * The actual width for slides canvas. * unit in px. * * @default '980' */ - canvasWidth: number - /** - * Force the filename used when exporting the presentation. - * The extension, e.g. .pdf, gets automatically added. - * - * @default '' - */ - exportFilename: string | null + canvasWidth?: number /** * Controls whether texts in slides are selectable * * @default true */ - selectable: boolean + selectable?: boolean /** * Configure for themes, will inject intro root styles as * `--slidev-theme-x` for attribute `x` @@ -157,37 +113,37 @@ export interface SlidevConfig { * * @default {} */ - themeConfig: SlidevThemeConfig + themeConfig?: SlidevThemeConfig /** * Configure fonts for the slides and app * * @default {} */ - fonts: ResolvedFontOptions + fonts?: ResolvedFontOptions /** * Configure the icon for app * * @default 'https://cdn.jsdelivr.net/gh/slidevjs/slidev/assets/favicon.png' */ - favicon: string + favicon?: string /** * Options for drawings * * @default {} */ - drawings: ResolvedDrawingsOptions + drawings?: ResolvedDrawingsOptions /** * URL of PlantUML server used to render diagrams * * @default https://www.plantuml.com/plantuml */ - plantUmlServer: string + plantUmlServer?: string /** * Enable slides recording * * @default 'dev' */ - record: boolean | 'dev' | 'build' + record?: boolean | 'dev' | 'build' /** * Expose the server to inbound requests (listen to `0.0.0.0`) * @@ -203,19 +159,19 @@ export interface SlidevConfig { * @deprecated * @default 'unocss' */ - css: 'unocss' + css?: 'unocss' /** * Enable presenter mode * * @default true */ - presenter: boolean | 'dev' | 'build' + presenter?: boolean | 'dev' | 'build' /** * Attributes to apply to the HTML element * * @default {} */ - htmlAttrs: Record + htmlAttrs?: Record /** * Page transition, powered by Vue's * @@ -245,17 +201,67 @@ export interface SlidevConfig { * * @default true */ - editor: boolean + editor?: boolean /** * Enable context menu * * @default true */ - contextMenu: boolean | 'dev' | 'build' | undefined + contextMenu?: boolean | 'dev' | 'build' | undefined /** * Enable wake lock */ - wakeLock: boolean | 'dev' | 'build' + wakeLock?: boolean | 'dev' | 'build' + /** + * Options for export + * + * @default {} + */ + export?: ResolvedExportOptions + /** + * Force the filename used when exporting the presentation. + * The extension, e.g. .pdf, gets automatically added. + * + * @default '' + */ + exportFilename?: string | null + /** + * Enable Monaco + * + * @see https://sli.dev/custom/config-monaco.html + * @default true + */ + monaco?: boolean | 'dev' | 'build' + /** + * Where to load monaco types from + * + * - `cdn` - load from CDN with `@typescript/ata` + * - `local` - load from local node_modules + * + * @default 'local' + */ + monacoTypesSource?: 'cdn' | 'local' | 'none' + /** + * Additional node packages to load as monaco types + * + * @default [] + */ + monacoTypesAdditionalPackages?: string[] + /** + * Packages to ignore when loading monaco types + * + * @default [] + */ + monacoTypesIgnorePackages?: string[] + /** + * Additional local modules to load as dependencies of monaco runnable + * + * @default [] + */ + monacoRunAdditionalDeps?: string[] +} + +export interface SlidevConfig extends Required { } export interface FontOptions { diff --git a/packages/vscode/language-server/index.ts b/packages/vscode/language-server/index.ts index b27267509b..c55bea1300 100644 --- a/packages/vscode/language-server/index.ts +++ b/packages/vscode/language-server/index.ts @@ -1,5 +1,6 @@ +import { fileURLToPath } from 'node:url' import { createConnection, createServer, createSimpleProject } from '@volar/language-server/node' -import { create as createYamlService } from 'volar-service-yaml' +import { create as createYamlService } from './volar-service-yaml' import { slidevLanguagePlugin } from './languagePlugin' import { create as createPrettierService } from './prettierService' @@ -10,7 +11,28 @@ connection.onInitialize((params) => { return server.initialize( params, createSimpleProject([slidevLanguagePlugin]), - [createYamlService(), createPrettierService()], + [ + createYamlService({ + getLanguageSettings() { + return { + completion: true, + customTags: [], + format: true, + hover: true, + isKubernetes: false, + validate: true, + yamlVersion: '1.2', + schemas: [ + { + fileMatch: ['volar-embedded-content://frontmatter_0/**/*.md'], + uri: fileURLToPath(new URL('../schema/headmatter.json', import.meta.url)), + }, + ], + } + }, + }), + createPrettierService(), + ], ) }) diff --git a/packages/vscode/language-server/languagePlugin.ts b/packages/vscode/language-server/languagePlugin.ts index 69573ebc0c..d92384d86e 100644 --- a/packages/vscode/language-server/languagePlugin.ts +++ b/packages/vscode/language-server/languagePlugin.ts @@ -14,6 +14,7 @@ export const slidevLanguagePlugin: LanguagePlugin = { noParseYAML: true, preserveCR: true, }) + return { id: 'root', languageId: 'markdown', diff --git a/packages/vscode/language-server/volar-service-yaml.ts b/packages/vscode/language-server/volar-service-yaml.ts new file mode 100644 index 0000000000..da1ee31534 --- /dev/null +++ b/packages/vscode/language-server/volar-service-yaml.ts @@ -0,0 +1,199 @@ +// Vendored from https://github.com/volarjs/services/tree/master/packages/yaml +// Await https://github.com/volarjs/services/pull/103 + +import type { Disposable, DocumentSelector, LanguageServiceContext, LanguageServicePlugin, LanguageServicePluginInstance, ProviderResult } from '@volar/language-service' +import type { TextDocument } from 'vscode-languageserver-textdocument' +import { URI, Utils } from 'vscode-uri' +import * as yaml from 'yaml-language-server' + +export interface Provide { + 'yaml/languageService': () => yaml.LanguageService +} + +function noop(): undefined { } + +/** + * Create a Volar language service for YAML documents. + */ +export function create({ + documentSelector = ['yaml'], + getWorkspaceContextService = (context) => { + return { + resolveRelativePath(relativePath, resource) { + const base = resource.substring(0, resource.lastIndexOf('/') + 1) + let baseUri = URI.parse(base) + const decoded = context.decodeEmbeddedDocumentUri(baseUri) + if (decoded) { + baseUri = decoded[0] + } + return Utils.resolvePath(baseUri, relativePath).toString() + }, + } + }, + getLanguageSettings = () => { + return { + completion: true, + customTags: [], + format: true, + hover: true, + isKubernetes: false, + validate: true, + yamlVersion: '1.2', + } + }, + onDidChangeLanguageSettings = () => { + return { dispose() { } } + }, +}: { + documentSelector?: DocumentSelector + getWorkspaceContextService?: (context: LanguageServiceContext) => yaml.WorkspaceContextService + getLanguageSettings?: (context: LanguageServiceContext) => ProviderResult + onDidChangeLanguageSettings?: (listener: () => void, context: LanguageServiceContext) => Disposable +} = {}): LanguageServicePlugin { + return { + name: 'yaml', + capabilities: { + codeActionProvider: {}, + codeLensProvider: { + resolveProvider: false, + }, + completionProvider: { + triggerCharacters: [' ', ':'], + }, + definitionProvider: true, + diagnosticProvider: {}, + documentOnTypeFormattingProvider: { + triggerCharacters: ['\n'], + }, + documentSymbolProvider: true, + hoverProvider: true, + documentLinkProvider: {}, + foldingRangeProvider: true, + selectionRangeProvider: true, + }, + create(context): LanguageServicePluginInstance { + const ls = yaml.getLanguageService({ + schemaRequestService: async uri => await context.env.fs?.readFile(URI.parse(uri)) ?? '', + telemetry: { + send: noop, + sendError: noop, + sendTrack: noop, + }, + // @ts-expect-error https://github.com/redhat-developer/yaml-language-server/pull/910 + clientCapabilities: context.env?.clientCapabilities, + workspaceContext: getWorkspaceContextService(context), + }) + let initializing: Promise | undefined + + const disposable = onDidChangeLanguageSettings(() => initializing = undefined, context) + + return { + dispose() { + disposable.dispose() + }, + + provide: { + 'yaml/languageService': () => ls, + }, + + provideCodeActions(document, range, context) { + return worker(document, () => { + return ls.getCodeAction(document, { + context, + range, + textDocument: document, + }) + }) + }, + + // provideCodeLenses(document) { + // return worker(document, () => { + // return ls.getCodeLens(document) + // }) + // }, + + provideCompletionItems(document, position) { + return worker(document, () => { + return ls.doComplete(document, position, false) + }) + }, + + provideDefinition(document, position) { + return worker(document, () => { + return ls.doDefinition(document, { position, textDocument: document }) + }) + }, + + provideDiagnostics(document) { + return worker(document, () => { + return ls.doValidation(document, false) + }) + }, + + provideDocumentSymbols(document) { + return worker(document, () => { + return ls.findDocumentSymbols2(document, {}) + }) + }, + + provideHover(document, position) { + return worker(document, () => { + return ls.doHover(document, position) + }) + }, + + provideDocumentLinks(document) { + return worker(document, () => { + return ls.findLinks(document) + }) + }, + + provideFoldingRanges(document) { + return worker(document, () => { + return ls.getFoldingRanges(document, context.env.clientCapabilities?.textDocument?.foldingRange ?? {}) + }) + }, + + provideOnTypeFormattingEdits(document, position, key, options) { + return worker(document, () => { + return ls.doDocumentOnTypeFormatting(document, { ch: key, options, position, textDocument: document }) + }) + }, + + provideSelectionRanges(document, positions) { + return worker(document, () => { + return ls.getSelectionRanges(document, positions) + }) + }, + + // resolveCodeLens(codeLens) { + // return ls.resolveCodeLens(codeLens) + // }, + } + + async function worker(document: TextDocument, callback: () => T): Promise | undefined> { + if (!matchDocument(documentSelector, document)) { + return + } + + await (initializing ??= initialize()) + + return await callback() + } + + async function initialize() { + const settings = await getLanguageSettings(context) + ls.configure(settings) + } + }, + } +} + +function matchDocument(selector: DocumentSelector, document: TextDocument) { + for (const sel of selector) { + if (sel === document.languageId || (typeof sel === 'object' && sel.language === document.languageId)) { + return true + } + } + return false +} diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 6317e57201..2efbde87b2 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -445,8 +445,9 @@ "scripts": { "publish": "esno scripts/publish.ts", "pack": "vsce package --no-dependencies", + "prepare": "esno scripts/schema.ts", "build": "tsup --env.NODE_ENV production --treeshake", - "dev": "tsup --watch ./src --watch ./language-server --env.NODE_ENV development", + "dev": "nr prepare && tsup --watch ./src --watch ./language-server --env.NODE_ENV development", "vscode:prepublish": "nr build" }, "devDependencies": { diff --git a/packages/vscode/schema/headmatter.json b/packages/vscode/schema/headmatter.json new file mode 100644 index 0000000000..d167789477 --- /dev/null +++ b/packages/vscode/schema/headmatter.json @@ -0,0 +1,613 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/Headmatter", + "definitions": { + "Headmatter": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Title of the slides" + }, + "titleTemplate": { + "type": "string", + "description": "String template to compose title", + "default": "%s - Slidev" + }, + "theme": { + "type": "string", + "description": "Theme to use for the slides", + "default": "default" + }, + "addons": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Slidev addons", + "default": [] + }, + "remoteAssets": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "const": "dev" + }, + { + "type": "string", + "const": "build" + } + ], + "description": "Download remote assets in local using vite-plugin-remote-assets", + "default": false + }, + "download": { + "type": [ + "boolean", + "string" + ], + "description": "Show a download button in the SPA build, could also be a link to custom pdf", + "default": false + }, + "codeCopy": { + "type": "boolean", + "description": "Show a copy button in code blocks", + "default": true + }, + "info": { + "type": [ + "string", + "boolean" + ], + "description": "Information shows on the built SPA Can be a markdown string", + "default": false + }, + "highlighter": { + "type": "string", + "enum": [ + "shiki", + "prism" + ], + "description": "Prefer highlighter", + "default": "shiki" + }, + "twoslash": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "const": "dev" + }, + { + "type": "string", + "const": "build" + } + ], + "description": "Enable Twoslash", + "default": true + }, + "lineNumbers": { + "type": "boolean", + "description": "Show line numbers in code blocks", + "default": false + }, + "colorSchema": { + "type": "string", + "enum": [ + "dark", + "light", + "all", + "auto" + ], + "description": "Force slides color schema", + "default": "auto" + }, + "routerMode": { + "type": "string", + "enum": [ + "hash", + "history" + ], + "description": "Router mode for vue-router", + "default": "history" + }, + "aspectRatio": { + "type": "number", + "description": "Aspect ratio for slides should be like `16/9` or `1:1`", + "default": "16/9" + }, + "canvasWidth": { + "type": "number", + "description": "The actual width for slides canvas. unit in px.", + "default": "980" + }, + "selectable": { + "type": "boolean", + "description": "Controls whether texts in slides are selectable", + "default": true + }, + "themeConfig": { + "$ref": "#/definitions/SlidevThemeConfig", + "description": "Configure for themes, will inject intro root styles as `--slidev-theme-x` for attribute `x`\n\nThis allows themes to have customization options in frontmatter Refer to themes' document for options avaliable", + "default": {} + }, + "fonts": { + "$ref": "#/definitions/ResolvedFontOptions", + "description": "Configure fonts for the slides and app", + "default": {} + }, + "favicon": { + "type": "string", + "description": "Configure the icon for app", + "default": "https://cdn.jsdelivr.net/gh/slidevjs/slidev/assets/favicon.png" + }, + "drawings": { + "$ref": "#/definitions/ResolvedDrawingsOptions", + "description": "Options for drawings", + "default": {} + }, + "plantUmlServer": { + "type": "string", + "description": "URL of PlantUML server used to render diagrams", + "default": "https://www.plantuml.com/plantuml" + }, + "record": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "const": "dev" + }, + { + "type": "string", + "const": "build" + } + ], + "description": "Enable slides recording", + "default": "dev" + }, + "remote": { + "type": [ + "string", + "boolean" + ], + "description": "Expose the server to inbound requests (listen to `0.0.0.0`)\n\nPass a string to set the password for accessing presenter mode.", + "default": false + }, + "css": { + "type": "string", + "const": "unocss", + "description": "Engine for Atomic CSS", + "deprecated": true, + "default": "unocss" + }, + "presenter": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "const": "dev" + }, + { + "type": "string", + "const": "build" + } + ], + "description": "Enable presenter mode", + "default": true + }, + "htmlAttrs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Attributes to apply to the HTML element", + "default": {} + }, + "transition": { + "anyOf": [ + { + "$ref": "#/definitions/BuiltinSlideTransition" + }, + { + "type": "string" + }, + { + "$ref": "#/definitions/TransitionGroupProps" + } + ], + "description": "Page transition, powered by Vue's \n\nBuilt-in transitions:\n- fade\n- fade-out\n- slide-left\n- slide-right\n- slide-up\n- slide-down" + }, + "mdc": { + "type": "boolean", + "description": "Suppport MDC syntax", + "default": false + }, + "editor": { + "type": "boolean", + "description": "Enable built-in editor", + "default": true + }, + "contextMenu": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "const": "dev" + }, + { + "type": "string", + "const": "build" + } + ], + "description": "Enable context menu", + "default": true + }, + "wakeLock": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "const": "dev" + }, + { + "type": "string", + "const": "build" + } + ], + "description": "Enable wake lock" + }, + "export": { + "$ref": "#/definitions/ResolvedExportOptions", + "description": "Options for export", + "default": {} + }, + "exportFilename": { + "type": [ + "string", + "null" + ], + "description": "Force the filename used when exporting the presentation. The extension, e.g. .pdf, gets automatically added.", + "default": "" + }, + "monaco": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "const": "dev" + }, + { + "type": "string", + "const": "build" + } + ], + "description": "Enable Monaco", + "default": true + }, + "monacoTypesSource": { + "type": "string", + "enum": [ + "cdn", + "local", + "none" + ], + "description": "Where to load monaco types from\n\n- `cdn` - load from CDN with `@typescript/ata`\n- `local` - load from local node_modules", + "default": "local" + }, + "monacoTypesAdditionalPackages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional node packages to load as monaco types", + "default": [] + }, + "monacoTypesIgnorePackages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Packages to ignore when loading monaco types", + "default": [] + }, + "monacoRunAdditionalDeps": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional local modules to load as dependencies of monaco runnable", + "default": [] + } + } + }, + "SlidevThemeConfig": { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number" + ] + } + }, + "ResolvedFontOptions": { + "type": "object", + "properties": { + "sans": { + "type": "array", + "items": { + "type": "string" + } + }, + "mono": { + "type": "array", + "items": { + "type": "string" + } + }, + "serif": { + "type": "array", + "items": { + "type": "string" + } + }, + "weights": { + "type": "array", + "items": { + "type": "string" + } + }, + "italic": { + "type": "boolean" + }, + "provider": { + "type": "string", + "enum": [ + "none", + "google" + ] + }, + "webfonts": { + "type": "array", + "items": { + "type": "string" + } + }, + "local": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "sans", + "mono", + "serif", + "weights", + "italic", + "provider", + "webfonts", + "local" + ] + }, + "ResolvedDrawingsOptions": { + "type": "object", + "properties": { + "persist": { + "type": "boolean", + "enum": [ + false + ] + }, + "enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "const": "dev" + }, + { + "type": "string", + "const": "build" + } + ] + }, + "presenterOnly": { + "type": "boolean" + }, + "syncAll": { + "type": "boolean" + } + }, + "required": [ + "persist", + "enabled", + "presenterOnly", + "syncAll" + ] + }, + "BuiltinSlideTransition": { + "type": "string", + "enum": [ + "slide-up", + "slide-down", + "slide-left", + "slide-right", + "fade", + "zoom", + "none" + ] + }, + "TransitionGroupProps": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "moveClass": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "transition", + "animation" + ] + }, + "css": { + "type": "boolean" + }, + "duration": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "enter": { + "type": "number" + }, + "leave": { + "type": "number" + } + }, + "required": [ + "enter", + "leave" + ] + } + ] + }, + "enterFromClass": { + "type": "string" + }, + "enterActiveClass": { + "type": "string" + }, + "enterToClass": { + "type": "string" + }, + "appearFromClass": { + "type": "string" + }, + "appearActiveClass": { + "type": "string" + }, + "appearToClass": { + "type": "string" + }, + "leaveFromClass": { + "type": "string" + }, + "leaveActiveClass": { + "type": "string" + }, + "leaveToClass": { + "type": "string" + }, + "appear": {}, + "persisted": {}, + "onBeforeEnter": {}, + "onEnter": {}, + "onAfterEnter": {}, + "onEnterCancelled": {}, + "onBeforeLeave": {}, + "onLeave": {}, + "onAfterLeave": {}, + "onLeaveCancelled": {}, + "onBeforeAppear": {}, + "onAppear": {}, + "onAfterAppear": {}, + "onAppearCancelled": {} + }, + "required": [ + "appear", + "onAfterAppear", + "onAfterEnter", + "onAfterLeave", + "onAppear", + "onAppearCancelled", + "onBeforeAppear", + "onBeforeEnter", + "onBeforeLeave", + "onEnter", + "onEnterCancelled", + "onLeave", + "onLeaveCancelled", + "persisted" + ] + }, + "ResolvedExportOptions": { + "type": "object", + "properties": { + "output": { + "type": "string" + }, + "format": { + "type": "string" + }, + "timeout": { + "type": "number" + }, + "wait": { + "type": "number" + }, + "wait-until": { + "type": "string" + }, + "range": { + "type": "string" + }, + "dark": { + "type": "boolean" + }, + "with-clicks": { + "type": "boolean" + }, + "executable-path": { + "type": "string" + }, + "with-toc": { + "type": "boolean" + }, + "per-slide": { + "type": "boolean" + }, + "scale": { + "type": "number" + }, + "withClicks": { + "type": "boolean" + }, + "executablePath": { + "type": "string" + }, + "withToc": { + "type": "boolean" + } + } + } + } +} diff --git a/packages/vscode/scripts/schema.ts b/packages/vscode/scripts/schema.ts new file mode 100644 index 0000000000..c192800720 --- /dev/null +++ b/packages/vscode/scripts/schema.ts @@ -0,0 +1,12 @@ +import fs from 'node:fs/promises' +import tsj from 'ts-json-schema-generator' + +const program = tsj + .createGenerator({ + path: '../../packages/types/src/config.ts', + tsconfig: '../../tsconfig.json', + additionalProperties: true, + }) + .createSchema('Headmatter') + +await fs.writeFile('./schema/headmatter.json', JSON.stringify(program, null, 2)) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e24ab05e60..0591bb24b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -130,6 +130,9 @@ importers: taze: specifier: ^0.14.2 version: 0.14.2 + ts-json-schema-generator: + specifier: ^2.3.0 + version: 2.3.0 tsup: specifier: ^8.1.0 version: 8.1.0(postcss@8.4.39)(typescript@5.5.3) @@ -3836,6 +3839,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -4212,6 +4219,10 @@ packages: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} + jackspeak@3.4.2: + resolution: {integrity: sha512-qH3nOSj8q/8+Eg8LUPOq3C+6HWkpUioIjDsq1+D4zY91oZvpPttw8GwtF1nReRYKXl+1AORyFqtm2f5Q1SB6/Q==} + engines: {node: 14 >=14.21 || 16 >=16.20 || >=18} + jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true @@ -4793,6 +4804,10 @@ packages: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + minisearch@6.3.0: resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} @@ -5012,6 +5027,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -5084,6 +5102,10 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -5468,6 +5490,10 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -5866,6 +5892,11 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-json-schema-generator@2.3.0: + resolution: {integrity: sha512-t4lBQAwZc0sOJq9LJt3NgbznIcslVnm0JeEMFq8qIRklpMRY8jlYD0YmnRWbqBKANxkby91P1XanSSlSOFpUmg==} + engines: {node: '>=18.0.0'} + hasBin: true + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -10213,6 +10244,15 @@ snapshots: minipass: 7.0.4 path-scurry: 1.10.1 + glob@10.4.5: + dependencies: + foreground-child: 3.1.1 + jackspeak: 3.4.2 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -10554,6 +10594,12 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@3.4.2: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jiti@1.21.6: {} joycon@3.1.1: {} @@ -11401,6 +11447,8 @@ snapshots: minipass@7.0.4: {} + minipass@7.1.2: {} + minisearch@6.3.0: {} minizlib@2.1.2: @@ -11628,6 +11676,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.0: {} + pako@1.0.11: {} parent-module@1.0.1: @@ -11695,6 +11745,11 @@ snapshots: lru-cache: 10.2.0 minipass: 7.0.4 + path-scurry@1.11.1: + dependencies: + lru-cache: 10.2.0 + minipass: 7.1.2 + path-type@4.0.0: {} path-type@5.0.0: @@ -12074,6 +12129,8 @@ snapshots: safe-buffer@5.2.1: {} + safe-stable-stringify@2.4.3: {} + safer-buffer@2.1.2: {} sax@1.3.0: {} @@ -12461,6 +12518,17 @@ snapshots: ts-interface-checker@0.1.13: {} + ts-json-schema-generator@2.3.0: + dependencies: + '@types/json-schema': 7.0.15 + commander: 12.1.0 + glob: 10.4.5 + json5: 2.2.3 + normalize-path: 3.0.0 + safe-stable-stringify: 2.4.3 + tslib: 2.6.2 + typescript: 5.5.3 + tslib@1.14.1: {} tslib@2.4.0: {} From a332edab4182385b5224be34e39a31b1fb74c9a9 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sat, 20 Jul 2024 19:41:13 +0200 Subject: [PATCH 29/30] chore: update types --- packages/parser/src/config.ts | 6 ++++-- packages/types/src/config.ts | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/parser/src/config.ts b/packages/parser/src/config.ts index 2a68b749d0..9db7f59c8d 100644 --- a/packages/parser/src/config.ts +++ b/packages/parser/src/config.ts @@ -36,10 +36,12 @@ export function getDefaultConfig(): SlidevConfig { css: 'unocss', presenter: true, htmlAttrs: {}, - transition: undefined, + transition: null, editor: true, - contextMenu: undefined, + contextMenu: null, wakeLock: true, + remote: false, + mdc: false, } } diff --git a/packages/types/src/config.ts b/packages/types/src/config.ts index d3725d71f3..de4dbd4fa1 100644 --- a/packages/types/src/config.ts +++ b/packages/types/src/config.ts @@ -186,7 +186,7 @@ export interface Headmatter { * @see https://sli.dev/guide/animations.html#pages-transitions * @see https://vuejs.org/guide/built-ins/transition.html */ - transition?: BuiltinSlideTransition | string | TransitionGroupProps + transition?: BuiltinSlideTransition | string | TransitionGroupProps | null /** * Suppport MDC syntax * @@ -207,7 +207,7 @@ export interface Headmatter { * * @default true */ - contextMenu?: boolean | 'dev' | 'build' | undefined + contextMenu?: boolean | 'dev' | 'build' | null /** * Enable wake lock */ From 2bb9d41a65364ca2744e33d360d10f7dd504357c Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sat, 20 Jul 2024 17:42:23 +0000 Subject: [PATCH 30/30] [autofix.ci] apply automated fixes --- packages/vscode/schema/headmatter.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/vscode/schema/headmatter.json b/packages/vscode/schema/headmatter.json index d167789477..6fa425e06d 100644 --- a/packages/vscode/schema/headmatter.json +++ b/packages/vscode/schema/headmatter.json @@ -223,6 +223,9 @@ }, { "$ref": "#/definitions/TransitionGroupProps" + }, + { + "type": "null" } ], "description": "Page transition, powered by Vue's \n\nBuilt-in transitions:\n- fade\n- fade-out\n- slide-left\n- slide-right\n- slide-up\n- slide-down" @@ -249,6 +252,9 @@ { "type": "string", "const": "build" + }, + { + "type": "null" } ], "description": "Enable context menu",