Merge pull request #48 from remcohaszing/monaco-imports

Replace monaco namespace with monaco-editor imports
This commit is contained in:
Remco Haszing 2021-07-17 12:46:06 +02:00 committed by GitHub
commit c12db2ef5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 249 additions and 376 deletions

View file

@ -17,7 +17,7 @@
"css-loader": "^3.4.2", "css-loader": "^3.4.2",
"file-loader": "^5.1.0", "file-loader": "^5.1.0",
"html-webpack-plugin": "^3.2.0", "html-webpack-plugin": "^3.2.0",
"monaco-editor": "^0.20.0", "monaco-editor": "^0.21.3",
"monaco-yaml": "file:../..", "monaco-yaml": "file:../..",
"react": "^16.12.0", "react": "^16.12.0",
"react-dom": "^16.12.0", "react-dom": "^16.12.0",

View file

@ -1037,6 +1037,13 @@ aproba@^1.1.1:
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
arr-diff@^4.0.0: arr-diff@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
@ -2114,6 +2121,11 @@ eslint-scope@^4.0.3:
esrecurse "^4.1.0" esrecurse "^4.1.0"
estraverse "^4.1.1" estraverse "^4.1.1"
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esrecurse@^4.1.0: esrecurse@^4.1.0:
version "4.2.1" version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
@ -3066,6 +3078,14 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^3.14.1:
version "3.14.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
jsesc@^2.5.1: jsesc@^2.5.1:
version "2.5.2" version "2.5.2"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
@ -3421,17 +3441,16 @@ mkdirp@^0.5.1:
dependencies: dependencies:
minimist "0.0.8" minimist "0.0.8"
monaco-editor@^0.20.0: monaco-editor@^0.21.3:
version "0.20.0" version "0.21.3"
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.20.0.tgz#5d5009343a550124426cb4d965a4d27a348b4dea" resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.21.3.tgz#3381b66614b64d1c5e3b77dd5564ad496d1b4e5d"
integrity sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ== integrity sha512-9N7wATLpi+googstvtm6IKg97vPQ77FDYEpkow5tLriM/VJ0DaTRyUP4UVzcoH7KlPDX+e/rE7/imcOUeGkT6g==
monaco-yaml@^2.4.0: "monaco-yaml@file:../..":
version "2.4.0" version "2.5.0"
resolved "https://registry.yarnpkg.com/monaco-yaml/-/monaco-yaml-2.4.0.tgz#027307a231d809c416babf1cf89b4c1bb940e55d" dependencies:
integrity sha512-ElUS6uBqEjA2/o2gLuNdnqWSAAQXh8ISr1kwlFErm3t5IXO74TNfS3gnjO6Kv9TXS7LImjGfgPAZei7o8zNTHw== js-yaml "^3.14.1"
optionalDependencies: yaml-ast-parser-custom-tags "^0.0.43"
prettier "^1.19.1"
move-concurrently@^1.0.1: move-concurrently@^1.0.1:
version "1.0.1" version "1.0.1"
@ -3946,11 +3965,6 @@ postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.
source-map "^0.6.1" source-map "^0.6.1"
supports-color "^6.1.0" supports-color "^6.1.0"
prettier@^1.19.1:
version "1.19.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
pretty-error@^2.0.2: pretty-error@^2.0.2:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"
@ -4643,6 +4657,11 @@ split-string@^3.0.1, split-string@^3.0.2:
dependencies: dependencies:
extend-shallow "^3.0.0" extend-shallow "^3.0.0"
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
ssri@^6.0.1: ssri@^6.0.1:
version "6.0.1" version "6.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
@ -5302,6 +5321,11 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yaml-ast-parser-custom-tags@^0.0.43:
version "0.0.43"
resolved "https://registry.yarnpkg.com/yaml-ast-parser-custom-tags/-/yaml-ast-parser-custom-tags-0.0.43.tgz#46968145ce4e24cb03c3312057f0f141b93a7d02"
integrity sha512-R5063FF/JSAN6qXCmylwjt9PcDH6M0ExEme/nJBzLspc6FJDmHHIqM7xh2WfEmsTJqClF79A9VkXjkAqmZw9SQ==
yargs-parser@^11.1.1: yargs-parser@^11.1.1:
version "11.1.1" version "11.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"

View file

@ -17,7 +17,7 @@
"css-loader": "^3.4.2", "css-loader": "^3.4.2",
"file-loader": "^5.1.0", "file-loader": "^5.1.0",
"html-webpack-plugin": "^3.2.0", "html-webpack-plugin": "^3.2.0",
"monaco-editor": "^0.20.0", "monaco-editor": "^0.21.3",
"monaco-yaml": "file:../..", "monaco-yaml": "file:../..",
"react": "^16.12.0", "react": "^16.12.0",
"react-dom": "^16.12.0", "react-dom": "^16.12.0",

View file

@ -972,13 +972,6 @@ acorn@^6.2.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784"
integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==
agent-base@4, agent-base@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
dependencies:
es6-promisify "^5.0.0"
ajv-errors@^1.0.0: ajv-errors@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
@ -1793,14 +1786,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
dependencies: dependencies:
ms "2.0.0" ms "2.0.0"
debug@3.1.0: debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
dependencies:
ms "2.0.0"
debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5:
version "3.2.6" version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@ -2117,18 +2103,6 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1" is-date-object "^1.0.1"
is-symbol "^1.0.2" is-symbol "^1.0.2"
es6-promise@^4.0.3:
version "4.2.8"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
es6-promisify@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
dependencies:
es6-promise "^4.0.3"
escape-html@~1.0.3: escape-html@~1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@ -2750,14 +2724,6 @@ http-errors@~1.7.2:
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=
http-proxy-agent@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
dependencies:
agent-base "4"
debug "3.1.0"
http-proxy-middleware@0.19.1: http-proxy-middleware@0.19.1:
version "0.19.1" version "0.19.1"
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
@ -2782,14 +2748,6 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
https-proxy-agent@^2.2.3:
version "2.2.4"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b"
integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==
dependencies:
agent-base "^4.3.0"
debug "^3.1.0"
iconv-lite@0.4.24: iconv-lite@0.4.24:
version "0.4.24" version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@ -3120,10 +3078,10 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^3.13.1: js-yaml@^3.14.1:
version "3.14.0" version "3.14.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
dependencies: dependencies:
argparse "^1.0.7" argparse "^1.0.7"
esprima "^4.0.0" esprima "^4.0.0"
@ -3172,11 +3130,6 @@ json5@^2.1.0:
dependencies: dependencies:
minimist "^1.2.0" minimist "^1.2.0"
jsonc-parser@^2.2.1:
version "2.3.0"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.0.tgz#7c7fc988ee1486d35734faaaa866fadb00fa91ee"
integrity sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==
killable@^1.0.1: killable@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
@ -3488,17 +3441,16 @@ mkdirp@^0.5.1:
dependencies: dependencies:
minimist "0.0.8" minimist "0.0.8"
monaco-editor@^0.20.0: monaco-editor@^0.21.3:
version "0.20.0" version "0.21.3"
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.20.0.tgz#5d5009343a550124426cb4d965a4d27a348b4dea" resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.21.3.tgz#3381b66614b64d1c5e3b77dd5564ad496d1b4e5d"
integrity sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ== integrity sha512-9N7wATLpi+googstvtm6IKg97vPQ77FDYEpkow5tLriM/VJ0DaTRyUP4UVzcoH7KlPDX+e/rE7/imcOUeGkT6g==
"monaco-yaml@file:../..": "monaco-yaml@file:../..":
version "2.4.1" version "2.5.0"
dependencies: dependencies:
yaml-language-server "^0.9.0" js-yaml "^3.14.1"
optionalDependencies: yaml-ast-parser-custom-tags "^0.0.43"
prettier "^1.19.1"
move-concurrently@^1.0.1: move-concurrently@^1.0.1:
version "1.0.1" version "1.0.1"
@ -4013,11 +3965,6 @@ postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.
source-map "^0.6.1" source-map "^0.6.1"
supports-color "^6.1.0" supports-color "^6.1.0"
prettier@^1.18.2, prettier@^1.19.1:
version "1.19.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
pretty-error@^2.0.2: pretty-error@^2.0.2:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"
@ -4323,15 +4270,6 @@ repeat-string@^1.6.1:
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
request-light@^0.2.4:
version "0.2.5"
resolved "https://registry.yarnpkg.com/request-light/-/request-light-0.2.5.tgz#38a3da7b2e56f7af8cbba57e8a94930ee2380746"
integrity sha512-eBEh+GzJAftUnex6tcL6eV2JCifY0+sZMIUpUPOVXbs2nV5hla4ZMmO3icYKGuGVuQ2zHE9evh4OrRcH4iyYYw==
dependencies:
http-proxy-agent "^2.1.0"
https-proxy-agent "^2.2.3"
vscode-nls "^4.1.1"
require-directory@^2.1.1: require-directory@^2.1.1:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@ -5162,68 +5100,6 @@ vm-browserify@^1.0.1:
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
vscode-json-languageservice@^3.6.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.7.0.tgz#0174417f139cf41dd60c84538fd052385bfb46f6"
integrity sha512-nGLqcBhTjdfkl8Dz9sYGK/ZCTjscYFoIjYw+qqkWB+vyNfM0k/AyIoT73DQvB/PArteCKjEVfQUF72GRZEDSbQ==
dependencies:
jsonc-parser "^2.2.1"
vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "^3.15.1"
vscode-nls "^4.1.2"
vscode-uri "^2.1.2"
vscode-jsonrpc@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9"
integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg==
vscode-languageserver-protocol@3.14.1:
version "3.14.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz#b8aab6afae2849c84a8983d39a1cf742417afe2f"
integrity sha512-IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g==
dependencies:
vscode-jsonrpc "^4.0.0"
vscode-languageserver-types "3.14.0"
vscode-languageserver-textdocument@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f"
integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==
vscode-languageserver-types@3.14.0:
version "3.14.0"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743"
integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A==
vscode-languageserver-types@^3.15.1:
version "3.15.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de"
integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==
vscode-languageserver@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz#0d2feddd33f92aadf5da32450df498d52f6f14eb"
integrity sha512-GuayqdKZqAwwaCUjDvMTAVRPJOp/SLON3mJ07eGsx/Iq9HjRymhKWztX41rISqDKhHVVyFM+IywICyZDla6U3A==
dependencies:
vscode-languageserver-protocol "3.14.1"
vscode-uri "^1.0.6"
vscode-nls@^4.1.1, vscode-nls@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz#ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167"
integrity sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==
vscode-uri@^1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz#9769aaececae4026fb6e22359cb38946580ded59"
integrity sha512-obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ==
vscode-uri@^2.1.1, vscode-uri@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"
integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==
watchpack@^1.6.0: watchpack@^1.6.0:
version "1.6.0" version "1.6.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
@ -5429,28 +5305,11 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yaml-ast-parser-custom-tags@0.0.43: yaml-ast-parser-custom-tags@^0.0.43:
version "0.0.43" version "0.0.43"
resolved "https://registry.yarnpkg.com/yaml-ast-parser-custom-tags/-/yaml-ast-parser-custom-tags-0.0.43.tgz#46968145ce4e24cb03c3312057f0f141b93a7d02" resolved "https://registry.yarnpkg.com/yaml-ast-parser-custom-tags/-/yaml-ast-parser-custom-tags-0.0.43.tgz#46968145ce4e24cb03c3312057f0f141b93a7d02"
integrity sha512-R5063FF/JSAN6qXCmylwjt9PcDH6M0ExEme/nJBzLspc6FJDmHHIqM7xh2WfEmsTJqClF79A9VkXjkAqmZw9SQ== integrity sha512-R5063FF/JSAN6qXCmylwjt9PcDH6M0ExEme/nJBzLspc6FJDmHHIqM7xh2WfEmsTJqClF79A9VkXjkAqmZw9SQ==
yaml-language-server@^0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/yaml-language-server/-/yaml-language-server-0.9.0.tgz#6f7b0068dfd182589320da7d36f7ade897f6c4a0"
integrity sha512-nRExM5NfJXzxTKlFmHKr/ZtoxZCddH1kuuWNfHRvTLCEHzexIn/YvI/DBZHxKLh/ym9f4Q4j4zW76vB6J18lUQ==
dependencies:
js-yaml "^3.13.1"
jsonc-parser "^2.2.1"
request-light "^0.2.4"
vscode-json-languageservice "^3.6.0"
vscode-languageserver "^5.2.1"
vscode-languageserver-types "^3.15.1"
vscode-nls "^4.1.2"
vscode-uri "^2.1.1"
yaml-ast-parser-custom-tags "0.0.43"
optionalDependencies:
prettier "^1.18.2"
yargs-parser@^11.1.1: yargs-parser@^11.1.1:
version "11.1.1" version "11.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"

View file

@ -40,8 +40,7 @@
"devDependencies": { "devDependencies": {
"husky": "^5.2.0", "husky": "^5.2.0",
"lint-staged": "^10.5.4", "lint-staged": "^10.5.4",
"monaco-editor": "^0.21.2", "monaco-editor": "^0.21.3",
"monaco-editor-core": "^0.21.2",
"monaco-languages": "^2.1.1", "monaco-languages": "^2.1.1",
"monaco-plugin-helpers": "^1.0.3", "monaco-plugin-helpers": "^1.0.3",
"prettier": "2.0.5", "prettier": "2.0.5",

View file

@ -33,6 +33,8 @@ function bundleOne(moduleId, exclude) {
exclude: exclude, exclude: exclude,
paths: { paths: {
'vs/language/yaml': REPO_ROOT + '/out/amd', 'vs/language/yaml': REPO_ROOT + '/out/amd',
'monaco-editor/esm/vs/editor/editor.api':
REPO_ROOT + '/out/amd/fillers/monaco-editor-amd',
}, },
optimize: 'none', optimize: 'none',
packages: [ packages: [

View file

@ -8,17 +8,21 @@ import { LanguageServiceDefaultsImpl } from './monaco.contribution';
import { YAMLWorker } from './yamlWorker'; import { YAMLWorker } from './yamlWorker';
import * as ls from 'vscode-languageserver-types'; import * as ls from 'vscode-languageserver-types';
import {
import Uri = monaco.Uri; editor,
import Position = monaco.Position; languages,
import Range = monaco.Range; CancellationToken,
import IRange = monaco.IRange; IDisposable,
import Thenable = monaco.Thenable; IMarkdownString,
import CancellationToken = monaco.CancellationToken; IRange,
import IDisposable = monaco.IDisposable; MarkerSeverity,
Position,
Range,
Uri,
} from 'monaco-editor/esm/vs/editor/editor.api';
import { CustomFormatterOptions } from 'yaml-language-server'; import { CustomFormatterOptions } from 'yaml-language-server';
export type WorkerAccessor = (...more: Uri[]) => Thenable<YAMLWorker>; export type WorkerAccessor = (...more: Uri[]) => PromiseLike<YAMLWorker>;
// --- diagnostics --- --- // --- diagnostics --- ---
@ -31,7 +35,7 @@ export class DiagnosticsAdapter {
private _worker: WorkerAccessor, private _worker: WorkerAccessor,
defaults: LanguageServiceDefaultsImpl defaults: LanguageServiceDefaultsImpl
) { ) {
const onModelAdd = (model: monaco.editor.IModel): void => { const onModelAdd = (model: editor.IModel): void => {
const modeId = model.getModeId(); const modeId = model.getModeId();
if (modeId !== this._languageId) { if (modeId !== this._languageId) {
return; return;
@ -46,8 +50,8 @@ export class DiagnosticsAdapter {
this._doValidate(model.uri, modeId); this._doValidate(model.uri, modeId);
}; };
const onModelRemoved = (model: monaco.editor.IModel): void => { const onModelRemoved = (model: editor.IModel): void => {
monaco.editor.setModelMarkers(model, this._languageId, []); editor.setModelMarkers(model, this._languageId, []);
const uriStr = model.uri.toString(); const uriStr = model.uri.toString();
const listener = this._listener[uriStr]; const listener = this._listener[uriStr];
if (listener) { if (listener) {
@ -56,15 +60,15 @@ export class DiagnosticsAdapter {
} }
}; };
this._disposables.push(monaco.editor.onDidCreateModel(onModelAdd)); this._disposables.push(editor.onDidCreateModel(onModelAdd));
this._disposables.push( this._disposables.push(
monaco.editor.onWillDisposeModel((model) => { editor.onWillDisposeModel((model) => {
onModelRemoved(model); onModelRemoved(model);
this._resetSchema(model.uri); this._resetSchema(model.uri);
}) })
); );
this._disposables.push( this._disposables.push(
monaco.editor.onDidChangeModelLanguage((event) => { editor.onDidChangeModelLanguage((event) => {
onModelRemoved(event.model); onModelRemoved(event.model);
onModelAdd(event.model); onModelAdd(event.model);
this._resetSchema(event.model.uri); this._resetSchema(event.model.uri);
@ -73,7 +77,7 @@ export class DiagnosticsAdapter {
this._disposables.push( this._disposables.push(
defaults.onDidChange((_) => { defaults.onDidChange((_) => {
monaco.editor.getModels().forEach((model) => { editor.getModels().forEach((model) => {
if (model.getModeId() === this._languageId) { if (model.getModeId() === this._languageId) {
onModelRemoved(model); onModelRemoved(model);
onModelAdd(model); onModelAdd(model);
@ -84,14 +88,14 @@ export class DiagnosticsAdapter {
this._disposables.push({ this._disposables.push({
dispose: () => { dispose: () => {
monaco.editor.getModels().forEach(onModelRemoved); editor.getModels().forEach(onModelRemoved);
for (const key in this._listener) { for (const key in this._listener) {
this._listener[key].dispose(); this._listener[key].dispose();
} }
}, },
}); });
monaco.editor.getModels().forEach(onModelAdd); editor.getModels().forEach(onModelAdd);
} }
public dispose(): void { public dispose(): void {
@ -110,9 +114,9 @@ export class DiagnosticsAdapter {
.then((worker) => { .then((worker) => {
return worker.doValidation(resource.toString()).then((diagnostics) => { return worker.doValidation(resource.toString()).then((diagnostics) => {
const markers = diagnostics.map((d) => toDiagnostics(resource, d)); const markers = diagnostics.map((d) => toDiagnostics(resource, d));
const model = monaco.editor.getModel(resource); const model = editor.getModel(resource);
if (model.getModeId() === languageId) { if (model.getModeId() === languageId) {
monaco.editor.setModelMarkers(model, languageId, markers); editor.setModelMarkers(model, languageId, markers);
} }
}); });
}) })
@ -122,25 +126,22 @@ export class DiagnosticsAdapter {
} }
} }
function toSeverity(lsSeverity: number): monaco.MarkerSeverity { function toSeverity(lsSeverity: number): MarkerSeverity {
switch (lsSeverity) { switch (lsSeverity) {
case ls.DiagnosticSeverity.Error: case ls.DiagnosticSeverity.Error:
return monaco.MarkerSeverity.Error; return MarkerSeverity.Error;
case ls.DiagnosticSeverity.Warning: case ls.DiagnosticSeverity.Warning:
return monaco.MarkerSeverity.Warning; return MarkerSeverity.Warning;
case ls.DiagnosticSeverity.Information: case ls.DiagnosticSeverity.Information:
return monaco.MarkerSeverity.Info; return MarkerSeverity.Info;
case ls.DiagnosticSeverity.Hint: case ls.DiagnosticSeverity.Hint:
return monaco.MarkerSeverity.Hint; return MarkerSeverity.Hint;
default: default:
return monaco.MarkerSeverity.Info; return MarkerSeverity.Info;
} }
} }
function toDiagnostics( function toDiagnostics(resource: Uri, diag: ls.Diagnostic): editor.IMarkerData {
resource: Uri,
diag: ls.Diagnostic
): monaco.editor.IMarkerData {
const code = const code =
typeof diag.code === 'number' ? String(diag.code) : (diag.code as string); typeof diag.code === 'number' ? String(diag.code) : (diag.code as string);
@ -189,10 +190,8 @@ function toRange(range: ls.Range): Range {
); );
} }
function toCompletionItemKind( function toCompletionItemKind(kind: number): languages.CompletionItemKind {
kind: number const mItemKind = languages.CompletionItemKind;
): monaco.languages.CompletionItemKind {
const mItemKind = monaco.languages.CompletionItemKind;
switch (kind) { switch (kind) {
case ls.CompletionItemKind.Text: case ls.CompletionItemKind.Text:
@ -236,9 +235,9 @@ function toCompletionItemKind(
} }
function fromCompletionItemKind( function fromCompletionItemKind(
kind: monaco.languages.CompletionItemKind kind: languages.CompletionItemKind
): ls.CompletionItemKind { ): ls.CompletionItemKind {
const mItemKind = monaco.languages.CompletionItemKind; const mItemKind = languages.CompletionItemKind;
switch (kind) { switch (kind) {
case mItemKind.Text: case mItemKind.Text:
@ -281,7 +280,7 @@ function fromCompletionItemKind(
return ls.CompletionItemKind.Property; return ls.CompletionItemKind.Property;
} }
function toTextEdit(textEdit: ls.TextEdit): monaco.editor.ISingleEditOperation { function toTextEdit(textEdit: ls.TextEdit): editor.ISingleEditOperation {
if (!textEdit) { if (!textEdit) {
return void 0; return void 0;
} }
@ -291,8 +290,7 @@ function toTextEdit(textEdit: ls.TextEdit): monaco.editor.ISingleEditOperation {
}; };
} }
export class CompletionAdapter export class CompletionAdapter implements languages.CompletionItemProvider {
implements monaco.languages.CompletionItemProvider {
constructor(private _worker: WorkerAccessor) {} constructor(private _worker: WorkerAccessor) {}
public get triggerCharacters(): string[] { public get triggerCharacters(): string[] {
@ -300,11 +298,11 @@ export class CompletionAdapter
} }
public provideCompletionItems( public provideCompletionItems(
model: monaco.editor.IReadOnlyModel, model: editor.IReadOnlyModel,
position: Position, position: Position,
context: monaco.languages.CompletionContext, context: languages.CompletionContext,
token: CancellationToken token: CancellationToken
): Thenable<monaco.languages.CompletionList> { ): PromiseLike<languages.CompletionList> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource) return this._worker(resource)
@ -324,34 +322,32 @@ export class CompletionAdapter
wordInfo.endColumn wordInfo.endColumn
); );
const items: monaco.languages.CompletionItem[] = info.items.map( const items: languages.CompletionItem[] = info.items.map((entry) => {
(entry) => { const item: languages.CompletionItem = {
const item: monaco.languages.CompletionItem = { label: entry.label,
label: entry.label, insertText: entry.insertText || entry.label,
insertText: entry.insertText || entry.label, sortText: entry.sortText,
sortText: entry.sortText, filterText: entry.filterText,
filterText: entry.filterText, documentation: entry.documentation,
documentation: entry.documentation, detail: entry.detail,
detail: entry.detail, kind: toCompletionItemKind(entry.kind),
kind: toCompletionItemKind(entry.kind), range: wordRange,
range: wordRange, };
}; if (entry.textEdit) {
if (entry.textEdit) { item.range = toRange(entry.textEdit.range);
item.range = toRange(entry.textEdit.range); item.insertText = entry.textEdit.newText;
item.insertText = entry.textEdit.newText;
}
if (entry.additionalTextEdits) {
item.additionalTextEdits = entry.additionalTextEdits.map(
toTextEdit
);
}
if (entry.insertTextFormat === ls.InsertTextFormat.Snippet) {
item.insertTextRules =
monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet;
}
return item;
} }
); if (entry.additionalTextEdits) {
item.additionalTextEdits = entry.additionalTextEdits.map(
toTextEdit
);
}
if (entry.insertTextFormat === ls.InsertTextFormat.Snippet) {
item.insertTextRules =
languages.CompletionItemInsertTextRule.InsertAsSnippet;
}
return item;
});
return { return {
isIncomplete: info.isIncomplete, isIncomplete: info.isIncomplete,
@ -371,7 +367,7 @@ function isMarkupContent(thing: any): thing is ls.MarkupContent {
function toMarkdownString( function toMarkdownString(
entry: ls.MarkupContent | ls.MarkedString entry: ls.MarkupContent | ls.MarkedString
): monaco.IMarkdownString { ): IMarkdownString {
if (typeof entry === 'string') { if (typeof entry === 'string') {
return { return {
value: entry, value: entry,
@ -393,7 +389,7 @@ function toMarkdownString(
function toMarkedStringArray( function toMarkedStringArray(
contents: ls.MarkupContent | ls.MarkedString | ls.MarkedString[] contents: ls.MarkupContent | ls.MarkedString | ls.MarkedString[]
): monaco.IMarkdownString[] { ): IMarkdownString[] {
if (!contents) { if (!contents) {
return void 0; return void 0;
} }
@ -405,14 +401,14 @@ function toMarkedStringArray(
// --- hover ------ // --- hover ------
export class HoverAdapter implements monaco.languages.HoverProvider { export class HoverAdapter implements languages.HoverProvider {
constructor(private _worker: WorkerAccessor) {} constructor(private _worker: WorkerAccessor) {}
public provideHover( public provideHover(
model: monaco.editor.IReadOnlyModel, model: editor.IReadOnlyModel,
position: Position, position: Position,
token: CancellationToken token: CancellationToken
): Thenable<monaco.languages.Hover> { ): PromiseLike<languages.Hover> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource) return this._worker(resource)
@ -426,15 +422,15 @@ export class HoverAdapter implements monaco.languages.HoverProvider {
return { return {
range: toRange(info.range), range: toRange(info.range),
contents: toMarkedStringArray(info.contents), contents: toMarkedStringArray(info.contents),
} as monaco.languages.Hover; } as languages.Hover;
}); });
} }
} }
// --- document symbols ------ // --- document symbols ------
function toSymbolKind(kind: ls.SymbolKind): monaco.languages.SymbolKind { function toSymbolKind(kind: ls.SymbolKind): languages.SymbolKind {
const mKind = monaco.languages.SymbolKind; const mKind = languages.SymbolKind;
switch (kind) { switch (kind) {
case ls.SymbolKind.File: case ls.SymbolKind.File:
@ -477,14 +473,13 @@ function toSymbolKind(kind: ls.SymbolKind): monaco.languages.SymbolKind {
return mKind.Function; return mKind.Function;
} }
export class DocumentSymbolAdapter export class DocumentSymbolAdapter implements languages.DocumentSymbolProvider {
implements monaco.languages.DocumentSymbolProvider {
constructor(private _worker: WorkerAccessor) {} constructor(private _worker: WorkerAccessor) {}
public provideDocumentSymbols( public provideDocumentSymbols(
model: monaco.editor.IReadOnlyModel, model: editor.IReadOnlyModel,
token: CancellationToken token: CancellationToken
): Thenable<monaco.languages.DocumentSymbol[]> { ): PromiseLike<languages.DocumentSymbol[]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource) return this._worker(resource)
@ -498,9 +493,7 @@ export class DocumentSymbolAdapter
} }
} }
function toDocumentSymbol( function toDocumentSymbol(item: ls.DocumentSymbol): languages.DocumentSymbol {
item: ls.DocumentSymbol
): monaco.languages.DocumentSymbol {
return { return {
detail: '', detail: '',
range: toRange(item.range), range: toRange(item.range),
@ -513,7 +506,7 @@ function toDocumentSymbol(
} }
function fromFormattingOptions( function fromFormattingOptions(
options: monaco.languages.FormattingOptions options: languages.FormattingOptions
): ls.FormattingOptions & CustomFormatterOptions { ): ls.FormattingOptions & CustomFormatterOptions {
return { return {
tabSize: options.tabSize, tabSize: options.tabSize,
@ -523,14 +516,14 @@ function fromFormattingOptions(
} }
export class DocumentFormattingEditProvider export class DocumentFormattingEditProvider
implements monaco.languages.DocumentFormattingEditProvider { implements languages.DocumentFormattingEditProvider {
constructor(private _worker: WorkerAccessor) {} constructor(private _worker: WorkerAccessor) {}
public provideDocumentFormattingEdits( public provideDocumentFormattingEdits(
model: monaco.editor.IReadOnlyModel, model: editor.IReadOnlyModel,
options: monaco.languages.FormattingOptions, options: languages.FormattingOptions,
token: CancellationToken token: CancellationToken
): Thenable<monaco.editor.ISingleEditOperation[]> { ): PromiseLike<editor.ISingleEditOperation[]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then((worker) => { return this._worker(resource).then((worker) => {
@ -547,15 +540,15 @@ export class DocumentFormattingEditProvider
} }
export class DocumentRangeFormattingEditProvider export class DocumentRangeFormattingEditProvider
implements monaco.languages.DocumentRangeFormattingEditProvider { implements languages.DocumentRangeFormattingEditProvider {
constructor(private _worker: WorkerAccessor) {} constructor(private _worker: WorkerAccessor) {}
public provideDocumentRangeFormattingEdits( public provideDocumentRangeFormattingEdits(
model: monaco.editor.IReadOnlyModel, model: editor.IReadOnlyModel,
range: Range, range: Range,
options: monaco.languages.FormattingOptions, options: languages.FormattingOptions,
token: CancellationToken token: CancellationToken
): Thenable<monaco.editor.ISingleEditOperation[]> { ): PromiseLike<editor.ISingleEditOperation[]> {
const resource = model.uri; const resource = model.uri;
return this._worker(resource).then((worker) => { return this._worker(resource).then((worker) => {
@ -576,13 +569,13 @@ export class DocumentRangeFormattingEditProvider
} }
// export class DocumentColorAdapter // export class DocumentColorAdapter
// implements monaco.languages.DocumentColorProvider { // implements languages.DocumentColorProvider {
// constructor(private _worker: WorkerAccessor) {} // constructor(private _worker: WorkerAccessor) {}
// public provideDocumentColors( // public provideDocumentColors(
// model: monaco.editor.IReadOnlyModel, // model: editor.IReadOnlyModel,
// token: CancellationToken // token: CancellationToken
// ): Thenable<monaco.languages.IColorInformation[]> { // ): PromiseLike<languages.IColorInformation[]> {
// const resource = model.uri; // const resource = model.uri;
// return this._worker(resource) // return this._worker(resource)
@ -599,10 +592,10 @@ export class DocumentRangeFormattingEditProvider
// } // }
// public provideColorPresentations( // public provideColorPresentations(
// model: monaco.editor.IReadOnlyModel, // model: editor.IReadOnlyModel,
// info: monaco.languages.IColorInformation, // info: languages.IColorInformation,
// token: CancellationToken // token: CancellationToken
// ): Thenable<monaco.languages.IColorPresentation[]> { // ): PromiseLike<languages.IColorPresentation[]> {
// const resource = model.uri; // const resource = model.uri;
// return this._worker(resource) // return this._worker(resource)
@ -618,7 +611,7 @@ export class DocumentRangeFormattingEditProvider
// return; // return;
// } // }
// return presentations.map(presentation => { // return presentations.map(presentation => {
// const item: monaco.languages.IColorPresentation = { // const item: languages.IColorPresentation = {
// label: presentation.label, // label: presentation.label,
// }; // };
// if (presentation.textEdit) { // if (presentation.textEdit) {

View file

@ -4,11 +4,13 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import {
languages,
Emitter,
IEvent,
} from 'monaco-editor/esm/vs/editor/editor.api';
import { setupMode } from './yamlMode'; import { setupMode } from './yamlMode';
import Emitter = monaco.Emitter;
import IEvent = monaco.IEvent;
declare var require: <T>( declare var require: <T>(
moduleId: [string], moduleId: [string],
callback: (module: T) => void callback: (module: T) => void
@ -17,22 +19,20 @@ declare var require: <T>(
// --- YAML configuration and defaults --------- // --- YAML configuration and defaults ---------
export class LanguageServiceDefaultsImpl export class LanguageServiceDefaultsImpl
implements monaco.languages.yaml.LanguageServiceDefaults { implements languages.yaml.LanguageServiceDefaults {
private _onDidChange = new Emitter< private _onDidChange = new Emitter<languages.yaml.LanguageServiceDefaults>();
monaco.languages.yaml.LanguageServiceDefaults private _diagnosticsOptions: languages.yaml.DiagnosticsOptions;
>();
private _diagnosticsOptions: monaco.languages.yaml.DiagnosticsOptions;
private _languageId: string; private _languageId: string;
constructor( constructor(
languageId: string, languageId: string,
diagnosticsOptions: monaco.languages.yaml.DiagnosticsOptions diagnosticsOptions: languages.yaml.DiagnosticsOptions
) { ) {
this._languageId = languageId; this._languageId = languageId;
this.setDiagnosticsOptions(diagnosticsOptions); this.setDiagnosticsOptions(diagnosticsOptions);
} }
get onDidChange(): IEvent<monaco.languages.yaml.LanguageServiceDefaults> { get onDidChange(): IEvent<languages.yaml.LanguageServiceDefaults> {
return this._onDidChange.event; return this._onDidChange.event;
} }
@ -40,19 +40,19 @@ export class LanguageServiceDefaultsImpl
return this._languageId; return this._languageId;
} }
get diagnosticsOptions(): monaco.languages.yaml.DiagnosticsOptions { get diagnosticsOptions(): languages.yaml.DiagnosticsOptions {
return this._diagnosticsOptions; return this._diagnosticsOptions;
} }
public setDiagnosticsOptions( public setDiagnosticsOptions(
options: monaco.languages.yaml.DiagnosticsOptions options: languages.yaml.DiagnosticsOptions
): void { ): void {
this._diagnosticsOptions = options || Object.create(null); this._diagnosticsOptions = options || Object.create(null);
this._onDidChange.fire(this); this._onDidChange.fire(this);
} }
} }
const diagnosticDefault: monaco.languages.yaml.DiagnosticsOptions = { const diagnosticDefault: languages.yaml.DiagnosticsOptions = {
validate: true, validate: true,
schemas: [], schemas: [],
enableSchemaRequest: false, enableSchemaRequest: false,
@ -61,22 +61,22 @@ const diagnosticDefault: monaco.languages.yaml.DiagnosticsOptions = {
const yamlDefaults = new LanguageServiceDefaultsImpl('yaml', diagnosticDefault); const yamlDefaults = new LanguageServiceDefaultsImpl('yaml', diagnosticDefault);
// Export API // Export API
function createAPI(): typeof monaco.languages.yaml { function createAPI(): typeof languages.yaml {
return { return {
yamlDefaults, yamlDefaults,
}; };
} }
monaco.languages.yaml = createAPI(); languages.yaml = createAPI();
// --- Registration to monaco editor --- // --- Registration to monaco editor ---
monaco.languages.register({ languages.register({
id: 'yaml', id: 'yaml',
extensions: ['.yaml', '.yml'], extensions: ['.yaml', '.yml'],
aliases: ['YAML', 'yaml', 'YML', 'yml'], aliases: ['YAML', 'yaml', 'YML', 'yml'],
mimetypes: ['application/x-yaml'], mimetypes: ['application/x-yaml'],
}); });
monaco.languages.onLanguage('yaml', () => { languages.onLanguage('yaml', () => {
setupMode(yamlDefaults); setupMode(yamlDefaults);
}); });

88
src/monaco.d.ts vendored
View file

@ -3,52 +3,56 @@
* Licensed under the MIT License. See License.txt in the project root for license information. * Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
declare namespace monaco.languages.yaml { import { IEvent } from 'monaco-editor/esm/vs/editor/editor.api';
export interface DiagnosticsOptions {
/**
* If set, the validator will be enabled and perform syntax validation as well as schema based validation.
*/
readonly validate?: boolean;
/** declare module 'monaco-editor/esm/vs/editor/editor.api' {
* A list of known schemas and/or associations of schemas to file names. namespace languages.yaml {
*/ export interface DiagnosticsOptions {
readonly schemas?: Array<{
/** /**
* The URI of the schema, which is also the identifier of the schema. * If set, the validator will be enabled and perform syntax validation as well as schema based validation.
*/ */
readonly uri: string; readonly validate?: boolean;
/**
* A list of file names that are associated to the schema. The '*' wildcard can be used. For example '*.schema.json', 'package.json'
*/
readonly fileMatch?: string[];
/**
* The schema for the given URI.
*/
readonly schema?: any;
}>;
/** /**
* If set, the schema service would load schema content on-demand with 'fetch' if available * A list of known schemas and/or associations of schemas to file names.
*/ */
readonly enableSchemaRequest?: boolean; readonly schemas?: Array<{
/** /**
* If specified, this prefix will be added to all on demand schema requests * The URI of the schema, which is also the identifier of the schema.
*/ */
readonly prefix?: string; readonly uri: string;
/** /**
* Whether or not kubernetes yaml is supported * A list of file names that are associated to the schema. The '*' wildcard can be used. For example '*.schema.json', 'package.json'
*/ */
readonly isKubernetes?: boolean; readonly fileMatch?: string[];
/**
* The schema for the given URI.
*/
readonly schema?: any;
}>;
readonly format?: boolean; /**
* If set, the schema service would load schema content on-demand with 'fetch' if available
*/
readonly enableSchemaRequest?: boolean;
/**
* If specified, this prefix will be added to all on demand schema requests
*/
readonly prefix?: string;
/**
* Whether or not kubernetes yaml is supported
*/
readonly isKubernetes?: boolean;
readonly format?: boolean;
}
export interface LanguageServiceDefaults {
readonly onDidChange: IEvent<LanguageServiceDefaults>;
readonly diagnosticsOptions: DiagnosticsOptions;
setDiagnosticsOptions(options: DiagnosticsOptions): void;
}
export const yamlDefaults: LanguageServiceDefaults;
} }
export interface LanguageServiceDefaults {
readonly onDidChange: IEvent<LanguageServiceDefaults>;
readonly diagnosticsOptions: DiagnosticsOptions;
setDiagnosticsOptions(options: DiagnosticsOptions): void;
}
export const yamlDefaults: LanguageServiceDefaults;
} }

View file

@ -1,5 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/// <reference path='../../node_modules/monaco-editor-core/monaco.d.ts'/>

View file

@ -4,12 +4,14 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import {
editor,
Uri,
IDisposable,
} from 'monaco-editor/esm/vs/editor/editor.api';
import { LanguageServiceDefaultsImpl } from './monaco.contribution'; import { LanguageServiceDefaultsImpl } from './monaco.contribution';
import { YAMLWorker } from './yamlWorker'; import { YAMLWorker } from './yamlWorker';
import IDisposable = monaco.IDisposable;
import Uri = monaco.Uri;
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1000; // 2min const STOP_WHEN_IDLE_FOR = 2 * 60 * 1000; // 2min
export class WorkerManager { export class WorkerManager {
@ -18,7 +20,7 @@ export class WorkerManager {
private _lastUsedTime: number; private _lastUsedTime: number;
private _configChangeListener: IDisposable; private _configChangeListener: IDisposable;
private _worker: monaco.editor.MonacoWebWorker<YAMLWorker>; private _worker: editor.MonacoWebWorker<YAMLWorker>;
private _client: Promise<YAMLWorker>; private _client: Promise<YAMLWorker>;
constructor(defaults: LanguageServiceDefaultsImpl) { constructor(defaults: LanguageServiceDefaultsImpl) {
@ -71,7 +73,7 @@ export class WorkerManager {
this._lastUsedTime = Date.now(); this._lastUsedTime = Date.now();
if (!this._client) { if (!this._client) {
this._worker = monaco.editor.createWebWorker<YAMLWorker>({ this._worker = editor.createWebWorker<YAMLWorker>({
// module that exports the create() method and returns a `YAMLWorker` instance // module that exports the create() method and returns a `YAMLWorker` instance
moduleId: 'vs/language/yaml/yamlWorker', moduleId: 'vs/language/yaml/yamlWorker',

View file

@ -4,14 +4,16 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import {
languages,
Uri,
IDisposable,
} from 'monaco-editor/esm/vs/editor/editor.api';
import * as languageFeatures from './languageFeatures'; import * as languageFeatures from './languageFeatures';
import { LanguageServiceDefaultsImpl } from './monaco.contribution'; import { LanguageServiceDefaultsImpl } from './monaco.contribution';
import { WorkerManager } from './workerManager'; import { WorkerManager } from './workerManager';
import { YAMLWorker } from './yamlWorker'; import { YAMLWorker } from './yamlWorker';
import Uri = monaco.Uri;
import IDisposable = monaco.IDisposable;
export function setupMode(defaults: LanguageServiceDefaultsImpl): void { export function setupMode(defaults: LanguageServiceDefaultsImpl): void {
const disposables: IDisposable[] = []; const disposables: IDisposable[] = [];
@ -27,31 +29,31 @@ export function setupMode(defaults: LanguageServiceDefaultsImpl): void {
const languageId = defaults.languageId; const languageId = defaults.languageId;
disposables.push( disposables.push(
monaco.languages.registerCompletionItemProvider( languages.registerCompletionItemProvider(
languageId, languageId,
new languageFeatures.CompletionAdapter(worker) new languageFeatures.CompletionAdapter(worker)
) )
); );
disposables.push( disposables.push(
monaco.languages.registerHoverProvider( languages.registerHoverProvider(
languageId, languageId,
new languageFeatures.HoverAdapter(worker) new languageFeatures.HoverAdapter(worker)
) )
); );
disposables.push( disposables.push(
monaco.languages.registerDocumentSymbolProvider( languages.registerDocumentSymbolProvider(
languageId, languageId,
new languageFeatures.DocumentSymbolAdapter(worker) new languageFeatures.DocumentSymbolAdapter(worker)
) )
); );
disposables.push( disposables.push(
monaco.languages.registerDocumentFormattingEditProvider( languages.registerDocumentFormattingEditProvider(
languageId, languageId,
new languageFeatures.DocumentFormattingEditProvider(worker) new languageFeatures.DocumentFormattingEditProvider(worker)
) )
); );
disposables.push( disposables.push(
monaco.languages.registerDocumentRangeFormattingEditProvider( languages.registerDocumentRangeFormattingEditProvider(
languageId, languageId,
new languageFeatures.DocumentRangeFormattingEditProvider(worker) new languageFeatures.DocumentRangeFormattingEditProvider(worker)
) )
@ -60,14 +62,14 @@ export function setupMode(defaults: LanguageServiceDefaultsImpl): void {
new languageFeatures.DiagnosticsAdapter(languageId, worker, defaults) new languageFeatures.DiagnosticsAdapter(languageId, worker, defaults)
); );
disposables.push( disposables.push(
monaco.languages.setLanguageConfiguration(languageId, richEditConfiguration) languages.setLanguageConfiguration(languageId, richEditConfiguration)
); );
// Color adapter should be necessary most of the time: // Color adapter should be necessary most of the time:
// disposables.push(monaco.languages.registerColorProvider(languageId, new languageFeatures.DocumentColorAdapter(worker))); // disposables.push(languages.registerColorProvider(languageId, new languageFeatures.DocumentColorAdapter(worker)));
} }
const richEditConfiguration: monaco.languages.LanguageConfiguration = { const richEditConfiguration: languages.LanguageConfiguration = {
comments: { comments: {
lineComment: '#', lineComment: '#',
}, },
@ -94,7 +96,7 @@ const richEditConfiguration: monaco.languages.LanguageConfiguration = {
onEnterRules: [ onEnterRules: [
{ {
beforeText: /:\s*$/, beforeText: /:\s*$/,
action: { indentAction: monaco.languages.IndentAction.Indent }, action: { indentAction: languages.IndentAction.Indent },
}, },
], ],
}; };

View file

@ -6,9 +6,7 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import Thenable = monaco.Thenable; import { worker } from 'monaco-editor/esm/vs/editor/editor.api';
import IWorkerContext = monaco.worker.IWorkerContext;
import * as ls from 'vscode-languageserver-types'; import * as ls from 'vscode-languageserver-types';
import * as yamlService from 'yaml-language-server'; import * as yamlService from 'yaml-language-server';
@ -20,13 +18,13 @@ if (typeof fetch !== 'undefined') {
} }
export class YAMLWorker { export class YAMLWorker {
private _ctx: IWorkerContext; private _ctx: worker.IWorkerContext;
private _languageService: yamlService.LanguageService; private _languageService: yamlService.LanguageService;
private _languageSettings: yamlService.LanguageSettings; private _languageSettings: yamlService.LanguageSettings;
private _languageId: string; private _languageId: string;
private _isKubernetes: boolean; private _isKubernetes: boolean;
constructor(ctx: IWorkerContext, createData: ICreateData) { constructor(ctx: worker.IWorkerContext, createData: ICreateData) {
const prefix = createData.prefix || ''; const prefix = createData.prefix || '';
const service = (url: string) => const service = (url: string) =>
defaultSchemaRequestService(`${prefix}${url}`); defaultSchemaRequestService(`${prefix}${url}`);
@ -46,7 +44,7 @@ export class YAMLWorker {
}); });
} }
public doValidation(uri: string): Thenable<ls.Diagnostic[]> { public doValidation(uri: string): PromiseLike<ls.Diagnostic[]> {
const document = this._getTextDocument(uri); const document = this._getTextDocument(uri);
if (document) { if (document) {
return this._languageService.doValidation(document, this._isKubernetes); return this._languageService.doValidation(document, this._isKubernetes);
@ -57,7 +55,7 @@ export class YAMLWorker {
public doComplete( public doComplete(
uri: string, uri: string,
position: ls.Position position: ls.Position
): Thenable<ls.CompletionList> { ): PromiseLike<ls.CompletionList> {
const document = this._getTextDocument(uri); const document = this._getTextDocument(uri);
return this._languageService.doComplete( return this._languageService.doComplete(
document, document,
@ -66,11 +64,11 @@ export class YAMLWorker {
); );
} }
public doResolve(item: ls.CompletionItem): Thenable<ls.CompletionItem> { public doResolve(item: ls.CompletionItem): PromiseLike<ls.CompletionItem> {
return this._languageService.doResolve(item); return this._languageService.doResolve(item);
} }
public doHover(uri: string, position: ls.Position): Thenable<ls.Hover> { public doHover(uri: string, position: ls.Position): PromiseLike<ls.Hover> {
const document = this._getTextDocument(uri); const document = this._getTextDocument(uri);
return this._languageService.doHover(document, position); return this._languageService.doHover(document, position);
} }
@ -79,17 +77,17 @@ export class YAMLWorker {
uri: string, uri: string,
range: ls.Range, range: ls.Range,
options: yamlService.CustomFormatterOptions options: yamlService.CustomFormatterOptions
): Thenable<ls.TextEdit[]> { ): PromiseLike<ls.TextEdit[]> {
const document = this._getTextDocument(uri); const document = this._getTextDocument(uri);
const textEdits = this._languageService.doFormat(document, options); const textEdits = this._languageService.doFormat(document, options);
return Promise.resolve(textEdits); return Promise.resolve(textEdits);
} }
public resetSchema(uri: string): Thenable<boolean> { public resetSchema(uri: string): PromiseLike<boolean> {
return Promise.resolve(this._languageService.resetSchema(uri)); return Promise.resolve(this._languageService.resetSchema(uri));
} }
public findDocumentSymbols(uri: string): Thenable<ls.DocumentSymbol[]> { public findDocumentSymbols(uri: string): PromiseLike<ls.DocumentSymbol[]> {
const document = this._getTextDocument(uri); const document = this._getTextDocument(uri);
const symbols = this._languageService.findDocumentSymbols2(document); const symbols = this._languageService.findDocumentSymbols2(document);
return Promise.resolve(symbols); return Promise.resolve(symbols);
@ -120,7 +118,7 @@ export interface ICreateData {
} }
export function create( export function create(
ctx: IWorkerContext, ctx: worker.IWorkerContext,
createData: ICreateData createData: ICreateData
): YAMLWorker { ): YAMLWorker {
return new YAMLWorker(ctx, createData); return new YAMLWorker(ctx, createData);

View file

@ -556,15 +556,10 @@ minimatch@^3.0.4:
dependencies: dependencies:
brace-expansion "^1.1.7" brace-expansion "^1.1.7"
monaco-editor-core@^0.21.2: monaco-editor@^0.21.3:
version "0.21.2" version "0.21.3"
resolved "https://registry.yarnpkg.com/monaco-editor-core/-/monaco-editor-core-0.21.2.tgz#06e94d625bf7edc452e4d32c41a96229875001ec" resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.21.3.tgz#3381b66614b64d1c5e3b77dd5564ad496d1b4e5d"
integrity sha512-uYk9x50dkFsoAHmzYytS29ohDlb2JZsGowK5icwra8FYwdOy77uAq2bDCMYo6NZ4T/aKRKOnnO5S3ifaJwqaBw== integrity sha512-9N7wATLpi+googstvtm6IKg97vPQ77FDYEpkow5tLriM/VJ0DaTRyUP4UVzcoH7KlPDX+e/rE7/imcOUeGkT6g==
monaco-editor@^0.21.2:
version "0.21.2"
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.21.2.tgz#37054e63e480d51a2dd17d609dcfb192304d5605"
integrity sha512-jS51RLuzMaoJpYbu7F6TPuWpnWTLD4kjRW0+AZzcryvbxrTwhNy1KC9yboyKpgMTahpUbDUsuQULoo0GV1EPqg==
monaco-languages@^2.1.1: monaco-languages@^2.1.1:
version "2.1.1" version "2.1.1"