experimental: make deno a separate language in the editor (#1370)

* all

* all

* all
This commit is contained in:
Ruben Fiszel
2023-04-07 07:47:21 +02:00
committed by GitHub
parent 58eba85eea
commit d0712a868f
19 changed files with 12038 additions and 8024 deletions
+141 -100
View File
@@ -24,16 +24,16 @@
"highlight.js": "^11.7.0",
"lodash": "^4.17.21",
"lucide-svelte": "^0.115.0",
"monaco-editor": "0.34.1",
"monaco-languageclient": "5.0.0-next.3",
"monaco-editor": "0.36.1",
"monaco-languageclient": "5.0.1",
"svelte-autosize": "^1.0.1",
"svelte-chartjs": "^3.1.0",
"svelte-portal": "^2.2.0",
"svelte-select": "^5.3.1",
"svelte-timezone-picker": "^2.0.3",
"tailwind-merge": "^1.9.1",
"vscode-languageclient": "~8.0.2",
"vscode-ws-jsonrpc": "3.0.0-next.1"
"vscode-languageclient": "^8.1.0",
"vscode-ws-jsonrpc": "3.0.0"
},
"devDependencies": {
"@playwright/test": "^1.31.1",
@@ -47,7 +47,7 @@
"@types/d3-zoom": "^3.0.2",
"@types/lodash": "^4.14.191",
"@types/node": "^18.11.18",
"@types/vscode": "~1.74.0",
"@types/vscode": "~1.76.0",
"@typescript-eslint/eslint-plugin": "^5.49.0",
"@typescript-eslint/parser": "^5.48.0",
"@zerodevx/svelte-toast": "^0.8.1",
@@ -57,7 +57,7 @@
"eslint": "^8.28.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-svelte3": "^4.0.0",
"monaco-editor-workers": "0.34.2",
"monaco-editor-workers": "0.36.0",
"ol": "^7.2.2",
"openapi-typescript-codegen": "^0.23.0",
"path-browserify": "^1.0.1",
@@ -1378,9 +1378,9 @@
"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==",
"version": "1.76.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz",
"integrity": "sha512-CQcY3+Fe5hNewHnOEAVYj4dd1do/QHliXaknAEYSXx2KEHUzFibDZSKptCon+HPgK55xx20pR+PBJjf0MomnBA==",
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
@@ -1818,6 +1818,7 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -2135,7 +2136,8 @@
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"node_modules/console-control-strings": {
"version": "1.1.0",
@@ -4184,6 +4186,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -4265,30 +4268,30 @@
}
},
"node_modules/monaco-editor": {
"version": "0.34.1",
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.34.1.tgz",
"integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ=="
"version": "0.36.1",
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.36.1.tgz",
"integrity": "sha512-/CaclMHKQ3A6rnzBzOADfwdSJ25BFoFT0Emxsc4zYVyav5SkK9iA6lEtIeuN/oRYbwPgviJT+t3l+sjFa28jYg=="
},
"node_modules/monaco-editor-workers": {
"version": "0.34.2",
"resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.34.2.tgz",
"integrity": "sha512-MdO1nvAbGNzc7ygyzwACvs5DOPaTOUNDjU/qTQx0Rsw00BrhL88eMi9sWBm+LYfQbPaZf+YBqwJaJUovl3M6bQ==",
"version": "0.36.0",
"resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.36.0.tgz",
"integrity": "sha512-byrccv+VN5MC9aAjLd4wGis1cPVYtaxvBRjlqupiv8BrNehuPqRlc+T3j1A6Ow62j5AAHxnzHtWkIwPvDDmYIg==",
"dev": true
},
"node_modules/monaco-languageclient": {
"version": "5.0.0-next.3",
"resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-5.0.0-next.3.tgz",
"integrity": "sha512-WX5mwntWdR74z1Y5EPFLBZGRUJ+3PhFTeoaszMfIHlpeWaTrdabz1zjAj/zlZKPkDv+CWLhn+VYrfPlGd5mwZA==",
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-5.0.1.tgz",
"integrity": "sha512-zTEb8PQZpnYiKkJofdIArMikX7CyQ7205copJNWSCMlOK9eEsbCM8TYb+D7f+MNWt7aOBbustQuqhwjsI3ZYgw==",
"dependencies": {
"vscode-jsonrpc": "8.0.2",
"vscode-languageclient": "8.0.2"
"vscode-jsonrpc": "~8.1.0",
"vscode-languageclient": "~8.1.0"
},
"engines": {
"node": ">=16.11.0",
"npm": ">=9.0.0"
},
"peerDependencies": {
"vscode": "npm:@codingame/monaco-vscode-api@~1.69.0"
"vscode": "npm:@codingame/monaco-vscode-api@~1.76.6"
}
},
"node_modules/mri": {
@@ -7137,50 +7140,69 @@
},
"node_modules/vscode": {
"name": "@codingame/monaco-vscode-api",
"version": "1.69.24",
"resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.69.24.tgz",
"integrity": "sha512-D105o8lg/sKUAjQKOlDlEvmnnfUpB/3cBr37ZpF5cFQrHqnJ/0XwWsk2iET36brrdjsk67l0Uctik98in8BzxA==",
"version": "1.76.8",
"resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.76.8.tgz",
"integrity": "sha512-Odv2s/bMYOqAJQo7js4LqMOofoIh+sdP5dPYtIK1ksc+U+LEh3TCkEdlZGl+OUJNPXOSO4R6WbGVduwjipj3fA==",
"peer": true,
"peerDependencies": {
"monaco-editor": "~0.34.0",
"vscode-oniguruma": "^1.6.2",
"vscode-textmate": "^7.0.1"
"monaco-editor": "~0.36.1",
"vscode-oniguruma": "^1.7.0",
"vscode-textmate": "^9.0.0"
}
},
"node_modules/vscode-jsonrpc": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
"integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==",
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz",
"integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/vscode-languageclient": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.0.2.tgz",
"integrity": "sha512-lHlthJtphG9gibGb/y72CKqQUxwPsMXijJVpHEC2bvbFqxmkj9LwQ3aGU9dwjBLqsX1S4KjShYppLvg1UJDF/Q==",
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.1.0.tgz",
"integrity": "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing==",
"dependencies": {
"minimatch": "^3.0.4",
"semver": "^7.3.5",
"vscode-languageserver-protocol": "3.17.2"
"minimatch": "^5.1.0",
"semver": "^7.3.7",
"vscode-languageserver-protocol": "3.17.3"
},
"engines": {
"vscode": "^1.67.0"
}
},
"node_modules/vscode-languageserver-protocol": {
"version": "3.17.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
"integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
"node_modules/vscode-languageclient/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==",
"dependencies": {
"vscode-jsonrpc": "8.0.2",
"vscode-languageserver-types": "3.17.2"
"balanced-match": "^1.0.0"
}
},
"node_modules/vscode-languageserver-protocol/node_modules/vscode-languageserver-types": {
"version": "3.17.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
"integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
"node_modules/vscode-languageclient/node_modules/minimatch": {
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/vscode-languageserver-protocol": {
"version": "3.17.3",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz",
"integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==",
"dependencies": {
"vscode-jsonrpc": "8.1.0",
"vscode-languageserver-types": "3.17.3"
}
},
"node_modules/vscode-languageserver-types": {
"version": "3.17.3",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz",
"integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="
},
"node_modules/vscode-oniguruma": {
"version": "1.7.0",
@@ -7189,17 +7211,17 @@
"peer": true
},
"node_modules/vscode-textmate": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz",
"integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==",
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-9.0.0.tgz",
"integrity": "sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==",
"peer": true
},
"node_modules/vscode-ws-jsonrpc": {
"version": "3.0.0-next.1",
"resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.0.0-next.1.tgz",
"integrity": "sha512-9Snn23NgLKRO+LDuNcF+0mYIjgsDFXXinLQNP/unPXzaE6YO6eaO2uyf88HHg3M9wyQf/bArO67sYhsBFdC3Ow==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.0.0.tgz",
"integrity": "sha512-22IbVb2K691np9pOubyahNBj1BicsbtlbiaHOJu5/rvyWDqmqPMAqpAfojwGjdBztp8EtO8TAO7lmyY6hnmYAA==",
"dependencies": {
"vscode-jsonrpc": "8.0.2"
"vscode-jsonrpc": "~8.1.0"
},
"engines": {
"node": ">=16.11.0",
@@ -8274,9 +8296,9 @@
"dev": true
},
"@types/vscode": {
"version": "1.74.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.74.0.tgz",
"integrity": "sha512-LyeCIU3jb9d38w0MXFwta9r0Jx23ugujkAxdwLTNCyspdZTKUc43t7ppPbCiPoQ/Ivd/pnDFZrb4hWd45wrsgA==",
"version": "1.76.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz",
"integrity": "sha512-CQcY3+Fe5hNewHnOEAVYj4dd1do/QHliXaknAEYSXx2KEHUzFibDZSKptCon+HPgK55xx20pR+PBJjf0MomnBA==",
"dev": true
},
"@typescript-eslint/eslint-plugin": {
@@ -8561,6 +8583,7 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -8778,7 +8801,8 @@
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"console-control-strings": {
"version": "1.1.0",
@@ -10330,6 +10354,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -10392,23 +10417,23 @@
}
},
"monaco-editor": {
"version": "0.34.1",
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.34.1.tgz",
"integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ=="
"version": "0.36.1",
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.36.1.tgz",
"integrity": "sha512-/CaclMHKQ3A6rnzBzOADfwdSJ25BFoFT0Emxsc4zYVyav5SkK9iA6lEtIeuN/oRYbwPgviJT+t3l+sjFa28jYg=="
},
"monaco-editor-workers": {
"version": "0.34.2",
"resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.34.2.tgz",
"integrity": "sha512-MdO1nvAbGNzc7ygyzwACvs5DOPaTOUNDjU/qTQx0Rsw00BrhL88eMi9sWBm+LYfQbPaZf+YBqwJaJUovl3M6bQ==",
"version": "0.36.0",
"resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.36.0.tgz",
"integrity": "sha512-byrccv+VN5MC9aAjLd4wGis1cPVYtaxvBRjlqupiv8BrNehuPqRlc+T3j1A6Ow62j5AAHxnzHtWkIwPvDDmYIg==",
"dev": true
},
"monaco-languageclient": {
"version": "5.0.0-next.3",
"resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-5.0.0-next.3.tgz",
"integrity": "sha512-WX5mwntWdR74z1Y5EPFLBZGRUJ+3PhFTeoaszMfIHlpeWaTrdabz1zjAj/zlZKPkDv+CWLhn+VYrfPlGd5mwZA==",
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-5.0.1.tgz",
"integrity": "sha512-zTEb8PQZpnYiKkJofdIArMikX7CyQ7205copJNWSCMlOK9eEsbCM8TYb+D7f+MNWt7aOBbustQuqhwjsI3ZYgw==",
"requires": {
"vscode-jsonrpc": "8.0.2",
"vscode-languageclient": "8.0.2"
"vscode-jsonrpc": "~8.1.0",
"vscode-languageclient": "~8.1.0"
}
},
"mri": {
@@ -12389,43 +12414,59 @@
"requires": {}
},
"vscode": {
"version": "npm:@codingame/monaco-vscode-api@1.69.24",
"resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.69.24.tgz",
"integrity": "sha512-D105o8lg/sKUAjQKOlDlEvmnnfUpB/3cBr37ZpF5cFQrHqnJ/0XwWsk2iET36brrdjsk67l0Uctik98in8BzxA==",
"version": "npm:@codingame/monaco-vscode-api@1.76.8",
"resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.76.8.tgz",
"integrity": "sha512-Odv2s/bMYOqAJQo7js4LqMOofoIh+sdP5dPYtIK1ksc+U+LEh3TCkEdlZGl+OUJNPXOSO4R6WbGVduwjipj3fA==",
"peer": true,
"requires": {}
},
"vscode-jsonrpc": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
"integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ=="
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz",
"integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw=="
},
"vscode-languageclient": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.0.2.tgz",
"integrity": "sha512-lHlthJtphG9gibGb/y72CKqQUxwPsMXijJVpHEC2bvbFqxmkj9LwQ3aGU9dwjBLqsX1S4KjShYppLvg1UJDF/Q==",
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.1.0.tgz",
"integrity": "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing==",
"requires": {
"minimatch": "^3.0.4",
"semver": "^7.3.5",
"vscode-languageserver-protocol": "3.17.2"
"minimatch": "^5.1.0",
"semver": "^7.3.7",
"vscode-languageserver-protocol": "3.17.3"
},
"dependencies": {
"brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"requires": {
"balanced-match": "^1.0.0"
}
},
"minimatch": {
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"requires": {
"brace-expansion": "^2.0.1"
}
}
}
},
"vscode-languageserver-protocol": {
"version": "3.17.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
"integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
"version": "3.17.3",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz",
"integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==",
"requires": {
"vscode-jsonrpc": "8.0.2",
"vscode-languageserver-types": "3.17.2"
},
"dependencies": {
"vscode-languageserver-types": {
"version": "3.17.2",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
"integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
}
"vscode-jsonrpc": "8.1.0",
"vscode-languageserver-types": "3.17.3"
}
},
"vscode-languageserver-types": {
"version": "3.17.3",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz",
"integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="
},
"vscode-oniguruma": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
@@ -12433,17 +12474,17 @@
"peer": true
},
"vscode-textmate": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz",
"integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==",
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-9.0.0.tgz",
"integrity": "sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==",
"peer": true
},
"vscode-ws-jsonrpc": {
"version": "3.0.0-next.1",
"resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.0.0-next.1.tgz",
"integrity": "sha512-9Snn23NgLKRO+LDuNcF+0mYIjgsDFXXinLQNP/unPXzaE6YO6eaO2uyf88HHg3M9wyQf/bArO67sYhsBFdC3Ow==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.0.0.tgz",
"integrity": "sha512-22IbVb2K691np9pOubyahNBj1BicsbtlbiaHOJu5/rvyWDqmqPMAqpAfojwGjdBztp8EtO8TAO7lmyY6hnmYAA==",
"requires": {
"vscode-jsonrpc": "8.0.2"
"vscode-jsonrpc": "~8.1.0"
}
},
"web-streams-polyfill": {
+6 -6
View File
@@ -26,7 +26,7 @@
"@types/d3-zoom": "^3.0.2",
"@types/lodash": "^4.14.191",
"@types/node": "^18.11.18",
"@types/vscode": "~1.74.0",
"@types/vscode": "~1.76.0",
"@typescript-eslint/eslint-plugin": "^5.49.0",
"@typescript-eslint/parser": "^5.48.0",
"@zerodevx/svelte-toast": "^0.8.1",
@@ -36,7 +36,7 @@
"eslint": "^8.28.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-svelte3": "^4.0.0",
"monaco-editor-workers": "0.34.2",
"monaco-editor-workers": "0.36.0",
"ol": "^7.2.2",
"openapi-typescript-codegen": "^0.23.0",
"path-browserify": "^1.0.1",
@@ -84,16 +84,16 @@
"highlight.js": "^11.7.0",
"lodash": "^4.17.21",
"lucide-svelte": "^0.115.0",
"monaco-editor": "0.34.1",
"monaco-languageclient": "5.0.0-next.3",
"monaco-editor": "0.36.1",
"monaco-languageclient": "5.0.1",
"svelte-autosize": "^1.0.1",
"svelte-chartjs": "^3.1.0",
"svelte-portal": "^2.2.0",
"svelte-select": "^5.3.1",
"svelte-timezone-picker": "^2.0.3",
"tailwind-merge": "^1.9.1",
"vscode-languageclient": "~8.0.2",
"vscode-ws-jsonrpc": "3.0.0-next.1"
"vscode-languageclient": "^8.1.0",
"vscode-ws-jsonrpc": "3.0.0"
},
"peerDependencies": {
"svelte": "^3.55.1"
+27 -27
View File
@@ -18,24 +18,30 @@
import { page } from '$app/stores'
import { sendUserToast } from '$lib/utils'
import { buildWorkerDefinition } from 'monaco-editor-workers'
import type { MonacoLanguageClient } from 'monaco-languageclient'
import { createEventDispatcher, onDestroy, onMount } from 'svelte'
import { editor as meditor, KeyCode, KeyMod, languages, Uri as mUri } from 'monaco-editor'
import 'monaco-editor/esm/vs/editor/edcore.main'
import {
editor as meditor,
KeyCode,
KeyMod,
Uri as mUri,
languages
} from 'monaco-editor/esm/vs/editor/editor.api'
import 'monaco-editor/esm/vs/basic-languages/python/python.contribution'
import 'monaco-editor/esm/vs/basic-languages/go/go.contribution'
import 'monaco-editor/esm/vs/basic-languages/shell/shell.contribution'
import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution'
import { MonacoLanguageClient, MonacoServices } from 'monaco-languageclient'
import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from 'vscode-ws-jsonrpc'
import { CloseAction, ErrorAction, RequestType } from 'vscode-languageclient'
import * as vscode from 'vscode'
languages.typescript.typescriptDefaults.setCompilerOptions({
target: languages.typescript.ScriptTarget.Latest,
allowNonTsExtensions: true,
noLib: true
languages.typescript.typescriptDefaults.setModeConfiguration({
completionItems: false,
definitions: false,
hovers: false
})
languages.typescript.typescriptDefaults.setDiagnosticsOptions({
noSemanticValidation: true,
noSuggestionDiagnostics: true,
noSyntaxValidation: true
})
languages.typescript.typescriptDefaults.setExtraLibs([])
meditor.defineTheme('myTheme', {
base: 'vs',
inherit: true,
@@ -62,6 +68,7 @@
import type { Disposable } from 'vscode'
import type { DocumentUri, MessageTransports } from 'vscode-languageclient'
import { dirtyStore } from './common/confirmationModal/dirtyStore'
import { buildWorkerDefinition } from './build_workers'
let divEl: HTMLDivElement | null = null
let editor: meditor.IStandaloneCodeEditor
@@ -85,7 +92,9 @@
const uri = `file:///tmp/monaco/${hash}.${langToExt(lang)}`
// if (lang != 'typescript') {
buildWorkerDefinition('../../../workers', import.meta.url, false)
// }
export function getCode(): string {
return editor?.getValue() ?? ''
@@ -137,7 +146,7 @@
export function format() {
if (editor) {
code = getCode()
editor.getAction('editor.action.formatDocument').run()
editor?.getAction('editor.action.formatDocument')?.run()
if (formatAction) {
formatAction()
}
@@ -163,15 +172,6 @@
export async function reloadWebsocket() {
await closeWebsockets()
const { MonacoLanguageClient } = await import('monaco-languageclient')
const { CloseAction, ErrorAction } = await import('vscode-languageclient')
const { toSocket, WebSocketMessageReader, WebSocketMessageWriter } = await import(
'vscode-ws-jsonrpc'
)
const vscode = await import('vscode')
const { RequestType } = await import('vscode-jsonrpc')
// install Monaco language client services
const { MonacoServices } = await import('monaco-languageclient')
monacoServices = MonacoServices.install()
@@ -234,9 +234,9 @@
initOptions,
middlewareOptions
)
if (middlewareOptions != undefined) {
languageClient.registerConfigurationFeatures()
}
// if (middlewareOptions != undefined) {
// languageClient.registerNotUsedFeatures()
// }
websockets.push([languageClient, webSocket])
// HACK ALERT: for some reasons, the client need to be restarted to take into account the 'go get <dep>' command
@@ -2,7 +2,18 @@
import { browser } from '$app/environment'
import { createHash, editorConfig, langToExt, updateOptions } from '$lib/editorUtils'
import { editor as meditor, KeyCode, KeyMod, languages, Uri as mUri } from 'monaco-editor'
import 'monaco-editor/esm/vs/editor/edcore.main'
import {
editor as meditor,
KeyCode,
KeyMod,
Uri as mUri,
languages
} from 'monaco-editor/esm/vs/editor/editor.api'
import 'monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution'
import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution'
import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution'
import { createEventDispatcher, onDestroy, onMount } from 'svelte'
import libStdContent from '$lib/es5.d.ts.txt?raw'
@@ -73,7 +84,7 @@
export function format() {
if (editor) {
code = getCode()
editor.getAction('editor.action.formatDocument').run()
editor.getAction('editor.action.formatDocument')?.run()
if (formatAction) {
formatAction()
code = getCode()
@@ -9,14 +9,21 @@
updateOptions
} from '$lib/editorUtils'
import libStdContent from '$lib/es5.d.ts.txt?raw'
import { editor as meditor, languages, Range, Uri as mUri } from 'monaco-editor'
import { buildWorkerDefinition } from 'monaco-editor-workers'
import {
editor as meditor,
Uri as mUri,
languages,
Range
} from 'monaco-editor/esm/vs/editor/edcore.main'
import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution'
import { createEventDispatcher, getContext, onDestroy, onMount } from 'svelte'
import type { AppViewerContext } from './apps/types'
import { writable } from 'svelte/store'
import * as typescript from 'monaco-editor/esm/vs/language/typescript/monaco.contribution'
import { buildWorkerDefinition } from './build_workers'
languages.typescript.javascriptDefaults.setCompilerOptions({
target: languages.typescript.ScriptTarget.Latest,
typescript.javascriptDefaults.setCompilerOptions({
target: typescript.ScriptTarget.Latest,
allowNonTsExtensions: true,
noLib: true
})
@@ -0,0 +1,83 @@
// copied Window & Environment definitions from monaco-editor/esm/vs/editor/editor.api.js to be able to remove dependencies
interface Window {
MonacoEnvironment?: Environment
}
export interface Environment {
globalAPI?: boolean
baseUrl?: string
getWorker?(workerId: string, label: string): Promise<Worker> | Worker
getWorkerUrl?(workerId: string, label: string): string
workerOverrideGlobals: WorkerOverrideGlobals
}
type WorkerOverrideGlobals = {
basePath: string
workerPath: string
workerOptions: WorkerOptions
}
export function buildWorkerDefinition(
workerPath: string,
basePath: string,
useModuleWorker: boolean
) {
const monWin = self as Window
const workerOverrideGlobals: WorkerOverrideGlobals = {
basePath: basePath,
workerPath: workerPath,
workerOptions: {
type: useModuleWorker ? 'module' : 'classic'
}
}
if (!monWin.MonacoEnvironment) {
monWin.MonacoEnvironment = {
workerOverrideGlobals: workerOverrideGlobals
}
}
const getWorker = (_: string, label: string) => {
console.log('getWorker: workerId: ' + _ + ' label: ' + label)
const buildWorker = (
globals: WorkerOverrideGlobals,
label: string,
workerName: string,
editorType: string
) => {
globals.workerOptions.name = label
const workerFilename =
globals.workerOptions.type === 'module' ? `${workerName}-es.js` : `${workerName}-iife.js`
const workerPathLocal = `${globals.workerPath}/${workerFilename}`
const workerUrl = new URL(workerPathLocal, globals.basePath)
console.log(
`${editorType}: url: ${workerUrl.href} created from basePath: ${globals.basePath} and file: ${workerPathLocal}`
)
return new Worker(workerUrl.href, globals.workerOptions)
}
switch (label) {
case 'template':
case 'typescript':
case 'javascript':
return buildWorker(workerOverrideGlobals, label, 'tsWorker', 'TS Worker')
case 'html':
case 'handlebars':
case 'razor':
return buildWorker(workerOverrideGlobals, label, 'htmlWorker', 'HTML Worker')
case 'css':
case 'scss':
case 'less':
return buildWorker(workerOverrideGlobals, label, 'cssWorker', 'CSS Worker')
case 'json':
return buildWorker(workerOverrideGlobals, label, 'jsonWorker', 'JSON Worker')
default:
return buildWorker(workerOverrideGlobals, label, 'editorWorker', 'Editor Worker')
}
}
monWin.MonacoEnvironment.getWorker = getWorker
}
+2
View File
@@ -59,6 +59,8 @@ export function langToExt(lang: string): string {
return 'go'
case 'bash':
return 'sh'
case 'deno':
return 'ts'
default:
return 'unknown'
}
+1 -3
View File
@@ -635,9 +635,7 @@ export function classNames(...classes: Array<string | undefined>): string {
return classes.filter(Boolean).join(' ')
}
export function scriptLangToEditorLang(
lang: Script.language
): 'typescript' | 'python' | 'go' | 'shell' {
export function scriptLangToEditorLang(lang: Script.language) {
if (lang == 'deno') {
return 'typescript'
} else if (lang == 'python3') {
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
self.onmessage = function (e) {}