diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index eac2833..2d42c93 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -13,8 +13,9 @@ jobs: - run: npm i - run: npm run generate - run: "[[ -z $(git status --porcelain) ]]" - - run: npm run lint:check - - run: npm run format:check + - run: npm run type + - run: npm run lint + - run: npm run format release: runs-on: ubuntu-latest needs: check @@ -25,6 +26,7 @@ jobs: with: node-version: "18" - run: npm i + - run: npm run build - run: npx vsce package - run: echo "VERSION=$(node -p "require('./package.json').version")" >> "$GITHUB_ENV" - run: gh release create v$VERSION --generate-notes yaml-embedded-languages-$VERSION.vsix diff --git a/.gitignore b/.gitignore index aeee732..d2703e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules +dist *.vsix diff --git a/.prettierignore b/.prettierignore index 2d45df9..1a79052 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,2 @@ -syntaxes/injection.json +syntaxes/ package.json diff --git a/.vscodeignore b/.vscodeignore index 985264e..28df514 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -1,7 +1,7 @@ ** -!extension.js -!syntaxes/injection.json +!dist/extension.js +!syntaxes/ !images/icon.png !package.json !README.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 95795b6..5f4a752 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,13 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p ## [Unreleased] +## [1.0.2] - 2024-08-29 + ### Changed - `scopeName` to be required +- Output to be bundled and minified +- Injection grammar to be separated into `source.yaml.injection` and `source.github-actions-workflow.injection` ## [1.0.1] - 2024-08-26 @@ -112,7 +116,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p - Highlighting support for 40 languages in YAML block-scalars -[unreleased]: https://github.com/harrydowning/yaml-embedded-languages/compare/v1.0.1...HEAD +[unreleased]: https://github.com/harrydowning/yaml-embedded-languages/compare/v1.0.2...HEAD +[1.0.2]: https://github.com/harrydowning/yaml-embedded-languages/compare/v1.0.1...v1.0.2 [1.0.1]: https://github.com/harrydowning/yaml-embedded-languages/compare/v1.0.0...v1.0.1 [1.0.0]: https://github.com/harrydowning/yaml-embedded-languages/compare/v0.4.0...v1.0.0 [0.4.0]: https://github.com/harrydowning/yaml-embedded-languages/compare/v0.3.3...v0.4.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3156966..6acbfe0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,8 +11,8 @@ Thank you for taking an interest in contributing to this project. All contributi ## Development Workflow -- Implement changes, noting that `package.json` is partially generated and `syntaxes/injection.json` is fully generated so relevant changes to these should be made in `extension.js` -- Run `npm run generate` to update `package.json` and `syntaxes/injection.json` +- Implement changes, noting that `package.json` is partially generated and `syntaxes` is fully generated so relevant changes to these should be made in `src` +- Run `npm run generate` to update `package.json` and `syntaxes` - Use F5 within VS Code to test the extension ## Release Workflow diff --git a/eslint.config.mjs b/eslint.config.mjs index afe0386..0a995d7 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,13 +1,14 @@ -import globals from "globals"; -import pluginJs from "@eslint/js"; +// @ts-check -export default [ - pluginJs.configs.recommended, +import eslint from "@eslint/js"; +import tseslint from "typescript-eslint"; +import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"; + +export default tseslint.config( + eslint.configs.recommended, + ...tseslint.configs.recommended, { - files: ["**/*.js"], - languageOptions: { - sourceType: "commonjs", - globals: globals.node, - }, + ignores: ["dist/*"], }, -]; + eslintPluginPrettierRecommended, // Must be last +); diff --git a/extension.js b/extension.js deleted file mode 100644 index 46e1bb3..0000000 --- a/extension.js +++ /dev/null @@ -1,327 +0,0 @@ -const DEV_MODE = process.argv?.[2] === "-dev"; -const vscode = DEV_MODE ? null : require("vscode"); -const fs = require("fs"); -const packageJson = require("./package.json"); - -const INJECTION_PATH = "./syntaxes/injection.json"; -const SCOPE_NAME = `${packageJson.name}.injection`; -const SUB_INCLUDE_CONFIG = "include"; -const INCLUDE_CONFIG = `${packageJson.name}.${SUB_INCLUDE_CONFIG}`; -const LANGUAGE_SCOPE_PREFIX = "meta.embedded.inline"; -const REPOSITORY_SUFFIX = "block-scalar"; -const GLOBAL_STATE_VERSION = "version"; - -/* eslint sort-keys: ["error", "asc"] */ -const LANGUAGES = { - bat: "source.batchfile", - bibtex: "text.bibtex", - c: "source.c", - "c#": { - name: "csharp", - scopeName: "source.cs", - }, - "c\\+\\+": { - name: "cpp", - scopeName: "source.cpp", - }, - clojure: "source.clojure", - coffee: { - name: "coffeescript", - scopeName: "source.coffee", - }, - cpp: "source.cpp", - csharp: "source.cs", - css: "source.css", - cuda: { - name: "cuda-cpp", - scopeName: "source.cuda-cpp", - }, - dart: "source.dart", - diff: { - scopeName: "source.diff", - stripIndent: true, - }, - dockercompose: "source.yaml", - dockerfile: "source.dockerfile", - "f#": { - name: "fsharp", - scopeName: "source.fsharp", - }, - fsharp: "source.fsharp", - go: "source.go", - groovy: "source.groovy", - handlebars: "text.html.handlebars", - hlsl: "source.hlsl", - html: "text.html.derivative", - ini: "source.ini", - jade: "text.pug", - java: "source.java", - javascript: "source.js", - js: { - name: "javascript", - scopeName: "source.js", - }, - json: "source.json", - jsonc: "source.json.comments", - jsonl: "source.json.lines", - jsx: { - name: "javascriptreact", - scopeName: "source.js.jsx", - }, - julia: "source.julia", - latex: { - scopeName: "text.tex.latex", - stripIndent: true, - }, - less: "source.css.less", - log: "text.log", - lua: "source.lua", - make: { - name: "makefile", - scopeName: "source.makefile", - }, - makefile: "source.makefile", - markdown: { - scopeName: "text.html.markdown", - stripIndent: true, - }, - math: { - name: "markdown-math", - scopeName: "text.html.markdown.math", - }, - objc: { - name: "objective-c", - scopeName: "source.objc", - }, - objcpp: { - name: "objective-cpp", - scopeName: "source.objcpp", - }, - perl: "source.perl", - php: "text.html.php", - pip: { - name: "pip-requirements", - scopeName: "source.pip-requirements", - }, - powerfx: { - name: "javascript", - scopeName: "source.js", - }, - powershell: "source.powershell", - properties: "source.ini", - py: { - name: "python", - scopeName: "source.python", - }, - python: "source.python", - r: "source.r", - raku: "source.perl.6", - razor: "text.html.cshtml", - regex: "source.js.regexp", - requirements: { - name: "pip-requirements", - scopeName: "source.pip-requirements", - }, - rst: { - name: "restructuredtext", - scopeName: "source.rst", - }, - ruby: "source.ruby", - rust: "source.rust", - scss: "source.css.scss", - shaderlab: "source.shaderlab", - shell: { - name: "shellscript", - scopeName: "source.shell", - }, - sql: "source.sql", - swift: "source.swift", - tex: "text.tex", - ts: { - name: "typescript", - scopeName: "source.ts", - }, - tsx: { - name: "typescriptreact", - scopeName: "source.tsx", - }, - typescript: "source.ts", - vb: "source.asp.vb.net", - xml: "text.xml", - xsl: "text.xml.xsl", - yaml: "source.yaml", -}; -/* eslint-disable sort-keys */ - -const getEmbeddedLanguages = (languages) => { - const ids = Object.keys(languages); - return Object.fromEntries( - ids.map((id) => [`${LANGUAGE_SCOPE_PREFIX}.${id}`, languages[id].name]), - ); -}; - -const getPackageJson = (languages) => ({ - ...packageJson, - contributes: { - ...packageJson.contributes, - grammars: [ - { - path: INJECTION_PATH, - scopeName: SCOPE_NAME, - injectTo: ["source.yaml", "source.github-actions-workflow"], - embeddedLanguages: getEmbeddedLanguages(languages), - }, - ], - }, -}); - -const getPatterns = (languages) => { - const ids = Object.keys(languages); - return ids.map((id) => ({ - include: `#${id}-${REPOSITORY_SUFFIX}`, - })); -}; - -const getRepository = (languages) => { - const entries = Object.entries(languages); - return Object.fromEntries( - entries.map(([id, { scopeName, stripIndent }]) => [ - `${id}-${REPOSITORY_SUFFIX}`, - { - begin: `(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:${id})\\s*\\n)`, - beginCaptures: { - 1: { - name: "keyword.control.flow.block-scalar.literal.yaml", - }, - 2: { - name: "keyword.control.flow.block-scalar.folded.yaml", - }, - 3: { - name: "constant.numeric.indentation-indicator.yaml", - }, - 4: { - name: "storage.modifier.chomping-indicator.yaml", - }, - 5: { - name: "entity.name.type.yaml", - }, - }, - end: "^(?=\\S)|(?!\\G)", - patterns: [ - { - begin: "(?>^|\\G)([ ]+)(?! )", - end: "^(?!\\1|\\s*$)", - while: stripIndent ? "^$|\\1" : undefined, - name: `${LANGUAGE_SCOPE_PREFIX}.${id}`, - patterns: [{ include: scopeName }], - }, - ], - }, - ]), - ); -}; - -const getInjectionJson = (languages) => ({ - scopeName: SCOPE_NAME, - injectionSelector: "L:source.yaml,L:source.github-actions-workflow", - patterns: getPatterns(languages), - repository: getRepository(languages), -}); - -const write = (filename, data) => { - const fileData = fs.readFileSync(filename).toString(); - - if (fileData === data) { - return false; - } - - try { - fs.writeFileSync(filename, data); - } catch (err) { - console.error(err); - return false; - } - - console.log(`File '${filename}' saved.`); - return true; -}; - -const normalizeLanguages = (languages) => { - const normalizedLanguages = {}; - for (const id in languages) { - let language = languages[id]; - if (typeof language === "string") { - language = { scopeName: language }; - } - - if ( - typeof language === "object" && - typeof language.scopeName === "string" - ) { - normalizedLanguages[id] = { - name: language.name || id, - scopeName: language.scopeName, - stripIndent: language.stripIndent || false, - }; - } - } - return normalizedLanguages; -}; - -const generateFiles = (languages = LANGUAGES) => { - languages = normalizeLanguages(languages); - const packageJson = JSON.stringify(getPackageJson(languages), null, 2); - const injectionJson = JSON.stringify(getInjectionJson(languages), null, 2); - - return ( - write(`${__dirname}/package.json`, packageJson) | - write(`${__dirname}/syntaxes/injection.json`, injectionJson) - ); -}; - -const updateExtension = () => { - const settings = vscode.workspace.getConfiguration(packageJson.name); - const includeLanguages = settings[SUB_INCLUDE_CONFIG]; - const allLanguages = { ...LANGUAGES, ...includeLanguages }; - - const filesChanged = generateFiles(allLanguages); - - if (filesChanged) { - const message = `Reload window to allow changes to take effect?`; - const items = ["Yes", "No"]; - vscode.window.showInformationMessage(message, ...items).then((item) => { - if (item === items[0]) { - vscode.commands.executeCommand("workbench.action.reloadWindow"); - } - }); - } -}; - -const activate = (context) => { - const currentVersion = packageJson.version; - const previousVersion = context.globalState.get(GLOBAL_STATE_VERSION); - - if (previousVersion !== currentVersion) { - updateExtension(); - context.globalState.update(GLOBAL_STATE_VERSION, currentVersion); - } - - let disposable = vscode.workspace.onDidChangeConfiguration((event) => { - if (event.affectsConfiguration(INCLUDE_CONFIG)) { - updateExtension(); - } - }); - - context.subscriptions.push(disposable); -}; - -const deactivate = () => {}; - -if (DEV_MODE) { - generateFiles(); -} - -module.exports = { - activate, - deactivate, -}; diff --git a/package-lock.json b/package-lock.json index f08cd64..eec4a1b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,27 @@ { "name": "yaml-embedded-languages", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "yaml-embedded-languages", - "version": "1.0.1", + "version": "1.0.2", "license": "MIT", "devDependencies": { "@eslint/js": "^9.9.0", + "@types/node": "~16.11", + "@types/vscode": "1.74.0", "@vscode/vsce": "^2.29.0", + "esbuild": "^0.23.1", "eslint": "^9.9.0", - "globals": "^15.9.0", - "prettier": "^3.3.3" + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "prettier": "^3.3.3", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.5.4", + "typescript-eslint": "^8.3.0" }, "engines": { "vscode": "^1.74.0" @@ -227,6 +235,402 @@ "node": ">=16" } }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -361,46 +765,337 @@ "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", "dev": true, "engines": { - "node": ">=18.18" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.68.tgz", + "integrity": "sha512-JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ==", + "dev": true + }, + "node_modules/@types/vscode": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.74.0.tgz", + "integrity": "sha512-LyeCIU3jb9d38w0MXFwta9r0Jx23ugujkAxdwLTNCyspdZTKUc43t7ppPbCiPoQ/Ivd/pnDFZrb4hWd45wrsgA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz", + "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/type-utils": "8.3.0", + "@typescript-eslint/utils": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz", + "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/typescript-estree": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz", + "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz", + "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.3.0", + "@typescript-eslint/utils": "8.3.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz", + "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz", + "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@typescript-eslint/utils": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz", + "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/typescript-estree": "8.3.0" }, "engines": { - "node": ">= 8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz", + "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==", "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.3.0", + "eslint-visitor-keys": "^3.4.3" + }, "engines": { - "node": ">= 8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, "engines": { - "node": ">= 8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@vscode/vsce": { @@ -600,6 +1295,18 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", @@ -649,6 +1356,12 @@ "node": ">=4" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -726,6 +1439,18 @@ "concat-map": "0.0.1" } }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -904,6 +1629,12 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1040,6 +1771,15 @@ "node": ">=8" } }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -1147,6 +1887,45 @@ "node": ">= 0.4" } }, + "node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1215,6 +1994,48 @@ } } }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-scope": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", @@ -1409,6 +2230,40 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1451,6 +2306,18 @@ "node": ">=16.0.0" } }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -1581,18 +2448,6 @@ "node": ">=10.13.0" } }, - "node_modules/globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -1605,6 +2460,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -1834,6 +2695,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -1891,6 +2761,18 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonc-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", @@ -2088,6 +2970,12 @@ "node": ">=10" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/markdown-it": { "version": "12.3.2", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", @@ -2119,6 +3007,28 @@ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "dev": true }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -2182,7 +3092,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "optional": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2424,6 +3333,18 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/prebuild-install": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", @@ -2475,6 +3396,18 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -2788,6 +3721,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -2810,6 +3752,22 @@ "node": ">=4" } }, + "node_modules/synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -2855,6 +3813,87 @@ "node": ">=14.14" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tslib": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", @@ -2906,6 +3945,42 @@ "underscore": "^1.12.1" } }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.3.0.tgz", + "integrity": "sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.3.0", + "@typescript-eslint/parser": "8.3.0", + "@typescript-eslint/utils": "8.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -2949,6 +4024,12 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3026,6 +4107,15 @@ "buffer-crc32": "~0.2.3" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 7485ed2..6d64070 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yaml-embedded-languages", - "version": "1.0.1", + "version": "1.0.2", "displayName": "YAML Embedded Languages", "description": "Support for syntax highlighting within YAML block-scalars.", "icon": "images/icon.png", @@ -24,14 +24,93 @@ "activationEvents": [ "onStartupFinished" ], - "main": "extension.js", + "main": "dist/extension.js", "contributes": { "grammars": [ { - "path": "./syntaxes/injection.json", - "scopeName": "yaml-embedded-languages.injection", + "path": "./syntaxes/source.yaml.injection.tmLanguage.json", + "scopeName": "source.yaml.injection", + "injectTo": [ + "source.yaml" + ], + "embeddedLanguages": { + "meta.embedded.inline.bat": "bat", + "meta.embedded.inline.bibtex": "bibtex", + "meta.embedded.inline.c": "c", + "meta.embedded.inline.c#": "csharp", + "meta.embedded.inline.c\\+\\+": "cpp", + "meta.embedded.inline.clojure": "clojure", + "meta.embedded.inline.coffee": "coffeescript", + "meta.embedded.inline.cpp": "cpp", + "meta.embedded.inline.csharp": "csharp", + "meta.embedded.inline.css": "css", + "meta.embedded.inline.cuda": "cuda-cpp", + "meta.embedded.inline.dart": "dart", + "meta.embedded.inline.diff": "diff", + "meta.embedded.inline.dockercompose": "dockercompose", + "meta.embedded.inline.dockerfile": "dockerfile", + "meta.embedded.inline.f#": "fsharp", + "meta.embedded.inline.fsharp": "fsharp", + "meta.embedded.inline.go": "go", + "meta.embedded.inline.groovy": "groovy", + "meta.embedded.inline.handlebars": "handlebars", + "meta.embedded.inline.hlsl": "hlsl", + "meta.embedded.inline.html": "html", + "meta.embedded.inline.ini": "ini", + "meta.embedded.inline.jade": "jade", + "meta.embedded.inline.java": "java", + "meta.embedded.inline.javascript": "javascript", + "meta.embedded.inline.js": "javascript", + "meta.embedded.inline.json": "json", + "meta.embedded.inline.jsonc": "jsonc", + "meta.embedded.inline.jsonl": "jsonl", + "meta.embedded.inline.jsx": "javascriptreact", + "meta.embedded.inline.julia": "julia", + "meta.embedded.inline.latex": "latex", + "meta.embedded.inline.less": "less", + "meta.embedded.inline.log": "log", + "meta.embedded.inline.lua": "lua", + "meta.embedded.inline.make": "makefile", + "meta.embedded.inline.makefile": "makefile", + "meta.embedded.inline.markdown": "markdown", + "meta.embedded.inline.math": "markdown-math", + "meta.embedded.inline.objc": "objective-c", + "meta.embedded.inline.objcpp": "objective-cpp", + "meta.embedded.inline.perl": "perl", + "meta.embedded.inline.php": "php", + "meta.embedded.inline.pip": "pip-requirements", + "meta.embedded.inline.powerfx": "javascript", + "meta.embedded.inline.powershell": "powershell", + "meta.embedded.inline.properties": "properties", + "meta.embedded.inline.py": "python", + "meta.embedded.inline.python": "python", + "meta.embedded.inline.r": "r", + "meta.embedded.inline.raku": "raku", + "meta.embedded.inline.razor": "razor", + "meta.embedded.inline.regex": "regex", + "meta.embedded.inline.requirements": "pip-requirements", + "meta.embedded.inline.rst": "restructuredtext", + "meta.embedded.inline.ruby": "ruby", + "meta.embedded.inline.rust": "rust", + "meta.embedded.inline.scss": "scss", + "meta.embedded.inline.shaderlab": "shaderlab", + "meta.embedded.inline.shell": "shellscript", + "meta.embedded.inline.sql": "sql", + "meta.embedded.inline.swift": "swift", + "meta.embedded.inline.tex": "tex", + "meta.embedded.inline.ts": "typescript", + "meta.embedded.inline.tsx": "typescriptreact", + "meta.embedded.inline.typescript": "typescript", + "meta.embedded.inline.vb": "vb", + "meta.embedded.inline.xml": "xml", + "meta.embedded.inline.xsl": "xsl", + "meta.embedded.inline.yaml": "yaml" + } + }, + { + "path": "./syntaxes/source.github-actions-workflow.injection.tmLanguage.json", + "scopeName": "source.github-actions-workflow.injection", "injectTo": [ - "source.yaml", "source.github-actions-workflow" ], "embeddedLanguages": { @@ -144,16 +223,24 @@ }, "devDependencies": { "@eslint/js": "^9.9.0", + "@types/node": "~16.11", + "@types/vscode": "1.74.0", "@vscode/vsce": "^2.29.0", + "esbuild": "^0.23.1", "eslint": "^9.9.0", - "globals": "^15.9.0", - "prettier": "^3.3.3" + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "prettier": "^3.3.3", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.5.4", + "typescript-eslint": "^8.3.0" }, "scripts": { - "generate": "node extension.js -dev", - "lint:check": "eslint", - "lint:fix": "eslint --fix", - "format:check": "prettier . --check", - "format:fix": "prettier . --write" + "build": "tsc && esbuild dist/extension.js --bundle --platform=node --outfile=dist/extension.js --allow-overwrite --minify --external:vscode --external:../package.json --alias:@package=../package.json", + "generate": "ts-node -r tsconfig-paths/register src/generate.ts", + "lint": "eslint", + "format": "prettier . --check", + "type": "tsc --noEmit" } } \ No newline at end of file diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..0c58e34 --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,154 @@ +import packageJson from "@package"; + +export const SUB_INCLUDE_CONFIG = "include"; +export const INCLUDE_CONFIG = `${packageJson.name}.${SUB_INCLUDE_CONFIG}`; +export const VERSION_STATE = "version"; + +export type Languages = { + [key: string]: { + name: string; + scopeName: string; + stripIndent: boolean; + }; +}; + +/* eslint sort-keys: ["error", "asc"] */ +export const LANGUAGES = { + bat: "source.batchfile", + bibtex: "text.bibtex", + c: "source.c", + "c#": { + name: "csharp", + scopeName: "source.cs", + }, + "c\\+\\+": { + name: "cpp", + scopeName: "source.cpp", + }, + clojure: "source.clojure", + coffee: { + name: "coffeescript", + scopeName: "source.coffee", + }, + cpp: "source.cpp", + csharp: "source.cs", + css: "source.css", + cuda: { + name: "cuda-cpp", + scopeName: "source.cuda-cpp", + }, + dart: "source.dart", + diff: { + scopeName: "source.diff", + stripIndent: true, + }, + dockercompose: "source.yaml", + dockerfile: "source.dockerfile", + "f#": { + name: "fsharp", + scopeName: "source.fsharp", + }, + fsharp: "source.fsharp", + go: "source.go", + groovy: "source.groovy", + handlebars: "text.html.handlebars", + hlsl: "source.hlsl", + html: "text.html.derivative", + ini: "source.ini", + jade: "text.pug", + java: "source.java", + javascript: "source.js", + js: { + name: "javascript", + scopeName: "source.js", + }, + json: "source.json", + jsonc: "source.json.comments", + jsonl: "source.json.lines", + jsx: { + name: "javascriptreact", + scopeName: "source.js.jsx", + }, + julia: "source.julia", + latex: { + scopeName: "text.tex.latex", + stripIndent: true, + }, + less: "source.css.less", + log: "text.log", + lua: "source.lua", + make: { + name: "makefile", + scopeName: "source.makefile", + }, + makefile: "source.makefile", + markdown: { + scopeName: "text.html.markdown", + stripIndent: true, + }, + math: { + name: "markdown-math", + scopeName: "text.html.markdown.math", + }, + objc: { + name: "objective-c", + scopeName: "source.objc", + }, + objcpp: { + name: "objective-cpp", + scopeName: "source.objcpp", + }, + perl: "source.perl", + php: "text.html.php", + pip: { + name: "pip-requirements", + scopeName: "source.pip-requirements", + }, + powerfx: { + name: "javascript", + scopeName: "source.js", + }, + powershell: "source.powershell", + properties: "source.ini", + py: { + name: "python", + scopeName: "source.python", + }, + python: "source.python", + r: "source.r", + raku: "source.perl.6", + razor: "text.html.cshtml", + regex: "source.js.regexp", + requirements: { + name: "pip-requirements", + scopeName: "source.pip-requirements", + }, + rst: { + name: "restructuredtext", + scopeName: "source.rst", + }, + ruby: "source.ruby", + rust: "source.rust", + scss: "source.css.scss", + shaderlab: "source.shaderlab", + shell: { + name: "shellscript", + scopeName: "source.shell", + }, + sql: "source.sql", + swift: "source.swift", + tex: "text.tex", + ts: { + name: "typescript", + scopeName: "source.ts", + }, + tsx: { + name: "typescriptreact", + scopeName: "source.tsx", + }, + typescript: "source.ts", + vb: "source.asp.vb.net", + xml: "text.xml", + xsl: "text.xml.xsl", + yaml: "source.yaml", +}; diff --git a/src/extension.ts b/src/extension.ts new file mode 100644 index 0000000..f9d720e --- /dev/null +++ b/src/extension.ts @@ -0,0 +1,47 @@ +import vscode from "vscode"; +import packageJson from "@package"; +import { + INCLUDE_CONFIG, + LANGUAGES, + SUB_INCLUDE_CONFIG, + VERSION_STATE, +} from "./constants"; +import { generateFiles } from "./generate"; + +const updateExtension = () => { + const settings = vscode.workspace.getConfiguration(packageJson.name); + const includeLanguages = settings[SUB_INCLUDE_CONFIG]; + const allLanguages = { ...LANGUAGES, ...includeLanguages }; + + const filesChanged = generateFiles(allLanguages); + + if (filesChanged) { + const message = `Reload window to allow changes to take effect?`; + const items = ["Yes", "No"]; + vscode.window.showInformationMessage(message, ...items).then((item) => { + if (item === items[0]) { + vscode.commands.executeCommand("workbench.action.reloadWindow"); + } + }); + } +}; + +export const activate = (context: vscode.ExtensionContext) => { + const currentVersion = packageJson.version; + const previousVersion = context.globalState.get(VERSION_STATE); + + if (previousVersion !== currentVersion) { + updateExtension(); + context.globalState.update(VERSION_STATE, currentVersion); + } + + const disposable = vscode.workspace.onDidChangeConfiguration((event) => { + if (event.affectsConfiguration(INCLUDE_CONFIG)) { + updateExtension(); + } + }); + + context.subscriptions.push(disposable); +}; + +export const deactivate = () => {}; diff --git a/src/generate.ts b/src/generate.ts new file mode 100644 index 0000000..d444e2c --- /dev/null +++ b/src/generate.ts @@ -0,0 +1,45 @@ +import { LANGUAGES, Languages } from "./constants"; +import { InjectionGrammar } from "./injection-grammar"; +import { Package } from "./package"; +import { hasKey, isBoolean, isObject, isString } from "./utils"; + +const parseLanguages = (languages: { [key: string]: unknown }): Languages => { + const parsedLanguages: Languages = {}; + for (const id in languages) { + let language = languages[id]; + if (isString(language)) { + language = { scopeName: language }; + } + + if (isObject(language)) { + if (!hasKey(language, "scopeName", isString)) { + continue; + } + + parsedLanguages[id] = { + name: hasKey(language, "name", isString) ? language.name : id, + scopeName: language.scopeName, + stripIndent: hasKey(language, "stripIndent", isBoolean) + ? language.stripIndent + : false, + }; + } + } + return parsedLanguages; +}; + +export const generateFiles = (languages = LANGUAGES) => { + const parsedLanguages = parseLanguages(languages); + const grammars = [ + new InjectionGrammar("source.yaml", parsedLanguages), + new InjectionGrammar("source.github-actions-workflow", parsedLanguages), + ]; + + const writables = [new Package(grammars), ...grammars]; + + return writables.map((writable) => writable.write()).some(Boolean); +}; + +if (require.main === module) { + generateFiles(); +} diff --git a/src/injection-grammar.ts b/src/injection-grammar.ts new file mode 100644 index 0000000..e3879c0 --- /dev/null +++ b/src/injection-grammar.ts @@ -0,0 +1,58 @@ +import { Languages } from "./constants"; +import { Writable } from "./writable"; + +export class InjectionGrammar extends Writable { + embeddedScopeNamePrefix = "meta.embedded.inline"; + scopeName; + injectionScopeName; + languages; + + constructor(injectionScopeName: string, languages: Languages) { + super(`./syntaxes/${injectionScopeName}.injection.tmLanguage.json`); + this.scopeName = `${injectionScopeName}.injection`; + this.injectionScopeName = injectionScopeName; + this.languages = languages; + } + + #getPatterns() { + const entries = Object.entries(this.languages); + return entries.map(([id, { scopeName, stripIndent }]) => ({ + begin: `(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:${id})\\s*\\n)`, + beginCaptures: { + 1: { + name: "keyword.control.flow.block-scalar.literal.yaml", + }, + 2: { + name: "keyword.control.flow.block-scalar.folded.yaml", + }, + 3: { + name: "constant.numeric.indentation-indicator.yaml", + }, + 4: { + name: "storage.modifier.chomping-indicator.yaml", + }, + 5: { + name: "entity.name.type.yaml", + }, + }, + end: "^(?=\\S)|(?!\\G)", + patterns: [ + { + begin: "(?>^|\\G)([ ]+)(?! )", + end: "^(?!\\1|\\s*$)", + while: stripIndent ? "^$|\\1" : undefined, + name: `${this.embeddedScopeNamePrefix}.${id}`, + patterns: [{ include: scopeName }], + }, + ], + })); + } + + valueOf() { + return { + scopeName: this.scopeName, + injectionSelector: `L:${this.injectionScopeName}`, + patterns: this.#getPatterns(), + }; + } +} diff --git a/src/package.ts b/src/package.ts new file mode 100644 index 0000000..b133507 --- /dev/null +++ b/src/package.ts @@ -0,0 +1,37 @@ +import packageJson from "@package"; +import { InjectionGrammar } from "./injection-grammar"; +import { Writable } from "./writable"; + +export class Package extends Writable { + #injectionGrammars; + constructor(injectionGrammars: InjectionGrammar[]) { + super(`package.json`); + this.#injectionGrammars = injectionGrammars; + } + + #getEmbeddedLanguages(injectionGrammar: InjectionGrammar) { + const languages = injectionGrammar.languages; + const ids = Object.keys(languages); + return Object.fromEntries( + ids.map((id) => [ + `${injectionGrammar.embeddedScopeNamePrefix}.${id}`, + languages[id].name, + ]), + ); + } + + valueOf() { + return { + ...packageJson, + contributes: { + ...packageJson.contributes, + grammars: this.#injectionGrammars.map((injectionGrammar) => ({ + path: injectionGrammar.path, + scopeName: injectionGrammar.scopeName, + injectTo: [injectionGrammar.injectionScopeName], + embeddedLanguages: this.#getEmbeddedLanguages(injectionGrammar), + })), + }, + }; + } +} diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..55be4f4 --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,28 @@ +export function isObject(value: unknown): value is object { + return typeof value === "object" && value !== null; +} + +export function isString(value: unknown): value is string { + return typeof value === "string"; +} + +export function isBoolean(value: unknown): value is boolean { + return typeof value === "boolean"; +} + +type Index = string | number | symbol; + +function _hasKey( + obj: object, + key: K, +): obj is { [P in K]: unknown } { + return key in obj; +} + +export function hasKey( + obj: object, + key: K, + isType: (value: unknown) => value is T, +): obj is { [P in K]: T } { + return _hasKey(obj, key) && isType(obj[key]); +} diff --git a/src/writable.ts b/src/writable.ts new file mode 100644 index 0000000..15acbb6 --- /dev/null +++ b/src/writable.ts @@ -0,0 +1,36 @@ +import fs from "fs"; + +export class Writable { + path; + #absolutePath; + + constructor(path: string) { + this.path = path; + this.#absolutePath = `${__dirname}/../${path}`; + } + + write() { + const data = JSON.stringify(this.valueOf(), null, 2); + let fileData; + + try { + fileData = fs.readFileSync(this.#absolutePath).toString(); + } catch { + fileData = null; + } + + if (fileData === data) { + return false; + } + + try { + fs.writeFileSync(this.#absolutePath, data); + } catch (err) { + console.error(err); + return false; + } + + console.log(`File '${this.#absolutePath}' saved.`); + return true; + } +} diff --git a/syntaxes/injection.json b/syntaxes/source.github-actions-workflow.injection.tmLanguage.json similarity index 91% rename from syntaxes/injection.json rename to syntaxes/source.github-actions-workflow.injection.tmLanguage.json index 567c519..4af0b6b 100644 --- a/syntaxes/injection.json +++ b/syntaxes/source.github-actions-workflow.injection.tmLanguage.json @@ -1,223 +1,8 @@ { - "scopeName": "yaml-embedded-languages.injection", - "injectionSelector": "L:source.yaml,L:source.github-actions-workflow", + "scopeName": "source.github-actions-workflow.injection", + "injectionSelector": "L:source.github-actions-workflow", "patterns": [ { - "include": "#bat-block-scalar" - }, - { - "include": "#bibtex-block-scalar" - }, - { - "include": "#c-block-scalar" - }, - { - "include": "#c#-block-scalar" - }, - { - "include": "#c\\+\\+-block-scalar" - }, - { - "include": "#clojure-block-scalar" - }, - { - "include": "#coffee-block-scalar" - }, - { - "include": "#cpp-block-scalar" - }, - { - "include": "#csharp-block-scalar" - }, - { - "include": "#css-block-scalar" - }, - { - "include": "#cuda-block-scalar" - }, - { - "include": "#dart-block-scalar" - }, - { - "include": "#diff-block-scalar" - }, - { - "include": "#dockercompose-block-scalar" - }, - { - "include": "#dockerfile-block-scalar" - }, - { - "include": "#f#-block-scalar" - }, - { - "include": "#fsharp-block-scalar" - }, - { - "include": "#go-block-scalar" - }, - { - "include": "#groovy-block-scalar" - }, - { - "include": "#handlebars-block-scalar" - }, - { - "include": "#hlsl-block-scalar" - }, - { - "include": "#html-block-scalar" - }, - { - "include": "#ini-block-scalar" - }, - { - "include": "#jade-block-scalar" - }, - { - "include": "#java-block-scalar" - }, - { - "include": "#javascript-block-scalar" - }, - { - "include": "#js-block-scalar" - }, - { - "include": "#json-block-scalar" - }, - { - "include": "#jsonc-block-scalar" - }, - { - "include": "#jsonl-block-scalar" - }, - { - "include": "#jsx-block-scalar" - }, - { - "include": "#julia-block-scalar" - }, - { - "include": "#latex-block-scalar" - }, - { - "include": "#less-block-scalar" - }, - { - "include": "#log-block-scalar" - }, - { - "include": "#lua-block-scalar" - }, - { - "include": "#make-block-scalar" - }, - { - "include": "#makefile-block-scalar" - }, - { - "include": "#markdown-block-scalar" - }, - { - "include": "#math-block-scalar" - }, - { - "include": "#objc-block-scalar" - }, - { - "include": "#objcpp-block-scalar" - }, - { - "include": "#perl-block-scalar" - }, - { - "include": "#php-block-scalar" - }, - { - "include": "#pip-block-scalar" - }, - { - "include": "#powerfx-block-scalar" - }, - { - "include": "#powershell-block-scalar" - }, - { - "include": "#properties-block-scalar" - }, - { - "include": "#py-block-scalar" - }, - { - "include": "#python-block-scalar" - }, - { - "include": "#r-block-scalar" - }, - { - "include": "#raku-block-scalar" - }, - { - "include": "#razor-block-scalar" - }, - { - "include": "#regex-block-scalar" - }, - { - "include": "#requirements-block-scalar" - }, - { - "include": "#rst-block-scalar" - }, - { - "include": "#ruby-block-scalar" - }, - { - "include": "#rust-block-scalar" - }, - { - "include": "#scss-block-scalar" - }, - { - "include": "#shaderlab-block-scalar" - }, - { - "include": "#shell-block-scalar" - }, - { - "include": "#sql-block-scalar" - }, - { - "include": "#swift-block-scalar" - }, - { - "include": "#tex-block-scalar" - }, - { - "include": "#ts-block-scalar" - }, - { - "include": "#tsx-block-scalar" - }, - { - "include": "#typescript-block-scalar" - }, - { - "include": "#vb-block-scalar" - }, - { - "include": "#xml-block-scalar" - }, - { - "include": "#xsl-block-scalar" - }, - { - "include": "#yaml-block-scalar" - } - ], - "repository": { - "bat-block-scalar": { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:bat)\\s*\\n)", "beginCaptures": { "1": { @@ -250,7 +35,7 @@ } ] }, - "bibtex-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:bibtex)\\s*\\n)", "beginCaptures": { "1": { @@ -283,7 +68,7 @@ } ] }, - "c-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:c)\\s*\\n)", "beginCaptures": { "1": { @@ -316,7 +101,7 @@ } ] }, - "c#-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:c#)\\s*\\n)", "beginCaptures": { "1": { @@ -349,7 +134,7 @@ } ] }, - "c\\+\\+-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:c\\+\\+)\\s*\\n)", "beginCaptures": { "1": { @@ -382,7 +167,7 @@ } ] }, - "clojure-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:clojure)\\s*\\n)", "beginCaptures": { "1": { @@ -415,7 +200,7 @@ } ] }, - "coffee-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:coffee)\\s*\\n)", "beginCaptures": { "1": { @@ -448,7 +233,7 @@ } ] }, - "cpp-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:cpp)\\s*\\n)", "beginCaptures": { "1": { @@ -481,7 +266,7 @@ } ] }, - "csharp-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:csharp)\\s*\\n)", "beginCaptures": { "1": { @@ -514,7 +299,7 @@ } ] }, - "css-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:css)\\s*\\n)", "beginCaptures": { "1": { @@ -547,7 +332,7 @@ } ] }, - "cuda-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:cuda)\\s*\\n)", "beginCaptures": { "1": { @@ -580,7 +365,7 @@ } ] }, - "dart-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:dart)\\s*\\n)", "beginCaptures": { "1": { @@ -613,7 +398,7 @@ } ] }, - "diff-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:diff)\\s*\\n)", "beginCaptures": { "1": { @@ -647,7 +432,7 @@ } ] }, - "dockercompose-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:dockercompose)\\s*\\n)", "beginCaptures": { "1": { @@ -680,7 +465,7 @@ } ] }, - "dockerfile-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:dockerfile)\\s*\\n)", "beginCaptures": { "1": { @@ -713,7 +498,7 @@ } ] }, - "f#-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:f#)\\s*\\n)", "beginCaptures": { "1": { @@ -746,7 +531,7 @@ } ] }, - "fsharp-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:fsharp)\\s*\\n)", "beginCaptures": { "1": { @@ -779,7 +564,7 @@ } ] }, - "go-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:go)\\s*\\n)", "beginCaptures": { "1": { @@ -812,7 +597,7 @@ } ] }, - "groovy-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:groovy)\\s*\\n)", "beginCaptures": { "1": { @@ -845,7 +630,7 @@ } ] }, - "handlebars-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:handlebars)\\s*\\n)", "beginCaptures": { "1": { @@ -878,7 +663,7 @@ } ] }, - "hlsl-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:hlsl)\\s*\\n)", "beginCaptures": { "1": { @@ -911,7 +696,7 @@ } ] }, - "html-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:html)\\s*\\n)", "beginCaptures": { "1": { @@ -944,7 +729,7 @@ } ] }, - "ini-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:ini)\\s*\\n)", "beginCaptures": { "1": { @@ -977,7 +762,7 @@ } ] }, - "jade-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:jade)\\s*\\n)", "beginCaptures": { "1": { @@ -1010,7 +795,7 @@ } ] }, - "java-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:java)\\s*\\n)", "beginCaptures": { "1": { @@ -1043,7 +828,7 @@ } ] }, - "javascript-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:javascript)\\s*\\n)", "beginCaptures": { "1": { @@ -1076,7 +861,7 @@ } ] }, - "js-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:js)\\s*\\n)", "beginCaptures": { "1": { @@ -1109,7 +894,7 @@ } ] }, - "json-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:json)\\s*\\n)", "beginCaptures": { "1": { @@ -1142,7 +927,7 @@ } ] }, - "jsonc-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:jsonc)\\s*\\n)", "beginCaptures": { "1": { @@ -1175,7 +960,7 @@ } ] }, - "jsonl-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:jsonl)\\s*\\n)", "beginCaptures": { "1": { @@ -1208,7 +993,7 @@ } ] }, - "jsx-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:jsx)\\s*\\n)", "beginCaptures": { "1": { @@ -1241,7 +1026,7 @@ } ] }, - "julia-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:julia)\\s*\\n)", "beginCaptures": { "1": { @@ -1274,7 +1059,7 @@ } ] }, - "latex-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:latex)\\s*\\n)", "beginCaptures": { "1": { @@ -1308,7 +1093,7 @@ } ] }, - "less-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:less)\\s*\\n)", "beginCaptures": { "1": { @@ -1341,7 +1126,7 @@ } ] }, - "log-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:log)\\s*\\n)", "beginCaptures": { "1": { @@ -1374,7 +1159,7 @@ } ] }, - "lua-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:lua)\\s*\\n)", "beginCaptures": { "1": { @@ -1407,7 +1192,7 @@ } ] }, - "make-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:make)\\s*\\n)", "beginCaptures": { "1": { @@ -1440,7 +1225,7 @@ } ] }, - "makefile-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:makefile)\\s*\\n)", "beginCaptures": { "1": { @@ -1473,7 +1258,7 @@ } ] }, - "markdown-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:markdown)\\s*\\n)", "beginCaptures": { "1": { @@ -1507,7 +1292,7 @@ } ] }, - "math-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:math)\\s*\\n)", "beginCaptures": { "1": { @@ -1540,7 +1325,7 @@ } ] }, - "objc-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:objc)\\s*\\n)", "beginCaptures": { "1": { @@ -1573,7 +1358,7 @@ } ] }, - "objcpp-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:objcpp)\\s*\\n)", "beginCaptures": { "1": { @@ -1606,7 +1391,7 @@ } ] }, - "perl-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:perl)\\s*\\n)", "beginCaptures": { "1": { @@ -1639,7 +1424,7 @@ } ] }, - "php-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:php)\\s*\\n)", "beginCaptures": { "1": { @@ -1672,7 +1457,7 @@ } ] }, - "pip-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:pip)\\s*\\n)", "beginCaptures": { "1": { @@ -1705,7 +1490,7 @@ } ] }, - "powerfx-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:powerfx)\\s*\\n)", "beginCaptures": { "1": { @@ -1738,7 +1523,7 @@ } ] }, - "powershell-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:powershell)\\s*\\n)", "beginCaptures": { "1": { @@ -1771,7 +1556,7 @@ } ] }, - "properties-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:properties)\\s*\\n)", "beginCaptures": { "1": { @@ -1804,7 +1589,7 @@ } ] }, - "py-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:py)\\s*\\n)", "beginCaptures": { "1": { @@ -1837,7 +1622,7 @@ } ] }, - "python-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:python)\\s*\\n)", "beginCaptures": { "1": { @@ -1870,7 +1655,7 @@ } ] }, - "r-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:r)\\s*\\n)", "beginCaptures": { "1": { @@ -1903,7 +1688,7 @@ } ] }, - "raku-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:raku)\\s*\\n)", "beginCaptures": { "1": { @@ -1936,7 +1721,7 @@ } ] }, - "razor-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:razor)\\s*\\n)", "beginCaptures": { "1": { @@ -1969,7 +1754,7 @@ } ] }, - "regex-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:regex)\\s*\\n)", "beginCaptures": { "1": { @@ -2002,7 +1787,7 @@ } ] }, - "requirements-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:requirements)\\s*\\n)", "beginCaptures": { "1": { @@ -2035,7 +1820,7 @@ } ] }, - "rst-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:rst)\\s*\\n)", "beginCaptures": { "1": { @@ -2068,7 +1853,7 @@ } ] }, - "ruby-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:ruby)\\s*\\n)", "beginCaptures": { "1": { @@ -2101,7 +1886,7 @@ } ] }, - "rust-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:rust)\\s*\\n)", "beginCaptures": { "1": { @@ -2134,7 +1919,7 @@ } ] }, - "scss-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:scss)\\s*\\n)", "beginCaptures": { "1": { @@ -2167,7 +1952,7 @@ } ] }, - "shaderlab-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:shaderlab)\\s*\\n)", "beginCaptures": { "1": { @@ -2200,7 +1985,7 @@ } ] }, - "shell-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:shell)\\s*\\n)", "beginCaptures": { "1": { @@ -2233,7 +2018,7 @@ } ] }, - "sql-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:sql)\\s*\\n)", "beginCaptures": { "1": { @@ -2266,7 +2051,7 @@ } ] }, - "swift-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:swift)\\s*\\n)", "beginCaptures": { "1": { @@ -2299,7 +2084,7 @@ } ] }, - "tex-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:tex)\\s*\\n)", "beginCaptures": { "1": { @@ -2332,7 +2117,7 @@ } ] }, - "ts-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:ts)\\s*\\n)", "beginCaptures": { "1": { @@ -2365,7 +2150,7 @@ } ] }, - "tsx-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:tsx)\\s*\\n)", "beginCaptures": { "1": { @@ -2398,7 +2183,7 @@ } ] }, - "typescript-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:typescript)\\s*\\n)", "beginCaptures": { "1": { @@ -2431,7 +2216,7 @@ } ] }, - "vb-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:vb)\\s*\\n)", "beginCaptures": { "1": { @@ -2464,7 +2249,7 @@ } ] }, - "xml-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:xml)\\s*\\n)", "beginCaptures": { "1": { @@ -2497,7 +2282,7 @@ } ] }, - "xsl-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:xsl)\\s*\\n)", "beginCaptures": { "1": { @@ -2530,7 +2315,7 @@ } ] }, - "yaml-block-scalar": { + { "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:yaml)\\s*\\n)", "beginCaptures": { "1": { @@ -2563,5 +2348,5 @@ } ] } - } + ] } \ No newline at end of file diff --git a/syntaxes/source.yaml.injection.tmLanguage.json b/syntaxes/source.yaml.injection.tmLanguage.json new file mode 100644 index 0000000..16742d5 --- /dev/null +++ b/syntaxes/source.yaml.injection.tmLanguage.json @@ -0,0 +1,2352 @@ +{ + "scopeName": "source.yaml.injection", + "injectionSelector": "L:source.yaml", + "patterns": [ + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:bat)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.bat", + "patterns": [ + { + "include": "source.batchfile" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:bibtex)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.bibtex", + "patterns": [ + { + "include": "text.bibtex" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:c)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.c", + "patterns": [ + { + "include": "source.c" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:c#)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.c#", + "patterns": [ + { + "include": "source.cs" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:c\\+\\+)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.c\\+\\+", + "patterns": [ + { + "include": "source.cpp" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:clojure)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.clojure", + "patterns": [ + { + "include": "source.clojure" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:coffee)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.coffee", + "patterns": [ + { + "include": "source.coffee" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:cpp)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.cpp", + "patterns": [ + { + "include": "source.cpp" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:csharp)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.csharp", + "patterns": [ + { + "include": "source.cs" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:css)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:cuda)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.cuda", + "patterns": [ + { + "include": "source.cuda-cpp" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:dart)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.dart", + "patterns": [ + { + "include": "source.dart" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:diff)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "while": "^$|\\1", + "name": "meta.embedded.inline.diff", + "patterns": [ + { + "include": "source.diff" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:dockercompose)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.dockercompose", + "patterns": [ + { + "include": "source.yaml" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:dockerfile)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.dockerfile", + "patterns": [ + { + "include": "source.dockerfile" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:f#)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.f#", + "patterns": [ + { + "include": "source.fsharp" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:fsharp)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.fsharp", + "patterns": [ + { + "include": "source.fsharp" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:go)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.go", + "patterns": [ + { + "include": "source.go" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:groovy)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.groovy", + "patterns": [ + { + "include": "source.groovy" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:handlebars)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.handlebars", + "patterns": [ + { + "include": "text.html.handlebars" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:hlsl)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.hlsl", + "patterns": [ + { + "include": "source.hlsl" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:html)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.html", + "patterns": [ + { + "include": "text.html.derivative" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:ini)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.ini", + "patterns": [ + { + "include": "source.ini" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:jade)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.jade", + "patterns": [ + { + "include": "text.pug" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:java)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.java", + "patterns": [ + { + "include": "source.java" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:javascript)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.javascript", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:js)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:json)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.json", + "patterns": [ + { + "include": "source.json" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:jsonc)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.jsonc", + "patterns": [ + { + "include": "source.json.comments" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:jsonl)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.jsonl", + "patterns": [ + { + "include": "source.json.lines" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:jsx)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.jsx", + "patterns": [ + { + "include": "source.js.jsx" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:julia)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.julia", + "patterns": [ + { + "include": "source.julia" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:latex)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "while": "^$|\\1", + "name": "meta.embedded.inline.latex", + "patterns": [ + { + "include": "text.tex.latex" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:less)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.less", + "patterns": [ + { + "include": "source.css.less" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:log)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.log", + "patterns": [ + { + "include": "text.log" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:lua)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.lua", + "patterns": [ + { + "include": "source.lua" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:make)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.make", + "patterns": [ + { + "include": "source.makefile" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:makefile)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.makefile", + "patterns": [ + { + "include": "source.makefile" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:markdown)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "while": "^$|\\1", + "name": "meta.embedded.inline.markdown", + "patterns": [ + { + "include": "text.html.markdown" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:math)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.math", + "patterns": [ + { + "include": "text.html.markdown.math" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:objc)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.objc", + "patterns": [ + { + "include": "source.objc" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:objcpp)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.objcpp", + "patterns": [ + { + "include": "source.objcpp" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:perl)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.perl", + "patterns": [ + { + "include": "source.perl" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:php)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.php", + "patterns": [ + { + "include": "text.html.php" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:pip)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.pip", + "patterns": [ + { + "include": "source.pip-requirements" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:powerfx)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.powerfx", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:powershell)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.powershell", + "patterns": [ + { + "include": "source.powershell" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:properties)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.properties", + "patterns": [ + { + "include": "source.ini" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:py)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.py", + "patterns": [ + { + "include": "source.python" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:python)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.python", + "patterns": [ + { + "include": "source.python" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:r)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.r", + "patterns": [ + { + "include": "source.r" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:raku)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.raku", + "patterns": [ + { + "include": "source.perl.6" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:razor)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.razor", + "patterns": [ + { + "include": "text.html.cshtml" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:regex)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.regex", + "patterns": [ + { + "include": "source.js.regexp" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:requirements)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.requirements", + "patterns": [ + { + "include": "source.pip-requirements" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:rst)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.rst", + "patterns": [ + { + "include": "source.rst" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:ruby)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.ruby", + "patterns": [ + { + "include": "source.ruby" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:rust)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.rust", + "patterns": [ + { + "include": "source.rust" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:scss)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.scss", + "patterns": [ + { + "include": "source.css.scss" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:shaderlab)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.shaderlab", + "patterns": [ + { + "include": "source.shaderlab" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:shell)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.shell", + "patterns": [ + { + "include": "source.shell" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:sql)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.sql", + "patterns": [ + { + "include": "source.sql" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:swift)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.swift", + "patterns": [ + { + "include": "source.swift" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:tex)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.tex", + "patterns": [ + { + "include": "text.tex" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:ts)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:tsx)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.tsx", + "patterns": [ + { + "include": "source.tsx" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:typescript)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.typescript", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:vb)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.vb", + "patterns": [ + { + "include": "source.asp.vb.net" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:xml)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.xml", + "patterns": [ + { + "include": "text.xml" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:xsl)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.xsl", + "patterns": [ + { + "include": "text.xml.xsl" + } + ] + } + ] + }, + { + "begin": "(?i)(?:(\\|)|(>))([1-9])?([-+])?\\s+(#\\s*(?:yaml)\\s*\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "name": "entity.name.type.yaml" + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "(?>^|\\G)([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "meta.embedded.inline.yaml", + "patterns": [ + { + "include": "source.yaml" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..ede3916 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "ES2020", + "lib": ["ES2020"], // Exclude DOM globals + "sourceMap": true, + "rootDir": "src", + "outDir": "dist", + "resolveJsonModule": true, + "strict": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "paths": { + "@package": ["./package.json"] + } + }, + "include": ["src/**/*"] +}