mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 15:05:39 +01:00
Merge branch 'main' into mdx
This commit is contained in:
commit
ef3a98e0a2
18 changed files with 4711 additions and 579 deletions
23
CHANGELOG.md
23
CHANGELOG.md
|
|
@ -1,5 +1,28 @@
|
||||||
# Monaco Editor Changelog
|
# Monaco Editor Changelog
|
||||||
|
|
||||||
|
## [0.37.1]
|
||||||
|
|
||||||
|
- Fixes Inline Completions feature
|
||||||
|
|
||||||
|
## [0.37.0]
|
||||||
|
|
||||||
|
- New `registerLinkOpener` API
|
||||||
|
- New `onLanguageEncountered` event for when a language is encountered during tokenization.
|
||||||
|
- Updated TypeScript to 5.0
|
||||||
|
- New required field `canFormatMultipleRanges` on `DocumentRangeFormattingEditProvider`
|
||||||
|
- Bugfixes
|
||||||
|
|
||||||
|
Contributions to `monaco-editor`:
|
||||||
|
|
||||||
|
- [@danboo (Dan Boorstein)](https://github.com/danboo): add perl module (.pm) extension [PR #3258](https://github.com/microsoft/monaco-editor/pull/3258)
|
||||||
|
- [@miloush (Jan Kučera)](https://github.com/miloush): Include .xsd and .xslt as an XML extension [PR #3866](https://github.com/microsoft/monaco-editor/pull/3866)
|
||||||
|
- [@nnnnoel (Noel Kim (김민혁))](https://github.com/nnnnoel): Add CommonJS, ESM extension for TS [PR #3264](https://github.com/microsoft/monaco-editor/pull/3264)
|
||||||
|
- [@PmcFizz (Fizz)](https://github.com/PmcFizz): opt example [PR #3726](https://github.com/microsoft/monaco-editor/pull/3726)
|
||||||
|
- [@tamayika](https://github.com/tamayika)
|
||||||
|
- Fix playground samples type errors and add CI test [PR #3722](https://github.com/microsoft/monaco-editor/pull/3722)
|
||||||
|
- Add custom keybinding example [PR #3848](https://github.com/microsoft/monaco-editor/pull/3848)
|
||||||
|
- [@yuri1969 (yuri)](https://github.com/yuri1969): Various YAML improvements [PR #3864](https://github.com/microsoft/monaco-editor/pull/3864)
|
||||||
|
|
||||||
## [0.36.1]
|
## [0.36.1]
|
||||||
|
|
||||||
- Marks unneeded dependencies as dev dependencies.
|
- Marks unneeded dependencies as dev dependencies.
|
||||||
|
|
|
||||||
520
package-lock.json
generated
520
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "monaco-editor",
|
"name": "monaco-editor",
|
||||||
"version": "0.36.1",
|
"version": "0.37.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "monaco-editor",
|
"name": "monaco-editor",
|
||||||
"version": "0.36.1",
|
"version": "0.37.0",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
@ -25,10 +25,10 @@
|
||||||
"jsdom": "^19.0.0",
|
"jsdom": "^19.0.0",
|
||||||
"jsonc-parser": "^3.0.0",
|
"jsonc-parser": "^3.0.0",
|
||||||
"mocha": "^9.2.0",
|
"mocha": "^9.2.0",
|
||||||
"monaco-editor-core": "^0.36.0-dev.20230224",
|
"monaco-editor-core": "^0.37.0-dev.20230403",
|
||||||
"parcel": "^2.7.0",
|
"parcel": "^2.7.0",
|
||||||
"pin-github-action": "^1.8.0",
|
"pin-github-action": "^1.8.0",
|
||||||
"playwright": "^1.18.1",
|
"playwright": "^1.32.2",
|
||||||
"prettier": "^2.5.1",
|
"prettier": "^2.5.1",
|
||||||
"pretty-quick": "^3.1.3",
|
"pretty-quick": "^3.1.3",
|
||||||
"requirejs": "^2.3.6",
|
"requirejs": "^2.3.6",
|
||||||
|
|
@ -1842,16 +1842,6 @@
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/yauzl": {
|
|
||||||
"version": "2.9.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
|
|
||||||
"integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@types/node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@typescript/vfs": {
|
"node_modules/@typescript/vfs": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.3.5.tgz",
|
||||||
|
|
@ -2360,15 +2350,6 @@
|
||||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/buffer-crc32": {
|
|
||||||
"version": "0.2.13",
|
|
||||||
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
|
||||||
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/buffer-from": {
|
"node_modules/buffer-from": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||||
|
|
@ -2578,15 +2559,6 @@
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/commander": {
|
|
||||||
"version": "8.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
|
|
||||||
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 12"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/concat-map": {
|
"node_modules/concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
|
|
@ -3828,26 +3800,6 @@
|
||||||
"url": "https://github.com/sindresorhus/execa?sponsor=1"
|
"url": "https://github.com/sindresorhus/execa?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/extract-zip": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"debug": "^4.1.1",
|
|
||||||
"get-stream": "^5.1.0",
|
|
||||||
"yauzl": "^2.10.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"extract-zip": "cli.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 10.17.0"
|
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"@types/yauzl": "^2.9.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/fast-deep-equal": {
|
"node_modules/fast-deep-equal": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||||
|
|
@ -3866,15 +3818,6 @@
|
||||||
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/fd-slicer": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
|
|
||||||
"integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"pend": "~1.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/file-loader": {
|
"node_modules/file-loader": {
|
||||||
"version": "6.2.0",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
|
||||||
|
|
@ -4414,12 +4357,6 @@
|
||||||
"node": ">= 0.10"
|
"node": ">= 0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ip": {
|
|
||||||
"version": "1.1.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
|
||||||
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/is-arrayish": {
|
"node_modules/is-arrayish": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
||||||
|
|
@ -4563,12 +4500,6 @@
|
||||||
"node": ">= 10.13.0"
|
"node": ">= 10.13.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jpeg-js": {
|
|
||||||
"version": "0.4.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
|
|
||||||
"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/js-tokens": {
|
"node_modules/js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
|
|
@ -5010,18 +4941,6 @@
|
||||||
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
|
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/mime": {
|
|
||||||
"version": "2.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
|
|
||||||
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
|
|
||||||
"dev": true,
|
|
||||||
"bin": {
|
|
||||||
"mime": "cli.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mime-db": {
|
"node_modules/mime-db": {
|
||||||
"version": "1.51.0",
|
"version": "1.51.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
|
||||||
|
|
@ -5170,9 +5089,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/monaco-editor-core": {
|
"node_modules/monaco-editor-core": {
|
||||||
"version": "0.36.0-dev.20230224",
|
"version": "0.37.0-dev.20230403",
|
||||||
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.36.0-dev.20230224.tgz",
|
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.37.0-dev.20230403.tgz",
|
||||||
"integrity": "sha512-ubH2YoU86gNvO/lG4Un62ZGCwmzJXrMZFUw6VfwuFYgWAKflCZXHssrQKVsr0NwwyEJIn3Z4pURlo2ja3xAfIg==",
|
"integrity": "sha512-p77v5G3WNBSSCLY8ORkNkP5XmAOQj7QwxkyzyILj+sWFbw3/1B9SIead0QS368FHV7JKCZ8/LR5T5ccBUZJlJg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/mri": {
|
"node_modules/mri": {
|
||||||
|
|
@ -5608,12 +5527,6 @@
|
||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pend": {
|
|
||||||
"version": "1.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
|
||||||
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/picocolors": {
|
"node_modules/picocolors": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||||
|
|
@ -5667,79 +5580,31 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/playwright": {
|
"node_modules/playwright": {
|
||||||
"version": "1.18.1",
|
"version": "1.32.2",
|
||||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.32.2.tgz",
|
||||||
"integrity": "sha512-8EaX9EtbtAoMq5tnzIsoA3b/V86V/6Mq2skuOU4qEw+5OVxs1lwesDwmjy/RVU1Qfx5UuwSQzhp45wyH22oa+A==",
|
"integrity": "sha512-jHVnXJke0PXpuPszKtk9y1zZSlzO5+2a+aockT/AND0oeXx46FiJEFrafthurglLygVZA+1gEbtUM1C7qtTV+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"playwright-core": "=1.18.1"
|
"playwright-core": "1.32.2"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"playwright": "cli.js"
|
"playwright": "cli.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/playwright/node_modules/playwright-core": {
|
"node_modules/playwright-core": {
|
||||||
"version": "1.18.1",
|
"version": "1.32.2",
|
||||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.32.2.tgz",
|
||||||
"integrity": "sha512-NALGl8R1GHzGLlhUApmpmfh6M1rrrPcDTygWvhTbprxwGB9qd/j9DRwyn4HTQcUB6o0/VOpo46fH9ez3+D/Rog==",
|
"integrity": "sha512-zD7aonO+07kOTthsrCR3YCVnDcqSHIJpdFUtZEMOb6//1Rc7/6mZDRdw+nlzcQiQltOOsiqI3rrSyn/SlyjnJQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
|
||||||
"commander": "^8.2.0",
|
|
||||||
"debug": "^4.1.1",
|
|
||||||
"extract-zip": "^2.0.1",
|
|
||||||
"https-proxy-agent": "^5.0.0",
|
|
||||||
"jpeg-js": "^0.4.2",
|
|
||||||
"mime": "^2.4.6",
|
|
||||||
"pngjs": "^5.0.0",
|
|
||||||
"progress": "^2.0.3",
|
|
||||||
"proper-lockfile": "^4.1.1",
|
|
||||||
"proxy-from-env": "^1.1.0",
|
|
||||||
"rimraf": "^3.0.2",
|
|
||||||
"socks-proxy-agent": "^6.1.0",
|
|
||||||
"stack-utils": "^2.0.3",
|
|
||||||
"ws": "^7.4.6",
|
|
||||||
"yauzl": "^2.10.0",
|
|
||||||
"yazl": "^2.5.1"
|
|
||||||
},
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"playwright": "cli.js"
|
"playwright": "cli.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=14"
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/playwright/node_modules/ws": {
|
|
||||||
"version": "7.5.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
|
|
||||||
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8.3.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"bufferutil": "^4.0.1",
|
|
||||||
"utf-8-validate": "^5.0.2"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"bufferutil": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"utf-8-validate": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pngjs": {
|
|
||||||
"version": "5.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
|
|
||||||
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.13.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/portfinder": {
|
"node_modules/portfinder": {
|
||||||
|
|
@ -6049,32 +5914,6 @@
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/progress": {
|
|
||||||
"version": "2.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
|
||||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/proper-lockfile": {
|
|
||||||
"version": "4.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
|
|
||||||
"integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"graceful-fs": "^4.2.4",
|
|
||||||
"retry": "^0.12.0",
|
|
||||||
"signal-exit": "^3.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/proxy-from-env": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
|
||||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/psl": {
|
"node_modules/psl": {
|
||||||
"version": "1.8.0",
|
"version": "1.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
||||||
|
|
@ -6223,30 +6062,6 @@
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/retry": {
|
|
||||||
"version": "0.12.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
|
|
||||||
"integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/rimraf": {
|
|
||||||
"version": "3.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
|
||||||
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"glob": "^7.1.3"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"rimraf": "bin.js"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/rollup": {
|
"node_modules/rollup": {
|
||||||
"version": "2.79.1",
|
"version": "2.79.1",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
||||||
|
|
@ -6406,44 +6221,6 @@
|
||||||
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
|
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/smart-buffer": {
|
|
||||||
"version": "4.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
|
||||||
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6.0.0",
|
|
||||||
"npm": ">= 3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/socks": {
|
|
||||||
"version": "2.6.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz",
|
|
||||||
"integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"ip": "^1.1.5",
|
|
||||||
"smart-buffer": "^4.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 10.13.0",
|
|
||||||
"npm": ">= 3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/socks-proxy-agent": {
|
|
||||||
"version": "6.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz",
|
|
||||||
"integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"agent-base": "^6.0.2",
|
|
||||||
"debug": "^4.3.1",
|
|
||||||
"socks": "^2.6.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/source-map": {
|
"node_modules/source-map": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||||
|
|
@ -6479,27 +6256,6 @@
|
||||||
"deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility",
|
"deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/stack-utils": {
|
|
||||||
"version": "2.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
|
|
||||||
"integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"escape-string-regexp": "^2.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/stack-utils/node_modules/escape-string-regexp": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/string-width": {
|
"node_modules/string-width": {
|
||||||
"version": "4.2.3",
|
"version": "4.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||||
|
|
@ -7428,25 +7184,6 @@
|
||||||
"yaserver": "bin/yaserver"
|
"yaserver": "bin/yaserver"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yauzl": {
|
|
||||||
"version": "2.10.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
|
|
||||||
"integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"buffer-crc32": "~0.2.3",
|
|
||||||
"fd-slicer": "~1.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/yazl": {
|
|
||||||
"version": "2.5.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
|
|
||||||
"integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"buffer-crc32": "~0.2.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/yn": {
|
"node_modules/yn": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||||
|
|
@ -8719,16 +8456,6 @@
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/yauzl": {
|
|
||||||
"version": "2.9.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
|
|
||||||
"integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
|
||||||
"@types/node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@typescript/vfs": {
|
"@typescript/vfs": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.3.5.tgz",
|
||||||
|
|
@ -9160,12 +8887,6 @@
|
||||||
"update-browserslist-db": "^1.0.9"
|
"update-browserslist-db": "^1.0.9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"buffer-crc32": {
|
|
||||||
"version": "0.2.13",
|
|
||||||
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
|
||||||
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"buffer-from": {
|
"buffer-from": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||||
|
|
@ -9314,12 +9035,6 @@
|
||||||
"delayed-stream": "~1.0.0"
|
"delayed-stream": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"commander": {
|
|
||||||
"version": "8.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
|
|
||||||
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
|
|
@ -10048,18 +9763,6 @@
|
||||||
"strip-final-newline": "^2.0.0"
|
"strip-final-newline": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"extract-zip": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"@types/yauzl": "^2.9.1",
|
|
||||||
"debug": "^4.1.1",
|
|
||||||
"get-stream": "^5.1.0",
|
|
||||||
"yauzl": "^2.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fast-deep-equal": {
|
"fast-deep-equal": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||||
|
|
@ -10078,15 +9781,6 @@
|
||||||
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"fd-slicer": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
|
|
||||||
"integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"pend": "~1.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"file-loader": {
|
"file-loader": {
|
||||||
"version": "6.2.0",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
|
||||||
|
|
@ -10432,12 +10126,6 @@
|
||||||
"integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
|
"integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ip": {
|
|
||||||
"version": "1.1.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
|
||||||
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"is-arrayish": {
|
"is-arrayish": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
||||||
|
|
@ -10542,12 +10230,6 @@
|
||||||
"supports-color": "^8.0.0"
|
"supports-color": "^8.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jpeg-js": {
|
|
||||||
"version": "0.4.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
|
|
||||||
"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"js-tokens": {
|
"js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
|
|
@ -10825,12 +10507,6 @@
|
||||||
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
|
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"mime": {
|
|
||||||
"version": "2.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
|
|
||||||
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"mime-db": {
|
"mime-db": {
|
||||||
"version": "1.51.0",
|
"version": "1.51.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
|
||||||
|
|
@ -10943,9 +10619,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"monaco-editor-core": {
|
"monaco-editor-core": {
|
||||||
"version": "0.36.0-dev.20230224",
|
"version": "0.37.0-dev.20230403",
|
||||||
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.36.0-dev.20230224.tgz",
|
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.37.0-dev.20230403.tgz",
|
||||||
"integrity": "sha512-ubH2YoU86gNvO/lG4Un62ZGCwmzJXrMZFUw6VfwuFYgWAKflCZXHssrQKVsr0NwwyEJIn3Z4pURlo2ja3xAfIg==",
|
"integrity": "sha512-p77v5G3WNBSSCLY8ORkNkP5XmAOQj7QwxkyzyILj+sWFbw3/1B9SIead0QS368FHV7JKCZ8/LR5T5ccBUZJlJg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"mri": {
|
"mri": {
|
||||||
|
|
@ -11270,12 +10946,6 @@
|
||||||
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
|
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"pend": {
|
|
||||||
"version": "1.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
|
||||||
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"picocolors": {
|
"picocolors": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||||
|
|
@ -11316,51 +10986,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"playwright": {
|
"playwright": {
|
||||||
"version": "1.18.1",
|
"version": "1.32.2",
|
||||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.32.2.tgz",
|
||||||
"integrity": "sha512-8EaX9EtbtAoMq5tnzIsoA3b/V86V/6Mq2skuOU4qEw+5OVxs1lwesDwmjy/RVU1Qfx5UuwSQzhp45wyH22oa+A==",
|
"integrity": "sha512-jHVnXJke0PXpuPszKtk9y1zZSlzO5+2a+aockT/AND0oeXx46FiJEFrafthurglLygVZA+1gEbtUM1C7qtTV+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"playwright-core": "=1.18.1"
|
"playwright-core": "1.32.2"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
|
||||||
"playwright-core": {
|
"playwright-core": {
|
||||||
"version": "1.18.1",
|
"version": "1.32.2",
|
||||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.32.2.tgz",
|
||||||
"integrity": "sha512-NALGl8R1GHzGLlhUApmpmfh6M1rrrPcDTygWvhTbprxwGB9qd/j9DRwyn4HTQcUB6o0/VOpo46fH9ez3+D/Rog==",
|
"integrity": "sha512-zD7aonO+07kOTthsrCR3YCVnDcqSHIJpdFUtZEMOb6//1Rc7/6mZDRdw+nlzcQiQltOOsiqI3rrSyn/SlyjnJQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"commander": "^8.2.0",
|
|
||||||
"debug": "^4.1.1",
|
|
||||||
"extract-zip": "^2.0.1",
|
|
||||||
"https-proxy-agent": "^5.0.0",
|
|
||||||
"jpeg-js": "^0.4.2",
|
|
||||||
"mime": "^2.4.6",
|
|
||||||
"pngjs": "^5.0.0",
|
|
||||||
"progress": "^2.0.3",
|
|
||||||
"proper-lockfile": "^4.1.1",
|
|
||||||
"proxy-from-env": "^1.1.0",
|
|
||||||
"rimraf": "^3.0.2",
|
|
||||||
"socks-proxy-agent": "^6.1.0",
|
|
||||||
"stack-utils": "^2.0.3",
|
|
||||||
"ws": "^7.4.6",
|
|
||||||
"yauzl": "^2.10.0",
|
|
||||||
"yazl": "^2.5.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ws": {
|
|
||||||
"version": "7.5.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
|
|
||||||
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pngjs": {
|
|
||||||
"version": "5.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
|
|
||||||
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
|
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"portfinder": {
|
"portfinder": {
|
||||||
|
|
@ -11579,29 +11216,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"progress": {
|
|
||||||
"version": "2.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
|
||||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"proper-lockfile": {
|
|
||||||
"version": "4.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
|
|
||||||
"integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"graceful-fs": "^4.2.4",
|
|
||||||
"retry": "^0.12.0",
|
|
||||||
"signal-exit": "^3.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"proxy-from-env": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
|
||||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"psl": {
|
"psl": {
|
||||||
"version": "1.8.0",
|
"version": "1.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
||||||
|
|
@ -11713,21 +11327,6 @@
|
||||||
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"retry": {
|
|
||||||
"version": "0.12.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
|
|
||||||
"integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"rimraf": {
|
|
||||||
"version": "3.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
|
||||||
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"glob": "^7.1.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rollup": {
|
"rollup": {
|
||||||
"version": "2.79.1",
|
"version": "2.79.1",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
||||||
|
|
@ -11836,33 +11435,6 @@
|
||||||
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
|
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"smart-buffer": {
|
|
||||||
"version": "4.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
|
||||||
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"socks": {
|
|
||||||
"version": "2.6.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz",
|
|
||||||
"integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"ip": "^1.1.5",
|
|
||||||
"smart-buffer": "^4.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"socks-proxy-agent": {
|
|
||||||
"version": "6.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz",
|
|
||||||
"integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"agent-base": "^6.0.2",
|
|
||||||
"debug": "^4.3.1",
|
|
||||||
"socks": "^2.6.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"source-map": {
|
"source-map": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||||
|
|
@ -11891,23 +11463,6 @@
|
||||||
"integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
|
"integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"stack-utils": {
|
|
||||||
"version": "2.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
|
|
||||||
"integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"escape-string-regexp": "^2.0.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"escape-string-regexp": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "4.2.3",
|
"version": "4.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||||
|
|
@ -12545,25 +12100,6 @@
|
||||||
"integrity": "sha512-98Vj4sgqB1fLcpf2wK7h3dFCaabISHU9CXZHaAx3QLkvTTCD31MzMcNbw5V5jZFBK7ffkFqfWig6B20KQt4wtA==",
|
"integrity": "sha512-98Vj4sgqB1fLcpf2wK7h3dFCaabISHU9CXZHaAx3QLkvTTCD31MzMcNbw5V5jZFBK7ffkFqfWig6B20KQt4wtA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"yauzl": {
|
|
||||||
"version": "2.10.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
|
|
||||||
"integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"buffer-crc32": "~0.2.3",
|
|
||||||
"fd-slicer": "~1.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"yazl": {
|
|
||||||
"version": "2.5.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
|
|
||||||
"integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"buffer-crc32": "~0.2.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"yn": {
|
"yn": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "monaco-editor",
|
"name": "monaco-editor",
|
||||||
"version": "0.36.1",
|
"version": "0.37.1",
|
||||||
"vscodeRef": "07d120e10a4d3ac790e65b8a6dc85195546df664",
|
"vscodeRef": "8f74fbfd1f2d8f6268a42df131726b218aafe511",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "A browser based code editor",
|
"description": "A browser based code editor",
|
||||||
"homepage": "https://github.com/microsoft/monaco-editor",
|
"homepage": "https://github.com/microsoft/monaco-editor",
|
||||||
|
|
@ -52,10 +52,10 @@
|
||||||
"jsdom": "^19.0.0",
|
"jsdom": "^19.0.0",
|
||||||
"jsonc-parser": "^3.0.0",
|
"jsonc-parser": "^3.0.0",
|
||||||
"mocha": "^9.2.0",
|
"mocha": "^9.2.0",
|
||||||
"monaco-editor-core": "^0.36.0-dev.20230224",
|
"monaco-editor-core": "^0.37.0-dev.20230403",
|
||||||
"parcel": "^2.7.0",
|
"parcel": "^2.7.0",
|
||||||
"pin-github-action": "^1.8.0",
|
"pin-github-action": "^1.8.0",
|
||||||
"playwright": "^1.18.1",
|
"playwright": "^1.32.2",
|
||||||
"prettier": "^2.5.1",
|
"prettier": "^2.5.1",
|
||||||
"pretty-quick": "^3.1.3",
|
"pretty-quick": "^3.1.3",
|
||||||
"requirejs": "^2.3.6",
|
"requirejs": "^2.3.6",
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ export function registerLanguage(def: ILang): void {
|
||||||
return mod.language;
|
return mod.language;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
languages.onLanguage(languageId, async () => {
|
languages.onLanguageEncountered(languageId, async () => {
|
||||||
const mod = await lazyLanguageLoader.load();
|
const mod = await lazyLanguageLoader.load();
|
||||||
languages.setLanguageConfiguration(languageId, mod.conf);
|
languages.setLanguageConfiguration(languageId, mod.conf);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -80,5 +80,6 @@ import './tcl/tcl.contribution';
|
||||||
import './twig/twig.contribution';
|
import './twig/twig.contribution';
|
||||||
import './typescript/typescript.contribution';
|
import './typescript/typescript.contribution';
|
||||||
import './vb/vb.contribution';
|
import './vb/vb.contribution';
|
||||||
|
import './wgsl/wgsl.contribution';
|
||||||
import './xml/xml.contribution';
|
import './xml/xml.contribution';
|
||||||
import './yaml/yaml.contribution';
|
import './yaml/yaml.contribution';
|
||||||
|
|
|
||||||
24
src/basic-languages/wgsl/wgsl.contribution.ts
Normal file
24
src/basic-languages/wgsl/wgsl.contribution.ts
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
import { registerLanguage } from '../_.contribution';
|
||||||
|
|
||||||
|
declare var AMD: any;
|
||||||
|
declare var require: any;
|
||||||
|
|
||||||
|
registerLanguage({
|
||||||
|
id: 'wgsl',
|
||||||
|
extensions: ['.wgsl'],
|
||||||
|
aliases: ['WebGPU Shading Language', 'WGSL', 'wgsl'],
|
||||||
|
loader: () => {
|
||||||
|
if (AMD) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
require(['vs/basic-languages/wgsl/wgsl'], resolve, reject);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return import('./wgsl');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
3915
src/basic-languages/wgsl/wgsl.test.ts
Normal file
3915
src/basic-languages/wgsl/wgsl.test.ts
Normal file
File diff suppressed because it is too large
Load diff
487
src/basic-languages/wgsl/wgsl.ts
Normal file
487
src/basic-languages/wgsl/wgsl.ts
Normal file
|
|
@ -0,0 +1,487 @@
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation, Google LLC. All rights reserved.
|
||||||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
import type { languages } from '../../fillers/monaco-editor-core';
|
||||||
|
|
||||||
|
export const conf: languages.LanguageConfiguration = {
|
||||||
|
comments: {
|
||||||
|
lineComment: '//',
|
||||||
|
blockComment: ['/*', '*/']
|
||||||
|
},
|
||||||
|
brackets: [
|
||||||
|
['{', '}'],
|
||||||
|
['[', ']'],
|
||||||
|
['(', ')']
|
||||||
|
],
|
||||||
|
autoClosingPairs: [
|
||||||
|
{ open: '[', close: ']' },
|
||||||
|
{ open: '{', close: '}' },
|
||||||
|
{ open: '(', close: ')' }
|
||||||
|
],
|
||||||
|
surroundingPairs: [
|
||||||
|
{ open: '{', close: '}' },
|
||||||
|
{ open: '[', close: ']' },
|
||||||
|
{ open: '(', close: ')' }
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// Returns a list of empty strings, from a possibly multi-line string,
|
||||||
|
// stripping blanks and line endings. Emulates Perls 'qw' function.
|
||||||
|
function qw(str: string): string[] {
|
||||||
|
let result: string[] = [];
|
||||||
|
const words = str.split(/\t+|\r+|\n+| +/);
|
||||||
|
for (let i = 0; i < words.length; ++i) {
|
||||||
|
if (words[i].length > 0) {
|
||||||
|
result.push(words[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
const atoms = qw('true false');
|
||||||
|
|
||||||
|
const keywords = qw(`
|
||||||
|
alias
|
||||||
|
break
|
||||||
|
case
|
||||||
|
const
|
||||||
|
const_assert
|
||||||
|
continue
|
||||||
|
continuing
|
||||||
|
default
|
||||||
|
diagnostic
|
||||||
|
discard
|
||||||
|
else
|
||||||
|
enable
|
||||||
|
fn
|
||||||
|
for
|
||||||
|
if
|
||||||
|
let
|
||||||
|
loop
|
||||||
|
override
|
||||||
|
requires
|
||||||
|
return
|
||||||
|
struct
|
||||||
|
switch
|
||||||
|
var
|
||||||
|
while
|
||||||
|
`);
|
||||||
|
|
||||||
|
const reserved = qw(`
|
||||||
|
NULL
|
||||||
|
Self
|
||||||
|
abstract
|
||||||
|
active
|
||||||
|
alignas
|
||||||
|
alignof
|
||||||
|
as
|
||||||
|
asm
|
||||||
|
asm_fragment
|
||||||
|
async
|
||||||
|
attribute
|
||||||
|
auto
|
||||||
|
await
|
||||||
|
become
|
||||||
|
binding_array
|
||||||
|
cast
|
||||||
|
catch
|
||||||
|
class
|
||||||
|
co_await
|
||||||
|
co_return
|
||||||
|
co_yield
|
||||||
|
coherent
|
||||||
|
column_major
|
||||||
|
common
|
||||||
|
compile
|
||||||
|
compile_fragment
|
||||||
|
concept
|
||||||
|
const_cast
|
||||||
|
consteval
|
||||||
|
constexpr
|
||||||
|
constinit
|
||||||
|
crate
|
||||||
|
debugger
|
||||||
|
decltype
|
||||||
|
delete
|
||||||
|
demote
|
||||||
|
demote_to_helper
|
||||||
|
do
|
||||||
|
dynamic_cast
|
||||||
|
enum
|
||||||
|
explicit
|
||||||
|
export
|
||||||
|
extends
|
||||||
|
extern
|
||||||
|
external
|
||||||
|
fallthrough
|
||||||
|
filter
|
||||||
|
final
|
||||||
|
finally
|
||||||
|
friend
|
||||||
|
from
|
||||||
|
fxgroup
|
||||||
|
get
|
||||||
|
goto
|
||||||
|
groupshared
|
||||||
|
highp
|
||||||
|
impl
|
||||||
|
implements
|
||||||
|
import
|
||||||
|
inline
|
||||||
|
instanceof
|
||||||
|
interface
|
||||||
|
layout
|
||||||
|
lowp
|
||||||
|
macro
|
||||||
|
macro_rules
|
||||||
|
match
|
||||||
|
mediump
|
||||||
|
meta
|
||||||
|
mod
|
||||||
|
module
|
||||||
|
move
|
||||||
|
mut
|
||||||
|
mutable
|
||||||
|
namespace
|
||||||
|
new
|
||||||
|
nil
|
||||||
|
noexcept
|
||||||
|
noinline
|
||||||
|
nointerpolation
|
||||||
|
noperspective
|
||||||
|
null
|
||||||
|
nullptr
|
||||||
|
of
|
||||||
|
operator
|
||||||
|
package
|
||||||
|
packoffset
|
||||||
|
partition
|
||||||
|
pass
|
||||||
|
patch
|
||||||
|
pixelfragment
|
||||||
|
precise
|
||||||
|
precision
|
||||||
|
premerge
|
||||||
|
priv
|
||||||
|
protected
|
||||||
|
pub
|
||||||
|
public
|
||||||
|
readonly
|
||||||
|
ref
|
||||||
|
regardless
|
||||||
|
register
|
||||||
|
reinterpret_cast
|
||||||
|
require
|
||||||
|
resource
|
||||||
|
restrict
|
||||||
|
self
|
||||||
|
set
|
||||||
|
shared
|
||||||
|
sizeof
|
||||||
|
smooth
|
||||||
|
snorm
|
||||||
|
static
|
||||||
|
static_assert
|
||||||
|
static_cast
|
||||||
|
std
|
||||||
|
subroutine
|
||||||
|
super
|
||||||
|
target
|
||||||
|
template
|
||||||
|
this
|
||||||
|
thread_local
|
||||||
|
throw
|
||||||
|
trait
|
||||||
|
try
|
||||||
|
type
|
||||||
|
typedef
|
||||||
|
typeid
|
||||||
|
typename
|
||||||
|
typeof
|
||||||
|
union
|
||||||
|
unless
|
||||||
|
unorm
|
||||||
|
unsafe
|
||||||
|
unsized
|
||||||
|
use
|
||||||
|
using
|
||||||
|
varying
|
||||||
|
virtual
|
||||||
|
volatile
|
||||||
|
wgsl
|
||||||
|
where
|
||||||
|
with
|
||||||
|
writeonly
|
||||||
|
yield
|
||||||
|
`);
|
||||||
|
|
||||||
|
const predeclared_enums = qw(`
|
||||||
|
read write read_write
|
||||||
|
function private workgroup uniform storage
|
||||||
|
perspective linear flat
|
||||||
|
center centroid sample
|
||||||
|
vertex_index instance_index position front_facing frag_depth
|
||||||
|
local_invocation_id local_invocation_index
|
||||||
|
global_invocation_id workgroup_id num_workgroups
|
||||||
|
sample_index sample_mask
|
||||||
|
rgba8unorm
|
||||||
|
rgba8snorm
|
||||||
|
rgba8uint
|
||||||
|
rgba8sint
|
||||||
|
rgba16uint
|
||||||
|
rgba16sint
|
||||||
|
rgba16float
|
||||||
|
r32uint
|
||||||
|
r32sint
|
||||||
|
r32float
|
||||||
|
rg32uint
|
||||||
|
rg32sint
|
||||||
|
rg32float
|
||||||
|
rgba32uint
|
||||||
|
rgba32sint
|
||||||
|
rgba32float
|
||||||
|
bgra8unorm
|
||||||
|
`);
|
||||||
|
|
||||||
|
const predeclared_types = qw(`
|
||||||
|
bool
|
||||||
|
f16
|
||||||
|
f32
|
||||||
|
i32
|
||||||
|
sampler sampler_comparison
|
||||||
|
texture_depth_2d
|
||||||
|
texture_depth_2d_array
|
||||||
|
texture_depth_cube
|
||||||
|
texture_depth_cube_array
|
||||||
|
texture_depth_multisampled_2d
|
||||||
|
texture_external
|
||||||
|
texture_external
|
||||||
|
u32
|
||||||
|
`);
|
||||||
|
|
||||||
|
const predeclared_type_generators = qw(`
|
||||||
|
array
|
||||||
|
atomic
|
||||||
|
mat2x2
|
||||||
|
mat2x3
|
||||||
|
mat2x4
|
||||||
|
mat3x2
|
||||||
|
mat3x3
|
||||||
|
mat3x4
|
||||||
|
mat4x2
|
||||||
|
mat4x3
|
||||||
|
mat4x4
|
||||||
|
ptr
|
||||||
|
texture_1d
|
||||||
|
texture_2d
|
||||||
|
texture_2d_array
|
||||||
|
texture_3d
|
||||||
|
texture_cube
|
||||||
|
texture_cube_array
|
||||||
|
texture_multisampled_2d
|
||||||
|
texture_storage_1d
|
||||||
|
texture_storage_2d
|
||||||
|
texture_storage_2d_array
|
||||||
|
texture_storage_3d
|
||||||
|
vec2
|
||||||
|
vec3
|
||||||
|
vec4
|
||||||
|
`);
|
||||||
|
|
||||||
|
const predeclared_type_aliases = qw(`
|
||||||
|
vec2i vec3i vec4i
|
||||||
|
vec2u vec3u vec4u
|
||||||
|
vec2f vec3f vec4f
|
||||||
|
vec2h vec3h vec4h
|
||||||
|
mat2x2f mat2x3f mat2x4f
|
||||||
|
mat3x2f mat3x3f mat3x4f
|
||||||
|
mat4x2f mat4x3f mat4x4f
|
||||||
|
mat2x2h mat2x3h mat2x4h
|
||||||
|
mat3x2h mat3x3h mat3x4h
|
||||||
|
mat4x2h mat4x3h mat4x4h
|
||||||
|
`);
|
||||||
|
|
||||||
|
const predeclared_intrinsics = qw(`
|
||||||
|
bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2
|
||||||
|
ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross
|
||||||
|
degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit
|
||||||
|
firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length
|
||||||
|
log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract
|
||||||
|
reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose
|
||||||
|
trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine
|
||||||
|
textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers
|
||||||
|
textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare
|
||||||
|
textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge
|
||||||
|
textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin
|
||||||
|
atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm
|
||||||
|
pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm
|
||||||
|
unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier
|
||||||
|
workgroupUniformLoad
|
||||||
|
`);
|
||||||
|
|
||||||
|
// https://gpuweb.github.io/gpuweb/wgsl/#syntactic-token
|
||||||
|
// But skip bracket-like things, comma, colon, semicolon, underscore, at.
|
||||||
|
const operators = qw(`
|
||||||
|
&
|
||||||
|
&&
|
||||||
|
->
|
||||||
|
/
|
||||||
|
=
|
||||||
|
==
|
||||||
|
!=
|
||||||
|
>
|
||||||
|
>=
|
||||||
|
<
|
||||||
|
<=
|
||||||
|
%
|
||||||
|
-
|
||||||
|
--
|
||||||
|
+
|
||||||
|
++
|
||||||
|
|
|
||||||
|
||
|
||||||
|
*
|
||||||
|
<<
|
||||||
|
>>
|
||||||
|
+=
|
||||||
|
-=
|
||||||
|
*=
|
||||||
|
/=
|
||||||
|
%=
|
||||||
|
&=
|
||||||
|
|=
|
||||||
|
^=
|
||||||
|
>>=
|
||||||
|
<<=
|
||||||
|
`);
|
||||||
|
|
||||||
|
const directive_re = /enable|requires|diagnostic/;
|
||||||
|
|
||||||
|
const ident_re = /[_\p{XID_Start}]\p{XID_Continue}*/u;
|
||||||
|
|
||||||
|
const predefined_token = 'variable.predefined';
|
||||||
|
|
||||||
|
export const language = <languages.IMonarchLanguage>{
|
||||||
|
tokenPostfix: '.wgsl',
|
||||||
|
defaultToken: 'invalid',
|
||||||
|
unicode: true,
|
||||||
|
|
||||||
|
atoms,
|
||||||
|
keywords,
|
||||||
|
reserved,
|
||||||
|
predeclared_enums,
|
||||||
|
predeclared_types,
|
||||||
|
predeclared_type_generators,
|
||||||
|
predeclared_type_aliases,
|
||||||
|
predeclared_intrinsics,
|
||||||
|
operators,
|
||||||
|
|
||||||
|
symbols: /[!%&*+\-\.\/:;<=>^|_~]+/,
|
||||||
|
|
||||||
|
tokenizer: {
|
||||||
|
root: [
|
||||||
|
[directive_re, 'keyword', '@directive'],
|
||||||
|
[
|
||||||
|
// Identifier-like things, but also include '_'
|
||||||
|
ident_re,
|
||||||
|
{
|
||||||
|
cases: {
|
||||||
|
'@atoms': predefined_token,
|
||||||
|
'@keywords': 'keyword',
|
||||||
|
'@reserved': 'invalid',
|
||||||
|
'@predeclared_enums': predefined_token,
|
||||||
|
'@predeclared_types': predefined_token,
|
||||||
|
'@predeclared_type_generators': predefined_token,
|
||||||
|
'@predeclared_type_aliases': predefined_token,
|
||||||
|
'@predeclared_intrinsics': predefined_token,
|
||||||
|
'@default': 'identifier'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
{ include: '@commentOrSpace' },
|
||||||
|
{ include: '@numbers' },
|
||||||
|
|
||||||
|
[/;:\./, 'delimiter'],
|
||||||
|
[/,/, 'delimiter'], // Hack: Should be in previous rule
|
||||||
|
[/[{}()\[\]]/, '@brackets'],
|
||||||
|
['@', 'annotation', '@attribute'],
|
||||||
|
[
|
||||||
|
/@symbols/,
|
||||||
|
{
|
||||||
|
cases: {
|
||||||
|
'@operators': 'operator',
|
||||||
|
'@default': 'delimiter'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[/./, 'invalid']
|
||||||
|
],
|
||||||
|
|
||||||
|
commentOrSpace: [
|
||||||
|
[/\s+/, 'white'],
|
||||||
|
[/\/\*/, 'comment', '@blockComment'],
|
||||||
|
[/\/\/.*$/, 'comment']
|
||||||
|
],
|
||||||
|
|
||||||
|
blockComment: [
|
||||||
|
// Soak up uninteresting text: anything except * or /
|
||||||
|
[/[^\/*]+/, 'comment'],
|
||||||
|
// Recognize the start of a nested block comment.
|
||||||
|
[/\/\*/, 'comment', '@push'],
|
||||||
|
// Recognize the end of a nested block comment.
|
||||||
|
[/\*\//, 'comment', '@pop'],
|
||||||
|
// Recognize insignificant * and /
|
||||||
|
[/[\/*]/, 'comment']
|
||||||
|
],
|
||||||
|
|
||||||
|
attribute: [
|
||||||
|
// For things like '@fragment' both '@' and 'fragment'
|
||||||
|
// are marked as annotations. This should work even if
|
||||||
|
// there are spaces or comments between the two tokens.
|
||||||
|
{ include: '@commentOrSpace' },
|
||||||
|
[/\w+/, 'annotation', '@pop']
|
||||||
|
],
|
||||||
|
|
||||||
|
directive: [
|
||||||
|
// For things like 'enable f16;', 'enable' maps to 'meta'
|
||||||
|
// and 'f16' maps to 'meta.tag'.
|
||||||
|
{ include: '@commentOrSpace' },
|
||||||
|
[/[()]/, '@brackets'],
|
||||||
|
[/,/, 'delimiter'],
|
||||||
|
[ident_re, 'meta.content'],
|
||||||
|
[/;/, 'delimiter', '@pop']
|
||||||
|
],
|
||||||
|
|
||||||
|
numbers: [
|
||||||
|
// Decimal float literals
|
||||||
|
// https://www.w3.org/TR/WGSL/#syntax-decimal_float_literal
|
||||||
|
// 0, with type-specifying suffix.
|
||||||
|
[/0[fh]/, 'number.float'],
|
||||||
|
// Other decimal integer, with type-specifying suffix.
|
||||||
|
[/[1-9][0-9]*[fh]/, 'number.float'],
|
||||||
|
// Has decimal point, at least one digit after decimal.
|
||||||
|
[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/, 'number.float'],
|
||||||
|
// Has decimal point, at least one digit before decimal.
|
||||||
|
[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/, 'number.float'],
|
||||||
|
// Has at least one digit, and has an exponent.
|
||||||
|
[/[0-9]+[eE][+-]?[0-9]+[fh]?/, 'number.float'],
|
||||||
|
|
||||||
|
// Hex float literals
|
||||||
|
// https://www.w3.org/TR/WGSL/#syntax-hex_float_literal
|
||||||
|
[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/, 'number.hex'],
|
||||||
|
[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/, 'number.hex'],
|
||||||
|
[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/, 'number.hex'],
|
||||||
|
|
||||||
|
// Hexadecimal integer literals
|
||||||
|
// https://www.w3.org/TR/WGSL/#syntax-hex_int_literal
|
||||||
|
[/0[xX][0-9a-fA-F]+[iu]?/, 'number.hex'],
|
||||||
|
|
||||||
|
// Decimal integer literals
|
||||||
|
// https://www.w3.org/TR/WGSL/#syntax-decimal_int_literal
|
||||||
|
// We need two rules here because 01 is not valid.
|
||||||
|
[/[1-9][0-9]*[iu]?/, 'number'],
|
||||||
|
[/0[iu]?/, 'number'] // Must match last
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -12,6 +12,7 @@ registerLanguage({
|
||||||
id: 'xml',
|
id: 'xml',
|
||||||
extensions: [
|
extensions: [
|
||||||
'.xml',
|
'.xml',
|
||||||
|
'.xsd',
|
||||||
'.dtd',
|
'.dtd',
|
||||||
'.ascx',
|
'.ascx',
|
||||||
'.csproj',
|
'.csproj',
|
||||||
|
|
@ -25,6 +26,7 @@ registerLanguage({
|
||||||
'.svg',
|
'.svg',
|
||||||
'.svgz',
|
'.svgz',
|
||||||
'.opf',
|
'.opf',
|
||||||
|
'.xslt',
|
||||||
'.xsl'
|
'.xsl'
|
||||||
],
|
],
|
||||||
firstLine: '(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)',
|
firstLine: '(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)',
|
||||||
|
|
|
||||||
|
|
@ -803,6 +803,8 @@ export class DocumentFormattingEditProvider<T extends ILanguageWorkerWithFormat>
|
||||||
export class DocumentRangeFormattingEditProvider<T extends ILanguageWorkerWithFormat>
|
export class DocumentRangeFormattingEditProvider<T extends ILanguageWorkerWithFormat>
|
||||||
implements languages.DocumentRangeFormattingEditProvider
|
implements languages.DocumentRangeFormattingEditProvider
|
||||||
{
|
{
|
||||||
|
readonly canFormatMultipleRanges = false;
|
||||||
|
|
||||||
constructor(private _worker: WorkerAccessor<T>) {}
|
constructor(private _worker: WorkerAccessor<T>) {}
|
||||||
|
|
||||||
public provideDocumentRangeFormattingEdits(
|
public provideDocumentRangeFormattingEdits(
|
||||||
|
|
|
||||||
|
|
@ -989,6 +989,8 @@ export class FormatAdapter
|
||||||
extends FormatHelper
|
extends FormatHelper
|
||||||
implements languages.DocumentRangeFormattingEditProvider
|
implements languages.DocumentRangeFormattingEditProvider
|
||||||
{
|
{
|
||||||
|
readonly canFormatMultipleRanges = false;
|
||||||
|
|
||||||
public async provideDocumentRangeFormattingEdits(
|
public async provideDocumentRangeFormattingEdits(
|
||||||
model: editor.ITextModel,
|
model: editor.ITextModel,
|
||||||
range: Range,
|
range: Range,
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@ import { exit } from "process";
|
||||||
"yarn",
|
"yarn",
|
||||||
[
|
[
|
||||||
"tsc",
|
"tsc",
|
||||||
|
"--target",
|
||||||
|
"es6",
|
||||||
"--noEmit",
|
"--noEmit",
|
||||||
"--allowJs",
|
"--allowJs",
|
||||||
"--checkJs",
|
"--checkJs",
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,24 @@ export interface IMonacoSetup {
|
||||||
monacoTypesUrl: string | undefined;
|
monacoTypesUrl: string | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
let loadMonacoPromise: Promise<typeof monaco> | undefined;
|
let loading = false;
|
||||||
|
let resolve: (value: typeof monaco) => void;
|
||||||
|
let reject: (error: unknown) => void;
|
||||||
|
let loadMonacoPromise = new Promise<typeof monaco>((res, rej) => {
|
||||||
|
resolve = res;
|
||||||
|
reject = rej;
|
||||||
|
});
|
||||||
|
|
||||||
|
export async function waitForLoadedMonaco(): Promise<typeof monaco> {
|
||||||
|
return loadMonacoPromise;
|
||||||
|
}
|
||||||
|
|
||||||
export async function loadMonaco(
|
export async function loadMonaco(
|
||||||
setup: IMonacoSetup = prodMonacoSetup
|
setup: IMonacoSetup = prodMonacoSetup
|
||||||
): Promise<typeof monaco> {
|
): Promise<typeof monaco> {
|
||||||
if (!loadMonacoPromise) {
|
if (!loading) {
|
||||||
loadMonacoPromise = _loadMonaco(setup);
|
loading = true;
|
||||||
|
_loadMonaco(setup).then(resolve, reject);
|
||||||
}
|
}
|
||||||
return loadMonacoPromise;
|
return loadMonacoPromise;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
48
website/src/website/data/home-samples/sample.wgsl.txt
Normal file
48
website/src/website/data/home-samples/sample.wgsl.txt
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
// A fragment shader which lights textured geometry with point lights.
|
||||||
|
// Taken from the introduction of the WebGPU Shading Lnaguage Specification
|
||||||
|
// https://w3.org/TR/WGSL
|
||||||
|
|
||||||
|
// Lights from a storage buffer binding.
|
||||||
|
struct PointLight {
|
||||||
|
position : vec3f,
|
||||||
|
color : vec3f,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct LightStorage {
|
||||||
|
pointCount : u32,
|
||||||
|
point : array<PointLight>,
|
||||||
|
}
|
||||||
|
@group(0) @binding(0) var<storage> lights : LightStorage;
|
||||||
|
|
||||||
|
// Texture and sampler.
|
||||||
|
@group(1) @binding(0) var baseColorSampler : sampler;
|
||||||
|
@group(1) @binding(1) var baseColorTexture : texture_2d<f32>;
|
||||||
|
|
||||||
|
// Function arguments are values from from vertex shader.
|
||||||
|
@fragment
|
||||||
|
fn fragmentMain(@location(0) worldPos : vec3f,
|
||||||
|
@location(1) normal : vec3f,
|
||||||
|
@location(2) uv : vec2f) -> @location(0) vec4f {
|
||||||
|
// Sample the base color of the surface from a texture.
|
||||||
|
let baseColor = textureSample(baseColorTexture, baseColorSampler, uv);
|
||||||
|
|
||||||
|
let N = normalize(normal);
|
||||||
|
var surfaceColor = vec3f(0);
|
||||||
|
|
||||||
|
// Loop over the scene point lights.
|
||||||
|
for (var i = 0u; i < lights.pointCount; i++) {
|
||||||
|
let worldToLight = lights.point[i].position - worldPos;
|
||||||
|
let dist = length(worldToLight);
|
||||||
|
let dir = normalize(worldToLight);
|
||||||
|
|
||||||
|
// Determine the contribution of this light to the surface color.
|
||||||
|
let radiance = lights.point[i].color * (1 / pow(dist, 2));
|
||||||
|
let nDotL = max(dot(N, dir), 0);
|
||||||
|
|
||||||
|
// Accumulate light contribution to the surface color.
|
||||||
|
surfaceColor += baseColor.rgb * radiance * nDotL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the accumulated surface color.
|
||||||
|
return vec4(surfaceColor, baseColor.a);
|
||||||
|
}
|
||||||
|
|
@ -11,10 +11,12 @@ customElements.define(
|
||||||
const shadowRoot = this.attachShadow({ mode: "open" });
|
const shadowRoot = this.attachShadow({ mode: "open" });
|
||||||
|
|
||||||
// Copy over editor styles
|
// Copy over editor styles
|
||||||
const style = document.querySelector(
|
const styles = document.querySelectorAll(
|
||||||
"link[rel='stylesheet'][data-name='vs/editor/editor.main']"
|
"link[rel='stylesheet'][data-name^='vs/']"
|
||||||
);
|
);
|
||||||
|
for (const style of styles) {
|
||||||
shadowRoot.appendChild(style.cloneNode(true));
|
shadowRoot.appendChild(style.cloneNode(true));
|
||||||
|
}
|
||||||
|
|
||||||
const template = /** @type HTMLTemplateElement */ (
|
const template = /** @type HTMLTemplateElement */ (
|
||||||
document.getElementById("editor-template")
|
document.getElementById("editor-template")
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,11 @@ import {
|
||||||
reaction,
|
reaction,
|
||||||
runInAction,
|
runInAction,
|
||||||
} from "mobx";
|
} from "mobx";
|
||||||
import { IMonacoSetup, loadMonaco } from "../../../monaco-loader";
|
import {
|
||||||
|
IMonacoSetup,
|
||||||
|
loadMonaco,
|
||||||
|
waitForLoadedMonaco,
|
||||||
|
} from "../../../monaco-loader";
|
||||||
import { IPlaygroundProject, IPreviewState } from "../../../shared";
|
import { IPlaygroundProject, IPreviewState } from "../../../shared";
|
||||||
import { monacoEditorVersion } from "../../monacoEditorVersion";
|
import { monacoEditorVersion } from "../../monacoEditorVersion";
|
||||||
import { Debouncer } from "../../utils/Debouncer";
|
import { Debouncer } from "../../utils/Debouncer";
|
||||||
|
|
@ -56,12 +60,23 @@ export class PlaygroundModel {
|
||||||
|
|
||||||
public readonly serializer = new StateUrlSerializer(this);
|
public readonly serializer = new StateUrlSerializer(this);
|
||||||
|
|
||||||
reload(): void {
|
public reload(): void {
|
||||||
this.reloadKey++;
|
this.reloadKey++;
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly _previewHandlers = new Set<IPreviewHandler>();
|
private readonly _previewHandlers = new Set<IPreviewHandler>();
|
||||||
|
|
||||||
|
private _wasEverNonFullScreen = false;
|
||||||
|
public get wasEverNonFullScreen() {
|
||||||
|
if (this._wasEverNonFullScreen) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!this.settings.previewFullScreen) {
|
||||||
|
this._wasEverNonFullScreen = true;
|
||||||
|
}
|
||||||
|
return this._wasEverNonFullScreen;
|
||||||
|
}
|
||||||
|
|
||||||
@computed.struct
|
@computed.struct
|
||||||
get monacoSetup(): IMonacoSetup {
|
get monacoSetup(): IMonacoSetup {
|
||||||
const sourceOverride = this.serializer.sourceOverride;
|
const sourceOverride = this.serializer.sourceOverride;
|
||||||
|
|
@ -125,14 +140,31 @@ export class PlaygroundModel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly debouncer = new Debouncer(250);
|
private readonly debouncer = new Debouncer(700);
|
||||||
|
|
||||||
|
@observable
|
||||||
|
public isDirty = false;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
let lastState = this.state;
|
||||||
|
|
||||||
this.dispose.track({
|
this.dispose.track({
|
||||||
dispose: reaction(
|
dispose: reaction(
|
||||||
() => ({ state: this.state }),
|
() => ({ state: this.state }),
|
||||||
({ state }) => {
|
({ state }) => {
|
||||||
|
if (!this.settings.autoReload) {
|
||||||
|
if (
|
||||||
|
JSON.stringify(state.monacoSetup) ===
|
||||||
|
JSON.stringify(lastState.monacoSetup) &&
|
||||||
|
state.key === lastState.key
|
||||||
|
) {
|
||||||
|
this.isDirty = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
this.debouncer.run(() => {
|
this.debouncer.run(() => {
|
||||||
|
this.isDirty = false;
|
||||||
|
lastState = state;
|
||||||
for (const handler of this._previewHandlers) {
|
for (const handler of this._previewHandlers) {
|
||||||
handler.handlePreview(state);
|
handler.handlePreview(state);
|
||||||
}
|
}
|
||||||
|
|
@ -142,10 +174,10 @@ export class PlaygroundModel {
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
const observablePromise = new ObservablePromise(loadMonaco());
|
const observablePromise = new ObservablePromise(waitForLoadedMonaco());
|
||||||
let disposable: Disposable | undefined = undefined;
|
let disposable: Disposable | undefined = undefined;
|
||||||
|
|
||||||
loadMonaco().then((m) => {
|
waitForLoadedMonaco().then((m) => {
|
||||||
const options =
|
const options =
|
||||||
monaco.languages.typescript.javascriptDefaults.getCompilerOptions();
|
monaco.languages.typescript.javascriptDefaults.getCompilerOptions();
|
||||||
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions(
|
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions(
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import { PlaygroundModel } from "./PlaygroundModel";
|
||||||
import { Preview } from "./Preview";
|
import { Preview } from "./Preview";
|
||||||
import { SettingsDialog } from "./SettingsDialog";
|
import { SettingsDialog } from "./SettingsDialog";
|
||||||
import { Button, Col, Row, Stack } from "../../components/bootstrap";
|
import { Button, Col, Row, Stack } from "../../components/bootstrap";
|
||||||
import { ButtonGroup } from "react-bootstrap";
|
import { ButtonGroup, FormCheck } from "react-bootstrap";
|
||||||
|
|
||||||
@hotComponent(module)
|
@hotComponent(module)
|
||||||
@observer
|
@observer
|
||||||
|
|
@ -37,10 +37,13 @@ export class PlaygroundPageContent extends React.Component<
|
||||||
className="h-100 g-2"
|
className="h-100 g-2"
|
||||||
style={{ flexWrap: "wrap-reverse" }}
|
style={{ flexWrap: "wrap-reverse" }}
|
||||||
>
|
>
|
||||||
|
{model.wasEverNonFullScreen && (
|
||||||
<Col
|
<Col
|
||||||
md
|
md
|
||||||
className={
|
className={
|
||||||
model.settings.previewFullScreen ? "d-none" : ""
|
model.settings.previewFullScreen
|
||||||
|
? "d-none"
|
||||||
|
: ""
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Vertical>
|
<Vertical>
|
||||||
|
|
@ -50,10 +53,14 @@ export class PlaygroundPageContent extends React.Component<
|
||||||
titleBarItems={
|
titleBarItems={
|
||||||
<div
|
<div
|
||||||
className="hstack"
|
className="hstack"
|
||||||
style={{ marginLeft: "auto" }}
|
style={{
|
||||||
|
marginLeft: "auto",
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
style={{ marginRight: 8 }}
|
style={{
|
||||||
|
marginRight: 8,
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Example:
|
Example:
|
||||||
</span>
|
</span>
|
||||||
|
|
@ -69,7 +76,9 @@ export class PlaygroundPageContent extends React.Component<
|
||||||
model,
|
model,
|
||||||
"selectedExample"
|
"selectedExample"
|
||||||
)}
|
)}
|
||||||
getLabel={(i) => i.title}
|
getLabel={(i) =>
|
||||||
|
i.title
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
@ -108,17 +117,42 @@ export class PlaygroundPageContent extends React.Component<
|
||||||
</div>
|
</div>
|
||||||
</Vertical>
|
</Vertical>
|
||||||
</Col>
|
</Col>
|
||||||
|
)}
|
||||||
<Col md>
|
<Col md>
|
||||||
<LabeledEditor
|
<LabeledEditor
|
||||||
label="Preview"
|
label="Preview"
|
||||||
titleBarItems={
|
titleBarItems={
|
||||||
<div
|
<div
|
||||||
style={{ marginLeft: "auto" }}
|
style={{ marginLeft: "auto" }}
|
||||||
className="d-flex gap-2"
|
className="d-flex gap-2 align-items-center"
|
||||||
>
|
>
|
||||||
|
{model.settings.previewFullScreen || (
|
||||||
|
<FormCheck
|
||||||
|
label="Auto-Reload"
|
||||||
|
className="text-nowrap"
|
||||||
|
checked={
|
||||||
|
model.settings.autoReload
|
||||||
|
}
|
||||||
|
onChange={(e) => {
|
||||||
|
model.settings.autoReload =
|
||||||
|
e.target.checked;
|
||||||
|
if (
|
||||||
|
e.target.checked &&
|
||||||
|
model.isDirty
|
||||||
|
) {
|
||||||
|
model.reload();
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
<Button
|
<Button
|
||||||
type="button"
|
type="button"
|
||||||
className="btn btn-light settings bi-arrow-clockwise"
|
className={
|
||||||
|
"btn settings bi-arrow-clockwise " +
|
||||||
|
(model.isDirty
|
||||||
|
? "btn-primary"
|
||||||
|
: "btn-light")
|
||||||
|
}
|
||||||
style={{
|
style={{
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
padding: "0px 4px",
|
padding: "0px 4px",
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,14 @@ export class SettingsModel {
|
||||||
this.setSettings({ ...this._settings, previewFullScreen: value });
|
this.setSettings({ ...this._settings, previewFullScreen: value });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get autoReload() {
|
||||||
|
return this._settings.autoReload ?? true;
|
||||||
|
}
|
||||||
|
|
||||||
|
set autoReload(value: boolean) {
|
||||||
|
this.setSettings({ ...this._settings, autoReload: value });
|
||||||
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
const settingsStr = localStorage.getItem(this.settingsKey);
|
const settingsStr = localStorage.getItem(this.settingsKey);
|
||||||
if (settingsStr) {
|
if (settingsStr) {
|
||||||
|
|
@ -70,6 +78,7 @@ export interface Settings {
|
||||||
customConfig: JsonString<IMonacoSetup>;
|
customConfig: JsonString<IMonacoSetup>;
|
||||||
|
|
||||||
previewFullScreen: boolean;
|
previewFullScreen: boolean;
|
||||||
|
autoReload: boolean | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type JsonString<T> = string;
|
export type JsonString<T> = string;
|
||||||
|
|
@ -167,6 +176,7 @@ export function getDefaultSettings(): Settings {
|
||||||
loaderPathsConfig: "",
|
loaderPathsConfig: "",
|
||||||
}),
|
}),
|
||||||
previewFullScreen: false,
|
previewFullScreen: false,
|
||||||
|
autoReload: true,
|
||||||
};
|
};
|
||||||
return defaultSettings;
|
return defaultSettings;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue